]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR c++/17395 (Incorrect lookup for parameters)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5a5c6435
JJ
12009-05-06 Janis Johnson <janis187@us.ibm.com>
2
3 PR middle-end/39986
4 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6 32-bit memcpy into long.
7
96474f36
JJ
82009-05-06 Jakub Jelinek <jakub@redhat.com>
9
10 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
11 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
12 new_reg_loc_descr.
13 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
14 instead of appending DW_OP_deref*.
15
529ff441
MM
162009-05-06 Michael Matz <matz@suse.de>
17
18 PR middle-end/40021
19 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
20 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
21
9419a9fd
RAE
222009-05-06 Rafael Avila de Espindola <espindola@google.com>
23
24 * Makefile.in (install-plugin): Fix srcdir handling.
25
fff1894c
AB
262009-05-06 Andrey Belevantsev <abel@ispras.ru>
27
28 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
29 when processing for not_regs_needed bitmap.
30 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
31 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
32 handling it for rhs.
33
700ae70c
L
342009-05-06 H.J. Lu <hongjiu.lu@intel.com>
35
ab3426a7 36 * config/i386/i386.md (unnamed inc/dec peephole): Use
700ae70c
L
37 optimize_insn_for_size_p instead
38 of optimize_size.
39 * config/i386/predicates.md (incdec_operand): Likewise.
40 (aligned_operand): Likewise.
41 * config/i386/sse.md (divv8sf3): Likewise.
42 (sqrtv8sf2): Likewise.
43
67341fb5
L
442009-05-06 H.J. Lu <hongjiu.lu@intel.com>
45
46 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
47
48 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
49
87946f42
L
502009-05-06 H.J. Lu <hongjiu.lu@intel.com>
51
52 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
53 ssemodesuffixf2c with avxmodesuffixf2c.
54
1202aec1
JM
552009-05-06 Joseph Myers <joseph@codesourcery.com>
56
57 PR c/40032
58 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed
59 field.
60
6e57a01d
JJ
612009-05-05 Jakub Jelinek <jakub@redhat.com>
62
63 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
64 (struct tree_base): Adjust spacing for 8 bit boundaries.
65 (struct tree_decl_common): Add decl_by_reference_flag bit.
66 (DECL_BY_REFERENCE): Adjust.
67 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
68 print DECL_BY_REFERENCE bit.
69 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
70 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
71 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
72 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
73 unconditionally.
74
32f579f6
JJ
75 PR middle-end/39666
76 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
77 range of the type, but default label is missing, add it with one
78 of the existing labels instead of adding a new label for it.
79
617ab743
JM
802009-05-05 Joseph Myers <joseph@codesourcery.com>
81
82 * dwarf.h: Remove.
83
bf016de8
RAE
842009-05-05 Rafael Avila de Espindola <espindola@google.com>
85
86 * Makefile.in (enable_plugin, plugin_includedir): New.
87 (install): Depend on install-plugin.
88 (PLUGIN_HEADERS): New.
89 (install-plugin): New.
90 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
91
7f8fdb9f
RG
922009-05-05 Richard Guenther <rguenther@suse.de>
93
94 PR tree-optimization/40022
95 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
96 the only vuse.
97 (phivn_valid_p): Fix tuplification error, simplify.
98 (phiprop_insert_phi): Add dumps.
99 (propagate_with_phi): Simplify.
100
8d972839
RG
1012009-05-05 Richard Guenther <rguenther@suse.de>
102
103 PR middle-end/40023
104 * builtins.c (gimplify_va_arg_expr): Properly build the
105 address.
106
66ba9b0b
SZ
1072009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
108
109 * tree.h (strip_float_extensions): Remove duplicate declaration.
110 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
111 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
112 block_ultimate_origin): Rearrange the declarations line to match the
113 comment that indicates the .c file which the functions are defined.
114 (dwarf2out_*, set_decl_rtl): Add comment.
115 (get_base_address): Adjust comment.
116 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
117 declarations line and add comment.
118 (is_builtin_name): Add blank after function name, for clarity.
119
4f1e4960
JM
1202009-05-04 Joseph Myers <joseph@codesourcery.com>
121
122 * attribs.c (decl_attributes): Use %qE for identifiers in
123 diagnostics.
124 * cgraphunit.c (verify_cgraph_node): Translate function names to
125 locale character set in diagnostics.
126 * coverage.c (get_coverage_counts): Use %qE for identifiers in
127 diagnostics.
128 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
129 Document that functions are named in UTF-8.
130 * expr.c (expand_expr_real_1): Translate function names to locale
131 character set in diagnostics.
132 * gimplify.c (omp_notice_variable, omp_is_private,
133 gimplify_scan_omp_clauses): Use %qE for identifiers in
134 diagnostics.
135 * langhooks.c (lhd_print_error_function): Translate function names
136 to locale character set.
137 * langhooks.h (decl_printable_name): Document that return value is
138 in internal character set.
139 * stmt.c: Include pretty-print.h
140 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
141 diagnostics.
142 (resolve_operand_name_1): Translate named operand name to locale
143 character set.
144 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
145 diagnostics.
146 * toplev.c (announce_function): Translate function names to locale
147 character set.
148 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
149 (default_tree_printer): Use pp_identifier or translate identifiers
150 to locale character set. Mark "<anonymous>" for translation.
151 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
152 for identifiers in diagnostics.
153 * tree.c (handle_dll_attribute): Use %qE for identifiers in
154 diagnostics.
155 * varasm.c (output_constructor): Use %qE for identifiers in
156 diagnostics.
157
40540e68
RAE
1582009-05-04 Rafael Avila de Espindola <espindola@google.com>
159
160 * configure.ac: use ` ` instead of $()
161 * configure: Regenerate.
162
33fc884c
BE
1632009-05-05 Ben Elliston <bje@au.ibm.com>
164
165 * config/pa/linux-atomic.c: Eliminate conditional include of
166 errno.h on non-LP64 systems to simplify build requirements.
167
88388a52
JM
1682009-05-04 Joseph Myers <joseph@codesourcery.com>
169
170 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
171 diagnostics.
172 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
173 and pass value to identifier_to_locale.
174 (warn_variable_length_array): Make name a tree.
175 (grokdeclarator): Separate diagnostic texts for named and unnamed
176 declarators. Use %qE for named declarators.
177 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
178 diagnostics.
179 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
180 identifiers in diagnostics.
181 * c-typeck.c (push_member_name, start_init): Pass identifiers to
182 identifier_to_locale. Mark "anonymous" strings for translation.
183
960c5c79
ME
1842009-05-04 Michael Eager <eager@eagercon.com>
185
186 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
187 address for DImode/DFmode only if double-precision FP regs.
188
d083fbba
ME
1892009-05-04 Michael Eager <eager@eagercon.com>
190
191 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
192 TARGET_SINGLE_FLOAT check.
193
c3ba8d32
ME
1942009-05-04 Michael Eager <eager@eagercon.com>
195
196 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
197
edce9f18
ME
1982009-05-04 Michael Eager <eager@eagercon.com>
199
200 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
201 * config/rs6000/t-xilinx: New
202
506d7b68
PB
2032009-05-04 Paolo Bonzini <bonzini@gnu.org>
204
205 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
206 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
207 * gcc/explow.c (memory_address): Use target hook.
208 * gcc/targhooks.c (default_legitimize_address): New.
209 * gcc/targhooks.h (default_legitimize_address): New.
210 * gcc/target.h (legitimize_address): New.
211 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
212 (TARGET_INITIALIZER): Include it.
213 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
214
215 * config/bfin/bfin-protos.h (legitimize_address): Remove.
216 * config/bfin/bfin.c (legitimize_address): Remove.
217 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
218 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove.
219 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
220 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
221
222 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
223 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
224 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
225 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
226 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
227 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
228 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
229 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
230 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
231 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
232 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
233 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
234 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
235 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
236 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
237 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
238 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
239 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
240 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
241 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
242 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
243 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
244 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
245
246 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
247 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
248 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
249 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
250 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
251 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
252 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
253 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
254 (thumb_legitimize_address): Delete.
255 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
256 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
257 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
258 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
259 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
260 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete.
261 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete.
262
263 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
264 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
265 * config/m32r/m32r.c (m32r_legitimize_address): New.
266 * config/m68k/m68k.c (m68k_legitimize_address): New.
267 * config/score/score.c (score_legitimize_address): Standardize.
268 * config/score/score3.c (score3_legitimize_address): Standardize.
269 * config/score/score3.h (score3_legitimize_address): Adjust.
270 * config/score/score7.c (score7_legitimize_address): Standardize.
271 * config/score/score7.h (score7_legitimize_address): Adjust.
272 * config/sh/sh.c (sh_legitimize_address): New.
273 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
274
275 * gcc/config/s390/s390.c (legitimize_address): Rename to...
276 (s390_legitimize_address): ... this.
277 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
278 (sparc_legitimize_address): ... this.
279 * gcc/config/i386/i386.c (legitimize_address): Rename to...
280 (ix86_legitimize_address): ... this.
281 * gcc/config/avr/avr.c (legitimize_address): Rename to...
282 (avr_legitimize_address): ... this.
283 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
284 (mn10300_legitimize_address): ... this.
285 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
286 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
287 (alpha_expand_mov): Adjust call.
288
289 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
290 * config/spu/spu.c (spu_legitimize_address): Likewise.
291 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
292 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
293
a3af5087
JM
2942009-05-04 Joseph Myers <joseph@codesourcery.com>
295
296 * intl.c (locale_encoding, locale_utf8): New.
297 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
298 * intl.h (locale_encoding, locale_utf8): Declare.
299 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
300 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
301 New.
302 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
303 argument.
304 (pp_tree_identifier): Define to call pp_base_tree_identifier.
305 (pp_base_tree_identifier): Declare as function.
306 (identifier_to_locale): Declare.
307 * Makefile.in (pretty-print.o): Update dependencies.
308 * varasm.c (finish_aliases_1): Use %qE for identifiers in
309 diagnostics.
310
ea5cd5f1
RG
3112009-05-04 Richard Guenther <rguenther@suse.de>
312
313 PR middle-end/40015
314 * builtins.c (fold_builtin_memory_op): Do not decay to element
315 type if the size matches the whole array.
316
ddc2690a
KH
3172009-05-04 Kazu Hirata <kazu@codesourcery.com>
318
319 * expmed.c (synth_mult): When trying out a shift, pass the result
320 of a signed shift.
321
ef268d34
KH
3222009-05-04 Kazu Hirata <kazu@codesourcery.com>
323
324 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
325 (shiftsub1_cost): New.
326 (init_expmed): Compute shiftsub1_cost.
327 (synth_mult): Optimize multiplications by constants of the form
328 -(2^^m-1) for some constant positive integer m.
329
255d3827
RG
3302009-05-03 Richard Guenther <rguenther@suse.de>
331
332 PR c/39983
333 * c-typeck.c (array_to_pointer_conversion): Do not built
334 ADDR_EXPRs of arrays of pointer-to-element type.
335 * c-gimplify.c (c_gimplify_expr): Revert change fixing
336 up wrong ADDR_EXPRs after-the-fact.
337 * c-common.c (strict_aliasing_warning): Strip pointer
338 conversions for obtaining the original type.
339 * builtins.c (fold_builtin_memset): Handle array types.
340 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
341 and array types
342
16c33770
RG
3432009-05-03 Richard Guenther <rguenther@suse.de>
344
345 PR middle-end/23329
346 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
347 Do not lose casts from array types with unknown extent to array
348 types with known extent.
349 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
350 alias set compatibility.
351
62a67c94
MLI
3522009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
353
354 * flags.h (extra_warnings): Delete.
355 * toplev.c (process_options): Handle Wuninitialized here.
356 * opts.c (extra_warnings): Delete.
357 (set_Wextra): Delete.
358 (common_handle_option): -Wextra can be handled automatically.
359 * c-opts.c (c_common_handle_option): Delete obsolete code.
360 (c_common_post_options): Simplify comment.
361 * common.opt (W): Add Var.
362 (Wextra): Add Var.
363 (Wuninitialized): Initialize to -1.
364
8c7926c4
AN
3652009-05-03 Adam Nemet <anemet@caviumnetworks.com>
366 Richard Guenther <rguenther@suse.de>
367
368 * expr.c (get_def_for_expr): New function.
369 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
370 SSA rather than trees.
371 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
372 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
373
fa5da7de
JM
3742009-05-03 Joseph Myers <joseph@codesourcery.com>
375
376 * c-common.c (reswords): Add _Imaginary.
377 * c-common.c (enum rid): Add RID_IMAGINARY.
378
2ddd5020
PB
3792009-05-03 Paolo Bonzini <bonzini@gnu.org>
380
381 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
382 Patch by Richard Guenther.
383
aea88c05
AS
3842009-05-03 Anatoly Sokolov <aesok@post.ru>
385
386 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
387 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
388 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
389 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
390 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
391 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
392 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
393 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
394 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
395 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
396 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
397 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
398 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
399 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
400 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
401 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
402 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
403 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
404
85e59f3a
RG
4052009-05-02 Richard Guenther <rguenther@suse.de>
406
407 PR tree-optimization/39940
408 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
409 doing so.
410
4636b850
RG
4112009-05-02 Richard Guenther <rguenther@suse.de>
412
413 PR middle-end/40001
414 * tree-ssa.c (execute_update_addresses_taken): Properly check
415 if we can mark a variable DECL_GIMPLE_REG_P.
416 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
417 back to the end of the function.
418 (is_gimple_reg_type): Remove complex type special casing.
419 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
420 if not optimizing.
421
5e10cb5a
BE
4222009-05-02 Ben Elliston <bje@au.ibm.com>
423
424 * doc/collect2.texi (Collect2): Document search path behaviour
425 when configured with --with-ld.
426
048bf48b
JH
4272009-05-02 Jan Hubicka <jh@suse.cz>
428
429 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
430 parameter; update callers.
431 (coalesce_cost_edge): EH edges are costier because they needs splitting
432 even if not critical and even more costier when there are multiple
433 EH predecestors.
434
d5c5f9ab
JH
4352009-05-02 Jan Hubicka <jh@suse.cz>
436
437 * except.c (remove_eh_handler_and_replace): Handle updating after
438 removing TRY blocks.
439
2ed1959a
EB
4402009-05-02 Eric Botcazou <ebotcazou@adacore.com>
441
442 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
443
d363a7e7
SB
4442009-05-02 Steven Bosscher <steven@gcc.gnu.org>
445
446 * varasm.c: Do not include c-pragma.h.
447 * attribs.c: Do not incude c-common.h.
448
9c3d55b4
MM
4492009-05-01 Michael Matz <matz@suse.de>
450
451 * calls.c (initialize_argument_information): Handle SSA names like
452 decls with a non MEM_P DECL_RTL.
453
ea264ca5
SB
4542009-05-01 Steven Bosscher <steven@gcc.gnu.org>
455
456 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
457 * ipa-utils.c: Likewise.
458 * ipa-type-escape.c: Likewise.
459 * cgraphunit.c Do not include c-common.h.
460 * ipa-pure-const.c: Likewise.
461 * tree-if-conv.c: Likewise.
462 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
463 * ipa-struct-reorg.c: Likewise.
464 * tree-nomudflap.c: Likewise.
465 * tree-ssa-structalias.c: Likewise.
466
6c5d4d1a
SB
4672009-05-01 Steven Bosscher <steven@gcc.gnu.org>
468
469 * store-motion.c: Many cleanups to make this pass a first-class
470 citizen instead of an appendix to gcse load motion. Add TODO list
471 to make this pass faster/cleaner/better.
472
473 (struct ls_expr): Post gcse.c-split cleanups.
474 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
475 "stores" field to "avail_stores".
476 (pre_ldst_mems): Rename to store_motion_mems.
477 (pre_ldst_table): Rename to store_motion_mems_table.
478 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
479 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
480 (ldst_entry): Rename to st_expr_entry, update users.
481 (free_ldst_entry): Rename to free_st_expr_entry, update users.
482 (free_ldst_mems): Rename to free_store_motion_mems, update users.
483 (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
484 (first_ls_expr): Rename to first_st_expr, update users.
485 (next_ls_expr): Rename to next_st_expr, update users.
486 (print_ldst_list): Rename to print_store_motion_mems. Print names of
487 fields properly for store motion instead of names inherited from load
488 motion in gcse.c.
489 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
490 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
491 are done with it.
492
493 (ae_kill): Rename to st_kill, update users.
494 (ae_gen): Rename to st_avloc, update users.
495 (transp): Rename to st_transp, update users.
496 (pre_insert_map): Rename to st_insert_map, update users.
497 (pre_delete_map): Rename to st_delete_map, update users.
498 (insert_store, build_store_vectors, free_store_memory,
499 one_store_motion_pass): Update for abovementioned changes.
500
501 (gcse_subst_count, gcse_create_count): Remove.
502 (one_store_motion_pass): New statistics counters "n_stores_deleted"
503 and "n_stores_created", local variables.
504
505 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
506 use for_each_rtx.
507
508 (regvec, compute_store_table_current_insn): Remove.
509 (reg_set_info, reg_clear_last_set): Remove.
510 (compute_store_table): Use DF caches instead of local dataflow
511 solvers.
512
b02cec6e
JM
5132009-05-01 Joseph Myers <joseph@codesourcery.com>
514
515 * c-objc-common.c (c_tree_printer): Print identifiers with
516 pp_identifier, not pp_string. Mark "({anonymous})" for
517 translation.
518 * c-pretty-print.c (pp_c_ws_string): New.
519 (pp_c_cv_qualifier, pp_c_type_specifier,
520 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
521 pp_c_storage_class_specifier, pp_c_function_specifier,
522 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
523 pp_c_primary_expression, pp_c_postfix_expression,
524 pp_c_unary_expression, pp_c_shift_expression,
525 pp_c_relational_expression, pp_c_equality_expression,
526 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
527 use pp_string and pp_c_ws_string in place of pp_identifier and
528 pp_c_identifier for non-identifiers. Mark English strings for
529 translation.
530 * c-pretty-print.h (pp_c_ws_string): Declare.
531
cd533689
PP
5322009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
533 Roland McGrath <roland@redhat.com>
534
535 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
536 support.
537 (ENABLE_LD_BUILDID): New configuration option.
538 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
539 (LINK_BUILDID_SPEC): New macro.
540 (init_spec): If defined, prepend it between LINK_EH_SPEC and
541 link_spec.
542 * doc/install.texi: Document --enable-linker-build-id option.
543 * configure: Rebuild.
544 * config.in: Rebuild.
545
ba6adec4
AN
5462009-04-30 Adam Nemet <anemet@caviumnetworks.com>
547
548 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
549 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
550 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
551 MIPS_GP_SAVE_AREA_SIZE.
552 * config/mips/mips.c (struct mips_frame_info): Update comment
553 before arg_pointer_offset and hard_frame_pointer_offset.
554 (mips_compute_frame_info): Update diagram before function: to
555 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
556 indicate the position of frame_pointer_rtx with -fstack-protector and
557 to show args_size. Don't allocate cprestore area for leaf functions
558 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
559 cprestore_size.
560 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
561
48f5b722
MM
5622009-04-30 Michael Matz <matz@suse.de>
563
ba6adec4
AN
564 PR tree-optimization/39955
565 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 566
b65d6744
DK
5672009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
568
569 * ira.c (setup_cover_and_important_classes): Use safe macro
570 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
571 directly.
572 * genpreds.c (write_tm_preds_h): Output suitable definition of
573 REG_CLASS_FOR_CONSTRAINT.
574
f136c8ae
RAE
5752009-04-30 Rafael Avila de Espindola <espindola@google.com>
576
577 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
578 instead of an int.
579 * bitmap.c (bitmap_descriptor): Likewise.
580 * ggc-common.c (loc_descriptor): Likewise.
581 * varray.c (varray_descriptor): Likewise.
582 * vec.c (vec_descriptor): Likewise.
583
43fcece8 5842009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
585
586 * Makefile.in (dce.o): Add $(EXCEPT_H).
587 * dce.c: Include except.h and delete redundant vector definitions.
588 (deletable_insn_p): Return false for non-call insns that can throw
589 if DF is running.
590
df35c271
SB
5912009-04-30 Steven Bosscher <steven@gcc.gnu.org>
592
593 * gcse.c (ae_gen): Remove.
594 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
595 and make non-static function to make it available in store-motion.c.
596 Update call sites with search-and-replace.
597 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
598 extract_mentioned_regs, extract_mentioned_regs_helper,
599 find_moveable_store, compute_store_table, load_kills_store, find_loads,
600 store_killed_in_insn, store_killed_after, store_killed_before,
601 build_store_vectors, insert_insn_start_basic_block, insert-store,
602 remove_reachable_equiv_notes, replace_store_insn, delete_store,
603 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
604 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
605 * store-motion.c: ...new file. Also copy data structures from gcse.c
606 and clean up to remove parts not used by store motion.
607 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
608 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
609
f711a87a
RR
6102009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
611
612 PR target/38571
613 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
614 when optimizing for size.
615
fa5ed76e
HPN
6162009-04-30 Hans-Peter Nilsson <hp@axis.com>
617
618 * gcse.c (gcse_constant_p): Fix typo in last change.
619
0acbbdb0
RAE
6202009-04-30 Rafael Avila de Espindola <espindola@google.com>
621
622 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
623
82f5c05d
AK
6242009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
625
626 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
627
6d8f135b
JW
6282009-04-29 James E. Wilson <wilson@codesourcery.com>
629
630 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
631 CONST_HIGH_PART result.
632
c21ca196
AS
6332009-04-29 Anatoly Sokolov <aesok@post.ru>
634
635 * config/avr/avr.c (initial_elimination_offset): Rename to
636 avr_initial_elimination_offset.
637 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
638 change return type to bool.
639 (avr_can_eliminate): New function.
640 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
641 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
642 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
643 * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
644 avr_initial_elimination_offset.
645 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
646 (avr_initial_elimination_offset): Define.
647
2a34bece
EB
6482009-04-29 Eric Botcazou <ebotcazou@adacore.com>
649 Steven Bosscher <steven@gcc.gnu.org>
650
651 PR rtl-optimization/39938
652 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
653 * cfgrtl.c: Include insn-attr.h.
654 (rest_of_pass_free_cfg): New function.
655 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
656 * resource.c (init_resource_info): Remove call to df_analyze.
657
5dc7911e
RG
6582009-04-29 Richard Guenther <rguenther@suse.de>
659
660 PR target/39943
661 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
662 allow conversion to signed integers.
663
1fe479fd
RG
6642009-04-29 Richard Guenther <rguenther@suse.de>
665
666 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
667 shifts of floating point vectors if the shift amount is
668 a constant multiple of the element size.
669
8e001680
AK
6702009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
671 Michael Matz <matz@suse.de>
672
673 PR middle-end/39927
674 PR bootstrap/39929
675 * tree-outof-ssa.c (emit_partition_copy): New function.
676 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
677 insert_part_to_rtx_on_edge): Perform the partition base var
678 copy using emit_partition_copy.
679 (insert_value_copy_on_edge): Convert constants to the right mode.
680 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
681 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
682
e50e3081
BS
6832009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
684
685 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
686 scan backwards to try to find a constant to initialize it.
687
4e5d521b
BS
688 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
689 insn before the loop_end instruction, don't look past labels.
690
7c90021d
RG
6912009-04-29 Richard Guenther <rguenther@suse.de>
692
693 PR middle-end/39937
694 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
695 loose type conversions.
696 (forward_propagate_addr_expr): Fix tuplification bug. Remove
697 stmts only if there are no uses of its definition.
698
97a988bc
BS
6992009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
700
701 * config/bfin/bfin.h (splitting_loops): Declare.
702 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
703 Reorder bit definitions to be ascending.
704 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
705 * config/bfin/bfin.c (splitting_loops): New variable.
706 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
707 (struct loop_info): Remove members INIT and LOOP_INIT.
708 (bfin_optimize_loop): Don't set them. Reorder the code that generates
709 the LSETUP sequence. Allow LC to be loaded from any register, but also
710 add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
711 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
712 set to 1.
713 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
714 of reload_completed.
715 From Jie Zhang:
716 * config/bfin/bfin.md (movsi_insn): Refine constraints.
717
0c463e16
RAE
7182009-04-29 Rafael Avila de Espindola <espindola@google.com>
719
720 * Makefile.in (PLUGIN_VERSION_H): New.
721 (OBJS-common): Remove plugin-version.o.
722 (plugin.o): Depend on (PLUGIN_VERSION_H).
723 (plugin-version.o): Remove.
724 * configure: Regenerate
725 * configure.ac: Create plugin-version.h.
726 * gcc-plugin.h (plugin_gcc_version): Remove.
727 (plugin_default_version_check): Change signature.
728 * plugin-version.c: Remove.
729 * plugin.c: Include plugin-version.h.
730 (str_plugin_gcc_version_name): Remove.
731 (try_init_one_plugin): Pass gcc version to plugin_init.
732 (plugin_default_version_check): Both gcc and plugin versions are now
733 arguments.
734
307e7eab
BS
7352009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
736
737 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
738 problematic last insns. Test for TYPE_CALL rather than CALL_P.
739 Remove special case testing for last insn of inner loops. Don't fail if
740 the loop ends with a jump, emit an extra nop instead.
741
c5d96723
BS
742 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
743 DREGS rather than comparing directly. Remove code that tries to
744 account for latencies.
745
de0b4ad5
RG
7462009-04-29 Richard Guenther <rguenther@suse.de>
747
748 PR tree-optimization/39941
749 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
750 eliminating an indirect call.
751
3a19701a
RG
7522009-04-29 Richard Guenther <rguenther@suse.de>
753
754 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
755 parameter. Allow invariants as base if !require_lvalue.
756 (verify_gimple_assign_single): Adjust.
757
a0a31d1e
BS
7582009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
759
760 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
761 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
762 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
763 ssaddhi3_parts and sssubhi3_parts.
764 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
765 a VEC_SELECT.
766 * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
767 Adjust accordingly.
768
795bd26a
RG
7692009-04-28 Richard Guenther <rguenther@suse.de>
770
771 * tree-vect-loop.c (get_initial_def_for_induction): Use
772 correct types for pointer increment.
773
04be270f
KG
7742009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
775
776 * toplev.c (print_version): Update GMP version string calculation.
777
e1a3b85c
EB
7782009-04-28 Eric Botcazou <ebotcazou@adacore.com>
779
780 PR rtl-optimization/39938
781 * resource.c (init_resource_info): Add call to df_analyze.
782
8224166e
UB
7832009-04-28 Uros Bizjak <ubizjak@gmail.com>
784
785 * config/alpha/alpha.md (usegp): Cast the result of
786 alpha_find_lo_sum_using_gp to enum attr_usegp.
787 * config/alpha/alpha.c (override_options): Remove end-of-structure
788 marker element from cpu_table. Use array size of cpu_table to handle
789 -mcpu and -mtune options.
790 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
791
c5f0fe67
JM
7922009-04-28 Joseph Myers <joseph@codesourcery.com>
793
794 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
795 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
796 tune_32 and tune_64.
797 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
798 support on PowerPC.
799 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
800 * config/rs6000/option-defaults.h: ... here. New file.
801 (OPT_64, OPT_32): Define.
802 (MASK_64BIT): Define to 0 if not already defined.
803 (OPT_ARCH64, OPT_ARCH32): Define.
804 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
805 and tune_64.
806
0c48a567
RR
8072009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
808
809 * config/arm/arm.c (arm_override_options): Emit error on using
810 fpa with AAPCS.
811
f1028b9d
UB
8122009-04-28 Uros Bizjak <ubizjak@gmail.com>
813
814 PR rtl-optimization/39914
815 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
816 registers for allocnos created from user-defined variables only
817 when not optimizing.
818
e0dd989a
RG
8192009-04-28 Richard Guenther <rguenther@suse.de>
820
821 PR middle-end/39937
822 * fold-const.c (fold_binary): Use distribute_real_division only
823 on float types.
824
9a17c91d
SE
8252009-04-28 Steve Ellcey <sje@cup.hp.com>
826
827 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
828 add hpux-stdint.h to tm_file.
829 (hppa[12]*-*-hpux11*): Ditto.
830 (ia64*-*-hpux*): Ditto.
831 * config/hpux-stdint.h: New.
60839f5d 832 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 833 __STDC_EXT__ for all compiles.
60839f5d
EB
834 * config/pa/pa-hpux.h: Ditto.
835 * config/pa/pa-hpux10.h: Ditto.
836 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 837
af04e659
CM
8382009-04-28 Catherine Moore <clm@codesourcery.com>
839
840 * debug.h (set_name): Add comment.
841
04ef80ce
AP
8422009-04-28 Andrew Pinski <pinskia@gmail.com>
843
844 PR target/39929
845 * config/darwin.c (machopic_gen_offset): Check
846 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
847 * config/arm/arm.c (require_pic_register): Likewise.
848
65ad77af
PB
8492009-04-28 Paolo Bonzini <bonzini@gnu.org>
850
8224166e
UB
851 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
852 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
853 m32c_promote_prototypes): Delete.
65ad77af 854
1b15a008
MM
8552009-04-28 Michael Matz <matz@suse.de>
856
857 PR middle-end/39922
858 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
859 constants.
860
7569a6cc
RG
8612009-04-28 Richard Guenther <rguenther@suse.de>
862
f1028b9d 863 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 864
ead204d9
RR
8652009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
866
867 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
868 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
869 * config/arm/arm-tune.md: Regenerate.
870
f2c45f08 8712009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 872
f2c45f08
AM
873 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
874 block if there are complex incoming edges.
875 (sel_merge_blocks): Remove useless assert.
876 (sel_redirect_edge_and_branch): Check that edge was redirected.
877 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
878 (sel_find_rgns): Delete declaration.
879 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
880 the region when it is not a preheader.
881
7a00d767
UB
8822009-04-28 Uros Bizjak <ubizjak@gmail.com>
883
884 PR c/39323
885 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
886
448ee662
RG
8872009-04-28 Richard Guenther <rguenther@suse.de>
888
889 * tree.h (SSA_NAME_VALUE): Remove.
890 (struct tree_ssa_name): Remove value_handle member.
891 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
892 array for jump threading.
893 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
894 SSA_NAME_VALUEs.
895 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
896 * tree-flow.h (threadedge_initialize_values): Declare.
897 (threadedge_finalize_values): Likewise.
898 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
899 (SSA_NAME_VALUE): Define.
900 (threadedge_initialize_values): New function.
901 (threadedge_finalize_values): Likewise.
902 * tree-ssa-dom.c (ssa_name_values): New global variable.
903 (SSA_NAME_VALUE): Define.
f1028b9d 904 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 905
8644a673
IR
9062009-04-28 Ira Rosen <irar@il.ibm.com>
907
908 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
909 Use REPORT_VECTORIZED_LOCATIONS instead
910 REPORT_VECTORIZED_LOOPS.
911 * tree-vectorizer.c (vect_verbosity_level): Make static.
912 (vect_loop_location): Rename to vect_location.
913 (vect_set_verbosity_level): Update comment.
914 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
915 and vect_location.
916 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
917 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
918 instead REPORT_UNVECTORIZED_LOOPS.
919 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
920 vect_loop_def to vect_external_def and vect_internal_def.
921 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 922 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
923 REPORT_UNVECTORIZED_LOCATIONS.
924 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
925 and vect_used_in_loop and to vect_unused_in_scope and
926 vect_used_in_scope.
927 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
928 (vect_verbosity_level): Remove declaration.
929 (vect_analyze_operations): Likewise.
930 (vect_analyze_stmt): Declare.
931 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
932 REPORT_UNVECTORIZED_LOCATIONS.
933 (vect_get_loop_niters): Fix indentation.
934 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
935 (vect_analyze_loop_operations): New function.
936 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
937 vect_analyze_operations.
938 (vect_is_simple_reduction): Use new names.
939 (vectorizable_live_operation, vect_transform_loop): Likewise.
940 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
941 specify whether the data references can be a part of interleaving chain.
942 (vect_analyze_data_ref_dependence): Use new names.
943 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
944 (vect_create_addr_base_for_vector_ref): Remove redundant code.
945 * tree-vect-patterns.c (widened_name_p): Use new names.
946 (vect_recog_dot_prod_pattern): Likewise.
947 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
948 (process_use, vect_mark_stmts_to_be_vectorized,
949 vect_model_simple_cost, vect_model_store_cost,
950 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
951 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
952 vectorizable_operation, vectorizable_type_demotion,
953 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
954 vectorizable_condition): Likewise.
955 (vect_analyze_operations): Split into vect_analyze_loop_operations
956 and ...
957 (vect_analyze_stmt): ... new function.
958 (new_stmt_vec_info): Use new names.
959 (vect_is_simple_use): Use new names and fix comment.
960 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
961 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
962
b91322f2
UB
9632009-04-28 Uros Bizjak <ubizjak@gmail.com>
964
965 PR target/39911
966 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
967 and integer modes for x87 operands. Do not ICE for unsupported size,
968 generate error instead. Generate error for unsupported operand types.
969 ['z']: Do not handle HImode memory operands specially. Warning
970 for floating-point operands. Fallthru to 'Z' for unsupported operand
971 types. Do not ICE for unsupported size, generate error instead.
972 (output_387_binary_op): Use %Z to output operands.
973 (output_fp_compare): Ditto.
974 (output_387_reg_move): Ditto.
975
b2ed71b6
BE
9762009-04-28 Ben Elliston <bje@au.ibm.com>
977
978 PR c++/35652
979 Revert:
980
981 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
982
983 * builtins.c (c_strlen): Do not warn here.
984 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
985 * c-common.c (pointer_int_sum): Take an explicit location.
986 Warn about offsets out of bounds.
987 * c-common.h (pointer_int_sum): Adjust declaration.
988
81f40b79
ILT
9892009-04-27 Ian Lance Taylor <iant@google.com>
990
991 * collect2.c (is_ctor_dtor): Change type of ret field in struct
992 names to symkind.
993 * dce.c (run_fast_df_dce): Change type of old_flags to int.
994 * df-core.c (df_set_flags): Change return type to int. Change
995 type of old_flags to int.
996 (df_clear_flags): Likewise.
997 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
998 (df_get_conditional_uses): Likewise.
999 * df.h (df_set_flags, df_clear_flags): Update declarations.
1000 * dwarf2out.c (struct indirect_string_node): Change type of form
1001 field to enum dwarf_form.
1002 (AT_string_form): Change return type to enum dwarf_form.
1003 * fixed-value.c (fixed_compare): Add cast to enum type.
1004 * fwprop.c (update_df): Change 0 to VOIDmode.
1005 * gensupport.c: Change 0 to UNKNOWN.
1006 * gimple.h (gimple_cond_code): Add cast to enum type.
1007 * haifa-sched.c (reemit_notes): Add cast to enum type.
1008 * hooks.c (hook_int_void_no_regs): Remove function.
1009 * hooks.h (hook_int_void_no_regs): Remove declaration.
1010 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 1011 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
1012 * real.c (real_arithmetic): Add cast to enum type.
1013 (real_compare): Likewise.
1014 * target.h (struct gcc_target): Change return type of
1015 branch_target_register_class to enum reg_class.
1016 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1017 default_branch_target_register_class.
7a00d767 1018 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 1019 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 1020 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
1021 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1022 cast to int.
1023 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1024 ERROR_MARK.
1025 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1026 vect_uninitialized_def. Change 0 to ERROR_MARK.
1027 * tree-vect-stmts.c (supportable_widening_operation): Don't
1028 initialize icode1 and icode2.
7a00d767 1029 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
1030 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1031 and to STD_C89.
1032 (cmn_err_flag_specs): Change 0 to STD_C89.
1033 (cmn_err_char_table): Likewise.
1034 * config/arm/arm.c (get_arm_condition_code): Change type of code
1035 to enum arm_cond_code.
1036 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1037 (IWMMXT_BUILTIN2): Likewise.
1038 (neon_builtin_type_bits): Don't define typedef.
1039 (neon_builtin_datum): Change type of bits field to int.
1040 (arm_expand_neon_args): Add cast to enum type.
1041 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1042 TLS_MODEL_NONE.
1043 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
1044 casts to enum type.
1045 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1046 MIPS_FP_COND_f.
1047 * config/mips/mips.md (jal_macro): Return enum constant.
1048 (single_insn): Likewise.
1049 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1050 CODE_FOR_nothing.
1051 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1052 casts to enum type.
1053 * config/s390/s390.c (s390_tune_flags): Change type to int.
1054 (s390_arch_flags): Likewise.
7a00d767 1055 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
1056 * config/s390/s390.h (s390_tune_flags): Update declaration.
1057 (s390_arch_flags): Likewise.
1058 * config/sh/sh.c (prepare_move_operands): Compare
1059 tls_symbolic_operand result with enum constant.
1060 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1061 (sh_expand_prologue): Add cast to enum type.
1062 (sh_expand_epilogue): Likewise.
1063 (tls_symbolic_operand): Change return type to enum tls_model.
1064 (fpscr_set_from_mem): Add cast to enum type.
1065 (legitimize_pic_address): Compare tls_symbolic_operand result with
1066 enum constant.
1067 (sh_target_reg_class): Change return type to enum reg_class.
1068 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1069 PROCESSOR_xxx.
7a00d767
UB
1070 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1071 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
1072 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1073 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1074 (delayed_branch, tls_call_delay): Likewise.
1075 (eligible_for_sibcall_delay): Likewise.
1076 (eligible_for_return_delay): Likewise.
1077 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1078 (spu_expand_builtin_1): Likewise.
1079
1080 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1081 for all types of conversions.
1082 (output_init_element): Issue -Wc++-compat warning if needed when
1083 initializing a bitfield with enum type.
1084 * c-parser.c (c_parser_expression): Set original_type to
1085 original_type of right hand operand of comman operator.
1086
e4ae5e77
RW
10872009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1088
1089 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1090 grammar nits.
7a00d767 1091 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
1092 * doc/cpp.texi (Standard Predefined Macros)
1093 (Implementation-defined behavior): Likewise.
7a00d767 1094 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
1095 * doc/gimple.texi (GIMPLE Exception Handling)
1096 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 1097 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
1098 * doc/invoke.texi (Warning Options, Optimize Options)
1099 (AVR Options, Darwin Options): Likewise.
1100 (Optimize Options): Reformulate -fwhole-program description.
1101 * doc/loop.texi (Lambda): Likewise.
1102 * doc/md.texi (Output Template, Define Constraints)
1103 (Standard Names, Insn Splitting): Likewise.
1104 * doc/options.texi (Option properties): Likewise.
1105 * doc/passes.texi (Tree-SSA passes): Likewise.
1106 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1107 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1108 (File Names and DBX): Likewise.
1109 * doc/trouble.texi (Incompatibilities): Likewise.
1110
1883802f 11112009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
1112
1113 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1114 instruction is correct.
1115
1883802f 11162009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
1117
1118 Allow non-constant arguments to conversion intrinsics.
1119 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1120 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1121 * spu.c (print_operand): Handle 'v' and 'w'.
1122 (exp2_immediate_p, spu_gen_exp2): Define.
1123 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1124 spu_convtf_1): Update parameter descriptions.
7a00d767 1125 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
1126 * constraints.md ('v', 'w'): New.
1127 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1128 Remove.
1129 (i2f, I2F): New define_mode_attr.
1130 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1131 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1132 fixuns_truncv4sfv4si2): Update to use mode attribute.
1133 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1134 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1135 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1136 patterns for combine.
1137
5f39ad47
SB
11382009-04-27 Steven Bosscher <steven@gcc.gnu.org>
1139
1140 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1141 (cprop, hoist, pre, store_motion): New debug counters.
1142 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1143 is not an RTL pass anymore.
1144 (pass_profiling): Remove extern decl for pass removed in 2005.
1145 (pass_gcse, pass_jump_bypass): Remove.
1146 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1147 to 0 for clean state.
1148 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1149 * cse.c (gate_handle_cse_after_global_opts,
1150 rest_of_handle_cse_after_global_opts): New functions.
1151 (pass_cse_after_global_opts): New pass, does local CSE.
1152 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1153 (TV_CPROP): New timevar.
1154 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1155 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1156 (gcse_main, recompute_all_luids): Remove.
1157 (compute_hash_table_work): Call max_reg_num instead of reading
1158 max_gcse_regno.
1159 (cprop_jump): Don't set run_jump_opt_after_gcse.
1160 (constprop_register): Always allow to alter jumps.
1161 (cprop_insn): Likewise.
1162 (do_local_cprop): Likewise.
1163 (local_cprop_pass): Likewise. Return non-zero if something changed.
1164 (cprop): Remove function, fold interesting bits into one_cprop_pass.
1165 (find_implicit_sets): Add note about missed optimization opportunity.
1166 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1167 pass_rtl_cprop execute function.
1168 Don't bother tracking the pass number, each pass gets its own dumpfile
1169 now anyway.
1170 Always allow to alter jumpsand bypass jumps.
1171 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1172 will just find no suitable set.
1173 (pre_edge_insert): Fix dumping, this function is for PRE only.
1174 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1175 pass_rtl_pre execute function.
1176 (hoist_code): Return non-zero if something changed. Keep track of
1177 substitutions and insertions for statistics gathering similar to PRE.
1178 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1179 called from the pass_rtl_hoist execute function. Show pass statistics.
1180 (compute_store_table): Use max_reg_num directly instead of using the
1181 formerly global max_gcse_regno.
1182 (build_store_vectors): Likewise.
1183 (replace_store_insn): Fix dumping.
1184 (store_motion): Rename to ...
1185 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
1186 pass, called from the pass_rtl_store_motion execute function. Keep
1187 track of substitutions and insertions for statistics gathering similar
1188 to PRE.
1189 (bypass_jumps): Remove, fold interesting bits into ...
1190 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
1191 from the pass_rtl_cprop execute function.
1192 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1193 pass_jump_bypass): Remove.
1194 (gate_handle_gcse, rest_of_handle_gcse): Remove.
1195 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1196 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1197 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1198 (gate_rtl_store_motion, execute_rtl_store_motion,
1199 pass_rtl_store_motion): New.
1200 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1201 make it clear that -fcse-skip-blocks is a no-op for backward compat.
1202 * passes.c (init_optimization_passes): Remove pass_gcse and
1203 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
1204 and cse_after_global_opts in place of pass_gcse. Schedule cprop
1205 instead of pass_jump_bypass.
1206
c685de4a
RG
12072009-04-27 Richard Guenther <rguenther@suse.de>
1208
1209 PR middle-end/39928
1210 * gimplify.c (gimplify_expr): If we are required to create
1211 a temporary make sure it ends up as register.
1212
72d41f29
L
12132009-04-27 H.J. Lu <hongjiu.lu@intel.com>
1214
1215 PR target/39903
1216 * config/i386/i386.c (construct_container): Don't call
1217 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1218 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1219
e97809c6
MM
12202009-04-27 Michael Matz <matz@suse.de>
1221
1222 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1223 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1224 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1225 (dump_replaceable_exprs): Take a bitmap.
1226 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1227 array.
1228 (expand_gimple_basic_block): Likewise.
1229 * tree-ssa-ter.c (struct temp_expr_table_d): Make
1230 replaceable_expressions member a bitmap.
1231 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1232 (mark_replaceable): Likewise.
1233 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1234 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1235
211ca15c
RG
12362009-04-27 Richard Guenther <rguenther@suse.de>
1237
1238 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1239 (verify_stmts): Dispatch to gimple/type verification code.
1240 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1241 issue with call argument types.
1242
fca5f3d1
MM
12432009-04-27 Michael Matz <matz@suse.de>
1244
1245 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1246 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1247 to above.
1248
a1fa3e79 12492009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 1250 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
1251
1252 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1253 a label's basic block.
1254 (mark_target_live_regs): Tidy and rework obsolete comments.
1255 Change back DF problem to LIVE. If a label starts a basic block,
1256 assume that all registers that used to be live then still are.
1257 (init_resource_info): If a label starts a basic block, set its
1258 BLOCK_FOR_INSN accordingly.
1259 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1260
33b223c0
RG
12612009-04-27 Richard Guenther <rguenther@suse.de>
1262
1263 * tree-flow-inline.h (function_ann): Remove.
1264 (get_function_ann): Likewise.
1265 * tree-dfa.c (create_function_ann): Remove.
1266 * tree-flow.h (struct static_var_ann_d): Remove.
1267 (struct function_ann_d): Likewise.
1268 (union tree_ann_d): Remove fdecl member.
1269 (function_ann_t): Remove.
1270 (function_ann, get_function_ann, create_function_ann): Remove
1271 declarations.
1272
e3136fa2
UB
12732009-04-27 Uros Bizjak <ubizjak@gmail.com>
1274
1275 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1276
f87c9042
JH
12772009-04-27 Jan Hubicka <jh@suse.cz>
1278
1279 * ipa-pure-const.c (struct funct_state_d): New fields
1280 state_previously_known, looping_previously_known; remove
1281 state_set_in_source.
1282 (analyze_function): Use new fields.
1283 (propagate): Avoid assumption that state_set_in_source imply
1284 nonlooping.
1285
1286 * tree-ssa-loop-niter.c (finite_loop_p): New function.
1287 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1288 * cfgloop.h (finite_loop_p): Declare.
1289
33abd718
MM
12902009-04-26 Michael Matz <matz@suse.de>
1291
e3136fa2 1292 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 1293
ddc34084
MM
12942009-04-26 Michael Matz <matz@suse.de>
1295
1296 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1297 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1298 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1299 pass_mark_used_blocks): Remove.
1300 * tree-optimize.c (pass_free_datastructures,
1301 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1302 * passes.c (init_optimization_passes): Don't call
1303 pass_mark_used_blocks, remove dead code.
1304
1fec7ed4
L
13052009-04-26 H.J. Lu <hongjiu.lu@intel.com>
1306
1307 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1308 * tree-ssa-live.h (register_ssa_partition): Likewise.
1309
4e3825db
MM
13102009-04-26 Michael Matz <matz@suse.de>
1311
1312 Expand from SSA.
1313 * builtins.c (fold_builtin_next_arg): Handle SSA names.
1314 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1315 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1316 SSA names.
1317 (compare_pairs): Swap cost comparison.
1318 (coalesce_ssa_name): Don't use change_partition_var.
1319 * tree-nrv.c (struct nrv_data): Add modified member.
1320 (finalize_nrv_r): Set it.
1321 (tree_nrv): Use it to update statements.
1322 (pass_nrv): Require PROP_ssa.
1323 * tree-mudflap.c (mf_decl_cache_locals,
1324 mf_build_check_statement_for): Use make_rename_temp.
1325 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1326 * alias.c (find_base_decl): Handle SSA names.
1327 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1328 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1329 * rtl.h (set_reg_attrs_for_parm): Declare.
1330 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1331 to "optimized", remove unused locals at finish.
1332 (execute_free_datastructures): Make global, call
1333 delete_tree_cfg_annotations.
1334 (execute_free_cfg_annotations): Don't call
1335 delete_tree_cfg_annotations.
1336
1337 * ssaexpand.h: New file.
1338 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 1339 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
1340 (expand_expr_real_1): Expand SSA names.
1341 * cfgexpand.c (toplevel): Include ssaexpand.h.
1342 (SA): New global variable.
1343 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1344 (SSAVAR): New macro.
1345 (set_rtl): New helper function.
1346 (add_stack_var): Deal with SSA names, use set_rtl.
1347 (expand_one_stack_var_at): Likewise.
1348 (expand_one_stack_var): Deal with SSA names.
1349 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1350 before unique numbers.
1351 (expand_stack_vars): Use set_rtl.
1352 (expand_one_var): Accept SSA names, add asserts for them, feed them
1353 to above subroutines.
1354 (expand_used_vars): Expand all partitions (without default defs),
1355 then only the local decls (ignoring those expanded already).
1356 (expand_gimple_cond): Remove edges when jumpif() expands an
1357 unconditional jump.
1358 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1359 or remove abnormal edges. Ignore insns setting the LHS of a TERed
1360 SSA name.
1361 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1362 members of SA; deal with PARM_DECL partitions here; expand
1363 all PHI nodes, free tree datastructures and SA. Commit instructions
1364 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1365 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1366 info and statements at start, collect garbage at finish.
1367 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1368 (VAR_ANN_PARTITION) Remove.
1369 (change_partition_var): Don't declare.
1370 (partition_to_var): Always return SSA names.
1371 (var_to_partition): Only accept SSA names.
1372 (register_ssa_partition): Only check argument.
1373 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1374 member.
1375 (delete_var_map): Don't free it.
1376 (var_union): Only accept SSA names, simplify.
1377 (partition_view_init): Mark only useful SSA names as used.
1378 (partition_view_fini): Only deal with SSA names.
1379 (change_partition_var): Remove.
1380 (dump_var_map): Use ssa_name instead of partition_to_var member.
1381 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1382 basic blocks.
1383 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1384 (struct _elim_graph): New member const_dests; nodes member vector of
1385 ints.
1386 (set_location_for_edge): New static helper.
1387 (create_temp): Remove.
1388 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 1389 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
1390 (new_elim_graph): Allocate const_dests member.
1391 (clean_elim_graph): Truncate const_dests member.
1392 (delete_elim_graph): Free const_dests member.
1393 (elim_graph_size): Adapt to new type of nodes member.
1394 (elim_graph_add_node): Likewise.
1395 (eliminate_name): Likewise.
1396 (eliminate_build): Don't take basic block argument, deal only with
1397 partition numbers, not variables.
1398 (get_temp_reg): New static helper.
1399 (elim_create): Use it, deal with RTL temporaries instead of trees.
1400 (eliminate_phi): Adjust all calls to new signature.
1401 (assign_vars, replace_use_variable, replace_def_variable): Remove.
1402 (rewrite_trees): Only do checking.
1403 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1404 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1405 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1406 contains_tree_r, MAX_STMTS_IN_LATCH,
1407 process_single_block_loop_latch, analyze_edges_for_bb,
1408 perform_edge_inserts): Remove.
1409 (expand_phi_nodes): New global function.
1410 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
1411 functions, initialize new parameter, remember partitions having a
1412 default def.
1413 (finish_out_of_ssa): New global function.
1414 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
1415 don't reset in_ssa_p here, don't disable TER when mudflap.
1416 (pass_del_ssa): Remove.
1417 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1418 partition members.
1419 (execute_free_datastructures): Declare.
1420 * Makefile.in (SSAEXPAND_H): New variable.
1421 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1422 * basic-block.h (commit_one_edge_insertion): Declare.
1423 * passes.c (init_optimization_passes): Move pass_nrv and
1424 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1425 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1426 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1427 (redirect_branch_edge): Deal with super block when expanding, split
1428 out jump patching itself into ...
1429 (patch_jump_insn): ... here, new static helper.
1430
17c665a9
MM
14312009-04-26 Michael Matz <matz@suse.de>
1432
1433 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1434 beyond num_ssa_names.
1435 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1436 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1437
92061771
JJ
14382009-04-26 Jakub Jelinek <jakub@redhat.com>
1439
ce372372
JJ
1440 PR inline-asm/39543
1441 * fwprop.c (forward_propagate_asm): New function.
1442 (forward_propagate_and_simplify): Propagate also into __asm, if it
1443 doesn't increase the number of referenced registers.
1444
92061771
JJ
1445 PR c/39889
1446 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1447
14482009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
1449
1450 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1451 note_nonlocal_vla_type for nonlocal VLAs.
1452 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1453 contains_remapped_vars, remap_vla_decls): New functions.
1454 (convert_nonlocal_reference_stmt): If not optimizing, call
1455 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1456 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1457 if it wasn't found in var_map.
1458 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
1459 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1460 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1461 declare_vars.
1462 * gimplify.c (nonlocal_vlas): New variable.
1463 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1464 referenced VLAs.
1465 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 1466
4561e242
JJ
1467 * dwarf2out.c (loc_descr_plus_const): New function.
1468 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1469 mem_loc_descriptor, loc_descriptor_from_tree_1,
1470 descr_info_loc, gen_variable_die): Use it.
1471
a9548ddf
JJ
1472 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1473 !TREE_STATIC VAR_DECLs.
1474 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1475 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1476 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
1477 DECL_BY_REFERENCE is valid.
1478 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1479 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1480 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1481 Copy DECL_BY_REFERENCE.
1482 (struct nesting_copy_body_data): New type.
1483 (nesting_copy_decl): New function.
1484 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1485 if they have variable length.
1486
10555d08
MM
14872009-04-26 Michael Matz <matz@suse.de>
1488
1489 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1490 mark new temporaries for renaming.
1491
e11187cc
JM
14922009-04-26 Joseph Myers <joseph@codesourcery.com>
1493
1494 PR c/39581
1495 * c-decl.c (global_bindings_p): Return negative value.
1496 (c_variable_size): New. Based on variable_size from
1497 stor-layout.c.
1498 (grokdeclarator): Call c_variable_size not variable_size.
1499
f6a51d31
UB
15002009-04-26 Uros Bizjak <ubizjak@gmail.com>
1501
1502 * config/i386/i386.c (print_operand) ['z']: Fix typo.
1503
4b97723d
KT
15042009-04-26 Kai Tietz <kai.tietz@onevision.com>
1505
1506 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1507 Redefine it to just use mingw/include.
1508 (ASM_SPEC): Rules for -m32 and -m64.
1509 (LINK_SPEC): Use Likewise.
1510 (SPEC_32): New define.
1511 (SPEC_64): Likewise.
1512 (SUB_LINK_SPEC): Likewise.
1513 (MULTILIB_DEFAULTS): New define.
1514 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1515 Add multilib options.
1516 (MULTILIB_DIRNAMES): Likewise.
1517 (MULTILIB_OSDIRNAMES): Likewise.
1518 (LIBGCC): Likewise.
1519 (INSTALL_LIBGCC): Likewise.
1520
991d6621
JM
15212009-04-26 Joseph Myers <joseph@codesourcery.com>
1522
1523 PR c/39556
1524 * c-tree.h (enum c_inline_static_type): New.
1525 (record_inline_static): Declare.
1526 * c-decl.c (struct c_inline_static, c_inline_statics,
1527 record_inline_static, check_inline_statics): New.
1528 (pop_file_scope): Call check_inline_statics.
1529 (start_decl): Call record_inline_static instead of pedwarning
1530 directly for static in inline function.
1531 * c-typeck.c (build_external_ref): Call record_inline_static
1532 instead of pedwarning directly for static referenced in inline
1533 function.
1534
4a81774c
SB
15352009-04-26 Steven Bosscher <steven@gcc.gnu.org>
1536
1537 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1538 not new but only being rescanned.
1539 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1540 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1541 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1542 record_set_info, compute_set, grealloc): Remove.
1543 (recompute_all_luids): New function.
1544 (gcse_main): Don't compute sets, and don't do related memory
1545 allocations/free-ing. If something changed before the end of the
1546 pass, update LUIDs using recompute_all_luids.
1547 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
1548 (free_gcse_mem): Don't free it either.
1549 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1550 Use the df insn LUIDs.
1551 (load_killed_in_block): Likewise.
1552 (compute_hash_table_work): Don't compute reg_set_in_block.
1553 (compute_transp): Use DF_REG_DEF_CHAINs.
1554 (local_cprop_pass): Don't use compute_sets and related functions.
1555 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1556 Use get_max_uid() instead of max_cuid.
1557 (insert_insn_end_basic_block, pre_insert_copy_insn,
1558 update_ld_motion_stores): Don't try to
1559 keep reg_set tables up to date.
1560 (pre_insert_copies): Use df insn LUIDs.
1561 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1562 (reg_set_info): Don't use extra bitmap argument.
1563 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
1564 information to compute regs_set_in_block.
1565 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1566 (bypass_jumps): Don't use compute_sets and friends.
1567
e8f99a9d
RW
15682009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1569
1570 PR testsuite/39710
1571 * opts.c (undocumented_msg): Do not leave blank even with
1572 ENABLE_CHECKING.
1573
6895bac8
JM
15742009-04-25 Joseph Myers <joseph@codesourcery.com>
1575
1576 * c-decl.c (build_enumerator): Allow values folding to integer
1577 constants but not integer constant expressions with a pedwarn if
1578 pedantic.
1579
24070fcb
JM
15802009-04-25 Joseph Myers <joseph@codesourcery.com>
1581
1582 PR c/39582
1583 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1584 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1585 type is an integer constant.
1586
d6d89aa1
UB
15872009-04-25 Uros Bizjak <ubizjak@gmail.com>
1588
1589 PR target/39897
1590 * config/i386/i386.c (print_operand) ['z']: Revert handling of
1591 HImode operands.
1592
92f6fd0b
JM
15932009-04-25 Joseph Myers <joseph@codesourcery.com>
1594
1595 PR c/39564
1596 * c-decl.c (grokdeclarator): Diagnose declarations of functions
1597 with variably modified return type and no storage class
1598 specifiers, except for the case of nested functions. Distinguish
1599 extern declarations of functions with variably modified return
1600 types from those of objects with variably modified types.
1601
a3710436
JH
16022009-04-25 Jan Hubicka <jh@suse.cz>
1603
1604 * tree.c (list_equal_p): New function.
1605 * tree.h (list_equal_p): Declare.
1606 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1607 basic_block_def, basic_block, const_basic_block): New.
1608 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1609 (redirect_eh_edge): New function.
1610 (make_eh_edge_update_phi): EH edges are not abnormal.
1611 * except.c: Include tree-flow.h.
1612 (list_match): New function.
1613 (eh_region_replaceable_by_p): New function.
1614 (replace_region): New function.
1615 (hash_type_list): New function.
1616 (hash_eh_region): New function.
1617 (eh_regions_equal_p): New function.
1618 (merge_peers): New function.
1619 (remove_unreachable_regions): Verify EH tree when checking;
1620 merge peers.
1621 (copy_eh_region_1): New function.
1622 (copy_eh_region): New function.
1623 (push_reachable_handler): New function.
1624 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1625 regions without label but with live RESX.
1626 * except.h (redirect_eh_edge_to_label): New.
1627 * tree-flow.h (redirect_eh_edge): New.
1628 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1629 basic_block_def, basic_block, const_basic_block): Remove.
1630 * Makefile.in (except.o): Add dependency on tree-flow.h
1631 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1632 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1633 Remove.
1634
3764d512
EB
16352009-04-25 Eric Botcazou <ebotcazou@adacore.com>
1636
1637 PR bootstrap/39645
1638 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1639 on the destination of memcpy.
1640
1c62e8f2
PB
16412009-04-25 Paolo Bonzini <bonzini@gnu.org>
1642
1643 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1644 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1645 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1646
496a4ef5
JH
16472009-04-25 Jan Hubicka <jh@suse.cz>
1648
1649 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1650 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1651 to be reached by different label than left.
1652 (update_eh_edges): Update comment; remove edge_to_remove if possible
1653 and return true if suceeded.
1654 (cleanup_empty_eh): Accept sharing map; handle shared regions.
1655 (cleanup_eh): Compute sharing map.
1656 * except.c (remove_eh_handler_and_replace): Add argument if we should
1657 update regions.
1658 (remove_unreachable_regions): Update for label sharing.
1659 (label_to_region_map): Likewise.
1660 (get_next_region_sharing_label): New function.
1661 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1662 prev_try pointers.
1663 (remove_eh_handler): Update.
1664 (remove_eh_region_and_replace_by_outer_of): New function.
1665 * except.h (struct eh_region): Add next_region_sharing_label.
1666 (remove_eh_region_and_replace_by_outer_of,
1667 get_next_region_sharing_label): Declare.
1668 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1669
16702009-04-25 Jan Hubicka <jh@suse.cz>
1671
1672 * tree-cfg.c (split_critical_edges): Split also edges where we can't
1673 insert code even if they are not critical.
1674
16752009-04-25 Jan Hubicka <jh@suse.cz>
1676
1677 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1678 (gimple_can_remove_branch_p): EH edges won't remove branch by
1679 redirection.
1680 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1681 updating of non-abnormal EH edges.
1682 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1683 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1684 (split_critical_edges): Split also edges where emitting code on them
1685 will lead to splitting later.
1686
a3a5e3d1
UB
16872009-04-25 Uros Bizjak <ubizjak@gmail.com>
1688 H.J. Lu <hongjiu.lu@intel.com>
1689
1690 PR target/39590
1691 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1692 the configured assembler supports fildq and fistpq mnemonics.
1693 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1694 * configure: Regenerated.
1695 * config.in: Ditto.
1696
1697 * config/i386/i386.c (print_operand): Handle 'Z'.
1698 ['z']: Remove handling of special fild/fist suffixes.
1699 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1700 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1701 suffix of fild insn.
1702 (*floatsi<mode>2_vector_mixed): Ditto.
1703 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1704 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1705 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1706 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1707 * config/i386/gas.h (GAS_MNEMONICS): Remove.
1708
23750d7f
BE
17092009-04-25 Ben Elliston <bje@au.ibm.com>
1710
1711 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1712 the source of a set operation.
1713
e6ff3083
AS
17142009-04-25 Anatoly Sokolov <aesok@post.ru>
1715
1716 * target.h (struct gcc_target): Add case_values_threshold field.
1717 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1718 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1719 * targhooks.c (default_case_values_threshold): New function.
1720 * targhooks.h (default_case_values_threshold): Declare function.
1721 * stmt.c (expand_case): Use case_values_threshold target hook.
1722 * expr.h (case_values_threshold): Remove declartation.
1723 * expr.c (case_values_threshold): Remove function.
1724 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1725
1726 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1727 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1728 (avr_case_values_threshold): Declare as static.
1729 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1730
1731 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1732 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1733 (mn10300_case_values_threshold): New function.
1734
569c72fc
L
17352009-04-24 H.J. Lu <hongjiu.lu@intel.com>
1736
1737 * ira.c (setup_cover_and_important_classes): Add enum cast.
1738
ff3cb468
VM
17392009-04-24 Vladimir Makarov <vmakarov@redhat.com>
1740
1741 * genpreds.c (write_enum_constraint_num): Output definition of
1742 CONSTRAINT_NUM_DEFINED_P macro.
1743 * ira.c (setup_cover_and_important_classes): Use
1744 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1745
4f7be849
DD
17462009-04-24 DJ Delorie <dj@redhat.com>
1747
1748 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1749 __SH2A_SINGLE_ONLY__ also.
1750
735b94a7
SE
17512009-04-24 Steve Ellcey <sje@cup.hp.com>
1752
1753 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1754 (movdf_internal): Ditto.
1755 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1756 SFmode and DFmode constants.
1757 (ia64_print_operand): Add 'G' format for printing
1758 floating point constants.
1759
77a30264
RG
17602009-04-24 Richard Guenther <rguenther@suse.de>
1761
1762 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1763 from unsigned additions.
1764
2b6da65c
JM
17652009-04-24 Joseph Myers <joseph@codesourcery.com>
1766
1767 * c-typeck.c (set_init_index): Allow array designators that are
1768 not integer constant expressions with a pedwarn if pedantic.
1769
f5a17c43
BS
17702009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1771
1772 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1773 zero if no overlap in nonzero bits between the operands.
1774
32e8bb8e
ILT
17752009-04-24 Ian Lance Taylor <iant@google.com>
1776
1777 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1778 (record_dead_and_set_regs): Likewise.
1779 * df.h (struct df_mw_hardreg): Change flags field to int.
1780 (struct df_base_ref): Likewise.
1781 (struct df): Change changeable_flags field to int.
1782 * df-scan.c (df_defs_record): Change clobber_flags to int.
1783 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1784 constants rather than #define macros.
1785 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1786 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1787 (enum dwarf_calling_convention): Likewise.
1788 (enum dwarf_line_number_x_ops): Likewise.
1789 (enum dwarf_call_frame_info): Likewise.
1790 (enum dwarf_source_language): Likewise.
1791 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1792 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
1793 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1794 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
1795 * genrecog.c (maybe_both_true_2): Change c to int.
1796 (write_switch): Likewise. Add cast to enum type.
1797 * gimplify.c (gimplify_omp_for): Handle return values from
1798 gimplify_expr using MIN rather than bitwise or.
1799 (gimplify_expr): Add cast to enum type.
1800 * ipa-prop.c (update_jump_functions_after_inlining): Change
1801 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
1802 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1803 Add casts to enum type.
32e8bb8e
ILT
1804 (setup_cover_and_important_classes): Change cl to int. Add casts
1805 to enum type.
1806 (setup_class_translate): Change cl and mode to int.
1807 (ira_init_once): Change mode to int.
1808 (free_register_move_costs): Likewise.
1809 (setup_prohibited_mode_move_regs): Add casts to enum type.
1810 * langhooks.c (add_builtin_function_common): Rework assertion that
1811 value fits bitfield.
1812 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1813 * omega.c (omega_do_elimination): Avoid math on enum types.
1814 * optabs.c (expand_vec_shift_expr): Remove casts to int.
1815 * opts.c (set_debug_level): Change 2 to enum constant. Use new
1816 int local to handle integral_argment value.
1817 * regmove.c (try_auto_increment): Change PUT_MODE to
1818 PUT_REG_NOTE_KIND.
1819 * reload.c (push_secondary_reload): Add casts to enum type.
1820 (secondary_reload_class, find_valid_class): Likewise.
1821 * reload1.c (emit_input_reload_insns): Likewise.
1822 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1823 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1824 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1825 constant.
1826 * tree.c (build_common_builtin_nodes): Add casts to enum type.
1827 * tree-complex.c (complex_lattice_t): Typedef to int rather than
1828 enum type.
1829 (expand_complex_libcall): Add casts to enum type.
1830 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1831 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1832 with ERROR_MARK, not NUM_TREE_CODES.
1833 (vect_create_epilog_for_reduction): Likewise.
1834 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 1835 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
1836 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1837 enum machine_mode.
1838 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1839 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 1840 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
1841 * var-tracking.c (get_init_value): Change return type to enum
1842 var_init_status.
1843 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1844 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1845 arm_fp_model.
1846 (arm_override_options): Add casts to enum type.
1847 (arm_emit_tls_decoration): Likewise.
1848 * config/i386/i386.c (ix86_function_specific_restore): Add casts
1849 to enum type.
1850 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1851 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1852 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1853 enum type.
1854 * config/s390/s390.c (code_for_builtin_64): Change to array of
1855 enum insn_code.
1856 (code_for_builtin_31): Likewise.
1857 (s390_expand_builtin): Change code_for_builtin to enum insn_code
1858 const *.
1859 * config/sparc/sparc.c (sparc_override_options): Change value
1860 field in struct code_model to enum cmodel. In initializer change
1861 0 to NULL and add cast to enum type.
1862
1863 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1864 Change all callers. Issue a -Wc++-compat warning using
1865 lhs_origtype if necessary.
1866 (convert_for_assignment): Issue -Wc++-compat warnings about
1867 invalid conversions to enum type on assignment.
1868 * c-common.h (build_modify_expr): Update declaration.
1869
ac4fc08a
NC
18702009-04-24 Nick Clifton <nickc@redhat.com>
1871
1872 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1873 (function_arg_advance): Likewise.
1874 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1875 5th alternative.
1876
f22e891a
AK
18772009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
1878
1879 * config/s390/constraints.md ('I', 'J'): Fix condition.
1880
ad58aabe
DN
18812009-04-24 Diego Novillo <dnovillo@google.com>
1882
1883 * gengtype-parse.c (parse_error): Add newline after message.
1884
879a4a01
L
18852009-04-24 H.J. Lu <hongjiu.lu@intel.com>
1886
1887 * config/i386/sse.md (avxmodesuffixs): Removed.
1888 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1889 (*avx_pinsr<ssevecsize>): This.
1890
f63426af
BS
18912009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1892
1893 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1894 follow chains of regs with a single definition, and allow expressions
1895 that are function_invariant_p.
ce72fe6c 1896 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 1897
30349c74
PB
18982009-04-24 Paolo Bonzini <bonzini@gnu.org>
1899
1900 PR middle-end/39867
1901 * fold-const.c (fold_cond_expr_with_comparison): When folding
1902 > and >= to MAX, make sure the MAX uses the same type as the
1903 comparison's operands.
1904
8d8256c1
NC
19052009-04-24 Nick Clifton <nickc@redhat.com>
1906
1907 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1908 addressing for DImode accesses.
1909 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 1910 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 1911
6216f94e
JJ
19122009-04-24 Jakub Jelinek <jakub@redhat.com>
1913
1914 PR rtl-optimization/39794
1915 * alias.c (canon_true_dependence): Add x_addr argument.
1916 * rtl.h (canon_true_dependence): Adjust prototype.
1917 * cse.c (check_dependence): Adjust canon_true_dependence callers.
1918 * cselib.c (cselib_invalidate_mem): Likewise.
1919 * gcse.c (compute_transp): Likewise.
1920 * dse.c (scan_reads_nospill): Likewise.
1921 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
1922 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1923 canon_base_addr of the group, plus optional offset.
1924 (struct group_info): Rename canon_base_mem to
1925 canon_base_addr.
1926 (get_group_info): Set canon_base_addr to canon_rtx of base, not
1927 canon_rtx of base_mem.
1928
6de7a512
PB
19292009-04-23 Paolo Bonzini <bonzini@gnu.org>
1930
1931 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1932 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1933
4a3a2376
UW
19342009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1935
1936 * config/spu/spu-builtins.h: Delete file.
1937
1938 * config/spu/spu.h (enum spu_builtin_type): Move here from
1939 spu-builtins.h.
1940 (struct spu_builtin_description): Likewise. Add GTY marker.
1941 Do not use enum spu_function_code or enum insn_code.
1942 (spu_builtins): Add extern declaration.
1943
1944 * config/spu/spu.c: Do not include "spu-builtins.h".
1945 (enum spu_function_code, enum spu_builtin_type_index,
1946 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1947 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1948 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1949 unsigned_V2DI_type_node): Move here from spu-builtins.h.
1950 (spu_builtin_types): Make static. Add GTY marker.
1951 (spu_builtins): Add extern declaration with GTY marker.
1952 Include "gt-spu.h".
1953
1954 * config/spu/spu-c.c: Do not include "spu-builtins.h".
1955 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1956 Check programmatically whether all parameters are scalar.
1957
1958 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1959
bbaba73f
EB
19602009-04-23 Eric Botcazou <ebotcazou@adacore.com>
1961
1962 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1963 assignment from the constructor either if the target is volatile.
1964
ee93c1c6
DJ
19652009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
1966
1967 * config/arm/arm.md (insv): Do not share operands[0].
1968
b2f21330
NS
19692009-04-23 Nathan Sidwell <nathan@codesourcery.com>
1970
1971 * config/vxlib-tls.c (active_tls_threads): Delete.
1972 (delete_hook_installed): New.
1973 (tls_delete_hook): Don't delete the delete hook.
1974 (tls_destructor): Delete it here.
1975 (__gthread_set_specific): Adjust installing the delete hook.
1976 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1977 __gthread_leave_tsd_dtor_context.
1978
4782dfa7
RAE
19792009-04-23 Rafael Avila de Espindola <espindola@google.com>
1980
1981 * c-format.c (gcc_tdiag_char_table): Add support for %E.
1982
bf758008
UB
19832009-04-23 Uros Bizjak <ubizjak@gmail.com>
1984
1985 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1986 enum type.
1987 (alpha_rtx_costs): Ditto.
1988 (emit_unlikely_jump): Use add_reg_note.
1989 (emit_frame_store_1): Ditto.
1990 (alpha_expand_prologue): Ditto.
1991 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1992 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1993
7323a100
NC
19942009-04-23 Nick Clifton <nickc@redhat.com>
1995
1996 * config/v850/v850.md (epilogue): Remove suppressed code.
1997 (return): Rename to return_simple and remove test of frame size.
1998 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1999 to gen_return_simple.
2000
360032ba
JY
20012009-04-22 Jing Yu <jingyu@google.com>
2002
2003 PR testsuite/39781
2004 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2005
53650abe
AP
20062009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
2007
2008 PR C/31499
2009 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2010 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
2011 value is a VECTOR_CST, the element type is the element type of the
2012 vector.
2013
89043e8a
DD
20142009-04-22 DJ Delorie <dj@redhat.com>
2015
2016 * config/m32c/m32c.h: Update GTY annotations to new syntax.
2017
023f059b
JJ
20182009-04-22 Jakub Jelinek <jakub@redhat.com>
2019
2020 * alias.c (find_base_term): Move around LO_SUM case, so that
2021 CONST falls through into PLUS/MINUS handling.
2022
2c0eba5a
JJ
2023 PR c/39855
2024 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2025 into 0, use omit_one_operand.
2026
9a461028
BE
20272009-04-23 Ben Elliston <bje@au.ibm.com>
2028
2029 * config/rs6000/linux-unwind.h (get_regs): Remove type
2030 puns. Change the type of `pc' to an array of unsigned ints and
2031 update all users. Constify frame24.
2032
653e2568
DD
20332009-04-22 DJ Delorie <dj@redhat.com>
2034
2035 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2036 declarations before code.
2037 (current_function_special_page_vector): Likewise.
2038 (m32c_expand_insv): Silence a warning.
2039
60839f5d 20402009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
2041
2042 * alias.c: Update GTY annotations to new syntax.
2043 * basic-block.h: Likewise.
2044 * bitmap.h: Likewise.
2045 * c-common.h: Likewise.
2046 * c-decl.c: Likewise.
2047 * c-parser.c: Likewise.
2048 * c-pragma.c: Likewise.
2049 * c-tree.h: Likewise.
2050 * cfgloop.h: Likewise.
2051 * cgraph.h: Likewise.
2052 * config/alpha/alpha.c: Likewise.
2053 * config/arm/arm.h: Likewise.
2054 * config/avr/avr.h: Likewise.
2055 * config/bfin/bfin.c: Likewise.
2056 * config/cris/cris.c: Likewise.
2057 * config/darwin.c: Likewise.
2058 * config/frv/frv.c: Likewise.
2059 * config/i386/i386.c: Likewise.
2060 * config/i386/i386.h: Likewise.
2061 * config/i386/winnt.c: Likewise.
2062 * config/ia64/ia64.h: Likewise.
2063 * config/iq2000/iq2000.c: Likewise.
2064 * config/mips/mips.c: Likewise.
2065 * config/mmix/mmix.h: Likewise.
2066 * config/pa/pa.c: Likewise.
2067 * config/pa/pa.h: Likewise.
2068 * config/rs6000/rs6000.c: Likewise.
2069 * config/s390/s390.c: Likewise.
2070 * config/sparc/sparc.c: Likewise.
2071 * config/xtensa/xtensa.c: Likewise.
2072 * cselib.h: Likewise.
2073 * dbxout.c: Likewise.
2074 * dwarf2out.c: Likewise.
2075 * except.c: Likewise.
2076 * except.h: Likewise.
2077 * fixed-value.h: Likewise.
2078 * function.c: Likewise.
2079 * function.h: Likewise.
2080 * gimple.h: Likewise.
2081 * integrate.c: Likewise.
2082 * optabs.c: Likewise.
2083 * output.h: Likewise.
2084 * real.h: Likewise.
2085 * rtl.h: Likewise.
2086 * stringpool.c: Likewise.
2087 * tree-data-ref.c: Likewise.
2088 * tree-flow.h: Likewise.
2089 * tree-scalar-evolution.c: Likewise.
2090 * tree-ssa-address.c: Likewise.
2091 * tree-ssa-alias.h: Likewise.
2092 * tree-ssa-operands.h: Likewise.
2093 * tree.c: Likewise.
2094 * tree.h: Likewise.
2095 * varasm.c: Likewise.
2096 * varray.h: Likewise.
2097 * vec.h: Likewise.
bf758008 2098 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
2099 * doc/gty.texi: Update GTY documentation to new syntax.
2100 * gengtype-lex.l: Enforce attribute-like syntax for GTY
2101 annotations on structs.
2102 * gengtype-parse.c: Likewise.
2103
a123d175
MH
21042009-04-22 Mark Heffernan <meheff@google.com>
2105
bf758008 2106 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 2107
4c7c486a
KH
21082009-04-22 Kazu Hirata <kazu@codesourcery.com>
2109
2110 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2111 where appropriate.
2112
6e782a29
KH
21132009-04-22 Kazu Hirata <kazu@codesourcery.com>
2114
2115 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2116 the same as a PLUS without a shift. Increase the cost of a
2117 CONST_INT in MULT.
2118
38d2336a
MLI
21192009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2120
2121 * Makefile.in: Update dependencies.
bf758008 2122 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
2123 * errors.h: Remove bogus comment about compatibility.
2124 (warning): Update declaration.
2125 * genautomata.c: Update all calls to warning.
2126 * gimple.c: Do not include errors.h. Include toplev.h.
2127 * tree-ssa-structalias.c: Do not include errors.h.
2128 * omega.c: Likewise.
2129 * tree-ssa-reassoc.c: Likewise.
2130 * config/spu/spu-c.c: Likewise.
2131 * config/spu/t-spu-elf: Update dependencies.
2132
aea4deba
RG
21332009-04-22 Richard Guenther <rguenther@suse.de>
2134
2135 PR tree-optimization/39824
2136 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2137 make sure the types are compatible.
2138
cfc93532
MLI
21392009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2140
2141 PR c++/14875
2142 * c-common.c (c_parse_error): Take a token_flags parameter.
2143 Use token_type for the token type instead.
2144 Pass token_flags to cpp_type2name.
2145 * c-common.h (c_parse_error): Update declaration.
2146 * c-parser.c (c_parser_error): Pass 0 as token flags.
2147
8632d02a
AB
21482009-04-22 Andrey Belevantsev <abel@ispras.ru>
2149
2150 PR rtl-optimization/39580
2151 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
2152
4c33221c
UW
21532009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2154
2155 * function.c (expand_function_end): Do not emit a jump to the "naked"
2156 return label for fall-through returns.
2157 * except.c (sjlj_emit_function_exit): Always place the call to the
2158 unregister function at the location installed by expand_function_end.
2159
9925bce0
RG
21602009-04-22 Richard Guenther <rguenther@suse.de>
2161
2162 PR tree-optimization/39845
2163 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2164 (gen_inbound_check): Likewise.
2165
24a40b35
NS
21662009-04-22 Nathan Sidwell <nathan@codesourcery.com>
2167
2168 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2169 padding for PPC.
2170 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2171 * config/vxlib.c (__gthread_once): Add race guard for PPC.
2172
6c34a092
PB
21732009-04-22 Paolo Bonzini <bonzini@gnu.org>
2174
2175 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2176 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2177 shift counts to avoid out-of-bounds array accesses.
2178
baa48dfa
PB
21792009-04-22 Paolo Bonzini <bonzini@gnu.org>
2180
2181 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2182 (Pmode): Move above.
2183
7d83f4f5
UB
21842009-04-22 Uros Bizjak <ubizjak@gmail.com>
2185
2186 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2187 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2188 GET_CODE macro. Use IN_RANGE macro where appropriate.
2189 * config/alpha/alpha.h: Ditto.
2190 * config/alpha/alpha.md: Ditto.
2191 * config/alpha/constraints.md: Ditto.
2192 * config/alpha/predicates.md: Ditto.
2193
3ad606bc
PB
21942009-04-22 Paolo Bonzini <bonzini@gnu.org>
2195
2196 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2197 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2198 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2199 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2200 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2201 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2202 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2203 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2204 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2205 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2206 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2207 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2208 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2209 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2210 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2211 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2212 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2213 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2214 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2215 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2216 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2217 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2218 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2219 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2220 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2221 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2222 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2223
3cabd6d1
LB
22242009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2225
2226 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2227 references from comments.
2228 * cfgbuild.c: (count_basic_blocks): Delete.
2229 (find_basic_blocks_1): Delete.
2230 (find_basic_blocks): Delete.
2231 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 2232 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
2233 * except.h (finish_eh_generation): Delete.
2234 * basic-block.h (find_basic_blocks): Delete.
2235 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2236
270d1bcd
DK
22372009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
2238
2239 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
2240 (sdbout_parms): Likewise.
2241
b757d36f
KK
22422009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
2243
2244 * config/sh/sh.c (prepare_cbranch_operands): Use
2245 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2246 (expand_cbranchdi4): Likewise.
2247 (from_compare): Add cast to enum type.
2248 (expand_cbranchsi4): Use add_reg_note.
2249 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2250 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2251 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2252 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2253 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2254 instead of CODE_FOR_nothing.
2255 (cbranchdi4): Likewise. Fix the order of arguments for
2256 gen_rtx_fmt_ee.
2257 (push_fpscr): Use add_reg_note.
2258 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2259 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2260
ad41bd84
JM
22612009-04-21 Joseph Myers <joseph@codesourcery.com>
2262
2263 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2264 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2265 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2266 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2267 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2268 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2269 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2270 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2271 config/alpha/x-vms, config/arc/t-arc,
2272 config/arm/README-interworking, config/arm/arm-c.c,
2273 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2274 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2275 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2276 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2277 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2278 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2279 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2280 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2281 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2282 config/cris/t-elfmulti, config/crx/t-crx,
2283 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2284 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2285 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2286 config/h8300/t-h8300, config/i386/athlon.md,
2287 config/i386/darwin-libgcc.10.4.ver,
2288 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2289 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2290 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2291 config/i386/t-linux64, config/i386/t-nwld,
2292 config/i386/t-rtems-i386, config/i386/t-sol2-10,
2293 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2294 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2295 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2296 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2297 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2298 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2299 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2300 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2301 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2302 config/m68k/t-uclinux, config/mcore/t-mcore,
2303 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2304 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2305 config/mips/crtn.asm, config/mips/irix-crti.asm,
2306 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2307 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2308 config/mips/mips-fixed.md, config/mips/sb1.md,
2309 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2310 config/mips/t-iris6, config/mips/t-isa3264,
2311 config/mips/t-libgcc-mips16, config/mips/t-linux64,
2312 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2313 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2314 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2315 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2316 config/mn10300/t-linux, config/mn10300/t-mn10300,
2317 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2318 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2319 config/picochip/libgccExtras/clzsi2.asm,
2320 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2321 config/rs6000/darwin-libgcc.10.4.ver,
2322 config/rs6000/darwin-libgcc.10.5.ver,
2323 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2324 config/rs6000/t-aix43, config/rs6000/t-aix52,
2325 config/rs6000/t-darwin, config/rs6000/t-fprules,
2326 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2327 config/rs6000/t-lynx, config/rs6000/t-netbsd,
2328 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2329 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2330 config/rs6000/t-rtems, config/rs6000/t-spe,
2331 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2332 config/score/t-score-elf, config/sh/divcost-analysis,
2333 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2334 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2335 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2336 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2337 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2338 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2339 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2340 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2341 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2342 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2343 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2344 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2345 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2346 limitx.h, version.c, xcoff.h: Add copyright and license notices.
2347 * config/h8300/genmova.sh: Include copyright and license notices
2348 in generated output.
2349 * config/h8300/mova.md: Regenerate.
2350 * doc/install.texi2html: Include word "Copyright" in copyright
2351 notice and use name "Free Software Foundation, Inc.".
2352 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2353 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2354 ChangeLog-2007, ChangeLog-2008: Correct dates.
2355
ca80e52b
EB
23562009-04-21 Eric Botcazou <ebotcazou@adacore.com>
2357
2358 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2359 NE_EXPR operations as well.
2360 * c-parser.c (c_parser_condition): Do not set location information on
2361 the condition.
2362 (c_parser_conditional_expression): Likewise.
2363 (c_parser_binary_expression): Set location information on operators.
2364 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2365 TRUTH_NOT_EXPR has been folded.
2366 * fold-const.c (fold_truth_not_expr): Copy location information from
2367 the incoming expression to the outgoing one.
2368 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
2369 recursive calls on the LHS of the operator but pass that of the
2370 operator to recursive calls on the RHS of the operator. Set it
2371 on the COND_EXPR.
2372 (shortcut_cond_expr): Set the locus of the operator on the second
2373 COND_EXPR and that of the expression on the first in degenerate cases.
2374 Pass the locus of the expression to calls to shortcut_cond_r.
2375 Set the locus of the 'then' block on the associated jump, if any.
2376 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
2377 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2378 expression to call to gimplify_boolean_expr.
2379
35091630
KT
23802009-04-21 Kai Tietz <kai.tietz@onevision.com>
2381
2382 * config.gcc: Add additional configuration for
2383 i686-w64-mingw* and x86_64-w64-mingw* triplet.
2384 * config/i386/mingw-w64.h: New mingw-w64 specific header.
2385 (CPP_SPEC): Redefine for allowing -municode option.
2386 (STARTFILE_SPEC): Likewise.
2387 * config/i386/t-mingw-w64: New.
2388 * config/i386/mingw-w64.opt: New.
2389 (municode): Add new target option.
2390 * doc/invoke.texi (municode): Add documentation for new option.
2391
0267afc4
ILT
23922009-04-21 Ian Lance Taylor <iant@google.com>
2393
2394 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2395 Correct test for number of arguments.
2396 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2397
2ba9daa7
AS
23982009-04-21 Andreas Schwab <schwab@linux-m68k.org>
2399
2400 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2401 argument of emit_library_call.
2402
ad8a1ac0
RG
24032009-04-21 Richard Guenther <rguenther@suse.de>
2404
2405 PR middle-end/39829
2406 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2407 inside VIEW_CONVERT_EXPRs.
2408
7156c8ab
MJ
24092009-04-21 Martin Jambor <mjambor@suse.cz>
2410
2411 * tree-switch-conversion.c (build_constructors): Split a long line.
2412 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
2413 (build_one_array): Create assigns of constants if possible, do not
2414 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
2415 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2416 make_rename_temp. Do not call mark_symbols_for_renaming, call
2417 update_stmt.
2418 (gen_def_assigns): Do not call mark_symbols_for_renaming or
2419 find_new_referenced_vars, call update_stmt.
2420 (gen_inbound_check): Use create_tmp_var and create ssa names manually
2421 instead of calling make_rename_temp. Do not call
2422 find_new_referenced_vars or mark_symbols_for_renaming, call
2423 update_stmt.
2424
2970ccb3
RG
24252009-04-21 Richard Guenther <rguenther@suse.de>
2426
2427 PR tree-optimization/39827
7d83f4f5 2428 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
2429 (tree_ssa_phiprop): Pass the correct array size.
2430
47f402d1
UB
24312009-04-21 Uros Bizjak <ubizjak@gmail.com>
2432
2433 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2434
1e4ae551
MLI
24352009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
2436
2437 PR 16202
2438 * c-typeck.c (lvalue_p): Move declaration ...
2439 * c-common.h (lvalue_p): ... to here.
2440 * c-common.c (candidate_equal_p): New.
2441 (add_tlist): Use it.
2442 (merge_tlist): Use it.
2443 (warn_for_collisions_1): Likewise.
2444 (warning_candidate_p): Accept more candidates.
2445 (verify_tree): A warning candidate can be an expression. Use
2446 candidate_equal_p.
2447
244609a6
BE
24482009-04-21 Ben Elliston <bje@au.ibm.com>
2449
2450 PR target/5267
2451 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2452 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2453 options. Remove -mcall-solaris documentation.
2454
9c650d90
MLI
24552009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2456
2457 PR c++/13358
2458 * doc/invoke.texi (-Wlong-long): Update description.
2459 * c-lex (interpret_integer): Only warn if there was no previous
2460 overflow and -Wlong-long is enabled.
2461 * c-decl.c (declspecs_add_type): Drop redundant flags.
2462 * c.opt (Wlong-long): Init to -1.
2463 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2464 and front-end warn_long_long. Wlong-long only depends on other
2465 flags if it is uninitialized.
2466 * c-parser.c (disable_extension_diagnostics): warn_long_long is
2467 the same for CPP and FE.
2468 (restore_extension_diagnostics): Likewise.
2469
bbbbb16a
ILT
24702009-04-20 Ian Lance Taylor <iant@google.com>
2471
2472 Fix enum conversions which are invalid in C++:
47f402d1
UB
2473 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2474 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2475 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2476 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 2477 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 2478 (dbxout_parms): Likewise.
47f402d1 2479 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
2480 (df_clear_flags): Likewise.
2481 * df-problems.c (df_rd_bb_local_compute_process_def): Change
2482 top_flag parameter to int.
2483 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
2484 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2485 Remove cast.
bbbbb16a
ILT
2486 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2487 (df_ref_create_structure, df_def_record_1): Likewise.
2488 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2489 (df_notes_rescan): Change 0 to VOIDmode in function call.
2490 (df_get_call_refs, df_insn_refs_collect): Likewise.
2491 (df_bb_regs_collect): Likewise.
2492 (df_entry_block_defs_collect): Likewise.
2493 (df_exit_block_uses_collect): Likewise.
2494 * df.h: Update declarations.
2495 * double-int.c (double_int_divmod): Add cast to enum type.
2496 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2497 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2498 (based_loc_descr): Likewise.
2499 (loc_descriptor_from_tree_1): Change first_op and second_op to
2500 enum dwarf_location_atom. Add cast to enum type.
2501 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 2502 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2503 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2504 (do_store_flag): Likewise.
2505 * fixed-value.h (struct fixed_value): Change mode to enum
2506 machine_mode.
47f402d1 2507 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2508 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2509 function call.
2510 (insert_insn_decl, insert_decl, insert_state): Likewise.
2511 (automata_list_finish): Likewise.
2512 * genrecog.c (process_define_predicate): Add cast to enum type.
2513 * gensupport.c (init_predicate_table): Add cast to enum type.
2514 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2515 function call.
2516 (gimple_build_call_1, gimple_build_label): Likewise.
2517 (gimple_build_goto, gimple_build_asm_1): Likewise.
2518 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 2519 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
2520 (enum fallback): Rename from enum fallback_t.
2521 (fallback_t): Typedef as int.
2522 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2523 GSI_SAME_STMT in function call.
2524 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2525 enum type.
2526 (setup_reg_class_relations): Likewise.
47f402d1 2527 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
2528 (setup_prohibited_class_mode_regs): Add cast to enum type.
2529 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 2530 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
2531 (record_address_regs): Change i to enum reg_class.
2532 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2533 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2534 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2535 (GET_MODE_2XWIDER_MODE): Likewise.
2536 (GET_CLASS_NARROWEST_MODE): Likewise.
2537 * omp-low.c (expand_omp_for): Add cast to enum type.
2538 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2539 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2540 * postreload.c (reload_cse_simplify_operands): Change rclass local
2541 to enum reg_class.
2542 * predict.c (combine_predictions_for_insn): Change best_predictor
2543 and predictor to enum br_predictor.
2544 (combine_predictions_for_bb): Likewise.
2545 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2546 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 2547 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
2548 * reginfo.c (init_move_cost): Add casts to enum type.
2549 (init_reg_sets_1, init_fake_stack_mems): Likewise.
2550 * regmove.c (regclass_compatible_p): Change class0 and class1 to
2551 enum reg_class.
2552 * reload.c (find_valid_class): Add casts to enum type.
2553 (push_reload): Change 0 to NO_REGS in function call.
2554 (find_reloads): Change this_alternative to array of enum
2555 reg_class. Remove some now-unnecessary casts.
2556 (make_memloc): Change 0 to VOIDmode in function call.
2557 * reload1.c (reload): Change 0 to VOIDmode in function call.
2558 (eliminate_regs_1, elimination_effects): Likewise.
2559 (eliminate_regs_in_insn): Likewise.
2560 (emit_input_reload_insns): Add cast to enum type.
2561 (delete_output_reload): Change 0 to VOIDmode in function call.
2562 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2563 to enum type in function call.
2564 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2565 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 2566 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
2567 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2568 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2569 (dump_function): Likewise.
2570 * tree-dump.h: Update declarations.
2571 * tree-pass.h: Update declarations.
2572 * varasm.c (assemble_integer): Change mclass to enum mode_class.
2573 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2574 enum type.
2575 (arm_rtx_costs_1): Correct parenthesization.
2576 (arm_rtx_costs): Add casts to enum type.
2577 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2578 (vfp_emit_fstmd): Use add_rg_note.
2579 (emit_multi_reg_push, emit_sfm): Likewise.
2580 (thumb_set_frame_pointer): Likewise.
2581 (arm_expand_prologue): Likewise.
2582 (arm_regno_class): Change return type to enum reg_class.
2583 (thumb1_expand_prologue): Use add_reg_note.
2584 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2585 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2586 in function call.
2587 * config/arm/gentune.sh: Add cast to enum type.
2588 * config/arm/arm-tune.md: Rebuild.
2589 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2590 (ix86_split_fp_branch, predict_jump): Likewise.
2591 (ix86_expand_multi_arg_builtin): Change sub_code from enum
2592 insn_code to enum rtx_code.
2593 (ix86_builtin_vectorized_function): Add cast to enum type.
2594 * config/i386/i386.md (truncdfsf2): Change slot to enum
2595 ix86_stack_slot.
2596 (truncxf<mode>2, isinf<mode>2): Likewise.
2597 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2598 enum type.
2599 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2600 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2601 (insert_bundle_state): Change 1 to INSERT in function call.
2602 (ia64_add_bundle_selector_before): Likewise.
2603 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2604 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2605 (restore_stack_nonlocal): Likewise.
2606 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2607 function call.
2608 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2609 function call.
2610 (mips_rtx_costs): Likewise.
2611 (mips_override_options): Add casts to enum type.
2612 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2613 in function call.
2614 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2615 (store_reg, set_reg_plus_d): Likewise.
2616 (hppa_expand_prologue, hppa_profile_hook): Likewise.
2617 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2618 cast to enum type.
2619 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2620 function call.
2621 (emit_unlikely_jump): Use add_reg_note.
2622 (rs6000_emit_allocate_stack): Likewise.
2623 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2624 (output_toc): Change 1 to INSERT in function call.
2625 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2626 (rs6000_initialize_trampoline): Likewise.
2627 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2628 function call.
2629 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2630 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2631 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2632 (save_gprs): Use add_reg_note.
2633 (s390_emit_prologue): Likewise.
47f402d1 2634 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2635 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2636 (sparc_fold_builtin): Add cast to enum type.
2637 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2638 enum insn_code.
2639 (spu_expand_prologue): Use add_reg_note.
47f402d1 2640 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2641
26422009-04-20 Ian Lance Taylor <iant@google.com>
2643
2644 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2645 (c_parser_postfix_expression_after_primary): Get VEC for list of
2646 arguments. Get original types of arguments. Call
2647 build_function_call_vec.
2648 (cached_expr_list_1, cached_expr_list_2): New static variables.
2649 (c_parser_expr_list): Change return type to VEC *. Add
2650 p_orig_types parameter. Change all callers.
2651 (c_parser_release_expr): New static function.
2652 (c_parser_vec_to_tree_list): New static function.
2653 * c-typeck.c (build_function_call): Rewrite to build a VEC and
2654 call build_function_call_vec.
2655 (build_function_call_vec): New function, based on old
2656 build_function_call.
2657 (convert_arguments): Remove nargs and argarray parameters. Change
2658 values to a VEC. Add origtypes parameter.
47f402d1 2659 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
2660 (convert_for_assignment): Add origtype parameter. Change all
2661 callers. If warn_cxx_compat, check for conversion to an enum
2662 type when calling a function.
2663 (store_init_value): Add origtype parameter. Change all callers.
2664 (digest_init): Likewise.
2665 (struct init_node): Add origtype field.
2666 (add_pending_init): Add origtype parameter. Change all callers.
2667 (output_init_element): Likewise.
2668 (output_pending_init_elements): Pass origtype from init_node to
2669 output_init_element.
f28a61ab 2670 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
2671 output_init_element.
2672 (c_finish_return): Add origtype parameter. Change all callers.
2673 * c-common.c (sync_resolve_size): Change params to VEC *. Change
2674 caller.
2675 (sync_resolve_params): Likewise.
47f402d1 2676 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 2677 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 2678 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
2679 * c-decl.c (finish_decl): Add origtype parameter. Change all
2680 callers. Call build_function_call_vec rather than
2681 build_function_call for cleanup.
2682 * c-tree.h: Update declarations.
2683 * c-common.h: Update declarations.
2684 * stub-objc.c (objc_rewrite_function_call): Change parameter from
2685 params to first_param.
2686 * target.h (struct gcc_target): Change resolve_overloaded_builtin
2687 params parameter from tree to void *.
2688 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2689 Change arglist parameter to have type void *, and to be a pointer
2690 to a VEC.
2691 * config/rs6000/rs6000-protos.h
2692 (altivec_resolve_overloaded_builtin): Update declaration.
2693 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2694 fnargs parameter to have type void *, and to be a pointer to a
2695 VEC. Call build_function_call_vec instead of
2696 build_function_call.
47f402d1 2697 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 2698
6ff078d4 26992009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 2700 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
2701 H.J. Lu <hongjiu.lu@intel.com>
2702
2703 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2704
2705 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2706 (IX86_LEA_PRIORITY): Likewise.
2707 (distance_non_agu_define): New function.
2708 (distance_agu_use): Likewise.
2709 (ix86_lea_for_add_ok): Likewise.
2710 (ix86_dep_by_shift_count): Likewise.
2711
2712 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2713 should split for LEA.
2714
2715 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2716 function.
2717 (ix86_dep_by_shift_count): Likewise.
2718
87a5b4cc
RG
27192009-04-20 Richard Guenther <rguenther@suse.de>
2720
2721 * expr.c (handled_component_p): Move ...
2722 * tree.h (handled_component_p): ... here.
2723 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2724 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2725 and REALPART_EXPR to be in one group.
2726
438c239d
RG
27272009-04-20 Richard Guenther <rguenther@suse.de>
2728
2729 * basic-block.h (get_all_dominated_blocks): Declare.
2730 * dominance.c (get_all_dominated_blocks): New function.
2731 * tree-cfg.c (get_all_dominated_blocks): Remove.
2732 (remove_edge_and_dominated_blocks): Adjust.
2733 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2734 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
2735 instead of recursing.
2736
fed5ae11
DK
27372009-04-20 Doug Kwan <dougkwan@google.com>
2738
2739 * cgraph.h (cgraph_node_ptr): New type for vector functions.
2740 (struct cgraph_node_set_def): New type.
2741 (cgraph_node_set) New type. Also declare vector functions.
2742 (struct cgraph_node_set_element_def): New type.
2743 (cgraph_node_set_element): Ditto.
2744 (cgraph_node_set_iterator): New iterator type.
2745 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2746 cgraph_node_set_remove, dump_cgraph_node_set,
2747 debug_cgraph_node_set): New prototypes.
2748 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2749 cgraph_node_set_size): New inlines.
2750 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2751 including cgraph.h.
2752 (struct ipa_opt_pass): Add struct cgraph_node_set_def
2753 argument to function 'write_summary'.
2754 * ipa.c: Include ggc.h.
2755 (hash_cgraph_node_set_element,
2756 eq_cgraph_node_set_element, cgraph_node_set_new,
2757 cgraph_node_set_add, cgraph_node_set_remove,
2758 cgraph_node_set_find, dump_cgraph_node_set,
2759 debug_cgraph_node_set): New functions.
2760 * Makefile.in (ipa.o): Add dependency on GGC_H.
2761
c4551b28
IR
27622009-04-20 Ira Rosen <irar@il.ibm.com>
2763
2764 PR tree-optimization/39675
2ba9daa7 2765 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
2766 check of the return code of vect_schedule_slp. Check that
2767 stmt_vec_info still exists for the statement, before checking its
2768 vectorization type.
c4551b28 2769
21a495fb
MM
27702009-04-20 Michael Matz <matz@suse.de>
2771
2772 * Makefile.in (generated_files): Take out $(simple_generated_c).
2773
8e208874
DK
27742009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
2775
2776 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
2777 (UINTPTR_TYPE): Likewise.
2778
a45e580b
JM
27792009-04-19 Joseph Myers <joseph@codesourcery.com>
2780
2781 PR c/37481
2782 * c-typeck.c (digest_init): Check for initializing an array with a
2783 string literal.
2784
20845d35
JM
27852009-04-19 Joseph Myers <joseph@codesourcery.com>
2786
2787 PR c/19771
2788 * c-semantics.c (pop_stmt_list): Propagate
2789 STATEMENT_LIST_HAS_LABEL to parent statement list.
2790
28143fdd
AN
27912009-04-19 Adam Nemet <anemet@caviumnetworks.com>
2792
2793 * config/mips/mips.h (mips_tune_attr): New macro.
2794 * config/mips/mips.md (cpu): Use it.
2795
da377db9
JM
27962009-04-19 Joseph Myers <joseph@codesourcery.com>
2797
2798 PR c/38243
2799 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2800 declaring a tag.
2801
3baf459d
DN
28022009-04-19 Diego Novillo <dnovillo@google.com>
2803
2804 * toplev.c (compile_file): Move call to coverage_finish ...
2805 * cgraphunit.c (ipa_passes): ... here.
2806 Call cgraph_process_new_functions.
2807 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2808 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2809
b6fa5b01
JH
28102009-04-19 Jan Hubicka <jh@suse.cz>
2811
47f402d1
UB
2812 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2813 cfun.
b6fa5b01
JH
2814 (dump_cgraph_node): Dump can throw external flag.
2815 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2816
ca409efd
MLI
28172009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2818
2819 PR c/32061
2820 PR c++/36954
2821 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2822 * common.opt (Wlogical-op): Move from here...
2823 * c.opt (Wlogical-op): ... to here.
2824 * c-typeck.c (parser_build_binary_op): Update call to
2825 warn_logical_operator.
2826 * c-opts.c (c_common_post_options): Enable warn_logical_op with
2827 extra_warnings.
2828 * c-common.c (warn_logical_op): Update.
2829 * c-common.h (warn_logical_op): Update declaration.
2830
9db4cdd3
EB
28312009-04-19 Eric Botcazou <ebotcazou@adacore.com>
2832
2833 * tree.c (protected_set_expr_location): Fix formatting.
2834
f37acdf9
JM
28352009-04-18 Joseph Myers <joseph@codesourcery.com>
2836
2837 PR c/27676
2838 * c-typeck.c (readonly_warning): new.
2839 (build_unary_op, build_modify_expr): Use readonly_warning for
2840 storing into something readonly but not const-qualified.
2841
2b4b7036
JM
28422009-04-18 Joseph Myers <joseph@codesourcery.com>
2843
2844 PR c/22367
2845 * c-typeck.c (build_unary_op): Check for taking address of
2846 expression of type void.
2847
3ce62965
JM
28482009-04-18 Joseph Myers <joseph@codesourcery.com>
2849
2850 PR c/35210
2851 * c-typeck.c (build_function_call): Check for calling a function
2852 with qualified void return types. Call require_complete_type when
2853 generating a trap.
2854
2505c5ed
JH
28552009-04-18 Jan Hubicka <jh@suse.cz>
2856
2857 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2858 Set nothrow flag.
2859 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2860 can_throw_external flag.
2861 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2862 * ipa-pure-const.c (ignore_edge): New function.
2863 (propagate): Compute order for NOTHROW computation; set NOTHROWs
2864 only over can_throw_external edges.
2865 (local_pure_const): Add nothrow flag.
2866 * ipa-utils.c (searchc): Add ignore_edge callback.
2867 (ipa_utils_reduced_inorder): Add ignore_edge callback.
2868 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2869 (set_nothrow_function_flags): Update cgraph.
2870 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2871
2586ba4b
RG
28722009-04-18 Richard Guenther <rguenther@suse.de>
2873
2874 PR middle-end/39804
2875 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2876 (fold_stmt): ... this and ...
2877 (fold_stmt_inplace): ... this.
2878 (fold_stmt_1): Fold references in calls and asms.
2879 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2880
1eefab17
KH
28812009-04-18 Kazu Hirata <kazu@codesourcery.com>
2882
2883 * tree-vrp.c (ssa_name_nonzero_p): Remove.
2884 * tree.h: Remove the prototype for ssa_name_nonzero_p.
2885
aa424b01
KH
28862009-04-18 Kazu Hirata <kazu@codesourcery.com>
2887
2888 * tree.c (function_args_count): Remove.
2889 * tree.h: Remove the prototype for function_args_count.
2890
613a896b
KH
28912009-04-18 Kazu Hirata <kazu@codesourcery.com>
2892
2893 * tree-iterator.c (expr_only): Remove.
2894 * tree.h: Remove the prototype for expr_only.
2895
579e694c
KH
28962009-04-18 Kazu Hirata <kazu@codesourcery.com>
2897
2898 * reginfo.c (cannot_change_mode_set_regs): Remove.
2899 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2900
ee7e3ad3
AS
29012009-04-08 Anatoly Sokolov <aesok@post.ru>
2902
2903 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2904 whether operands 0 and 1 overlaps.
2905
92ef7fb1
MLI
29062009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
2907
2908 PR middle-end/36902
2909 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2910 pointer. Use warning_at instead of warning.
2911 (search_for_addr_array): Likewise.
2912 (check_array_bounds): Likewise.
2913 (check_all_array_refs): Check that the incoming edge is not in the
2914 list of edges to be removed.
2915 (check_all_array_refs): Avoid the temporal pointer.
2916 (vrp_visit_cond_stmt): Fix typo.
2917 (simplify_switch_using_ranges): Handle the case where the switch
2918 index is an integer constant.
2919
0e097268
AN
29202009-04-18 Adam Nemet <anemet@caviumnetworks.com>
2921
2922 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2923
c782f1dd
KH
29242009-04-18 Kazu Hirata <kazu@codesourcery.com>
2925
2926 * doc/extend.texi, doc/invoke.texi: Fix typos.
2927
668fb0e8
CC
29282009-04-17 Cary Coutant <ccoutant@google.com>
2929
2930 * tree-flow-inline.h (get_lineno): Fix inverted test.
2931
4d4014c1
DN
29322009-04-17 Diego Novillo <dnovillo@google.com>
2933
2934 * tree-ssa-pre.c (create_expression_by_pieces): Remove
2935 assertion for AVAIL_OUT.
2936
2984e1b6
MF
29372009-04-17 Mike Frysinger <vapier@gentoo.org>
2938
2939 PR target/38627
2940 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2941 * config/sh/linux-atomic.asm: Likewise.
2942
9994a182
DN
29432009-04-17 Diego Novillo <dnovillo@google.com>
2944
2945 * except.c (debug_eh_tree): New.
2946 (struct eh_region, struct eh_status): Move ...
2947 * except.h: ... here.
2948 (add_type_for_runtime): Declare extern.
2949 (lookup_type_for_runtime): Likewise.
2950 (debug_eh_tree): Declare.
2951 * Makefile.in (GTFILES): List except.h before except.c
2952
07485407
DN
29532009-04-17 Diego Novillo <dnovillo@google.com>
2954
47f402d1 2955 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
2956 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2957 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2958 (find_vars_r): ... here.
2959 * tree-flow.h (find_referenced_vars_in): Declare.
2960 * tree-ssa-pre.c (create_expression_by_pieces): Assert
2961 that AVAIL_OUT exists for BLOCK.
2962 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2963 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2964 (tree-parloops.o): Likewise.
2965
4e53d196
SB
29662009-04-17 Simon Baldwin <simonb@google.com>
2967
2968 * toplev.c (default_tree_printer): Add handling for %E format.
2969
413d3aa8
DN
29702009-04-17 Diego Novillo <dnovillo@google.com>
2971
47f402d1
UB
2972 * tree-pretty-print.c (dump_generic_node): Add break after
2973 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
2974 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
2975 FUNCTION_TYPE together. Call print_struct_decl when printing
2976 structures and TDF_SLIM is not given.
413d3aa8
DN
2977 (print_struct_decl): Fix logic for detecting recursion.
2978
5a691e98
RAE
29792009-04-17 Rafael Avila de Espindola <espindola@google.com>
2980
2981 PR 31567
2982 * gcc.c (create_at_file): New.
2983 (compile_input_file_p): New.
2984 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2985 * main.c (main): Update call to toplev_main.
2986 * toplev.c (toplev_main): Change signature. Call expandargv.
2987 * toplev.h (toplev_main): Change signature.
2988
9eacf7a6
EB
29892009-04-17 Eric Botcazou <ebotcazou@adacore.com>
2990
2991 * dwarf2out.c (field_byte_offset): Use the type size as the field size
2992 if the latter is not constant.
2993
58298177
DE
29942009-04-17 David Edelsohn <edelsohn@gnu.org>
2995
2996 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2997
5b4c43d7
EB
29982009-04-17 Eric Botcazou <ebotcazou@adacore.com>
2999
3000 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3001 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3002
b51605c4
RG
30032009-04-17 Richard Guenther <rguenther@suse.de>
3004
3005 * tree-ssa-structalias.c (get_constraint_for_component_ref):
3006 Handle component references view-converting an invariant address.
3007
9e3be889
AN
30082009-04-17 Adam Nemet <anemet@caviumnetworks.com>
3009
3010 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3011 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3012 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3013 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3014 Use @deftypevr rather than @deftypevar.
3015
7c3e9dc3
RG
30162009-04-17 Richard Guenther <rguenther@suse.de>
3017
47f402d1 3018 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
3019 (get_prop_source_stmt): Likewise.
3020 (can_propagate_from): Likewise.
3021
aca600aa
AS
30222009-04-17 Andrew Stubbs <ams@codesourcery.com>
3023
3024 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3025 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3026 (--with-multilib-list): Add default value.
3027 * configure: Regenerate.
3028 * Makefile.in (TM_ENDIAN_CONFIG): Define.
3029 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3030 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3031 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3032 Don't add default cpu to multilib list unnecessarily, but do enable
3033 the relevant compiler option..
3034 Add support for --with-multilib-list=<blank> and
3035 --with-multilib-list=!<somelib> to supress unwanted multilibs.
3036 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3037 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3038 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3039 TM_MULTILIB_CONFIG.
3040 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3041 (MULTILIB_OSDIRNAMES): New variable.
3042 * config/sh/t-1e: Delete file.
3043 * config/sh/t-mlib-sh1: Delete file.
3044 * config/sh/t-mlib-sh2: Delete file.
3045 * config/sh/t-mlib-sh2a: Delete file.
3046 * config/sh/t-mlib-sh2a-nofpu: Delete file.
3047 * config/sh/t-mlib-sh2a-single: Delete file.
3048 * config/sh/t-mlib-sh2a-single-only: Delete file.
3049 * config/sh/t-mlib-sh2e: Delete file.
3050 * config/sh/t-mlib-sh3e: Delete file.
3051 * config/sh/t-mlib-sh4: Delete file.
3052 * config/sh/t-mlib-sh4-nofpu: Delete file.
3053 * config/sh/t-mlib-sh4-single: Delete file.
3054 * config/sh/t-mlib-sh4-single-only: Delete file.
3055 * config/sh/t-mlib-sh4a: Delete file.
3056 * config/sh/t-mlib-sh4a-nofpu: Delete file.
3057 * config/sh/t-mlib-sh4a-single: Delete file.
3058 * config/sh/t-mlib-sh4a-single-only: Delete file.
3059 * config/sh/t-mlib-sh4al: Delete file.
3060 * config/sh/t-mlib-sh5-32media: Delete file.
3061 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3062 * config/sh/t-mlib-sh5-64media: Delete file.
3063 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3064 * config/sh/t-mlib-sh5-compact: Delete file.
3065 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3066 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3067 * doc/install.texi (Options specification): Add
3068 --with-multilib-list and --with-endian.
3069
cf8aba7f
RAE
30702009-04-17 Rafael Avila de Espindola <espindola@google.com>
3071
3072 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3073 REVISION_c.
3074 (OBJS-common): Add plugin-version.o.
3075 (plugin-version.o): New.
3076 * gcc-plugin.h (plugin_gcc_version): New.
3077 (plugin_default_version_check): New.
3078 (plugin_init_func, plugin_init): Add version argument.
3079 * plugin-version.c: New.
3080 * plugin.c (str_plugin_gcc_version_name): New.
3081 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3082 pass it to the init function.
3083 (plugin_default_version_check): New.
3084
61e20b90
RG
30852009-04-17 Richard Guenther <rguenther@suse.de>
3086
3087 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3088 for decl-vs-decl disambiguation.
3089
90c6fd8a
AK
30902009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
3091
3092 * config/s390/s390.h (s390_tune_attr): New macro definition.
3093 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3094
9fe9fe04
RG
30952009-04-17 Richard Guenther <rguenther@suse.de>
3096
3097 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3098 (fold_stmt_r): Likewise.
3099 (maybe_fold_reference): New function.
3100 (fold_gimple_assign): Handle cases fold_stmt_r did.
3101 (fold_stmt): Do not use fold_stmt_r.
3102 (fold_stmt_inplace): Likewise.
3103
7e673273
RG
31042009-04-17 Richard Guenther <rguenther@suse.de>
3105
3106 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3107 (record_equivalences_from_stmt): Remove useless checks and
3108 simplifications.
3109 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3110 the type is already suitable.
3111
fabf2749
PB
31122009-04-17 Paolo Bonzini <bonzini@gnu.org>
3113
3114 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3115
68f7b061
UB
31162009-04-17 Uros Bizjak <ubizjak@gmail.com>
3117
3118 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3119 (CMPtype): Define as __gcc_CMPtype.
3120
532bfb0a
AJ
31212009-04-17 Aurelien Jarno <aurelien@aurel32.net>
3122
3123 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3124 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3125
e3ac77ff
RG
31262009-04-17 Richard Guenther <rguenther@suse.de>
3127
3128 PR tree-optimization/39746
3129 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3130 special-casing for builtins and static variable use/def.
3131 (call_may_clobber_ref_p_1): Likewise.
3132
7072a650
ILT
31332009-04-16 Ian Lance Taylor <iant@google.com>
3134
3135 * df.h: Include "timevar.h".
3136 (struct df_problem): Change tv_id field to timevar_id_t.
3137 * tree-pass.h: Include "timevar.h".
3138 (struct opt_pass): Change tv_id field to timevar_id_t.
3139 * timevar.h (timevar_id_t): Define TV_NONE.
3140 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3141 TV_NONE rather than tv_id != 0.
3142 (execute_one_pass): Likewise.
3143 * Makefile.in (DF_H): Add $(TIMEVAR_H).
3144 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
3145 dependencies to $(TREE_PASS_H).
3146 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3147 to TV_NONE.
3148 (pass_branch_target_load_optimize2): Likewise.
3149 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3150 (pass_outof_cfg_layout_mode): Likewise.
3151 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3152 (pass_rebuild_cgraph_edges): Likewise.
3153 (pass_remove_cgraph_callee_edges): Likewise.
3154 * df-core.c (pass_df_initialize_opt): Likewise.
3155 (pass_df_initialize_no_opt): Likewise.
3156 (pass_df_finish): Likewise.
3157 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3158 * except.c (pass_set_nothrow_function_flags): Likewise.
3159 (pass_convert_to_eh_region_ranges): Likewise.
3160 * final.c (pass_compute_alignments): Likewise.
3161 * function.c (pass_instantiate_virtual_regs): Likewise.
3162 (pass_init_function): Likewise.
3163 (pass_leaf_regs): Likewise.
3164 (pass_match_asm_constraints): Likewise.
3165 * gimple-low.c (pass_lower_cf): Likewise.
3166 (pass_mark_used_blocks): Likewise.
3167 * init-regs.c (pass_initialize_regs): Likewise.
3168 * integrate.c (pass_initial_value_sets): Likewise.
3169 * ira.c (pass_ira): Likewise.
3170 * jump.c (pass_cleanup_barriers): Likewise.
3171 * omp-low.c (pass_expand_omp): Likewise.
3172 (pass_lower_omp): Likewise.
3173 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3174 * recog.c (pass_split_all_insns): Likewise.
3175 (pass_split_after_reload): Likewise.
3176 (pass_split_before_regstack): Likewise.
3177 (pass_split_before_sched2): Likewise.
3178 (pass_split_for_shorten_branches): Likewise.
3179 * reginfo.c (pass_reginfo_init): Likewise.
3180 (pass_subregs_of_mode_init): Likewise.
3181 (pass_subregs_of_mode_finish): Likewise.
3182 * passes.c (pass_postreload): Likewise.
3183 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3184 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3185 (pass_warn_function_return): Likewise.
3186 (pass_warn_function_noreturn): Likewise.
3187 * tree-complex.c (pass_lower_complex): Likewise.
3188 (pass_lower_complex_O0): Likewise.
3189 * tree-if-conv.c (pass_if_conversion): Likewise.
3190 * tree-into-ssa.c (pass_build_ssa): Likewise.
3191 * tree-mudflap.c (pass_mudflap_1): Likewise.
3192 (pass_mudflap_2): Likewise.
3193 * tree-nomudflap.c (pass_mudflap_1): Likewise.
3194 (pass_mudflap_2): Likewise.
3195 * tree-nrv.c (pass_return_slot): Likewise.
3196 * tree-object-size.c (pass_object_sizes): Likewise.
3197 * tree-optimize.c (pass_all_optimizations): Likewise.
3198 (pass_early_local_passes): Likewise.
3199 (pass_all_early_optimizations): Likewise.
3200 (pass_cleanup_cfg): Likewise.
3201 (pass_cleanup_cfg_post_optimizing): Likewise.
3202 (pass_free_datastructures): Likewise.
3203 (pass_free_cfg_annotations): Likewise.
3204 (pass_fixup_cfg): Likewise.
3205 (pass_init_datastructures): Likewise.
3206 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3207 (pass_late_warn_uninitialized): Likewise.
3208 (pass_update_address_taken): Likewise.
3209 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3210 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3211 (pass_cse_sincos): Likewise.
3212 (pass_convert_to_rsqrt): Likewise.
3213 * tree-ssa-structalias.c (pass_build_alias): Likewise.
3214 * tree-stdarg.c (pass_stdarg): Likewise.
3215 * tree-tailcall.c (pass_tail_recursion): Likewise.
3216 (pass_tail_calls): Likewise.
3217 * tree-vect-generic.c (pass_lower_vector): Likewise.
3218 (pass_lower_vector_ssa): Likewise.
3219 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3220
0051ef59
JM
32212009-04-16 Joseph Myers <joseph@codesourcery.com>
3222
3223 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3224 XLR entry.
3225 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3226 Handle -march=xlr.
3227 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3228 logical and signext.
3229
b3f8558a
KK
32302009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
3231
3232 PR target/39767
3233 * config/sh/predicates.md (arith_operand): Check if the operand
3234 of TRUNCATE is a REG.
3235
f57597d9
KH
32362009-04-16 Kazu Hirata <kazu@codesourcery.com>
3237
3238 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3239 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3240
b172d063
KH
32412009-04-16 Kazu Hirata <kazu@codesourcery.com>
3242
3243 * tree-iterator.c (tsi_split_statement_list_after,
3244 tsi_split_statement_list_before): Remove.
3245 * tree-iterator.h: Remove the prototypes for
532bfb0a 3246 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 3247
78fe4f1f
KH
32482009-04-16 Kazu Hirata <kazu@codesourcery.com>
3249
3250 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3251 * tree-ssa-propagate.h: Remove the prototype for
3252 stmt_makes_single_load.
3253
43dd3201
KH
32542009-04-16 Kazu Hirata <kazu@codesourcery.com>
3255
3256 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3257 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3258
4252a4aa
KH
32592009-04-16 Kazu Hirata <kazu@codesourcery.com>
3260
3261 * tree-iterator.c (EXPR_LAST_BODY): Remove.
3262
bfb69968
KH
32632009-04-16 Kazu Hirata <kazu@codesourcery.com>
3264
3265 * except.c (eh_region_outer_p): Remove.
3266 * except.h: Remove the prototype for eh_region_outer_p.
3267
c7db7fa5
KH
32682009-04-16 Kazu Hirata <kazu@codesourcery.com>
3269
3270 * function.c (current_function_assembler_name): Remove.
3271 * function.h: Remove the prototype for
3272 current_function_assembler_name.
3273
efc0b2bd
ILT
32742009-04-16 Ian Lance Taylor <iant@google.com>
3275
532bfb0a 3276 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
3277 (add_reg_note): Call alloc_reg_note.
3278 * rtl.h (alloc_reg_note): Declare.
3279 * combine.c (try_combine): Use alloc_reg_note.
3280 (recog_for_combine, move_deaths): Likewise.
3281 (distribute_notes): Use alloc_reg_note and add_reg_note.
3282 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3283 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3284 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3285
6080348f
VM
32862009-04-16 Vladimir Makarov <vmakarov@redhat.com>
3287
3288 PR rtl-optimization/39762
3289 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3290 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 3291 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 3292
6080348f
VM
3293 * ira-conflicts.c (process_regs_for_copy): Use function
3294 ira_get_register_move_cost instead of global
3295 ira_register_move_cost.
3296
3297 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3298 color_pass, move_spill_restore, update_curr_costs): Ditto.
3299
3300 * ira-lives.c (process_single_reg_class_operands): Ditto.
3301
3302 * ira-emit.c (emit_move_list): Ditto.
3303
3304 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3305 (record_reg_classes): Ditto. Use functions
3306 ira_get_register_move_cost and ira_get_may_move_cost instead of
3307 global vars ira_register_move_cost, ira_may_move_out_cost and
3308 ira_may_move_in_cost.
3309 (record_address_regs): Don't call ira_init_register_move_cost.
3310 Use function ira_get_may_move_cost instead of global
3311 ira_may_move_in_cost.
3312 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 3313 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 3314 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 3315
646bea10
RG
33162009-04-16 Richard Guenther <rguenther@suse.de>
3317
3318 * tree-cfg.c (verify_gimple_assign_binary):
3319 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3320 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3321 (create_general_new_stmt): Note that this function is broken.
3322
02e819ff
RAE
33232009-04-16 Rafael Avila de Espindola <espindola@google.com>
3324
3325 * common.opt (fhelp): Add Var(help_flag).
3326 * gcc-plugin.h (plugin_info): Add help.
3327 * plugin.c (plugin_name_args): Add help.
3328 (register_plugin_info): Set plugin->help.
3329 (print_help_one_plugin): New.
3330 (print_plugins_help): New.
3331 * plugin.h (print_plugins_help): New.
3332 * toplev.c (toplev_main): Call print_plugins_help if needed.
3333
ccacdf06
RG
33342009-04-16 Richard Guenther <rguenther@suse.de>
3335
3336 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3337 (gimple_ior_addresses_taken_1): New function.
3338 (gimple_ior_addresses_taken): Likewise.
3339 * gimple.h (struct gimple_statement_with_ops_base): Remove
3340 addresses_taken member.
3341 (gimple_ior_addresses_taken): Declare.
3342 (gimple_addresses_taken, gimple_addresses_taken_ptr,
3343 gimple_set_addresses_taken): Remove.
3344 * ipa-reference.c (mark_address): New function.
3345 (scan_stmt_for_static_refs): Use it for marking addresses taken.
3346 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3347 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
3348 (gimple_add_to_addresses_taken): Remove.
3349 (get_tmr_operands): Call mark_address_taken.
3350 (get_asm_expr_operands): Likewise.
3351 (get_expr_operands): Likewise.
3352 (build_ssa_operands): Do not clear the addresses_taken bitmap.
3353 (free_stmt_operands): Do not free it.
3354 * tree-ssa.c (delete_tree_ssa): Likewise.
3355 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3356
346ef3fa
RG
33572009-04-16 Richard Guenther <rguenther@suse.de>
3358
3359 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3360 (walk_stmt_load_store_ops): Likewise.
3361 * gimple.c (get_base_loadstore): New function.
3362 (walk_stmt_load_store_addr_ops): Likewise.
3363 (walk_stmt_load_store_ops): Likewise.
3364 * ipa-pure-const.c (check_op): Simplify.
3365 (check_load, check_store): New functions.
3366 (check_stmt): Use walk_stmt_load_store_ops.
3367 * ipa-reference.c (mark_load): Adjust signature.
3368 (mark_store): Likewise.
3369 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3370
44e9f006
RAE
33712009-04-16 Rafael Avila de Espindola <espindola@google.com>
3372
3373 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3374 (plugin_info): New.
3375 * opts.c (common_handle_option): Don't call print_version.
3376 * plugin.c (plugin_name_args): Add version.
3377 (register_plugin_info): New.
3378 (register_callback): Handle PLUGIN_INFO.
3379 (try_init_one_plugin): New.
3380 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3381 if failed to init.
3382 (finalize_one_plugin): New.
3383 (finalize_plugins): New.
3384 (print_one_plugin): New.
3385 (print_plugins_versions): New.
3386 * plugin.h (print_plugins_versions): New.
3387 (finalize_plugins): New.
3388 * toplev.c (compile_file): Don't call initialize_plugins.
3389 (print_version): Call print_plugins_versions.
3390 (toplev_main): Call initialize_plugins. Print version if needed.
3391 Call finalize_plugins.
3392
41fd0f9b
RAE
33932009-04-16 Rafael Avila de Espindola <espindola@google.com>
3394
3395 * common.opt (fversion): New.
3396 * gcc.c (print_version): New.
3397 (process_command): Don't print the version. Just set print_version.
3398 (main): Print version. Call subprocesses if print_version and
3399 verbose_flag are set.
3400 * opts.c (common_handle_option): Handle OPT_fversion.
3401
550918ca 34022009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 3403 Ira Rosen <irar@il.ibm.com>
550918ca
RG
3404
3405 PR tree-optimization/39698
3406 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3407 type of the reduction variable. Only generate the def if
3408 it is needed.
3409
3410 * omp-low.c (expand_omp_for_generic): When converting to a pointer
3411 make sure to first convert to an integer of the same precision.
3412 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3413 the type of the evolution correctly in computing the new
3414 induction variable base.
3415
54634841
RG
34162009-04-16 Richard Guenther <rguenther@suse.de>
3417
3418 PR middle-end/39625
3419 * tree-cfg.c (make_blocks): Split statements with to-be
3420 abnormal SSA names on the lhs.
3421
b6fc2cdb
PB
34222009-04-16 Paolo Bonzini <bonzini@gnu.org>
3423
3424 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3425 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3426 * c-typeck.c (really_start_incremental_init): Likewise.
3427 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3428 (TARGET_INITIALIZER): Remove it.
3429 * target.h (struct target): Remove vector_opaque_p.
3430 * tree.c (build_opaque_vector_type): New.
3431 * tree.h (TYPE_VECTOR_OPAQUE): New.
3432 (build_opaque_vector_type): Declare.
3433 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3434 * config/rs6000/rs6000.c (build_opaque_vector_type,
3435 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3436 (rs6000_init_builtins): Use build_opaque_vector_type for
3437 opaque_V4SI_type_node.
3438
a417cdd9
CM
34392009-04-15 Catherine Moore <clm@codesourcery.com>
3440
532bfb0a
AJ
3441 * debug.h (set_name): Declare.
3442 * dwarf2out.c (dwarf2out_set_name): Declare.
3443 (dwarf2_debug_hooks): Add set_name.
3444 (find_AT_string): New.
3445 (add_AT_string): Call find_AT_string.
3446 (dwarf2out_set_name): New.
3447 * cp/decl.c (grokdeclarator): Call set_name.
3448 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3449 * debug.c (do_nothing_debug_hooks): Likewise.
3450 * dbxout.c (dbx_debug_hooks): Likewise.
3451 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 3452
60839f5d 34532009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 3454
532bfb0a
AJ
3455 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3456 reg for single-precision FPU.
3457 * config/rs6000/rs6000.md (movsi_internal1): Only for
3458 !TARGET_SINGLE_FPU.
3459 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
3460 single-precision FP regs.
3461
ada39f0b
RG
34622009-04-15 Richard Guenther <rguenther@suse.de>
3463
3464 * omp-low.c (lower_rec_input_clauses): Build correct address
3465 expressions.
3466 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 3467 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
3468 (generate_memset_zero): Fix types.
3469 * tree-profile.c (prepare_instrumented_value): Correctly
3470 widen a pointer.
3471
6866c6e8
ILT
34722009-04-15 Ian Lance Taylor <iant@google.com>
3473
3474 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
3475 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3476 for -Wall and for -Wc++-compat.
3477 (c_common_post_options): For C++, set warn_enum_compare if not
3478 already set.
3479 * c-tree.h (struct c_expr): Add field original_type.
3480 (build_external_ref): Update declaration.
3481 * c-parser.c (c_parser_braced_init): Set original_type.
3482 (c_parser_initelt): Likewise.
3483 (c_parser_expr_no_commas): Likewise.
3484 (c_parser_conditional_expression): Likewise.
3485 (c_parser_cast_expression): Likewise.
3486 (c_parser_unary_expression): Likewise. Pull setting of
3487 original_code to top of function.
3488 (c_parser_sizeof_expression): Set original_type.
3489 (c_parser_alignof_expression): Likewise.
3490 (c_parser_postfix_expression): Likewise. Pull setting of
3491 original_code to top of function.
532bfb0a 3492 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
3493 (c_parser_postfix_expression_after_primary): Likewise.
3494 (c_parser_expression): Likewise.
3495 * c-typeck.c (build_external_ref): Add type parameter. Change all
3496 callers.
3497 (c_expr_sizeof_expr): Set original_type field.
3498 (parser_build_unary_op): Likewise.
3499 (parser_build_binary_op): Likewise. Optionally warn about
3500 comparisons of enums of different types.
3501 (digest_init): Set original_type field.
3502 (really_start_incremental_init): Likewise.
3503 (push_init_level, pop_init_level): Likewise.
3504 * doc/invoke.texi (Warning Options): -Wenum-compare now
3505 supported in C.
3506
f116fecf
RG
35072009-04-15 Richard Guenther <rguenther@suse.de>
3508
3509 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3510 out a necessary conversion.
3511 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3512 names we didn't value number.
3513 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3514
25e20805
RG
35152009-04-15 Richard Guenther <rguenther@suse.de>
3516
3517 PR tree-optimization/39764
3518 * tree-ssa-ccp.c (get_value): Canonicalize value with
3519 canonicalize_float_value.
3520
90cc3676
JH
35212009-04-15 Jan Hubicka <jh@suse.cz>
3522
3523 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3524 Wrong version of patch.
3525
6d14c006
JH
35262009-04-15 Jan Hubicka <jh@suse.cz>
3527
3528 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3529
5afaa917
NS
35302009-04-15 Nathan Sidwell <nathan@codesourcery.com>
3531
3532 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3533 our distinct integral and vector types.
3534
3b482fca
RAE
35352009-04-15 Rafael Avila de Espindola <espindola@google.com>
3536
3537 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3538 * init.c (build_vtbl_address): Remove call to assemble_external.
3539
6cd1d2e2
DJ
35402009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
3541
3542 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3543 output for other floating point modes.
3544
dab71827
DN
35452009-04-14 Diego Novillo <dnovillo@google.com>
3546
3547 * diagnostic.c (diagnostic_report_diagnostic): Do not
3548 warn about loaded plugins for DK_ERROR and DK_WARNING.
3549 * c-decl.c (declspecs_add_type): Move call to
3550 invoke_plugin_callbacks ...
3551 * c-parser.c (c_parser_declspecs): ... here.
3552 * plugin.c (dump_active_plugins): Tidy output.
3553
68a607d8
DN
35542009-04-14 Diego Novillo <dnovillo@google.com>
3555 Le-Chun Wu <lcwu@google.com>
3556
3557 * configure.ac: Add --enable-plugin support.
3558 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3559 * Makefile.in (PLUGIN_H): Define.
3560 Export ENABLE_PLUGIN and GMPINC to site.exp.
3561 Add PLUGINLIBS to link command.
3562 Add/modify dependencies for plugin.o and files including plugin.h.
3563 (plugin.o): New.
3564 * config.in: Regenerate.
2ba9daa7 3565
68a607d8
DN
3566 * opts.c (common_handle_option): Handle OPT_fplugin_ and
3567 OPT_fplugin_arg_.
3568
35692009-04-14 Le-Chun Wu <lcwu@google.com>
3570
3571 * tree-pass.h (register_one_dump_file): Add a prototype for
3572 register_one_dump_file.
3573 * toplev.c (compile_file): Call initialize_plugins.
3574 (do_compile): Call invoke_plugin_callbacks.
3575 (toplev_main): Call invoke_plugin_callbacks.
3576 * common.opt: Add -fplugin= and -fplugin-arg-.
3577 * gcc-plugin.h: New public header file for plugins to include.
3578 * plugin.c: New source file.
3579 * plugin.h: New internal header file.
3580 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 3581
68a607d8
DN
3582 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3583
35842009-04-14 Diego Novillo <dnovillo@google.com>
3585
3586 * doc/plugins.texi: New.
3587 * doc/gccint.texi: Add reference to Plugins chapter.
3588 * doc/invoke.texi: Document -fplugin and -fplugin-arg
3589 * diagnostic.c (diagnostic_report_diagnostic): Warn about
3590 loaded plugins, if any.
3591 * timevar.def (TV_PLUGIN_INIT): Define.
3592 (TV_PLUGIN_RUN): Define.
3593 * plugin.c: Include timevar.h
3594 (plugins_active_p): New.
3595 (dump_active_plugins): New.
3596 (debug_active_plugins): New.
3597
50617257
JM
35982009-04-14 Joseph Myers <joseph@codesourcery.com>
3599
3600 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3601 library paths.
3602 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3603
b32f6fff
KH
36042009-04-14 Kazu Hirata <kazu@codesourcery.com>
3605
3606 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3607 the same as a minus without a shift.
3608
85d04fa2
NC
36092009-04-14 Nick Clifton <nickc@redhat.com>
3610
3611 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3612 comparisons with small integers will always produce a short
3613 branch.
3614
e495a0c8
RAE
36152009-04-14 Rafael Avila de Espindola <espindola@google.com>
3616
3617 Merge:
e495a0c8
RAE
3618 2008-12-19 Diego Novillo <dnovillo@google.com>
3619
532bfb0a 3620 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 3621
ad41bd84 36222009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
3623
3624 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3625 verification.
3626 (verify_gimple_assign_binary): Likewise. Handle shifts and
3627 rotates correctly.
3628 (verify_gimple_phi): Print the mismatched argument position.
3629 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3630 Fix types.
3631 (vect_update_init_of_dr): Likewise.
3632 * matrix-reorg.c (transform_access_sites): Do what the
3633 comment suggests.
3634 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3635
60839f5d 36362009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
3637
3638 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3639 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3640 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 3641 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
3642 remove duplicate config
3643
b0e2d008
DR
36442009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3645
3646 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3647 file_name:line_number type locator of the call site.
2ba9daa7 3648
1244a8b7
VM
36492009-04-13 Vladimir Makarov <vmakarov@redhat.com>
3650
3651 * genautomata.c: Put blank after comma.
3652 (automaton_decls): New.
3653 (struct unit_usage): Add comments to member next.
3654 (store_alt_unit_usage): Keep the list ordered.
3655 (unit_present_on_list_p, equal_alternatives_p): New.
3656 (check_regexp_units_distribution): Check units distribution
3657 correctness correctly.
3658 (main): Don't write automata if error is found. Return correct
3659 exit code.
2ba9daa7 3660
1244a8b7
VM
3661 * config/m68k/cf.md (cfv4_ds): Remove.
3662 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3663 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3664
3665 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3666 power4-load-ext, power4-store, power4-store-update,
3667 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3668 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3669 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3670 power4-sqrt, power4-isync): Modify reservation to make correct
3671 unit distribution to automata.
3672
3673 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3674 power5-store-update, power5-two, power5-three, power5-lmul,
3675 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 3676
f7dd1864
AN
36772009-04-13 Adam Nemet <anemet@caviumnetworks.com>
3678
3679 * except.c (pass_set_nothrow_function_flags): Set name and add
3680 TODO_dump_func.
3681 (set_nothrow_function_flags): Mention in the dump file when
3682 changing a function to nothrow.
3683
59a1171f
OS
36842009-04-13 Ozkan Sezer <sezeroz@gmail.com>
3685
3686 PR/39066
3687 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3688 instead of unsigned long.
3689
934c2060
RR
36902009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3691
f7dd1864
AN
3692 * config/arm/arm.c (return_used_this_function): Remove.
3693 (arm_output_function_prologue): Remove use of
934c2060 3694 return_used_this_function.
f7dd1864 3695 (output_return_instruction): Replace use of
934c2060
RR
3696 return_used_this_function
3697 by cfun->machine->return_used_this_function.
f7dd1864
AN
3698 (arm_output_epilogue): Likewise.
3699 (arm_output_function_epilogue): Likewise.
3700 (thumb_unexpanded_epilogue): Likewise.
3701 * config/arm/arm.h (struct machine_function):
934c2060 3702 New member return_used_this_function.
f7dd1864 3703
ae5cc016
MM
37042009-04-12 Mark Mitchell <mark@codesourcery.com>
3705
3706 * doc/install.texi: Correct description of default directory for
3707 --with-gxx-include-dir.
3708
a0ce68df 37092009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
3710
3711 * fold-const.c (build_range_check): Properly deal with enumeral and
3712 boolean base types.
3713
3906a4a1
SB
37142009-04-12 Steven Bosscher <steven@gcc.gnu.org>
3715
3716 * doc/invoke.texi (max_gcse_passes): Remove documentation.
3717 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3718 * params.h (MAX_GCSE_PASSES): Remove.
3719 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3720 in sequence. Remove ability to run multiple passes.
3721 (bypass_jumps): Report run as third CPROP pass.
3722
efaadb93
AN
37232009-04-12 Adam Nemet <anemet@caviumnetworks.com>
3724
3725 PR middle-end/39651
3726 * except.c (can_throw_external): Look at each insn in a SEQUENCE
3727 when deciding whether the whole SEQUENCE can throw.
3728
4c48007b
UB
37292009-04-12 Uros Bizjak <ubizjak@gmail.com>
3730
3731 PR target/39740
3732 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3733 offseted label references.
3734
b4104018
JH
37352009-04-11 Jan Hubicka <jh@suse.cz>
3736
3737 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3738
32848948
RG
37392009-04-11 Richard Guenther <rguenther@suse.de>
3740
3741 PR middle-end/39732
3742 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3743 return variables as TREE_ADDRESSABLE.
3744
8810712e
RG
37452009-04-11 Richard Guenther <rguenther@suse.de>
3746
3747 PR tree-optimization/39713
3748 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3749 reference trees have SSA_NAME operands.
3750
fa78c0c1
RG
37512009-04-11 Richard Guenther <rguenther@suse.de>
3752
3753 PR c/39712
3754 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3755 address expressions.
3756
4d722130
DK
37572009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
3758
3759 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
3760 match changes in Cygwin 1.7
3761 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3762 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
3763
567a90f5
PB
37642009-04-10 Paolo Bonzini <bonzini@gnu.org>
3765
3766 PR tree-optimization/39701
3767 * doc/invoke.texi (Optimization Options): Document change in
3768 meaning and initialization of -fdelete-null-pointer-checks.
3769
1ad2f450
L
37702009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3771
3772 PR middle-end/39701
3773 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3774
3775 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3776 here.
3777
3778 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3779
1afc5373
CF
37802009-04-10 Chao-ying Fu <fu@mips.com>
3781
3782 * doc/tm.texi (Instruction Output): Document
3783 TARGET_ASM_FINAL_POSTSCAN_INSN.
3784 * target.h (final_postscan_insn): New field in asm_out.
3785 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3786 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3787 * final.c (final_scan_insn): Call
3788 targetm.asm_out.final_postscan_insn after outputting
3789 an asm macro and a normal instruction.
3790
3791 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3792 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3793 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3794 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3795 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3796
4d35e75c
PB
37972009-04-10 Paolo Bonzini <bonzini@gnu.org>
3798
3799 PR middle-end/39701
1ad2f450
L
3800 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3801 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 3802
62c49b83
L
38032009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3804
3805 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3806
80558628
L
38072009-04-09 H.J. Lu <hongjiu.lu@intel.com>
3808
3809 PR target/39678
3810 * config/i386/i386.c (classify_argument): Handle SCmode with
3811 (bit_offset % 64) != 0.
3812
8c70d28b
SL
38132009-04-09 Sandra Loosemore <sandra@codesourcery.com>
3814
3815 * doc/invoke.texi (Optimize Options): Add cross-reference to
3816 -Q --help=optimizers examples.
3817
e1ff19bf
BE
38182009-04-10 Ben Elliston <bje@au.ibm.com>
3819
3820 PR target/36800
3821 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3822 regalign for the reg == fpr and TDmode case.
3823
52daca75
DA
38242009-04-09 David Ayers <ayers@fsfe.org>
3825
3826 PR objc/29200
3827 * objc/objc-act.c (warn_with_method): Remove helper function.
3828 (check_duplicates): Call warning and inform directly.
3829 (really_start_method): Likewise.
3830
b45f0e58
PB
38312009-04-09 Paolo Bonzini <bonzini@gnu.org>
3832
3833 * expmed.c (expand_divmod): Always use a comparison for a division
3834 by a large unsigned integer.
3835
1ad2f450
L
3836 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3837 for things others than variables or functions as nonzero.
b45f0e58 3838
748086b7
JJ
38392009-04-09 Nick Clifton <nickc@redhat.com>
3840
3841 * unwind-compat.c: Change copyright header to refer to version
3842 3 of the GNU General Public License with version 3.1 of the
3843 GCC Runtime Library Exception and to point readers at the
7a715bba 3844 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
3845 * config/alpha/crtfastmath.c: Likewise.
3846 * config/alpha/linux-unwind.h: Likewise.
3847 * config/alpha/qrnnd.asm: Likewise.
3848 * config/alpha/vms-crt0-64.c: Likewise.
3849 * config/alpha/vms-crt0.c: Likewise.
3850 * config/alpha/vms-dwarf2.asm: Likewise.
3851 * config/alpha/vms-dwarf2eh.asm: Likewise.
3852 * config/alpha/vms-psxcrt0-64.c: Likewise.
3853 * config/alpha/vms-psxcrt0.c: Likewise.
3854 * config/alpha/vms_tramp.asm: Likewise.
3855 * config/arc/initfini.c: Likewise.
3856 * config/arc/lib1funcs.asm: Likewise.
3857 * config/arm/bpabi-v6m.S: Likewise.
3858 * config/arm/bpabi.S: Likewise.
3859 * config/arm/bpabi.c: Likewise.
3860 * config/arm/crti.asm: Likewise.
3861 * config/arm/crtn.asm: Likewise.
3862 * config/arm/ieee754-df.S: Likewise.
3863 * config/arm/ieee754-sf.S: Likewise.
3864 * config/arm/lib1funcs.asm: Likewise.
3865 * config/arm/libunwind.S: Likewise.
3866 * config/arm/linux-atomic.c: Likewise.
3867 * config/arm/mmintrin.h: Likewise.
3868 * config/arm/pr-support.c: Likewise.
3869 * config/arm/unaligned-funcs.c: Likewise.
3870 * config/arm/unwind-arm.c: Likewise.
3871 * config/arm/unwind-arm.h: Likewise.
3872 * config/avr/libgcc.S: Likewise.
3873 * config/bfin/crti.s: Likewise.
3874 * config/bfin/crtlibid.s: Likewise.
3875 * config/bfin/crtn.s: Likewise.
3876 * config/bfin/lib1funcs.asm: Likewise.
3877 * config/bfin/linux-unwind.h: Likewise.
3878 * config/cris/arit.c: Likewise.
3879 * config/cris/cris_abi_symbol.c: Likewise.
3880 * config/darwin-64.c: Likewise.
3881 * config/darwin-crt2.c: Likewise.
3882 * config/darwin-crt3.c: Likewise.
3883 * config/darwin.h: Likewise.
3884 * config/dbxelf.h: Likewise.
3885 * config/dfp-bit.c: Likewise.
3886 * config/dfp-bit.h: Likewise.
3887 * config/elfos.h: Likewise.
3888 * config/fixed-bit.c: Likewise.
3889 * config/fixed-bit.h: Likewise.
3890 * config/fp-bit.c: Likewise.
3891 * config/fp-bit.h: Likewise.
3892 * config/fr30/crti.asm: Likewise.
3893 * config/fr30/crtn.asm: Likewise.
3894 * config/fr30/lib1funcs.asm: Likewise.
3895 * config/freebsd-spec.h: Likewise.
3896 * config/frv/cmovd.c: Likewise.
3897 * config/frv/cmovh.c: Likewise.
3898 * config/frv/cmovw.c: Likewise.
3899 * config/frv/frvbegin.c: Likewise.
3900 * config/frv/frvend.c: Likewise.
3901 * config/frv/lib1funcs.asm: Likewise.
3902 * config/glibc-stdint.h: Likewise.
3903 * config/h8300/clzhi2.c: Likewise.
3904 * config/h8300/crti.asm: Likewise.
3905 * config/h8300/crtn.asm: Likewise.
3906 * config/h8300/ctzhi2.c: Likewise.
3907 * config/h8300/fixunssfsi.c: Likewise.
3908 * config/h8300/lib1funcs.asm: Likewise.
3909 * config/h8300/parityhi2.c: Likewise.
3910 * config/h8300/popcounthi2.c: Likewise.
3911 * config/i386/ammintrin.h: Likewise.
3912 * config/i386/att.h: Likewise.
3913 * config/i386/avxintrin.h: Likewise.
3914 * config/i386/biarch64.h: Likewise.
3915 * config/i386/bmmintrin.h: Likewise.
3916 * config/i386/cpuid.h: Likewise.
3917 * config/i386/cross-stdarg.h: Likewise.
3918 * config/i386/crtfastmath.c: Likewise.
3919 * config/i386/crtprec.c: Likewise.
3920 * config/i386/cygming-crtbegin.c: Likewise.
3921 * config/i386/cygming-crtend.c: Likewise.
3922 * config/i386/cygwin.asm: Likewise.
3923 * config/i386/emmintrin.h: Likewise.
3924 * config/i386/gmm_malloc.h: Likewise.
3925 * config/i386/gthr-win32.c: Likewise.
3926 * config/i386/i386.h: Likewise.
3927 * config/i386/immintrin.h: Likewise.
3928 * config/i386/linux-unwind.h: Likewise.
3929 * config/i386/linux64.h: Likewise.
3930 * config/i386/mm3dnow.h: Likewise.
3931 * config/i386/mmintrin-common.h: Likewise.
3932 * config/i386/mmintrin.h: Likewise.
3933 * config/i386/nmmintrin.h: Likewise.
3934 * config/i386/pmm_malloc.h: Likewise.
3935 * config/i386/pmmintrin.h: Likewise.
3936 * config/i386/smmintrin.h: Likewise.
3937 * config/i386/sol2-c1.asm: Likewise.
3938 * config/i386/sol2-ci.asm: Likewise.
3939 * config/i386/sol2-cn.asm: Likewise.
3940 * config/i386/sol2-gc1.asm: Likewise.
3941 * config/i386/tmmintrin.h: Likewise.
3942 * config/i386/unix.h: Likewise.
3943 * config/i386/w32-unwind.h: Likewise.
3944 * config/i386/wmmintrin.h: Likewise.
3945 * config/i386/x86-64.h: Likewise.
3946 * config/i386/x86intrin.h: Likewise.
3947 * config/i386/xmmintrin.h: Likewise.
3948 * config/ia64/crtbegin.asm: Likewise.
3949 * config/ia64/crtend.asm: Likewise.
3950 * config/ia64/crtfastmath.c: Likewise.
3951 * config/ia64/crti.asm: Likewise.
3952 * config/ia64/crtn.asm: Likewise.
3953 * config/ia64/fde-glibc.c: Likewise.
3954 * config/ia64/lib1funcs.asm: Likewise.
3955 * config/ia64/linux-unwind.h: Likewise.
3956 * config/ia64/quadlib.c: Likewise.
3957 * config/ia64/unwind-ia64.c: Likewise.
3958 * config/linux.h: Likewise.
3959 * config/m32c/m32c-lib1.S: Likewise.
3960 * config/m32c/m32c-lib2-trapv.c: Likewise.
3961 * config/m32c/m32c-lib2.c: Likewise.
3962 * config/m32r/initfini.c: Likewise.
3963 * config/m68hc11/larith.asm: Likewise.
3964 * config/m68hc11/m68hc11-crt0.S: Likewise.
3965 * config/m68k/cf.md: Likewise.
3966 * config/m68k/crti.s: Likewise.
3967 * config/m68k/crtn.s: Likewise.
3968 * config/m68k/lb1sf68.asm: Likewise.
3969 * config/m68k/linux-unwind.h: Likewise.
3970 * config/mcore/crti.asm: Likewise.
3971 * config/mcore/crtn.asm: Likewise.
3972 * config/mcore/lib1.asm: Likewise.
3973 * config/mips/linux-unwind.h: Likewise.
3974 * config/mips/loongson.h: Likewise.
3975 * config/mips/mips16.S: Likewise.
3976 * config/mmix/crti.asm: Likewise.
3977 * config/mmix/crtn.asm: Likewise.
3978 * config/pa/fptr.c: Likewise.
3979 * config/pa/hpux-unwind.h: Likewise.
3980 * config/pa/lib2funcs.asm: Likewise.
3981 * config/pa/linux-atomic.c: Likewise.
3982 * config/pa/linux-unwind.h: Likewise.
3983 * config/pa/milli64.S: Likewise.
3984 * config/pa/quadlib.c: Likewise.
3985 * config/pa/stublib.c: Likewise.
3986 * config/picochip/libgccExtras/adddi3.asm: Likewise.
3987 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
3988 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
3989 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
3990 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
3991 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
3992 * config/picochip/libgccExtras/divmod15.asm: Likewise.
3993 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
3994 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
3995 * config/picochip/libgccExtras/longjmp.asm: Likewise.
3996 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
3997 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
3998 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
3999 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4000 * config/picochip/libgccExtras/setjmp.asm: Likewise.
4001 * config/picochip/libgccExtras/subdi3.asm: Likewise.
4002 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4003 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4004 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4005 * config/rs6000/750cl.h: Likewise.
4006 * config/rs6000/altivec.h: Likewise.
4007 * config/rs6000/biarch64.h: Likewise.
4008 * config/rs6000/crtresfpr.asm: Likewise.
4009 * config/rs6000/crtresgpr.asm: Likewise.
4010 * config/rs6000/crtresxfpr.asm: Likewise.
4011 * config/rs6000/crtresxgpr.asm: Likewise.
4012 * config/rs6000/crtsavfpr.asm: Likewise.
4013 * config/rs6000/crtsavgpr.asm: Likewise.
4014 * config/rs6000/darwin-asm.h: Likewise.
4015 * config/rs6000/darwin-fallback.c: Likewise.
4016 * config/rs6000/darwin-fpsave.asm: Likewise.
4017 * config/rs6000/darwin-ldouble.c: Likewise.
4018 * config/rs6000/darwin-tramp.asm: Likewise.
4019 * config/rs6000/darwin-unwind.h: Likewise.
4020 * config/rs6000/darwin-vecsave.asm: Likewise.
4021 * config/rs6000/darwin-world.asm: Likewise.
4022 * config/rs6000/e500crtres32gpr.asm: Likewise.
4023 * config/rs6000/e500crtres64gpr.asm: Likewise.
4024 * config/rs6000/e500crtres64gprctr.asm: Likewise.
4025 * config/rs6000/e500crtrest32gpr.asm: Likewise.
4026 * config/rs6000/e500crtrest64gpr.asm: Likewise.
4027 * config/rs6000/e500crtresx32gpr.asm: Likewise.
4028 * config/rs6000/e500crtresx64gpr.asm: Likewise.
4029 * config/rs6000/e500crtsav32gpr.asm: Likewise.
4030 * config/rs6000/e500crtsav64gpr.asm: Likewise.
4031 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4032 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4033 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4034 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4035 * config/rs6000/eabi-ci.asm: Likewise.
4036 * config/rs6000/eabi-cn.asm: Likewise.
4037 * config/rs6000/eabi.asm: Likewise.
4038 * config/rs6000/linux-unwind.h: Likewise.
4039 * config/rs6000/linux64.h: Likewise.
4040 * config/rs6000/paired.h: Likewise.
4041 * config/rs6000/paired.md: Likewise.
4042 * config/rs6000/ppc64-fp.c: Likewise.
4043 * config/rs6000/ppu_intrinsics.h: Likewise.
4044 * config/rs6000/rs6000.h: Likewise.
4045 * config/rs6000/si2vmx.h: Likewise.
4046 * config/rs6000/sol-ci.asm: Likewise.
4047 * config/rs6000/sol-cn.asm: Likewise.
4048 * config/rs6000/spe.h: Likewise.
4049 * config/rs6000/spu2vmx.h: Likewise.
4050 * config/rs6000/sysv4.h: Likewise.
4051 * config/rs6000/tramp.asm: Likewise.
4052 * config/rs6000/vec_types.h: Likewise.
4053 * config/s390/linux-unwind.h: Likewise.
4054 * config/s390/tpf-unwind.h: Likewise.
4055 * config/score/crti.asm: Likewise.
4056 * config/score/crtn.asm: Likewise.
4057 * config/sh/crt1.asm: Likewise.
4058 * config/sh/crti.asm: Likewise.
4059 * config/sh/crtn.asm: Likewise.
4060 * config/sh/divtab-sh4-300.c: Likewise.
4061 * config/sh/divtab-sh4.c: Likewise.
4062 * config/sh/divtab.c: Likewise.
4063 * config/sh/lib1funcs-4-300.asm: Likewise.
4064 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4065 * config/sh/lib1funcs.asm: Likewise.
4066 * config/sh/lib1funcs.h: Likewise.
4067 * config/sh/linux-atomic.asm: Likewise.
4068 * config/sh/linux-unwind.h: Likewise.
4069 * config/sh/shmedia.h: Likewise.
4070 * config/sh/sshmedia.h: Likewise.
4071 * config/sh/ushmedia.h: Likewise.
4072 * config/sparc/crtfastmath.c: Likewise.
4073 * config/sparc/linux-unwind.h: Likewise.
4074 * config/sparc/sol2-c1.asm: Likewise.
4075 * config/sparc/sol2-ci.asm: Likewise.
4076 * config/sparc/sol2-cn.asm: Likewise.
4077 * config/spu/divmodti4.c: Likewise.
4078 * config/spu/divv2df3.c: Likewise.
4079 * config/spu/float_disf.c: Likewise.
4080 * config/spu/float_unsdidf.c: Likewise.
4081 * config/spu/float_unsdisf.c: Likewise.
4082 * config/spu/float_unssidf.c: Likewise.
4083 * config/spu/mfc_multi_tag_release.c: Likewise.
4084 * config/spu/mfc_multi_tag_reserve.c: Likewise.
4085 * config/spu/mfc_tag_release.c: Likewise.
4086 * config/spu/mfc_tag_reserve.c: Likewise.
4087 * config/spu/mfc_tag_table.c: Likewise.
4088 * config/spu/multi3.c: Likewise.
4089 * config/spu/spu_internals.h: Likewise.
4090 * config/spu/spu_intrinsics.h: Likewise.
4091 * config/spu/spu_mfcio.h: Likewise.
4092 * config/spu/vec_types.h: Likewise.
4093 * config/spu/vmx2spu.h: Likewise.
4094 * config/stormy16/stormy16-lib2.c: Likewise.
4095 * config/svr4.h: Likewise.
4096 * config/sync.c: Likewise.
4097 * config/v850/lib1funcs.asm: Likewise.
4098 * config/vxlib-tls.c: Likewise.
4099 * config/vxlib.c: Likewise.
4100 * config/vxworks-dummy.h: Likewise.
4101 * config/xtensa/crti.asm: Likewise.
4102 * config/xtensa/crtn.asm: Likewise.
4103 * config/xtensa/ieee754-df.S: Likewise.
4104 * config/xtensa/ieee754-sf.S: Likewise.
4105 * config/xtensa/lib1funcs.asm: Likewise.
4106 * config/xtensa/lib2funcs.S: Likewise.
4107 * config/xtensa/linux-unwind.h: Likewise.
4108 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4109 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4110 * coretypes.h: Likewise.
4111 * crtstuff.c: Likewise.
4112 * defaults.h: Likewise.
4113 * dwarf2.h: Likewise.
4114 * emutls.c: Likewise.
4115 * gbl-ctors.h: Likewise.
4116 * gcov-io.h: Likewise.
4117 * ginclude/float.h: Likewise.
4118 * ginclude/iso646.h: Likewise.
4119 * ginclude/stdarg.h: Likewise.
4120 * ginclude/stdbool.h: Likewise.
4121 * ginclude/stddef.h: Likewise.
4122 * ginclude/stdfix.h: Likewise.
4123 * ginclude/stdint-gcc.h: Likewise.
4124 * ginclude/tgmath.h: Likewise.
4125 * gthr-aix.h: Likewise.
4126 * gthr-dce.h: Likewise.
4127 * gthr-gnat.c: Likewise.
4128 * gthr-gnat.h: Likewise.
4129 * gthr-lynx.h: Likewise.
4130 * gthr-mipssde.h: Likewise.
4131 * gthr-nks.h: Likewise.
4132 * gthr-posix.c: Likewise.
4133 * gthr-posix.h: Likewise.
4134 * gthr-posix95.h: Likewise.
4135 * gthr-rtems.h: Likewise.
4136 * gthr-single.h: Likewise.
4137 * gthr-solaris.h: Likewise.
4138 * gthr-tpf.h: Likewise.
4139 * gthr-vxworks.h: Likewise.
4140 * gthr-win32.h: Likewise.
4141 * gthr.h: Likewise.
4142 * libgcc2.c: Likewise.
4143 * libgcc2.h: Likewise.
4144 * libgcov.c: Likewise.
4145 * tsystem.h: Likewise.
4146 * typeclass.h: Likewise.
4147 * unwind-c.c: Likewise.
4148 * unwind-compat.h: Likewise.
4149 * unwind-dw2-fde-compat.c: Likewise.
4150 * unwind-dw2-fde-darwin.c: Likewise.
4151 * unwind-dw2-fde-glibc.c: Likewise.
4152 * unwind-dw2-fde.c: Likewise.
4153 * unwind-dw2-fde.h: Likewise.
4154 * unwind-dw2.c: Likewise.
4155 * unwind-dw2.h: Likewise.
4156 * unwind-generic.h: Likewise.
4157 * unwind-pe.h: Likewise.
4158 * unwind-sjlj.c: Likewise.
4159 * unwind.inc: Likewise.
4160 * config/arm/neon-gen.ml: Change generated copyright header to
4161 refer to version 3 of the GNU General Public License with
4162 version 3.1 of the GCC Runtime Library Exception and to point
4163 readers at the COPYING3 and COPYING3.RUNTIME files and the
4164 FSF's license web page.
4165 * config/arm/arm_neon.h: Regenerate.
4166
41672009-04-09 Jakub Jelinek <jakub@redhat.com>
4168
4169 * config/cris/cris.md: Change copyright header to refer to version
4170 3 of the GNU General Public License.
4171 * doc/install.texi2html: Change copyright header to refer to version
4172 3 of the GNU General Public License and to point readers at the
4173 COPYING3 file and the FSF's license web page.
4174 * config/vax/linux.h: Likewise.
4175
4a77c72b
PB
41762009-04-09 Paolo Bonzini <bonzini@gnu.org>
4177
1ad2f450
L
4178 * config/i386/i386.md (cmpcc): New.
4179 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4180 (sync_compare_and_swap_cc*): Delete.
4181
4182 * config/s390/s390.c (s390_compare_emitted): Remove.
4183 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4184 s390_compare_emitted used to be handled. Assert that modes match.
4185 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4186 refer to sync_compare_and_swap_ccsi.
4187 * config/s390/s390.h (s390_compare_emitted): Remove.
4188 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4189 instead of s390_compare_emitted.
4190 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4191 instead of s390_compare_emitted.
4192 * config/s390/s390.md (cmpcc): New.
4193 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4194 CC_REGNUM, do not pretend it's set.
4195 (sync_compare_and_swap_cc*): Delete.
4196 * config/s390/predicates.md (cc_reg_operand): New.
4197
4198 * expr.c (sync_compare_and_swap_cc): Delete.
4199 * optabs.h (sync_compare_and_swap_cc): Delete.
4200 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4201 is being used with can_compare_p.
4202 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4203 (find_cc_set): New.
4204 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4205 look for a MODE_CC set instead. Use emit_store_flag.
4206 (expand_compare_and_swap_loop): Likewise, with some additional
4207 complication to avoid a force_reg when useless. Use
4208 emit_cmp_and_jump_insns.
4209 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4210 * doc/md.texi (sync_compare_and_swap_cc): Merge with
4211 sync_compare_and_swap documentation.
4a77c72b 4212
0c0efb33
JH
42132009-04-09 Jan Hubicka <jh@suse.cz>
4214
4215 * except.c (find_prev_try): Break out from ....
4216 (duplicate_eh_regions): ... here; properly update prev_try pointers
4217 when duplication part of tree.
4218 (dump_eh_tree): Improve dumping.
4219 (verify_eh_region): New.
4220 (verify_eh_tree): Use it.
4221
22a65a54
RG
42222009-04-06 Richard Guenther <rguenther@suse.de>
4223
4224 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4225 &ARRAY addresses by adjusting their types and prepending
4226 a conversion.
4227 * tree-cfg.c (verify_gimple_assign_single): Verify that
4228 addresses are correct.
4229
f76968e6
RG
42302009-04-09 Richard Guenther <rguenther@suse.de>
4231
4232 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4233 indices into an array reference if possible.
4234 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4235 Fold POINTER_PLUS_EXPR statements with invariant address.
4236
c90c5fb5
AM
42372009-04-09 Alan Modra <amodra@bigpond.net.au>
4238
4239 PR target/39634
4240 * config.gcc (powerpc64-*-linux*): Always build biarch.
4241
17cede2e
JM
42422009-04-09 Joseph Myers <joseph@codesourcery.com>
4243
4244 PR c/39613
4245 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4246 it and pedwarn if this results in an INTEGER_CST.
4247
a3337ea2
KG
42482009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4249
4250 * doc/install.texi: Update minimum GMP version. Remove obsolete
4251 text in MPFR section.
4252
ce9ba79b
JJ
42532009-04-08 Jakub Jelinek <jakub@redhat.com>
4254
4255 * dwarf2out.c (class_scope_p): New static inline.
4256 (class_or_namespace_scope_p): Use it.
4257 (gen_variable_die): Use DW_TAG_member tag for static data member
4258 declarations instead of DW_TAG_variable.
4259
4f0ae266
JJ
4260 PR middle-end/39573
4261 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4262 variables.
4263
d27f0ddc
RG
42642009-04-08 Richard Guenther <rguenther@suse.de>
4265
4266 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4267 valueize random data.
4268
557cc596
DE
42692009-04-08 David Edelsohn <edelsohn@gnu.org>
4270
4271 * config.gcc (aix tm_file): Add aix-stdint.h.
4272 (aix tm clause use_gcc_stdint): Set to wrap.
4273 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 4274
75ccc1e7
RG
42752009-04-08 Richard Guenther <rguenther@suse.de>
4276
4277 PR middle-end/36291
4278 * tree-dfa.c (add_referenced_var): Do not recurse into
4279 global initializers.
4280 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4281 exposed variables.
4282 (fold_const_aggregate_ref): Likewise.
4283
c6963675
PB
42842009-04-08 Paolo Bonzini <bonzini@gnu.org>
4285
6c44cf79
L
4286 * recog.c (ordered_comparison_operator): New.
4287 * gensupport.c (std_preds): Add it.
c6963675
PB
4288 * doc/md.texi (Machine-Independent Predicates): Document it.
4289
6d07ad98
JH
42902009-04-08 Jan Hubicka <jh@suse.cz>
4291
4292 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4293 * function.h (rtl_eh): Remove exception_handler_label_map.
4294 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4295 remove_exception_handler_label, for_each_eh_label_1): Remove.
4296 (rtl_remove_unreachable_regions): Remove.
4297 (convert_from_eh_region_ranges): Do not remove unreachable regions.
4298 (find_exception_handler_labels): Don't build the hashtable.
4299 (maybe_remove_eh_handler): Remove.
4300 (for_each_eh_label): Rewrite to walk the tree.
4301 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4302 * except.h (maybe_remove_eh_handler): Remove.
4303 * passes.c (init_optimization_passes): Schedule second EH cleanup
4304 before out-of-ssa.
4305 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4306 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4307
7ddf71e3
PB
43082009-04-08 Paolo Bonzini <bonzini@gnu.org>
4309
4310 * genoutput.c (validate_optab_operands): New.
4311 (gen_insn, gen_expand): Call it.
4312
4313 * genflags.c (gen_insn): Detect misused iterators.
4314 (main): Pass line_no to gen_insn, exit with status 1 on error.
4315
4316 * genextract.c (line_no): Make global.
4317 (VEC_safe_set_locstr): Change assertion to error message.
4318 (main): Exit with status 1 on error.
4319
4d84fe7c
JM
43202009-04-08 Joseph Myers <joseph@codesourcery.com>
4321
4322 PR c/39614
4323 PR c/39673
4324 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4325 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4326 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4327 * c-convert.c (convert): Do not call fold on results of conversion
4328 functions when the result is a C_MAYBE_CONST_EXPR.
4329 * c-parser.c (c_parser_postfix_expression): Do not fold condition
4330 of __builtin_choose_expr.
4331 * c-typeck.c (remove_c_maybe_const_expr): New.
4332 (build_unary_op, build_conditional_expr, build_compound_expr,
4333 build_binary_op, c_objc_common_truthvalue_conversion): Call
4334 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4335 integer operands.
4336
60839f5d 43372009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 4338
2ba9daa7 4339 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 4340 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 4341
8e481a2c
DS
43422009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
4343
4344 PR bootstrap/39660
4345 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4346 mix declarations and code.
4347
ee618c17
BE
43482009-04-08 Ben Elliston <bje@au.ibm.com>
4349
4350 * gcc.c: Replace `CC' with `GCC' throughout.
4351
f2a758a2
L
43522009-04-07 H.J. Lu <hongjiu.lu@intel.com>
4353
4354 * doc/invoke.texi: Document Atom support.
4355
6ea2bd47
JM
43562009-04-07 Jason Merrill <jason@redhat.com>
4357
4358 PR c++/25185
4359 * c-common.h, c-common.c: Add flag_pretty_templates.
4360 * c-opts.c (c_common_handle_option): Set it.
4361 * c.opt: Add -fno-pretty-templates.
4362 * doc/invoke.texi (C++ Dialect Options): Likewise.
4363
fcb82ab0
UB
43642009-04-07 Uros Bizjak <ubizjak@gmail.com>
4365
4366 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4367 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4368 (ia64_expand_builtin): Likewise.
4369
dc5e7298
MJ
43702009-04-07 Martin Jambor <mjambor@suse.cz>
4371
4372 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4373 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4374 ADDR_EXPRS are include too.
4375
0609b355
RG
43762009-04-07 Richard Guenther <rguenther@suse.de>
4377
4378 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4379 decls are only used if passes as parameters or if they are
4380 local statics and the call is not to a builtin.
4381 (call_may_clobber_ref_p_1): Likewise.
4382
d8e535fa
PB
43832009-04-07 Paolo Bonzini <bonzini@gnu.org>
4384
4385 * expr.c (do_store_flag): Remove last argument. Simplify code
4386 to avoid duplication of tests already done by can_compare_p.
4387 (expand_expr_real_1): Adjust caller.
4388
c3c64f50
PB
43892009-04-07 Paolo Bonzini <bonzini@gnu.org>
4390
fcb82ab0
UB
4391 * optabs.c (can_compare_p): Test the predicate of a
4392 cbranch and cstore pattern.
c3c64f50 4393
9a53bc17
PB
43942009-04-07 Paolo Bonzini <bonzini@gnu.org>
4395
fcb82ab0
UB
4396 * expr.c (convert_move): Use emit_store_flag instead of
4397 "emulating" it.
9a53bc17 4398
67b8f1c1
PB
43992009-04-07 Paolo Bonzini <bonzini@gnu.org>
4400
fcb82ab0
UB
4401 * config/i386/i386.c (ix86_compare_emitted): Remove.
4402 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4403 ix86_compare_op0 like ix86_compare_emitted used to be handled.
4404 * config/i386/i386.h (ix86_compare_emitted): Remove.
4405 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4406 instead of ix86_compare_emitted.
4407 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 4408
44509946
AS
44092009-04-07 Andrew Stubbs <ams@codesourcery.com>
4410
4411 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4412 Add t-sysroot-suffix to tmake_file.
4413 * config/print-sysroot-suffix.sh: New file.
4414 * config/t-sysroot-suffix: New file.
4415
ca22d882
BE
44162009-04-07 Ben Elliston <bje@au.ibm.com>
4417
4418 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4419 as the latter produces a warning when the target does not support
4420 infinity.
4421
95aac11b
BE
44222009-04-07 Ben Elliston <bje@au.ibm.com>
4423
4424 * dfp.c: Replace type punning assignments with memcpy throughout.
4425 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 4426
633dd061
AM
44272009-04-07 Alan Modra <amodra@bigpond.net.au>
4428
4429 PR target/39634
4430 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4431 Include soft-fp/t-softfp after rs6000/t-linux64.
4432
fe0a25ec
EB
44332009-04-06 Eric Botcazou <ebotcazou@adacore.com>
4434
4435 * stor-layout.c (set_sizetype): Use the full precision of their
4436 machine mode for bitsize types.
4437
0c011bc3
L
44382009-04-06 H.J. Lu <hongjiu.lu@intel.com>
4439
4440 * config/i386/i386.md: Revert 2 accidental checkins.
4441
b6837b94 44422009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 4443 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
4444 H.J. Lu <hongjiu.lu@intel.com>
4445
4446 Atom pipeline model, tuning and insn selection.
4447 * config.gcc (atom): Add atom config options and target.
4448
4449 * config/i386/atom.md: New.
4450
4451 * config/i386/i386.c (atom_cost): New cost.
4452 (m_ATOM): New macro flag.
4453 (initial_ix86_tune_features): Set m_ATOM.
4454 (x86_accumulate_outgoing_args): Likewise.
4455 (x86_arch_always_fancy_math_387): Likewise.
4456 (processor_target): Add Atom cost.
4457 (cpu_names): Add Atom cpu name.
4458 (override_options): Set Atom ISA.
4459 (ix86_issue_rate): New case PROCESSOR_ATOM.
4460 (ix86_adjust_cost): Likewise.
4461
4462 * config/i386/i386.h (TARGET_ATOM): New target macro.
4463 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4464 (TARGET_OPT_AGU): New target option.
4465 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4466 (processor_type): Add PROCESSOR_ATOM.
4467
4468 * config/i386/i386.md (cpu): Add new value "atom".
4469 (use_carry, movu): New attr.
4470 (atom.md): Include atom.md.
4471 (adddi3_carry_rex64): Set attr "use_carry".
4472 (addqi3_carry): Likewise.
4473 (addhi3_carry): Likewise.
4474 (addsi3_carry): Likewise.
4475 (*addsi3_carry_zext): Likewise.
4476 (subdi3_carry_rex64): Likewise.
4477 (subqi3_carry): Likewise.
4478 (subhi3_carry): Likewise.
4479 (subsi3_carry): Likewise.
4480 (x86_movdicc_0_m1_rex64): Likewise.
4481 (*x86_movdicc_0_m1_se): Likewise.
4482 (x86_movsicc_0_m1): Likewise.
4483 (*x86_movsicc_0_m1_se): Likewise.
4484 (*adddi_1_rex64): Emit add insn as much as possible.
4485 (*addsi_1): Likewise.
4486 (return_internal): Set atom_unit.
4487 (return_internal_long): Likewise.
4488 (return_pop_internal): Likewise.
4489 (*rcpsf2_sse): Set atom_sse_attr attr.
4490 (*qrt<mode>2_sse): Likewise.
4491 (*prefetch_sse): Likewise.
4492
4493 * config/i386/i386-c.c (ix86_target_macros_internal): New case
4494 PROCESSOR_ATOM.
4495 (ix86_target_macros_internal): Likewise.
4496
4497 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4498 (*prefetch_sse_rex): Likewise.
4499 (sse_rcpv4sf2): Likewise.
4500 (sse_vmrcpv4sf2): Likewise.
4501 (sse_sqrtv4sf2): Likewise.
4502 (<sse>_vmsqrt<mode>2): Likewise.
4503 (sse_ldmxcsr): Likewise.
4504 (sse_stmxcsr): Likewise.
4505 (*sse_sfence): Likewise.
4506 (sse2_clflush): Likewise.
4507 (*sse2_mfence): Likewise.
4508 (*sse2_lfence): Likewise.
4509 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4510 (<sse>_movup<ssemodesuffixf2c>): Likewise.
4511 (avx_movdqu<avxmodesuffix>): Likewise.
4512 (avx_lddqu<avxmodesuffix>): Likewise.
4513 (sse2_movntv2di): Change attr "type" to "ssemov".
4514 (sse2_movntsi): Likewise.
4515 (rsqrtv8sf2): Change attr "type" to "sseadd".
4516 (sse3_addsubv2df3): Set attr "atom_unit".
4517 (sse3_h<plusminus_insn>v4sf3): Likewise.
4518 (*sse2_pmaddwd): Likewise.
4519 (*vec_extractv2di_1_rex64): Likewise.
4520 (*vec_extractv2di_1_avx): Likewise.
4521 (sse2_psadbw): Likewise.
4522 (ssse3_phaddwv8hi3): Likewise.
4523 (ssse3_phaddwv4hi3): Likewise.
4524 (ssse3_phadddv4si3): Likewise.
4525 (ssse3_phadddv2si3): Likewise.
4526 (ssse3_phaddswv8hi3): Likewise.
4527 (ssse3_phaddswv4hi3): Likewise.
4528 (ssse3_phsubwv8hi3): Likewise.
4529 (ssse3_phsubwv4hi3): Likewise.
4530 (ssse3_phsubdv4si3): Likewise.
4531 (ssse3_phsubdv2si3): Likewise.
4532 (ssse3_phsubswv8hi3): Likewise.
4533 (ssse3_phsubswv4hi3): Likewise.
4534 (ssse3_pmaddubsw128): Likewise.
4535 (sse3_pmaddubsw: Likewise.
4536 (ssse3_palignrti): Likewise.
4537 (ssse3_palignrdi): Likewise.
4538
53e350d3
GP
45392009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
4540
4541 * doc/install.texi (Specific): Fix two cross-references to MinGW.
4542
439ef907
RG
45432009-04-06 Richard Guenther <rguenther@suse.de>
4544
4545 PR tree-optimization/28868
4546 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4547 of which PHI results we inserted.
4548 (insert_into_preds_of_block): Record inserted PHIs.
4549 (eliminate): Eliminate redundant PHI nodes.
4550 (init_pre): Init inserted_phi_names.
4551
4bad83f5
RG
45522009-04-06 Richard Guenther <rguenther@suse.de>
4553
4554 PR tree-optimization/39643
4555 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4556 IMAGPART_EXPRs of complex constants.
4557 (execute_fold_all_builtins): If we folded a call queue
4558 TODO_update_address_taken.
4559
570c4247
JH
45602009-04-06 Jan Hubicka <jh@suse.cz>
4561
4562 PR middle-end/39659
4563 * except.c (remove_unreachable_regions): Propagate may_contain_throw
4564 flag.
4565
a460d7a1
AS
45662009-04-06 Andrew Stubbs <ams@codesourcery.com>
4567
4568 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4569 delay slot.
4570 (ic_invalidate_array): Likewise.
4571
60839f5d 45722009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
4573
4574 * calls.c (emit_library_call_value_1): Fix a problem with parameter
4575 alignment for library calls.
4576
7d253f6e
DS
45772009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
4578
4579 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
4580 (mingw32 tm clause use_gcc_stdint): Set to wrap.
4581 * config/i386/mingw-stdint.h: New file.
4582
941c3614
RB
45832009-04-05 Richard Guenther <rguenther@suse.de>
4584
4585 PR tree-optimization/39648
4586 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4587 our &A vs. &A[0] IL deficiencies.
4588
12633413
JH
45892009-04-04 Jan Hubicka <jh@suse.cz>
4590
941c3614
RB
4591 * except.c (sjlj_find_directly_reachable_regions): Be ready for
4592 removed toplevel regions.
12633413
JH
4593 (sjlj_mark_call_sites): Likewise.
4594
bb2aaded
DK
45952009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
4596
4597 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
4598 (cygwin tm clause use_gcc_stdint): Set to wrap.
4599 * config/i386/cygwin-stdint.h: New file.
4600
86290011
RG
46012009-04-04 Richard Guenther <rguenther@suse.de>
4602
4603 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4604 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4605 single-argument PHIs if we are in loop-closed SSA form.
4606 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4607 for the pre-condition.
4608 (slpeel_tree_peel_loop_to_edge): Likewise.
4609 (vect_build_loop_niters): Take an optional sequence to append stmts.
4610 (vect_generate_tmps_on_preheader): Likewise.
4611 (vect_do_peeling_for_loop_bound): Take extra guards for the
4612 pre-condition.
4613 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
4614 the cost model check.
4615 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 4616 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
4617 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4618 (vect_do_peeling_for_loop_bound): Likewise.
4619 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4620 loop bound only record extra pre-conditions, do not apply loop
4621 versioning.
4622
5eeeac64
RG
46232009-04-04 Richard Guenther <rguenther@suse.de>
4624
4625 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4626 renaming code.
4627
1ff7d06b
JH
46282009-04-04 Jan Hubicka <jh@suse.cz>
4629
4630 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4631 last_basic_block for size of bb->index indexed array.
4632 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4633 compute_out, link_btr_uses, build_btr_def_use_webs,
4634 build_btr_def_use_webs, migrate_btr_defs): Likewise.
4635
14925fcd
JH
46362009-04-04 Jan Hubicka <jh@suse.cz>
4637
4638 * except.c (remove_eh_handler_and_replace): Break out from ...
4639 (remove_eh_handler): ... here.
4640 (bring_to_root): New function.
4641 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4642 handled ones, bring others to root of tree.
4643
4e6d1743
JH
46442009-04-04 Jan Hubicka <jh@suse.cz>
4645
4cb735f7
JH
4646 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4647 (all_phis_safe_to_merge): New function.
4648 (update_info): New structure.
4649 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4650 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 4651
c6803d43
RG
46522009-04-04 Richard Guenther <rguenther@suse.de>
4653
4654 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4655 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4656 (append_vuse): Likewise.
4657
54f5943c
JJ
46582009-04-04 Jakub Jelinek <jakub@redhat.com>
4659
4660 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4661 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4662 instead of REG_UNSAVED for DW_CFA_undefined.
4663 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4664 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4665 outermost frame.
4666
aad2bccb
RE
46672009-04-04 Richard Earnshaw <rearnsha@arm.com>
4668
4669 PR target/39501
4670 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4671 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4672 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4673
aa7069aa
RG
46742009-04-04 Richard Guenther <rguenther@suse.de>
4675
4676 PR tree-optimization/8781
4677 PR tree-optimization/37892
4678 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4679 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4680 (valueize_refs): Call it for *& valueizations.
4681 (shared_reference_ops_from_ref): Rename to ...
4682 (valueize_shared_reference_ops_from_ref): ... this and valueize.
4683 (shared_reference_ops_from_call): Rename to ...
4684 (valueize_shared_reference_ops_from_call): ... this and valueize.
4685 (vn_reference_lookup): Update.
4686 (visit_reference_op_call): Likewise.
4687 * tree-ssa-pre.c (phi_translate_1): Fold *&.
4688 (eliminate): Value-replace the call address in call statements.
4689
cd15ad3e
RG
46902009-04-04 Richard Guenther <rguenther@suse.de>
4691
4692 PR tree-optimization/39636
4693 * tree-ssa-forwprop.c
4694 (forward_propagate_addr_into_variable_array_index): Check for
4695 GIMPLE_ASSIGN before accessing the rhs code.
4696
462f3262
JM
46972009-04-03 Jason Merrill <jason@redhat.com>
4698
4699 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4700
6adb807e
SE
47012009-04-03 Steve Ellcey <sje@cup.hp.com>
4702
4703 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4704 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4705 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4706 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4707 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4708 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4709 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4710 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4711 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4712 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4713 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4714 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4715 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4716 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4717 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4718 Use fr_reg_or_fp01_operand instead of fr_register_operand
4719
4720 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4721 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4722 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4723
174b3107
VM
47242009-04-03 Vladimir Makarov <vmakarov@redhat.com>
4725
b844e5d8
L
4726 PR rtl-optimization/39607
4727 PR rtl-optimization/39631
7a715bba
UB
4728
4729 Revert:
2ba9daa7 4730
174b3107
VM
4731 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
4732 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4733 instead of DF_LR_OUT.
4734 * ira-lives.c (process_bb_node_lives): Ditto.
4735 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4736 instead of DF_LR_{OUT,IN}.
4737 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4738 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4739
535b544a
SB
47402009-04-03 Steven Bosscher <steven@gcc.gnu.org>
4741
4742 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4743 (execute_lower_omp): Always run but take the short way out if -fopenmp
4744 is not given.
4745 (gate_lower_omp): Remove, forcing the pass manager to always run the
4746 pass and always set PROP_gimple_lomp.
4747 (pass_lower_omp): Remove gate function.
4748 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4749 PROP_trees. Instead, require it.
4750 * ipa-cp.c (pass_ipa_cp): Likewise.
4751 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4752 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4753 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4754 and PROP_gimple_leh.
4755
5006671f
RG
47562009-04-03 Richard Guenther <rguenther@suse.de>
4757
4758 PR middle-end/13146
4759 PR tree-optimization/23940
4760 PR tree-optimization/33237
4761 PR middle-end/33974
4762 PR middle-end/34093
4763 PR tree-optimization/36201
4764 PR tree-optimization/36230
4765 PR tree-optimization/38049
4766 PR tree-optimization/38207
4767 PR tree-optimization/38230
4768 PR tree-optimization/38301
4769 PR tree-optimization/38585
4770 PR middle-end/38895
4771 PR tree-optimization/38985
4772 PR tree-optimization/39299
4773 * tree-ssa-structalias.h: Remove.
4774 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
4775 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
4776 (struct vuse_element_d): Remove.
4777 (struct vuse_vec_d): Likewise.
4778 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
4779 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
4780 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
4781 VUSE_ELEMENT_VAR): Likewise.
4782 (struct voptype_d): Likewise.
4783 (NUM_VOP_FREE_BUCKETS): Likewise.
4784 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
4785 (struct stmt_operands_d): Remove.
4786 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
4787 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
4788 VDEF_NUM, VDEF_VECT): Likewise.
4789 (copy_virtual_operands): Remove.
4790 (operand_build_cmp): Likewise.
4791 (create_ssa_artificial_load_stmt): Likewise.
4792 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
4793 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
4794 vuse_index and mayuse_index members. Pack and move done and iter_type
4795 members to the front.
4796 (SSA_OP_VMAYUSE): Remove.
4797 (SSA_OP_VIRTUAL_USES): Adjust.
4798 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
4799 (unlink_stmt_vdef): Declare.
4800 (add_to_addressable_set): Remove.
4801 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
4802 (vrp_visit_stmt): Likewise.
4803 * doc/tree-ssa.texi (Alias analysis): Update.
4804 * doc/invoke.texi (max-aliased-vops): Remove docs.
4805 (avg-aliased-vops): Likewise.
4806 * tree-into-ssa.c (syms_to_rename): Remove.
4807 (need_to_update_vops_p): Likewise.
4808 (need_to_initialize_update_ssa_p): Rename to ...
4809 (update_ssa_initialized_fn): ... this. Track function we are
4810 initialized for.
4811 (symbol_marked_for_renaming): Simplify.
4812 (add_new_name_mapping): Do not set need_to_update_vops_p.
4813 (dump_currdefs): Use SYMS_TO_RENAME.
4814 (rewrite_update_stmt): Always walk all uses/defs.
4815 (dump_update_ssa): Adjust.
4816 (init_update_ssa): Take function argument. Track what we are
4817 initialized for.
4818 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
4819 (create_new_def_for): Initialize for cfun, assert we are initialized
4820 for cfun.
4821 (mark_sym_for_renaming): Simplify.
4822 (mark_set_for_renaming): Do not initialize update-ssa.
4823 (need_ssa_update_p): Simplify. Take function argument.
4824 (name_mappings_registered_p): Assert we ask for the correct function.
4825 (name_registered_for_update_p): Likewise.
4826 (ssa_names_to_replace): Likewise.
4827 (release_ssa_name_after_update_ssa): Likewise.
4828 (update_ssa): Likewise. Use SYMS_TO_RENAME.
4829 (dump_decl_set): Do not print a newline.
4830 (debug_decl_set): Do it here.
4831 (dump_update_ssa): And here.
4832 * tree-ssa-loop-im.c (move_computations): Adjust.
4833 (movement_possibility): Likewise.
4834 (determine_max_movement): Likewise.
4835 (gather_mem_refs_stmt): Likewise.
4836 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
4837 or NAME_MEMORY_TAG.
4838 * tree-complex.c (update_all_vops): Remove.
4839 (expand_complex_move): Adjust.
4840 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
4841 Simplify test for memory referencing statement. Exclude
4842 non-invariant ADDR_EXPRs.
4843 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
4844 * tree-loop-distribution.c (generate_memset_zero): Adjust.
4845 (rdg_flag_uses): Likewise.
4846 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
4847 related code.
4848 (tree_optimize_tail_calls_1): Also split the
4849 edge from the entry block if we have degenerate PHI nodes in
4850 the first basic block.
4851 * tree.c (init_ttree): Remove memory-tag related code.
4852 (tree_code_size): Likewise.
4853 (tree_node_structure): Likewise.
4854 (build7_stat): Re-write to be build6_stat.
4855 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
4856 (SSA_VAR_P): Adjust.
4857 (struct tree_memory_tag): Remove.
4858 (struct tree_memory_partition_tag): Likewise.
4859 (union tree_node): Adjust.
4860 (build7): Re-write to be build6.
4861 * tree-pass.h (pass_reset_cc_flags): Remove.
4862 (TODO_update_address_taken): New flag.
4863 (pass_simple_dse): Remove.
4864 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
4865 * params.h (MAX_ALIASED_VOPS): Remove.
4866 (AVG_ALIASED_VOPS): Likewise.
4867 * omp-low.c (expand_omp_taskreg): Update SSA form.
4868 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
4869 aliases the lhs in a copy stmt.
4870 * tree-ssa-dse.c (struct address_walk_data): Remove.
4871 (memory_ssa_name_same): Likewise.
4872 (memory_address_same): Likewise.
4873 (get_kill_of_stmt_lhs): Likewise.
4874 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
4875 unused stores. Look through PHI nodes into post-dominated regions.
4876 (dse_optimize_stmt): Simplify. Properly remove stores.
4877 (tree_ssa_dse): Compute dominators.
4878 (execute_simple_dse): Remove.
4879 (pass_simple_dse): Likewise.
4880 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
4881 gimple_loaded_syms and gimple_stored_syms computation.
4882 * toplev.c (dump_memory_report): Dump alias and pta stats.
4883 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
4884 (vn_reference_eq): Likewise.
4885 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
4886 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
4887 valueize_vuses): Remove.
4888 (get_def_ref_stmt_vuses): Simplify. Rename to ...
4889 (get_def_ref_stmt_vuse): ... this.
4890 (vn_reference_lookup_2): New function.
4891 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
4892 walking equivalent vuses. Simplify.
4893 (vn_reference_lookup): Likewise.
4894 (vn_reference_insert): Likewise.
4895 (vn_reference_insert_pieces): Likewise.
4896 (visit_reference_op_call): Simplify.
4897 (visit_reference_op_load): Likewise.
4898 (visit_reference_op_store): Likewise.
4899 (init_scc_vn): Remove shared_lookup_vuses initialization.
4900 (free_scc_vn): Remove shared_lookup_vuses freeing.
4901 (sort_vuses, sort_vuses_heap): Remove.
4902 (get_ref_from_reference_ops): Export.
4903 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
4904 vector with single vuse pointer.
4905 (vn_reference_lookup_pieces, vn_reference_lookup,
4906 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
4907 (shared_vuses_from_stmt): Remove.
4908 (get_ref_from_reference_ops): Declare.
4909 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
4910 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4911 memory-tag related code.
4912 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
4913 (likely_value): Add comment, skip static-chain of call statements.
4914 (surely_varying_stmt_p): Adjust.
4915 (gimplify_and_update_call_from_tree): Likewise.
4916 (execute_fold_all_builtins): Do not rebuild alias info.
4917 (gimplify_and_update_call_from_tree): Properly update VOPs.
4918 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
4919 (copy_ref_info): Remove memory-tag related code.
4920 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
4921 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
4922 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
4923 computation.
4924 * tree-ssa-dom.c (gimple_p): Remove typedef.
4925 (eliminate_redundant_computations): Adjust.
4926 (record_equivalences_from_stmt): Likewise.
4927 (avail_expr_hash): Likewise.
4928 (avail_expr_eq): Likewise.
7a715bba 4929 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
4930 (stmt_makes_single_load): Likewise.
4931 (stmt_makes_single_store): Likewise.
4932 * tree-ssa-alias.c: Rewrite completely.
4933 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
4934 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
4935 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
4936 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
4937 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
4938 Remove public functions.
4939 (pass_reset_cc_flags): Remove.
4940 (pass_build_alias): Move ...
4941 * tree-ssa-structalias.c (pass_build_alias): ... here.
4942 * tree-ssa-alias.c (may_be_aliased): Move ...
4943 * tree-flow-inline.h (may_be_aliased): ... here.
4944 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
4945 count_uses_and_derefs): Move ...
4946 * gimple.c: ... here.
4947 * gimple.h (count_uses_and_derefs): Declare.
4948 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
4949 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
4950 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
4951 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
4952 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
4953 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
4954 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
4955 New functions.
4956 * tree-dfa.c (refs_may_alias_p): Move ...
4957 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
4958 * tree-ssa-alias.h: New file.
4959 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
4960 (statement_sink_location): Likewise.
4961 * opts.c (decode_options): Do not adjust max-aliased-vops or
4962 avg-aliased-vops values.
4963 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
4964 (TV_CALL_CLOBBER): Likewise.
4965 (TV_FLOW_SENSITIVE): Likewise.
4966 (TV_FLOW_INSENSITIVE): Likewise.
4967 (TV_MEMORY_PARTITIONING): Likewise.
4968 (TV_ALIAS_STMT_WALK): New timevar.
4969 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
4970 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
4971 (get_address_description): Remove memory-tag related code.
4972 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
4973 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
4974 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
4975 and immediate uses in statements. Document.
4976 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
4977 (dump_symbols): Remove.
4978 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
4979 * alias.c (get_deref_alias_set): New function split out from ...
4980 (get_alias_set): ... here.
4981 * alias.h (get_deref_alias_set): Declare.
4982 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
4983 type parameter. Remove restrict pointer handling. Create a
4984 ref-all pointer in case type-based alias sets do not conflict.
4985 (vect_analyze_data_refs): Remove SMT related code.
4986 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
4987 (vectorizable_load): Likewise.
4988 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
4989 (DR_SYMBOL_TAG, DR_VOPS): Remove.
4990 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
4991 Ignore vops and SMTs.
4992 (dr_analyze_alias): Likewise..
4993 (free_data_ref): Likewise.
4994 (create_data_ref): Likewise.
4995 (analyze_all_data_dependences): Likewise.
4996 (get_references_in_stmt): Adjust.
4997 * tree-flow-inline.h (gimple_aliases_computed_p,
4998 gimple_addressable_vars, gimple_call_clobbered_vars,
4999 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5000 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5001 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5002 gimple_mem_ref_stats): Remove.
5003 (gimple_vop): New function.
5004 (op_iter_next_use): Remove vuses and mayuses cases.
5005 (op_iter_next_def): Remove vdefs case.
5006 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5007 (clear_and_done_ssa_iter): Do not set removed fields.
5008 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
5009 Assert we are not iterating over vuses or vdefs if not also
5010 iterating over uses or defs.
5011 (op_iter_init_use): Likewise.
5012 (op_iter_init_def): Likewise.
5013 (op_iter_next_vdef): Remove.
5014 (op_iter_next_mustdef): Likewise.
5015 (op_iter_init_vdef): Likewise.
5016 (compare_ssa_operands_equal): Likewise.
5017 (link_use_stmts_after): Handle vuse operand.
5018 (is_call_used): Use is_call_clobbered.
5019 (is_call_clobbered): Global variables are always call clobbered,
5020 query the call-clobbers bitmap.
5021 (mark_call_clobbered): Ignore global variables.
5022 (clear_call_clobbered): Likewise.
5023 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5024 virtual operands sanity check.
5025 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5026 Remove.
5027 (TARGET_MEM_REF): Remove TMR_TAG operand.
5028 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5029 Remove call-clobber related code.
5030 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
5031 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5032 partitions or escape reason.
5033 (get_single_def_stmt, get_single_def_stmt_from_phi,
5034 get_single_def_stmt_with_phi): Remove.
5035 (dump_referenced_vars): Tidy.
5036 (get_ref_base_and_extent): Allow bare decls.
5037 (collect_dfa_stats): Adjust.
5038 * graphite.c (rename_variables_in_stmt): Adjust.
5039 (graphite_copy_stmts_from_block): Likewise.
5040 (translate_clast): Likewise.
5041 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5042 (EXPR_DIES): New.
5043 (translate_vuse_through_block): Use the oracle.
5044 (phi_translate_1): Adjust.
5045 (value_dies_in_block_x): Use the oracle. Cache the outcome
5046 in EXPR_DIES.
5047 (valid_in_sets): Check if the VUSE for
5048 a REFERENCE is available.
5049 (eliminate): Do not remove stmts during elimination,
5050 instead queue and remove them afterwards.
5051 (do_pre): Do not rebuild alias info.
5052 (pass_pre): Run TODO_rebuild_alias before PRE.
5053 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5054 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5055 (mark_all_v_defs_stmt): Remove.
5056 (mark_all_v_defs_seq): Adjust.
5057 (sra_replace): Likewise.
5058 (scalarize_use): Likewise.
5059 (scalarize_copy): Likewise.
5060 (scalarize_init): Likewise.
5061 (scalarize_ldst): Likewise.
5062 (todoflags): Remove.
5063 (tree_sra): Do not rebuild alias info.
5064 (tree_sra_early): Adjust.
5065 (pass_sra): Run TODO_update_address_taken before SRA.
5066 * tree-predcom.c (set_alias_info): Remove.
5067 (prepare_initializers_chain): Do not call it.
5068 (mark_virtual_ops_for_renaming): Adjust.
5069 (mark_virtual_ops_for_renaming_list): Remove.
5070 (initialize_root_vars): Adjust.
5071 (initialize_root_vars_lm): Likewise.
5072 (prepare_initializers_chain): Likewise.
5073 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5074 (may_propagate_copy_into_stmt): Likewise.
5075 (merge_alias_info): Do nothing for now.
5076 (propagate_tree_value_into_stmt): Adjust.
5077 (stmt_may_generate_copy): Likewise.
5078 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5079 not mark symbols for renaming.
5080 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5081 with the same statement, make sure to update the new pointed-to one.
5082 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5083 call statements, do not mark symbols for renaming.
5084 (mark_operand_necessary): Dump something.
5085 (ref_may_be_aliased): New function.
5086 (mark_aliased_reaching_defs_necessary_1): New helper function.
5087 (mark_aliased_reaching_defs_necessary): Likewise.
5088 (mark_all_reaching_defs_necessary_1): Likewise.
5089 (mark_all_reaching_defs_necessary): Likewise.
5090 (propagate_necessity): Do not process virtual PHIs. For
5091 non-aliased loads mark all reaching definitions as necessary.
5092 For aliased loads and stores mark the immediate dominating
5093 aliased clobbers as necessary.
5094 (visited): New global static.
5095 (perform_tree_ssa_dce): Free visited bitmap after propagating
5096 necessity.
5097 (remove_dead_phis): Perform simple dead virtual PHI removal.
5098 (remove_dead_stmt): Properly unlink virtual operands when
5099 removing stores.
5100 (eliminate_unnecessary_stmts): Schedule PHI removal after
5101 stmt removal.
5102 * tree-ssa-ter.c (is_replaceable_p): Adjust.
5103 (process_replaceable): Likewise.
5104 (find_replaceable_in_bb): Likewise.
5105 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5106 based on the single gimple vop.
5107 (verify_flow_insensitive_alias_info): Remove.
5108 (verify_flow_sensitive_alias_info): Likewise.
5109 (verify_call_clobbering): Likewise.
5110 (verify_memory_partitions): Likewise.
5111 (verify_alias_info): Likewise.
5112 (verify_ssa): Adjust..
5113 (execute_update_addresses_taken): Export. Update SSA
5114 manually. Optimize only when optimizing. Use a local bitmap.
5115 (pass_update_address_taken): Remove TODO_update_ssa, add
5116 TODO_dump_func.
5117 (pass_update_address_taken): Just use TODO_update_address_taken.
5118 (init_tree_ssa): Do not initialize addressable_vars.
5119 (verify_ssa): Verify new VUSE / VDEF properties.
5120 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5121 Do not call verify_alias_info.
5122 (delete_tree_ssa): Clear the VUSE, VDEF operands.
5123 Do not free the loaded and stored syms bitmaps. Reset the escaped
5124 and callused solutions. Do not free addressable_vars.
5125 Remove memory-tag related code.
5126 (warn_uninitialized_var): Aliases are always available.
5127 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5128 * lambda-code.c (can_put_in_inner_loop): Adjust.
5129 (can_put_after_inner_loop): Likewise.
5130 (perfect_nestify): Likewise.
5131 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5132 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5133 (vectorizable_conversion): Do not mark symbols for renaming.
5134 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5135 (expand_call_inline): Unlink the calls virtual operands before
5136 replacing it.
5137 (tree_function_versioning): Do not call update_ssa if we are not
5138 updating clones. Simplify.
5139 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5140 (propagate_with_phi): Likewise..
5141 * tree-outof-ssa.c (create_temp): Remove memory tag and call
5142 clobber code. Assert we are not aliased or global.
5143 * tree-flow.h: Include tree-ssa-alias.h
5144 (enum escape_type): Remove.
5145 (struct mem_sym_stats_d): Likewise.
5146 (struct mem_ref_stats_d): Likewise.
5147 (struct gimple_df): Add vop member. Remove global_var,
5148 call_clobbered_vars, call_used_vars, addressable_vars,
5149 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
5150 escaped and callused members.
5151 (struct ptr_info_def): Remove all members, add points-to solution
5152 member pt.
5153 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5154 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5155 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5156 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5157 (tree-ssa-alias.o): Likewise.
5158 (toplev.o): Add tree-ssa-alias.h
5159 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5160 * gimple.c (gimple_set_bb): Fix off-by-one error.
5161 (is_gimple_reg): Do not handle memory tags.
5162 (gimple_copy): Also copy virtual operands.
5163 Delay updating the statement. Do not reset loaded and stored syms.
5164 (gimple_set_stored_syms): Remove.
5165 (gimple_set_loaded_syms): Likewise.
5166 (gimple_call_copy_skip_args): Copy the virtual operands
5167 and mark the new statement modified.
5168 * tree-ssa-structalias.c (may_alias_p): Remove.
5169 (set_uids_in_ptset): Take the alias set to prune with as
5170 parameter. Fold in the alias test of may_alias_p.
5171 (compute_points_to_sets): Compute whether a ptr is dereferenced
5172 in a local sbitmap.
5173 (process_constraint): Deal with &ANYTHING on the lhs, reject all
5174 other ADDRESSOF constraints on the lhs.
5175 (get_constraint_for_component_ref): Assert that we don't get
5176 ADDRESSOF constraints from the base of the reference.
5177 Properly generate UNKNOWN_OFFSET for DEREF if needed.
5178 (struct variable_info): Remove collapsed_to member.
5179 (get_varinfo_fc): Remove.
5180 (new_var_info): Do not set collapsed_to.
5181 (dump_constraint): Do not follow cycles.
5182 (dump_constraint_graph): Likewise.
5183 (build_pred_graph): Likewise.
5184 (build_succ_graph): Likewise.
5185 (rewrite_constraints): Likewise.
5186 (do_simple_structure_copy): Remove.
5187 (do_rhs_deref_structure_copy): Remove.
5188 (do_lhs_deref_structure_copy): Remove.
5189 (collapse_rest_of_var): Remove.
5190 (do_structure_copy): Re-implement.
5191 (pta_stats): New global variable.
5192 (dump_pta_stats): New function.
5193 (struct constraint_expr): Make offset signed.
5194 (UNKNOWN_OFFSET): Define special value.
5195 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5196 (solution_set_expand): New helper function split out from ...
5197 (do_sd_constraint): ... here.
5198 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
5199 (do_ds_constraint): Likewise.
5200 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
5201 and CALLUSED = *CALLUSED.
5202 (set_union_with_increment): Make inc argument signed.
5203 (type_safe): Remove.
5204 (get_constraint_for_ptr_offset): Handle unknown and negative
5205 constant offsets.
5206 (first_vi_for_offset): Handle offsets before start. Bail
5207 out early for offsets beyond the variable extent.
5208 (first_or_preceding_vi_for_offset): New function.
5209 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5210 Together with ESCAPED = *ESCAPED this properly computes reachability.
5211 (find_what_var_points_to): New function.
5212 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5213 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5214 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5215 pt_solutions_intersect): New functions.
5216 (compute_call_used_vars): Remove.
5217 (compute_may_aliases): New main entry into PTA computation.
5218 * gimple.h (gimple_p): New typedef.
5219 (struct gimple_statement_base): Remove references_memory_p.
5220 (struct gimple_statement_with_memory_ops_base): Remove
5221 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
5222 members.
5223 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5224 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5225 gimple_set_references_memory): Remove.
5226 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5227 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5228 New functions.
5229 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5230 (verify_expr): Allow RESULT_DECL.
5231 (gimple_duplicate_bb): Do not copy virtual operands.
5232 (gimple_duplicate_sese_region): Adjust.
5233 (gimple_duplicate_sese_tail): Likewise.
5234 (mark_virtual_ops_in_region): Remove.
5235 (move_sese_region_to_fn): Do not call it.
5236 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5237 and pass_simple_dse.
5238 (execute_function_todo): Handle TODO_update_address_taken,
5239 call execute_update_addresses_taken for TODO_rebuild_alias.
5240 (execute_todo): Adjust.
5241 (execute_one_pass): Init dump files early.
5242 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5243 call-clobbered.
5244 (create_general_new_stmt): Clear vops.
5245 * tree-ssa-reassoc.c (get_rank): Adjust.
5246 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5247 symbols for renaming.
5248 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5249 (PARAM_AVG_ALIASED_VOPS): Likewise.
5250 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5251 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 5252 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
5253 (operand_build_cmp, copy_virtual_operands,
5254 create_ssa_artificial_load_stmt, add_to_addressable_set,
5255 gimple_add_to_addresses_taken): Remove public functions.
5256 (unlink_stmt_vdef): New function.
5257
457d1d00
AM
52582009-04-03 Alan Modra <amodra@bigpond.net.au>
5259
5260 * config.gcc (powerpc-*-linux*): Merge variants.
5261
e19da24c 52622009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 5263 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
5264
5265 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5266 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5267 cop0_sp_offset.
5268 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5269 keep_interrupts_masked_p, use_debug_exception_return_p.
5270 (mips_attribute_table): Add interrupt, use_shadow_register_set,
5271 keep_interrupts_masked, use_debug_exception_return.
5272 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5273 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5274 New functions.
5275 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5276 (mips_print_operand): Process COP0 registers to print $0 .. $31
5277 correctly for GAS to process.
5278 (mips_interrupt_extra_call_saved_reg_p): New function.
5279 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5280 extra registers.
5281 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5282 (mips_compute_frame_info): Add supports for interrupt context that
5283 includes doubleword accumulators and COP0 registers.
5284 (mips_for_each_saved_acc): New function.
5285 (mips_for_each_saved_gpr_and_fpr): Change the function name from
5286 mips_for_each_saved_reg.
5287 (mips_save_reg): Save accumulators.
5288 (mips_kernel_reg_p): A new for_each_rtx callback.
5289 (mips_expand_prologue): Support interrupt handlers.
5290 (mips_restore_reg): Restore accumulators.
5291 (mips_expand_epilogue): Support interrupt handlers.
5292 (mips_can_use_return_insn): Return false for interrupt handlers.
5293 (mips_epilogue_uses): New function.
5294 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5295 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5296 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5297 cop0_move): New instructions.
5298 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5299 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5300 defines.
5301 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5302 New defines.
5303 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5304 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5305 interrupt handlers, we use K0 as the temporary register.
5306 (EPILOGUE_USES): Change to a function call.
5307 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5308 handlers, we use K0 as the temporary register.
2ba9daa7 5309
e19da24c
CF
5310 * doc/extend.texi (Function Attributes): Document interrupt,
5311 use_shadow_register_set, keep_interrupts_masked,
5312 use_debug_exception_return for MIPS attributes.
5313
aa1ca044
AM
53142009-04-03 Alan Modra <amodra@bigpond.net.au>
5315
5316 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5317 Remove a number of t-files from tmake_file.
5318 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5319 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5320 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5321 target_prototype, not TARGET_PROTOTYPE.
5322 (LINK_OS_GNU_SPEC): Define.
5323 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5324 and darwin-ldoubdle.c.
5325
14fdc613
MM
53262009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5327
5328 PR driver/39293
5329 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5330 (cpp_options): Ditto.
5331 (default_compilers): Ditto.
5332 (display_help): Ditto.
5333 (process_command): Ditto.
5334 (do_spec_1): Ditto.
5335 (set_input): Use lbasename instead of duplicate code.
5336 (save_temps_prefix): New static for -save-temps=obj.
5337 (save_temps_length): Ditto.
2ba9daa7 5338
14fdc613
MM
5339 * doc/invoke.texi (-save-temps=obj): Document new variant to
5340 -save-temps switch.
5341
d3aa398e
JL
53422009-04-02 Jeff Law <law@redhat.com>
5343
5344 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5345 variable.
5346
83f0ccb8
L
53472009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5348
5349 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5350 * configure: Regenerated.
5351
dcb6e951
RAE
53522009-04-02 Rafael Avila de Espindola <espindola@google.com>
5353
5354 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5355 share the argument list.
5356
d85478c2
RAE
53572009-04-02 Rafael Avila de Espindola <espindola@google.com>
5358
5359 Merge
5360
5361 2009-02-12 Diego Novillo <dnovillo@google.com>
5362
83f0ccb8
L
5363 * varpool.c (debug_varpool): New.
5364 * cgraph.h (debug_varpool): Declare.
d85478c2 5365
34f42a49
JH
53662009-04-02 Jan Hubicka <jh@suse.cz>
5367
5368 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5369 pass.
5370
a4747b4a
L
53712009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5372
5373 * config/i386/i386.c (ix86_abi): Move initialization to ...
5374 (override_options): Here.
5375
63a9de54
CB
53762009-04-02 Christian Bruel <christian.bruel@st.com>
5377
5378 * config/sh/sh.c (sh_dwarf_register_span): New function.
5379 (TARGET_DWARF_REGISTER_SPAN): Define.
5380 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 5381
2f0fa28e
IR
53822009-04-02 Ira Rosen <irar@il.ibm.com>
5383
5384 PR tree-optimization/39595
2ba9daa7 5385 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
5386 interleaved loads group is not greater than the SLP group size.
5387
bbf7ce11
RAE
53882009-04-02 Rafael Avila de Espindola <espindola@google.com>
5389
5390 * builtins.c (is_builtin_name): New.
5391 (called_as_built_in): Use is_builtin_name.
5392 * tree.h (is_builtin_name): New.
5393 * varasm.c (incorporeal_function_p): Use is_builtin_name
5394
47e4dfcf
AS
53952009-04-02 Andrew Stubbs <ams@codesourcery.com>
5396
5397 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5398
d0940d56
DS
53992009-04-02 Dodji Seketeli <dodji@redhat.com>
5400
5401 PR c++/26693
532bfb0a 5402 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
5403 * c-common.c (set_underlying_type): ... here.
5404 Also, make sure the function properly sets TYPE_STUB_DECL() on
5405 the newly created typedef variant type.
5406 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
5407 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5408 points.
d0940d56 5409
bf1cbdc6
RG
54102009-04-02 Richard Guenther <rguenther@suse.de>
5411
5412 PR tree-optimization/37221
5413 * tree-flow.h (degenerate_phi_result): Declare.
5414 * tree-ssa-dom.c (degenerate_phi_result): Export.
5415 * tree-scalar-evolution.c (analyze_initial_condition): If
5416 the initial condition is defined by a degenerate PHI node
5417 use the degenerate value.
5418
87cfb32c
EB
54192009-04-01 Eric Botcazou <ebotcazou@adacore.com>
5420
5421 PR rtl-optimization/39588
5422 * combine.c (merge_outer_ops): Do not set the constant when this
5423 is not necessary.
5424 (simplify_shift_const_1): Do not modify it either in this case.
5425
bbb6eae8
SB
54262009-04-01 Steven Bosscher <steven@gcc.gnu.org>
5427
5428 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5429 tuning is deprecated if -mtune value is set to an Itanium1 variant.
5430
839a3b8a
JJ
54312009-04-01 Janis Johnson <janis187@us.ibm.com>
5432
5433 PR c/29027
5434 * c-lex.c (interpret_float): Default (no suffix) is double.
5435
667e8acb
XDL
54362009-04-1 Xinliang David Li <davidxl@google.com>
5437
5438 * config/i386/i386.c (legitimate_constant_p): Recognize
5439 all one vector constant.
5440
60839f5d 54412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5442
60839f5d 5443 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
5444 Change #include order to silence two warnings.
5445
60839f5d 54462009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5447
60839f5d 5448 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
5449 (ASM_SPEC): Pass -k to the assembler for PIC code.
5450
60839f5d 54512009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5452
60839f5d
EB
5453 * config.gcc: Add vax-*-linux* to the switch.
5454 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
5455 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5456
60839f5d 54572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5458
60839f5d 5459 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 5460 Use predicate macros instead of GET_CODE() == foo.
60839f5d 5461 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
5462 ashlsi3, rotrsi3, <unnamed>): Likewise.
5463
60839f5d 54642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5465
60839f5d 5466 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 5467 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
5468 * config/vax/constraints.md: Likewise.
5469 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5470 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5471 * config/vax/predicates.md: Likewise.
5472 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 5473 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
5474 * config/vax/vax.h: Likewise.
5475 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 5476
60839f5d 54772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5478
60839f5d 5479 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
5480 (indirectable_address_p, adjacent_operands_p): Add spaces around
5481 braces.
60839f5d 5482 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 5483
60839f5d 54842009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5485
60839f5d 5486 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
5487 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5488 index_term_p, reg_plus_index_p, legitimate_address_p,
5489 vax_mode_dependent_address_p): Update comments to match functions
5490 modified by the recent int->bool conversion.
5491
60839f5d 54922009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5493
60839f5d
EB
5494 * config/vax/builtins.md: Update copyright message.
5495 * config/vax/constraints.md: Likewise.
5496 * config/vax/netbsd-elf.h: Likewise.
5497 * config/vax/predicates.md: Likewise.
5498 * config/vax/vax-protos.h: Likewise.
5499 * config/vax/vax.c: Likewise.
5500 * config/vax/vax.h: Likewise.
5501 * config/vax/vax.md: Likewise.
5502 * config/vax/vax.opt: Likewise.
c4e75102 5503
60839f5d 55042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5505
60839f5d 5506 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 5507 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
5508 * config/vax/constraints.md (B, R): Likewise.
5509 * config/vax/predicates.md (external_memory_operand,
c4e75102 5510 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
5511 * config/vax/vax.c (vax_output_int_add): Likewise.
5512 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
5513 untyped_call): Likewise.
5514
60839f5d 55152009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 5516
7a715bba
UB
5517 * config/vax/predicates.md: New file.
5518 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
5519 external_const_operand, nonsymbolic_operand, external_memory_operand,
5520 indirect_memory_operand, indexed_memory_operand,
5521 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5522 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5523 predicate.
7a715bba
UB
5524 * config/vax/constraints.md: New file.
5525 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5526 New constraint.
5527 * config/vax/builtins.md: New file.
5528 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5529 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5530 jbbccisi): Define.
c4e75102
MT
5531 * config/vax/vax.opt (mqmath): Add option.
5532 * config/vax/vax.md (isfx): Extend with DI.
5533 (VAXintQH, VAXintQHSD): Define.
5534 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5535 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5536 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5537 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5538 (movdi): Update constraints and use vax_output_int_move().
5539 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5540 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5541 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5542 nonlocal_goto): New.
5543 (mov<mode>): Extend accepted operand types.
5544 (subdi3_old): Rename from subdi3, change update constraints and use
5545 a new implementation.
60839f5d 5546 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
5547 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5548 MOVE_RATIO, CLEAR_RATIO): Define.
5549 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5550 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5551 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 5552 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
5553 (split_quadword_operands): Make static and really allow variable
5554 splitting.
5555 (print_operand_address): Update for PIC generation.
5556 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5557 indexable_address_p, fixup_mathdi_operand,
5558 vax_expand_addsub_di_operands, adjacent_operands_p): New.
5559 (vax_float_literal, legitimate_constant_p,
5560 indirectable_constant_address_p, index_term_p,
5561 reg_plus_index_p): Return bool instead of int.
5562 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5563 where needed.
5564 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5565 generation.
5566 (vax_output_conditional_branch): Indent.
5567 (legitimate_constant_address_p, indirectable_constant_address_p,
5568 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5569 vax_mode_dependent_address_p): Return bool instead of int, update for
5570 PIC generation.
5571 * config/vax/vax-protos.h (legitimate_constant_address_p,
5572 legitimate_constant_p, legitimate_address_p,
5573 vax_mode_dependent_address_p): Change declaration to bool.
5574 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5575 vax_expand_addsub_di_operands, vax_output_int_subtract,
5576 vax_output_movmemsi): Declare.
5577 (split_quadword_operands, vax_float_literal): Delete declaration.
5578 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5579 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5580 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5581 ASM_OUTPUT_DWARF_PCREL): Define.
5582 (ASM_SPEC): Change definition to allow PIC generation.
5583
9332c6eb
L
55842009-04-01 Steve Ellcey <sje@cup.hp.com>
5585
5586 * doc/sourcebuild.texi: Update front-end requirements.
5587
d93e052c
JJ
55882009-04-01 Jakub Jelinek <jakub@redhat.com>
5589
5590 PR target/39226
5591 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5592 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5593 (booldi3_internal3): Use boolean_or_operator instead of
5594 boolean_operator.
5595
6ccb2a4a
JM
55962009-04-01 Joseph Myers <joseph@codesourcery.com>
5597
5598 PR c/39605
5599 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5600 declarator whose size is not an integer constant expression but
5601 folds to an integer constant, then treat it as a constant
5602 subsequently.
5603
299b87f8
RG
56042009-04-01 Richard Guenther <rguenther@suse.de>
5605
5606 * fold-const.c (fold_plusminus_mult_expr): Do not fold
5607 i * 4 + 2 to (i * 2 + 1) * 2.
5608
b85eb797
JJ
56092009-04-01 Jakub Jelinek <jakub@redhat.com>
5610
5611 PR c/37772
5612 * c-parser.c (c_parser_asm_statement): Skip until close paren and
5613 return if c_parser_asm_string_literal returned NULL.
5614
235e1fe8
NC
56152009-04-01 Nick Clifton <nickc@redhat.com>
5616
5617 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5618 already defined.
5619 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5620 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
5621 other typedefs to avoid conflicts with libgcc2.c. Define labels
5622 to gain 16-bit bit-manipulation functions from libgcc2.c and then
5623 include it.
5624 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
5625 to gain 16-bit trapping arithmetic functions from libgcc2.c and
5626 then include it.
5627
d6868399
RAE
56282009-04-01 Rafael Avila de Espindola <espindola@google.com>
5629
7a715bba
UB
5630 * varasm.c (default_function_rodata_section): Declare DOT as
5631 const char*.
d6868399 5632
73d21f56 56332009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 5634 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
5635
5636 PR/39492
5637 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5638 Make object_name unique for each process.
5639
03742a9b
JJ
56402009-04-01 Jakub Jelinek <jakub@redhat.com>
5641
5642 PR other/39591
5643 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5644 addressable variables in the parallel that could go out of scope while
5645 running queued tasks.
5646
4223ff5f
AS
56472009-04-01 Anatoly Sokolov <aesok@post.ru>
5648
5649 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5650 (CASE_VALUES_THRESHOLD): Redefine.
5651 * config/avr/avr.c (avr_override_options): Remove initialization of
5652 avr_case_values_threshold variable.
5653 (avr_case_values_threshold): Remove variable. Add new function.
5654 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5655 * config/avr/avr.opt (mno-tablejump): Remove option.
5656 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5657
e893f6f3
DD
56582009-04-01 DJ Delorie <dj@redhat.com>
5659
5660 * varasm.c (default_function_rodata_section): Don't assume
5661 anything about where the first '.' in the section name is.
5662
b246d100
AM
56632009-04-01 Alan Modra <amodra@bigpond.net.au>
5664
5665 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5666 rs6000_emit_stack_tie.
5667
d3e37a9e
ILT
56682009-03-31 Ian Lance Taylor <iant@google.com>
5669
5670 * tree-eh.c (tree_remove_unreachable_handlers): Compare
5671 gimple_code with GIMPLE_RESX, not RESX.
5672
c1b61fca
JM
56732009-03-31 Joseph Myers <joseph@codesourcery.com>
5674
5675 * c-common.c (c_get_ident): New.
7a715bba 5676 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 5677
c2d2ad48
BE
56782009-04-01 Ben Elliston <bje@au.ibm.com>
5679
5680 * config/rs6000/sysv4.opt (msdata): Improve option description.
5681
13d1a6e7
SE
56822009-03-31 Steve Ellcey <sje@cup.hp.com>
5683
5684 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5685 (divdf3_internal_lat): Remove.
5686 (divxf3_internal_lat): Remove.
5687 (divxf3_internal_thr): Remove.
5688 (divxf): Use divxf3_internal.
5689 * config/ia64/div.md (divsf3_internal_lat): New.
5690 (divdf3_internal_lat): New.
5691 (divxf3_internal): New.
5692
207bf79d
JM
56932009-03-31 Joseph Myers <joseph@codesourcery.com>
5694
5695 PR c/448
5696 * Makefile.in (USE_GCC_STDINT): Define.
5697 (stmp-int-hdrs): Install stdint.h if applicable.
5698 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5699 if known.
5700 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5701 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5702 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5703 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5704 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5705 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5706 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5707 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5708 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5709 (c_common_nodes_and_builtins): Initialize
5710 underlying_wchar_type_node. Do not initialize
5711 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
5712 nodes for new types.
5713 (c_stddef_cpp_builtins): Define macros for new types.
5714 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5715 Remove.
5716 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5717 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5718 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5719 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5720 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5721 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5722 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5723 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5724 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5725 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5726 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5727 int16_type_node, int32_type_node, int64_type_node,
5728 uint8_type_node, uint16_type_node, c_uint32_type_node,
5729 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5730 int_least32_type_node, int_least64_type_node,
5731 uint_least8_type_node, uint_least16_type_node,
5732 uint_least32_type_node, uint_least64_type_node,
5733 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5734 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5735 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5736 uintptr_type_node): Define.
5737 * c-cppbuiltin.c (builtin_define_constants,
5738 builtin_define_type_minmax): New.
5739 (builtin_define_stdint_macros): Define more macros.
5740 (c_cpp_builtins): Define more limit macros.
5741 (type_suffix): New.
5742 (builtin_define_type_max): Define in terms of
5743 builtin_define_type_minmax. Remove is_long parameter. All
5744 callers changed.
5745 * config.gcc (use_gcc_stdint): Define.
5746 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5747 Add newlib-stdint.h for generic targets.
5748 * config/glibc-stdint.h, config/newlib-stdint.h,
5749 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5750 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5751 * config/score/score.h (UINTPTR_TYPE): Define.
5752 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5753 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5754 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5755 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5756 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5757 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5758 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5759 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5760 * config/spu/spu.h (STDINT_LONG32): Define.
5761 * configure.ac (use_gcc_stdint): Substitute.
5762 * configure: Regenerate.
5763 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
5764 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
5765 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
5766 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
5767 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
5768 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
5769 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
5770 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
5771 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
5772 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
5773 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
5774 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
5775 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
5776 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
5777 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
5778 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
5779 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
5780 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
5781 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
5782 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
5783 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
5784 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
5785 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5786 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5787 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5788 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5789 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5790 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5791 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
5792
ed853664
BS
57932009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
5794
5795 * loop-iv.c (suitable_set_for_replacement): Renamed from
5796 simplify_using_assignment; changed to return bool and to accept new
5797 args DEST and SRC. Return true iff we find a source/destination pair
5798 that can be used to make a replacement, and fill SRC and DEST if so.
5799 Remove arg ALTERED. Don't deal with altered regs here. All callers
5800 changed.
5801 (simplify_using_initial_values): Deal with altered regs here and track
5802 more precisely the effect they have on the validity of our expression.
5803
1569e190
BS
5804 * loop-iv.c (simplify_using_condition): A condition of the form
5805 (EQ REG CONST) can be used to simply make a substitution.
5806 (simplify_using_initial_values): Keep track of conditions we have seen
5807 and keep using them to simplify new expressions, while applying the
5808 same substitutions to them as to the expression.
5809
1d1eb80c
BS
5810 * simplify-rtx.c (simplify_relational_operation_1): Simplify
5811 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
5812 GEU/LTU reversed.
5813
28af33b0
BS
5814 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
5815 changed. Use this when trying to improve the upper bound.
5816 Generate the comparison by using simplify_gen_relational.
5817
b30321cd
BS
5818 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
5819
60081874
BS
5820 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
5821 functions.
2ba9daa7 5822 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
5823 replace_in_expr to make replacements. Call replace_single_def_regs
5824 once on the initial version of the expression.
5825
bebc6e07
RR
58262009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5827
fcb82ab0 5828 PR target/27237
bebc6e07 5829 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 5830
6b12efe9
RG
58312009-03-31 Richard Guenther <rguenther@suse.de>
5832
5833 PR middle-end/31029
5834 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
5835 equality comparisons. Fold C - X CMP X if C % 2 == 1.
5836
108f6c2f
RG
58372009-03-31 Richard Guenther <rguenther@suse.de>
5838
5839 * tree.h (div_if_zero_remainder): Declare.
5840 * fold-const.c (div_if_zero_remainder): Export.
5841 * tree-ssa-forwprop.c
5842 (forward_propagate_addr_into_variable_array_index): Handle
5843 constant array index addition outside of the variable index.
5844
8f612190
JM
58452009-03-31 Joseph Myers <joseph@codesourcery.com>
5846
5847 PR target/39592
5848 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
5849 define_splits, floatunssi<mode>2): Require x87 conversions from
5850 DImode to be permitted.
5851
47580d22
JM
58522009-03-31 Joseph Myers <joseph@codesourcery.com>
5853
5854 PR preprocessor/15638
5855 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
5856
ba4d8f9d
RG
58572009-03-31 Richard Guenther <rguenther@suse.de>
5858
5859 PR middle-end/23401
5860 PR middle-end/27810
5861 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
5862 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
5863 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
5864 a separate statement.
5865 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
5866 (lookup_tmp_var): Likewise.
5867 (is_gimple_formal_tmp_or_call_rhs): Remove.
5868 (is_gimple_reg_or_call_rhs): Rename to ...
5869 (is_gimple_reg_rhs_or_call): ... this.
5870 (is_gimple_mem_or_call_rhs): Rename to ...
5871 (is_gimple_mem_rhs_or_call): ... this.
5872 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
5873 DECL_GIMPLE_REG_P only if is_formal is true.
5874 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
5875 for non-proper post-modify expression gimplification.
5876 (gimplify_self_mod_expr): For post-modify expressions gimplify
5877 the lvalue to a minimal lvalue.
5878 (rhs_predicate_for): Remove formal temp case.
5879 (gimplify_modify_expr_rhs): Likewise.
5880 (gimplify_addr_expr): Use is_gimple_reg.
5881 (gimplify_expr): Remove formal temp cases.
5882 (gimple_regimplify_operands): Likewise.
5883 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
5884 and FILTER_EXPR like constants.
5885 * gimple.c (walk_gimple_op): Fix val_only initialization, use
5886 is_gimple_reg.
5887 (is_gimple_formal_tmp_rhs): Remove.
5888 (is_gimple_reg_rhs): Remove special casing.
5889 (is_gimple_mem_rhs): Fix.
5890 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
5891 (is_gimple_formal_tmp_var): Remove.
5892 (is_gimple_formal_tmp_reg): Likewise.
5893 (is_gimple_min_lval): Allow invariant component ref parts.
5894 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
5895 is_gimple_formal_tmp_reg): Remove declarations.
5896 * tree-cfg.c (verify_expr): Verify that variables with address
5897 taken do not have DECL_GIMPLE_REG_P set.
5898 * tree-mudflap.c (mf_build_check_statement_for): Use
5899 force_gimple_operand instead of gimplify_expr.
5900
8de9b877
AZ
59012009-03-31 Ayal Zaks <zaks@il.ibm.com>
5902
5903 * modulo-sched.c (sms_schedule_by_order): Pass the actual
5904 schedulable rows to compute_split_row.
5905
b5e3caf2
BE
59062009-03-31 Ben Elliston <bje@au.ibm.com>
5907
5908 PR target/31635
5909 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
5910 OPT_mvrsave.
5911
9752c4ad
AM
59122009-03-31 Alan Modra <amodra@bigpond.net.au>
5913
5914 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
5915 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
5916 * configure: Regenerate.
5917 * config.in: Regenerate.
5918 * config/rs6000/rs6000.opt (mtls-markers): Add.
5919 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
5920 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
5921 (tls_ld_aix, tls_ld_sysv): Likewise.
5922 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
5923 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
5924
b597d1b6
AM
59252009-03-31 Alan Modra <amodra@bigpond.net.au>
5926
5927 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
5928
a203a221
JH
59292009-03-30 Jan Hubicka <jh@suse.cz>
5930
b597d1b6
AM
5931 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
5932 out of RESX.
5933 (tree_remove_unreachable_handlers): Cleanup EH predecestor
5934 detection and label handling.
a203a221 5935
5b0c0b2c
VM
59362009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5937
5938 * ira-int.h (ira_allocno): Rename left_conflicts_num to
5939 left_conflicts_size.
5940 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
5941 ALLOCNO_LEFT_CONFLICTS_SIZE.
5942
5943 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
5944 remove_allocno_from_bucket_and_push,
5945 allocno_spill_priority_compare, push_allocnos_to_stack,
5946 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5947 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
5948 (setup_allocno_left_conflicts_num): Ditto. Rename to
5949 setup_allocno_left_conflicts_size.
5950 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5951 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
5952 setup_allocno_left_conflicts_size instead of
5953 setup_allocno_left_conflicts_num.
5954
5955 * ira-build.c (ira_create_allocno): Use
5956 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
5957 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 5958
9a48a93f
VM
59592009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5960
5961 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5962 instead of DF_LR_OUT.
5963
5964 * ira-lives.c (process_bb_node_lives): Ditto.
5965
5966 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5967 instead of DF_LR_{OUT,IN}.
5968
5969 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5970
5971 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5972
4c936d4f
JH
59732009-03-30 Jan Hubicka <jh@suse.cz>
5974
5975 * except.c (label_to_region_map): Fix thinko.
5976
f4d9f129
SE
59772009-03-30 Steve Ellcey <sje@cup.hp.com>
5978
5979 PR middle-end/38237
5980 * tree.h (tree_find_value): New declaration.
5981 * tree.c (tree_find_value): New function.
5982 * varasm.c (assemble_external): Avoid duplicate entries on lists.
5983
b3f27c15
JJ
59842009-03-30 Jakub Jelinek <jakub@redhat.com>
5985
5986 PR debug/39563
5987 * c-decl.c (struct c_binding): Add locus field.
5988 (bind): Add locus argument, set locus field from it.
5989 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
5990 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
5991 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
5992 implicitly_declare, undeclared_variable, lookup_label,
5993 declare_label, c_make_fname_decl, c_builtin_function,
5994 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
5995 bind callers.
5996
ad41bd84 59972009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
5998
5999 PR target/38781
6000 * config/i386/i386.c (classify_argument): Check total size of
6001 structure.
6002
133f9369
MJ
60032009-03-30 Martin Jambor <mjambor@suse.cz>
6004
6005 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6006 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6007 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6008 respectively.
6009
6010 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6011 seen_variable_array_ref while also traversing a union.
6012
6013 * tree-inline.c (optimize_inline_calls): Do not call
6014 cgraph_node_remove_callees.
6015 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6016 (pass_remove_cgraph_callee_edges): New variable.
6017 * passes.c (init_optimization_passes): Add
6018 pass_remove_cgraph_callee_edges after early inlining and before all
6019 late intraprocedural passes.
6020
6021 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6022
1190f2eb
PB
60232009-03-30 Paolo Bonzini <bonzini@gnu.org>
6024
6025 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6026 Fix typos in names.
6027
fedc1775
PB
60282009-03-30 Paolo Bonzini <bonzini@gnu.org>
6029
fcb82ab0
UB
6030 * combine.c (simplify_comparison): Use have_insn_for.
6031 * dojump.c (do_jump): Likewise.
fedc1775 6032
65c5ae8b
PB
60332009-03-30 Paolo Bonzini <bonzini@gnu.org>
6034
6035 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6036 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6037 sparc_compare_op0 like sparc_compare_emitted used to be handled.
6038 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6039 instead of sparc_compare_emitted.
6040 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6041 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6042 instead of sparc_compare_emitted.
6043
d25aa7ab
PB
60442009-03-30 Paolo Bonzini <bonzini@gnu.org>
6045
6046 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6047 enter/exit cfglayout mode.
6048 (pass_partition_block): Require it.
6049 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6050 (combine_instructions): Track basic blocks instead of labels.
6051 (update_cfg_for_uncondjump): New.
6052 (try_combine): Use it. Update jumps after rescanning.
6053 (pass_combine): Require PROP_cfglayout.
6054 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6055
9c9e26f5
PB
60562009-03-30 Paolo Bonzini <bonzini@gnu.org>
6057
fcb82ab0
UB
6058 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6059 Provide/destroy PROP_cfglayout respectively.
6060 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6061 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 6062
28ddeea1
PB
60632009-03-30 Paolo Bonzini <bonzini@gnu.org>
6064
6065 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6066 fold_convert_const_fixed_from_fixed,
6067 fold_convert_const_fixed_from_int,
6068 fold_convert_const_fixed_from_real, fold_negate_const): Do not
6069 set TREE_CONSTANT_OVERFLOW.
6070 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6071 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6072
ebfd146a
IR
60732009-03-30 Ira Rosen <irar@il.ibm.com>
6074
6075 * tree-vect-loop-manip.c: New file.
6076 * tree-vectorizer.c: Update documentation and included files.
6077 (vect_loop_location): Make extern.
6078 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
6079 (rename_variables_in_bb, rename_variables_in_loop,
6080 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
6081 slpeel_update_phi_nodes_for_guard1,
6082 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6083 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6084 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 6085 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
6086 find_loop_location): Likewise.
6087 (new_stmt_vec_info): Move to tree-vect-stmts.c.
6088 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6089 get_vectype_for_scalar_type, vect_is_simple_use,
6090 supportable_widening_operation, supportable_narrowing_operation):
6091 Likewise.
6092 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
6093 (new_loop_vec_info, destroy_loop_vec_info,
6094 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
6095 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6096 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6097 (vect_supportable_dr_alignment): Likewise.
6098 * tree-vectorizer.h (tree-data-ref.h): Include.
6099 (vect_loop_location): Declare.
6100 Reorganize function declarations according to the new file structure.
6101 * tree-vect-loop.c: New file.
2ba9daa7 6102 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
6103 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6104 * tree-vect-data-refs.c: New file.
6105 * tree-vect-patterns.c (timevar.h): Don't include.
6106 * tree-vect-stmts.c: New file.
2ba9daa7 6107 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 6108 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
6109 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6110 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
6111 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6112 (tree-vect-analyze.o): Remove.
6113 (tree-vect-transform.o): Likewise.
6114 (tree-vect-data-refs.o): Add rule.
2ba9daa7 6115 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
6116 tree-vect-slp.o): Likewise.
6117 (tree-vect-patterns.o): Remove redundant dependencies.
6118 (tree-vectorizer.o): Likewise.
6119 * tree-vect-slp.c: New file.
6120
40a1cfba
RW
61212009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6122
6123 * optc-gen.awk: Warn if an option flag has multiple different
6124 help strings.
6125
a9a7a9a2
SP
61262009-03-30 Sebastian Pop <sebastian.pop@amd.com>
6127
6128 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6129 -floop-block): Document dependences on PPL, CLooG and Graphite.
6130
8ce94e44
JM
61312009-03-30 Joseph Myers <joseph@codesourcery.com>
6132
6133 PR rtl-optimization/323
6134 * c-common.c (c_fully_fold, convert_and_check,
6135 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6136 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6137 * c-common.def (EXCESS_PRECISION_EXPR): New.
6138 * c-cppbuiltin.c (builtin_define_float_constants): Define
6139 constants with enough digits for long double.
6140 * c-lex.c (interpret_float): Interpret constant with excess
6141 precision where appropriate.
6142 * c-opts.c (c_common_post_options): Set
6143 flag_excess_precision_cmdline. Give an error for
6144 -fexcess-precision=standard for C++ for processors where the
6145 option is significant.
6146 * c-parser.c (c_parser_conditional_expression): Handle excess
6147 precision in condition.
6148 * c-typeck.c (convert_arguments): Handle arguments with excess
6149 precision.
6150 (build_unary_op): Move excess precision outside operation.
6151 (build_conditional_expr): Likewise.
6152 (build_compound_expr): Likewise.
6153 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6154 (build_modify_expr): Handle excess precision in RHS.
6155 (convert_for_assignment): Handle excess precision in converted
6156 value.
6157 (digest_init, output_init_element, process_init_element): Handle
6158 excess precision in initializer.
6159 (c_finish_return): Handle excess precision in return value.
6160 (build_binary_op): Handle excess precision in operands and add
6161 excess precision as needed for operation.
6162 * common.opt (-fexcess-precision=): New option.
6163 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6164 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6165 For standard excess precision, output explicit conversion to and
6166 truncation from XFmode.
6167 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6168 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6169 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6170 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6171 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6172 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6173 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6174 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6175 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6176 define_splits, sqrt<mode>2): Disable where appropriate for
6177 standard excess precision.
6178 * convert.c (convert_to_real): Do not shorten arithmetic to type
6179 for which excess precision would be used.
6180 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6181 * doc/invoke.texi (-fexcess-precision=): Document option.
6182 (-mfpmath=): Correct index entry.
6183 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6184 flag_excess_precision): New.
6185 * langhooks.c (lhd_post_options): Set
6186 flag_excess_precision_cmdline.
6187 * opts.c (common_handle_option): Handle -fexcess-precision=.
6188 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6189 init_excess_precision): New.
6190 (lang_dependent_init_target): Call init_excess_precision.
6191 * tree.c (excess_precision_type): New.
6192 * tree.h (excess_precision_type): Declare.
6193
1e57bf47
JM
61942009-03-30 Joseph Myers <joseph@codesourcery.com>
6195
6196 PR c/35235
6197 * c-typeck.c (build_component_ref): Do not copy qualifiers from
6198 non-lvalue to component.
6199
148e4216
JM
62002009-03-29 Joseph Myers <joseph@codesourcery.com>
6201
6202 PR preprocessor/34695
6203 * Makefile.in (c-opts.o): Depend on c-tree.h.
6204 * c-common.c: Move down include of diagnostic.h.
6205 (done_lexing, c_cpp_error): New.
6206 * c-common.h (done_lexing): Declare.
6207 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6208 (parse_in).
6209 * c-opts.c: Include c-tree.h.
6210 (c_common_init_options): Set preprocessor error callback.
6211 (c_common_handle_option): Do not set preprocessor
6212 inhibit_warnings, warnings_are_errors, warn_system_headers,
6213 pedantic_errors or inhibit_warnings flags.
6214 (c_common_post_options): Do not check cpp_errors (parse_in).
6215 (c_common_finish): Do not output dependencies if there were
6216 errors. Do not check return value of cpp_finish.
6217 * c-ppoutput.c (pp_file_change): Set input_location.
6218 * c-tree.h (c_cpp_error): Declare.
6219 * diagnostic.c (diagnostic_set_info_translated): Also initialize
6220 override_column.
6221 (diagnostic_build_prefix): Check override_column.
6222 * diagnostic.h (diagnostic_info): Add override_column field.
6223 (diagnostic_override_column): Define.
6224
2ec5deb5
PB
62252009-03-28 Paolo Bonzini <bonzini@gnu.org>
6226
ba20e309
UB
6227 * c-common.c (c_expand_expr, c_staticp): Remove.
6228 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6229 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6230 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6231 * c-gimplify.c (gimplify_compound_literal_expr,
6232 optimize_compound_literals_in_ctor): Remove.
6233 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6234 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6235 * c-semantics.c (emit_local_var): Remove.
6236
6237 * langhooks-def.h (lhd_expand_expr): Remove.
6238 * langhooks.c (lhd_expand_expr): Remove.
6239 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6240
6241 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6242 handling from c-semantics.c; don't call into langhook.
6243 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6244 * gimplify.c (gimplify_compound_literal_expr,
6245 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6246 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6247 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6248 as was done in c-gimplify.c.
6249 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6250 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6251 Move from c-common.h.
6252 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
6253
6254 * tree.c (staticp): Do not call langhook.
6255 * langhooks.c (lhd_staticp): Delete.
6256 * langhooks-def.h (lhd_staticp): Delete prototype.
6257 (LANG_HOOKS_STATICP): Delete.
6258 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6259
ba20e309
UB
6260 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6261 instead of DECL_STMTs.
2ec5deb5 6262
928c19bb
JM
62632009-03-29 Joseph Myers <joseph@codesourcery.com>
6264
6265 PR c/456
6266 PR c/5675
6267 PR c/19976
6268 PR c/29116
6269 PR c/31871
6270 PR c/35198
6271 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6272 void_type_node.
6273 (fold_call_expr): Return a NOP_EXPR from folding rather than the
6274 contained expression.
ba20e309 6275 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
6276 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
6277 conditional expressions for C.
6278 (decl_constant_value_for_optimization): Move from
ba20e309 6279 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
6280 whether optimizing and that the expression is a VAR_DECL not of
6281 array type instead of doing such checks in the caller. Do not
6282 check pedantic. Call gcc_unreachable for C++.
6283 * c-common.def (C_MAYBE_CONST_EXPR): New.
6284 * c-common.h (c_fully_fold, c_save_expr,
6285 decl_constant_value_for_optimization): New prototypes.
6286 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6287 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6288 EXPR_INT_CONST_OPERANDS): Define.
6289 * c-convert.c (convert): Strip nops from expression.
6290 * c-decl.c (groktypename): Take extra parameters expr and
6291 expr_const_operands. Update call to grokdeclarator.
6292 (start_decl): Update call to grokdeclarator. Add statement for
6293 expressions used in type of decl.
6294 (grokparm): Update call to grokdeclarator.
6295 (push_parm_decl): Update call to grokdeclarator.
6296 (build_compound_literal): Add parameter non_const and build a
6297 C_MAYBE_COSNT_EXPR if applicable.
6298 (grokdeclarator): Take extra parameters expr and
6299 expr_const_operands. Track expressions used in declaration
6300 specifiers and declarators. Fold array sizes and track whether
6301 they are constant expressions and whether they are integer
6302 constant expressions.
6303 (parser_xref_tag): Set expr and expr_const_operands fields in
6304 return value.
6305 (grokfield): Update call to grokdeclarator.
6306 (start_function): Update call to grokdeclarator.
6307 (build_null_declspecs): Set expr and expr_const_operands fields in
6308 return value.
6309 (declspecs_add_type): Handle expressions in typeof specifiers.
6310 * c-parser.c (c_parser_declspecs): Set expr and
6311 expr_const_operands fields for declaration specifiers.
6312 (c_parser_enum_specifier): Likewise.
6313 (c_parser_struct_or_union_specifier): Likewise.
6314 (c_parser_typeof_specifier): Likewise. Update call to
6315 groktypename. Fold expression as needed. Return expressions with
6316 type instead of adding statements.
6317 (c_parser_attributes): Update calls to c_parser_expr_list.
6318 (c_parser_statement_after_labels): Fold expression before passing
6319 to objc_build_throw_stmt.
6320 (c_parser_condition): Fold expression.
6321 (c_parser_asm_operands): Fold expression.
6322 (c_parser_conditional_expression): Use c_save_expr. Update call
6323 to build_conditional_expr.
6324 (c_parser_alignof_expression): Update call to groktypename.
6325 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6326 original_code. Fold expression argument of va_arg. Create
6327 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6328 argument to va_arg. Update calls to groktypename. Fold array
6329 index for offsetof. Verify that first argument to
6330 __builtin_choose_expr has integer type.
6331 (c_parser_postfix_expression_after_paren_type): Update calls to
6332 groktypename and build_compound_literal. Handle expressions with
6333 side effects in type name.
6334 (c_parser_postfix_expression_after_primary): Update call to
6335 c_parser_expr_list. Set original_code for calls to
6336 __builtin_constant_p.
6337 (c_parser_expr_list): Take extra parameter fold_p. Fold
6338 expressions if requested.
6339 (c_parser_objc_type_name): Update call to groktypename.
6340 (c_parser_objc_synchronized_statement): Fold expression.
6341 (c_parser_objc_receiver): Fold expression.
6342 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6343 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6344 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6345 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6346 (struct c_typespec): Add elements expr and expr_const_operands.
6347 (struct c_declspecs): Add elements expr and expr_const_operands.
6348 (groktypename, build_conditional_expr, build_compound_literal):
6349 Update prototypes.
6350 (in_late_binary_op): Declare.
6351 * c-typeck.c (note_integer_operands): New function.
6352 (in_late_binary_op): New variable.
6353 (decl_constant_value_for_broken_optimization): Move to c-common.c
6354 and rename to decl_constant_value_for_optimization.
6355 (default_function_array_conversion): Do not strip nops.
6356 (default_conversion): Do not call
6357 decl_constant_value_for_broken_optimization.
6358 (build_array_ref): Do not fold result.
6359 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
6360 result when operand is a VLA.
6361 (c_expr_sizeof_type): Update call to groktypename. Handle
6362 expressions included in type name. Use C_MAYBE_CONST_EXPR for
6363 result when operand names a VLA type.
6364 (build_function_call): Update call to build_compound_literal.
6365 Only fold result for calls to __builtin_* functions. Strip
6366 NOP_EXPR from INTEGER_CST returned from such functions. Fold
6367 the function designator.
6368 (convert_arguments): Fold arguments. Update call to
6369 convert_for_assignment.
6370 (build_unary_op): Handle increment and decrement of
6371 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
6372 decrement earlier. Fold operand of increment and decrement.
6373 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
6374 built for integer operand. Wrap returns that are INTEGER_CSTs
6375 without being integer constant expressions or that have integer
6376 constant operands without being INTEGER_CSTs.
6377 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6378 (build_conditional_expr): Add operand ifexp_bcp. Track whether
6379 result is an integer constant expression or can be used in
6380 unevaluated parts of one and avoid folding and wrap as
6381 appropriate. Fold operands before possibly doing -Wsign-compare
6382 warnings.
6383 (build_compound_expr): Wrap result for C99 if operands can be used
6384 in integer constant expressions.
6385 (build_c_cast): Update call to digest_init. Do not ignore
6386 overflow from casting floating-point constants to integers. Wrap
6387 results that could be confused with integer constant expressions,
6388 null pointer constants or floating-point constants.
6389 (c_cast_expr): Update call to groktypename. Handle expressions
6390 included in type name.
6391 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
6392 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
6393 Update calls to convert_for_assignment.
6394 (convert_for_assignment): Take new parameter
6395 null_pointer_constant. Do not strip nops or call
6396 decl_constant_value_for_broken_optimization. Set
6397 in_late_binary_op for conversions to boolean.
6398 (store_init_value): Update call to digest_init.
6399 (digest_init): Take new parameter null_pointer_constant. Do not
6400 call decl_constant_value_for_broken_optimization. pedwarn for
6401 initializers not constant expressions. Update calls to
6402 convert_for_assignment.
6403 (constructor_nonconst): New.
6404 (struct constructor_stack): Add nonconst element.
6405 (really_start_incremental_init, push_init_level, pop_init_level):
6406 Handle constructor_nonconst and nonconst element.
6407 (set_init_index): Call constant_expression_warning for array
6408 designators.
6409 (output_init_element): Fold value. Set constructor_nonconst as
6410 applicable. pedwarn for initializers not constant expressions.
6411 Update call to digest_init. Call constant_expression_warning
6412 where constant initializers are required.
6413 (process_init_element): Use c_save_expr.
6414 (c_finish_goto_ptr): Fold expression.
6415 (c_finish_return): Fold return value. Update call to
6416 convert_for_assignment.
6417 (c_start_case): Fold switch expression.
6418 (c_process_expr_stmt): Fold expression.
6419 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 6420 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
6421 (build_binary_op): Track whether results are integer constant
6422 expressions or may occur in such, disable folding and wrap results
6423 as applicable. Fold operands for -Wsign-compare warnings unless
6424 in_late_binary_op.
6425 (c_objc_common_truthvalue_conversion): Handle results folded to
6426 integer constants that are not integer constant expressions.
6427 * doc/extend.texi: Document when typeof operands are evaluated,
6428 that condition of __builtin_choose_expr is an integer constant
6429 expression, and more about use of __builtin_constant_p in
6430 initializers.
6431
5babbcc0
RG
64322009-03-29 Richard Guenther <rguenther@suse.de>
6433
6434 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6435 propagate addresses of array references.
6436
0340f2ba
SB
64372009-03-29 Steven Bosscher <steven@gcc.gnu.org>
6438
6439 * regmove.c (perhaps_ends_bb_p): Remove.
6440 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
6441 from INSN and check that the main loop stays within that basic block.
6442 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6443 (regmove_forward_pass): Split out from regmove_optimize. Use
6444 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6445 (regmove_backward_pass): Split out from regmove_optimize. Use
6446 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6447 (regmove_optimize): Simplify.
6448
eeae74a1
L
64492009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6450
6451 PR target/39545
6452 * config/i386/i386.c (classify_argument): Ignore flexible array
6453 member in struct and warn ABI change.
6454
a24078b2
L
64552009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6456
6457 * config/i386/i386-protos.h (ix86_agi_dependent): New.
6458
6459 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6460 (ix86_adjust_cost): Updated.
6461
a8da523f
JH
64622009-03-29 Jan Hubicka <jh@suse.cz>
6463
6464 PR middle-end/28850
6465 * tree-pass.h (pass_cleanup_eh): New function.
6466 (remove_unreachable_regions): Break code handling RTL
6467 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6468 that can not be reached by runtime.
6469 (can_be_reached_by_runtime): New function.
6470 (label_to_region_map): New function.
6471 (num_eh_regions): New function.
6472 (rtl_remove_unreachable_regions): New function.
6473 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6474 (remove_eh_region): New function.
6475 * except.h: Include sbitmap and vecprim.
6476 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6477 num_eh_regions): Declare.
6478 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 6479 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
6480 * tree-eh.c (tree_remove_unreachable_handlers): New function.
6481 (tree_empty_eh_handler_p): New function.
6482 (cleanup_empty_eh): New function.
6483 (cleanup_eh): New function.
6484 (pass_cleanup_eh): New function.
6485
98f358e5
JH
64862009-03-29 Jan Hubicka <jh@suse.cz>
6487
6488 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6489 for removed regions.
6490
13a9fa44
JH
64912009-03-29 Jan Hubicka <jh@suse.cz>
6492
6493 * except.c (dump_eh_tree): Dump all datastructures.
6494
e38cf733
JH
64952009-03-29 Jan Hubicka <jh@suse.cz>
6496
6497 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6498 (duplicate_eh_regions_1): Likewise.
6499 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6500 vector; call EH verification.
6501 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6502 Be ready for region being removed.
6503
12802c2b
JH
65042009-03-29 Jan Hubicka <jh@suse.cz>
6505
6506 * bitmap.c (bitmap_last_set_bit): New function.
6507 * bitmap.h (bitmap_last_set_bit): Declare.
6508
4ea80a41
DA
65092009-03-29 David Ayers <ayers@fsfe.org>
6510
6511 PR objc/27377
6512 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6513 by calling objc_compare_types and surpress warnings about
6514 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 6515
4ea80a41 65162009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
6517
6518 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6519 call initialize_inline_failed.
6520 (initialize_inline_failed): Move it from here ...
6521 * cgraph.c (initialize_inline_failed): ... to here.
6522 (cgraph_create_edge): Call initialize_inline_failed rather than
6523 setting inline_failed directly.
6524
7fb0ee07
BE
65252009-03-29 Ben Elliston <bje@au.ibm.com>
6526
6527 PR target/32542
6528 * sysv4.opt (msdata): Improve comment.
6529 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6530 * sysv4.h (SVR4_ASM_SPEC): Likewise.
6531
0be77bf2
BE
65322009-03-29 Ben Elliston <bje@au.ibm.com>
6533
6534 PR target/30451
6535 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6536 load and store attributes.
6537
593812b6
BE
65382009-03-29 Ben Elliston <bje@au.ibm.com>
6539
6540 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6541 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6542 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6543 * doc/extend.texi (X86 Built-in Functions): Add index entries for
6544 __builtin_infq and __builtin_huge_valq.
6545
8272d11d
AS
65462009-03-28 Anatoly Sokolov <aesok@post.ru>
6547
6548 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6549 atmega8m1 devices.
6550 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6551 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6552
74fe548b
XDL
65532009-03-28 Xinliang David Li <davidxl@google.com>
6554
2ba9daa7 6555 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
6556 (do_dbg_cnt): New function.
6557
33977f81
JH
65582009-03-28 Jan Hubicka <jh@suse.cz>
6559
6560 Merge from pretty-ipa:
6561
6562 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 6563
33977f81
JH
6564 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6565 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6566 * passes.c (function_called_by_processed_nodes_p): New.
6567 * ipa-pure-const.c (check_call): Fix handling of operands.
6568 (analyze_function): Dump debug output for skipped bodies.
6569 (local_pure_const): Use function_called_by_processed_nodes_p.
6570 * dwarf2out.c (reference_to_unused): Use output.
6571 * passes.c (do_per_function_toporder): Likewise.
6572
6573 2008-11-12 Jan Hubicka <jh@suse.cz>
6574
6575 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6576 * ipa-pure-const.c (funct_state_d): Add can throw field; make
6577 state_set_in_source enum
6578 (check_decl): Ignore memory tags; do not set fake looping flags;
6579 dump diagnostics.
6580 (check_operand, check_tree, check_rhs_var, check_lhs_var,
6581 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6582 (check_call, analyze_function): Rewrite.
6583 (check_stmt): New.
6584 (add_new_function): Update call of analyze_function.
6585 (generate_summary): Add call of analyze_function.
6586 (propagate): Propagate can_throw; handle state_set_in_source correctly.
6587 (local_pure_const): New function.
6588 (pass_local_pure_const): New pass.
6589 * ipa-inline.c (inline_transform): Set after_inlining.
6590 * tree-eh.c (stmt_can_throw_external): New.
6591 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6592 work with aliasing built.
6593 * tree-flow.h (stmt_can_throw_external): New.
6594 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6595 and local pure/const pass in early and late optimization queue.
ba20e309 6596
617f3897
MJ
65972009-03-28 Martin Jambor <mjambor@suse.cz>
6598
6599 * fold-const.c (get_pointer_modulus_and_residue): New parameter
6600 allow_func_align.
6601 (fold_binary): Allow function decl aligment consideration is the
6602 second argument is integer constant one.
6603 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6604 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6605 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6606
fe89fbc5
JH
66072009-03-28 Jan Hubicka <jh@suse.cz>
6608
6609 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6610 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6611 * function.h (rtl_data): Add nothrow flag.
6612 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6613 set DECL_NOTHROW for AVAILABLE functions.
6614
574872ff
JJ
66152009-03-28 Jakub Jelinek <jakub@redhat.com>
6616
b3bf8855
JJ
6617 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6618 following vector keyword has expansion starting with pixel or bool
6619 keyword, expand vector to __vector and pixel or bool to __pixel or
6620 __bool.
6621
574872ff
JJ
6622 PR c++/39554
6623 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6624 warn_if_disallowed_function_p): Removed.
6625 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6626 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6627 warning_if_disallowed_function_p.
6628 * flags.h (warn_if_disallowed_function_p,
6629 warn_disallowed_functions): Removed.
6630 * common.opt (Wdisallowed-function-list=): Removed.
6631 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6632
b005da11
RG
66332009-03-28 Richard Guenther <rguenther@suse.de>
6634
6635 PR tree-optimization/38723
6636 * tree-ssa-pre.c (compute_avail): Add all default definitions to
6637 the entry block.
6638
1de812a6
JH
66392009-03-28 Jan Hubicka <jh@suse.cz>
6640
6641 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6642 test introduced by my previous patch.
6643
fbb789d4
RG
66442009-03-28 Richard Guenther <rguenther@suse.de>
6645
6646 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6647 the PHIs value undefined.
6648
6f1873a1
JH
66492009-03-28 Jan Hubicka <jh@suse.cz>
6650
6651 * tree-pass.h (pass_fixup_cfg): New pass.
6652 * ipa-inline.c (inline_transform): Set
6653 always_inline_functions_inlined/after_inlining.
6654 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6655 (pass_fixup_cfg): New pass.
6656 * passes.c (init_optimization_passes): Add fixup_cfg.
6657
17021bc8
RG
66582009-03-28 Richard Guenther <rguenther@suse.de>
6659
6660 PR tree-optimization/38458
6661 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6662 argument use the arguments copy-of value.
6663
e8114fba
RG
66642009-03-28 Richard Guenther <rguenther@suse.de>
6665
6666 PR tree-optimization/38180
6667 * tree-ssa-ccp.c (get_default_value): Simplify.
6668 (likely_value): Likewise.
6669 (surely_varying_stmt_p): Properly handle VOP case.
6670 (ccp_initialize): Likewise.
6671 (ccp_fold): Handle propagating through *&.
6672 (fold_const_aggregate_ref): Also handle decls.
6673
257eb6e3
JH
66742009-03-28 Jan Hubicka <jh@suse.cz>
6675
6676 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6677 * cgraph.h (cgraph_node): Likewise.
6678 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6679 (cgraph_reset_node): Use process flag.
6680 (cgraph_mark_functions_to_output): Likewise.
6681 (cgraph_expand_function): Likewise.
6682 (cgraph_expand_all_functions): Likewise.
6683 (cgraph_output_in_order): Likewise.
6684 * dwarf2out.c (reference_to_unused): Likewise.
6685 * passes.c do_per_function_toporder): Likewise.
6686
61a05df1
JH
66872009-03-28 Jan Hubicka <jh@suse.cz>
6688
6689 Bring from lto-branch:
ba20e309 6690
61a05df1
JH
6691 2008-09-03 Doug Kwan <dougkwan@google.com>
6692
6693 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6694 enums instead of reason strings.
6695 * cgraph.c (cgraph_create_edge): Same.
6696 (cgraph_inline_failed_string): New function.
6697 * cgraph.h (cgraph_inline_failed_t): New enum type.
6698 (cgraph_inline_failed_string): New prototype.
6699 (struct cgraph_edge): Change type of INLINED_FAILED from constant
6700 char pointer to cgraph_inline_failed_t.
6701 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6702 (cgraph_default_inline_p): Ditto.
60839f5d 6703 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
6704 to cgraph_inline_failed_t pointer.
6705 * cif-code.def: New file.
6706 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6707 reason string.
6708 (cgraph_check_inline_limits): Change type of REASON to pointer to
6709 cgraph_inline_failed_t. Replace reason strings with enums.
6710 (cgraph_default_inline_p): Ditto.
6711 (cgraph_recursive_inlining_p): Ditto.
6712 (update_caller_keys): Change type of FAILED_REASON to
6713 cgraph_inline_failed_t.
6714 (cgraph_set_inline_failed): Change type of REASON to pointer to
6715 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
6716 convert enums to strings for text output.
6717 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6718 to be of type cgraph_inline_failed_t. Replace reason strings with
6719 enums. Call cgraph_inline_failed_string to covert enums
6720 to strings for text output.
6721 (cgraph_decide_inlining): Replace reason strings with enums.
6722 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6723 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
6724 for text output.
6725 * tree-inline.c (expand_call_inline): Change type of REASON
6726 to cgraph_inline_failed_t. Replace reason strings with enums.
6727 Call cgraph_inline_failed_string for text output.
6728 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6729 (cgraph.o): Ditto.
6730
144e8aac
JH
67312009-03-28 Jan Hubicka <jh@suse.cz>
6732
6733 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6734 cgraph_clone_node): Remove master clone handling.
6735 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6736 * cgraph.h (master_clone): Remove.
6737 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6738 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6739 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6740
4a371c8d
JH
67412009-03-28 Jan Hubicka <jh@suse.cz>
6742
6743 * cgraph.c (cgraph_function_body_availability): Functions declared
6744 inline are always safe to assume that it is not going to be replaced.
6745
6cdb0ee3
RG
67462009-03-28 Richard Guenther <rguenther@suse.de>
6747
6748 PR tree-optimization/38513
6749 * tree-ssa-pre.c (eliminate): Remove redundant stores.
6750 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6751 EXC_PTR_EXPR and FILTER_EXPR.
6752 (get_ref_from_reference_ops): Likewise.
6753
8ca1fd76
RG
67542009-03-28 Richard Guenther <rguenther@suse.de>
6755
6756 PR tree-optimization/38968
6757 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
6758 Use FLOOR_MOD_EXPR to compute misalignment.
6759
a254e44d
RG
67602009-03-28 Richard Guenther <rguenther@suse.de>
6761
6762 PR tree-optimization/37795
6763 * tree.h (combine_comparisons): Declare.
6764 * fold-const.c (combine_comparisons): Export.
6765 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
6766 comparisons.
6767 (ifcombine_iforif): Use combine_comparisons.
6768
a8ee227c
JH
67692009-03-28 Jan Hubicka <jh@suse.cz>
6770
6771 * tree-eh.c (inlinable_call_p): New function.
6772 (make_eh_edges): Use it.
6773 (verify_eh_edges): Use it.
6774 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
6775 * except.c (reachable_next_level): Add inlinable_function argument
6776 (sjlj_find_directly_reachable_regions): Update.
6777 (add_reachable_handler): Do not set saw_any_handlers.
6778 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
6779 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6780 Add new inlinable call parameter.
6781 (can_throw_internal, can_throw_external): Update.
6782 * except.h (can_throw_internal_1, can_throw_external_1,
6783 foreach_reachable_handler): Update declaration.
6784
52c0e446
JM
67852009-03-28 Joseph Myers <joseph@codesourcery.com>
6786
6787 * config/arm/t-arm-coff, config/h8300/coff.h,
6788 config/i386/i386-aout.h, config/i386/i386-coff.h,
6789 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
6790 config/pdp11/2bsd.h, config/rs6000/aix41.h,
6791 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
6792 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
6793 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
6794 sys-types.h: Remove.
6795 * Makefile.in: Remove protoize and fixproto support and references
6796 in comments.
6797 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
6798 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
6799 Remove.
6800 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
6801 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
6802 unprotoize$(exeext).
6803 (rest.encap): Don't depend on $(STMP_FIXPROTO)
6804 (.PHONY): Don't depend on proto.
6805 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
6806 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
6807 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
6808 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
6809 build/gen-protos.o, build/scan.o, xsys-protos.h,
6810 build/fix-header$(build_exeext), build/fix-header.o,
6811 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
6812 stmp-install-fixproto): Remove.
6813 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
6814 SYSCALLS.c or fixproto files.
6815 (install-common): Don't install protoize.
6816 (install-headers-tar, install-headers-cpio, install-headers-cp):
6817 Don't depend on $(STMP_FIXPROTO).
6818 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
6819 install fixproto files or write out fixproto settings.
6820 (uninstall): Don't uninstall protoize.
6821 * config.gcc (use_fixproto): Remove.
6822 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
6823 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
6824 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
6825 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
6826 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
6827 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
6828 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
6829 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
6830 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
6831 * config/t-vxworks (STMP_FIXPROTO): Remove.
6832 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
6833 STMP_FIXPROTO): Remove.
6834 * config.in, configure: Regenerate.
6835 * crtstuff.c (gid_t, uid_t): Don't undefine.
6836 * doc/install.texi: Change m68k-coff to m68k-elf in example.
6837 (arm-*-coff, arm-*-aout: Remove target entries.
6838 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
6839 Remove mention of AIX 4.1.
6840 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
6841 * doc/invoke.texi (Running Protoize): Remove.
6842 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
6843 (Protoize Caveats): Remove.
6844 * tsystem.h: Update comments on headers assumed to exist.
6845
20a07f44
VM
68462009-03-27 Vladimir Makarov <vmakarov@redhat.com>
6847
6848 * genautomata.c: Add a new year to the copyright. Add a new
6849 reference.
6850 (struct insn_reserv_decl): Add comments for member bypass_list.
6851 (find_bypass): Remove.
6852 (insert_bypass): New.
6853 (process_decls): Use insert_bypass.
6854 (output_internal_insn_latency_func): Output all bypasses with the
6855 same input insn in one switch case.
6856
6857 * rtl.def (define_bypass): Describe bypass choice.
6858 * doc/md.texi (define_bypass): Ditto.
6859
3a0d06c1
RB
68602009-03-27 Richard Guenther <rguenther@suse.de>
6861
6862 * gimplify.c (mark_addressable): Export.
6863 * tree-flow.h (mark_addressable): Declare.
6864 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
6865 * tree-ssa.c (verify_phi_args): Verify that address taken
6866 variables have TREE_ADDRESSABLE set.
6867
68682009-03-27 Richard Guenther <rguenther@suse.de>
6869
6870 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
6871 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
6872 Do not mark decls TREE_ADDRESSABLE.
6873 (build_fold_addr_expr): Adjust.
6874 (fold_addr_expr): Remove.
6875 (fold_unary): Use build_fold_addr_expr.
6876 (fold_comparison): Likewise.
6877 (split_address_to_core_and_offset): Likewise.
6878 * coverage.c (tree_coverage_counter_addr): Mark the array decl
6879 TREE_ADDRESSABLE.
6880 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
6881 (gimplify_modify_expr_to_memcpy): Mark source and destination
6882 addressable.
6883 * omp-low.c (create_omp_child_function): Mark the object decl
6884 TREE_ADDRESSABLE.
6885 (lower_rec_input_clauses): Mark the var we take the address of
6886 TREE_ADDRESSABLE.
6887 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
6888
2ac26e15
L
68892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6890
6891 PR middle-end/39315
6892 * cfgexpand.c (expand_one_stack_var_at): Change alignment
6893 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
6894
472c7fbd
RG
68952009-03-27 Richard Guenther <rguenther@suse.de>
6896
6897 PR tree-optimization/39120
6898 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
6899 constraints.
6900 (handle_lhs_call): Process return constraints. Add escape
6901 constraints if necessary.
6902 (handle_const_call): Fill out return constraints. Make nested
6903 case more precise. Avoid consttmp if possible.
6904 (handle_pure_call): Fill out return constraints. Avoid
6905 callused if possible.
6906 (find_func_aliases): Simplify call handling.
6907
69082009-03-27 Richard Guenther <rguenther@suse.de>
6909
6910 PR tree-optimization/39120
6911 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
6912 as a representative.
6913 (solve_graph): Do propagate CALLUSED.
6914 (handle_pure_call): Use a scalar constraint from CALLUSED for
6915 the return value.
6916 (find_what_p_points_to): CALLUSED shall not appear in poins-to
6917 solutions.
6918
d9223014
L
69192009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6920
6921 PR c/39323
6922 * c-common.c (handle_aligned_attribute): Properly check alignment
6923 overflow. Use (1U << i) instead of (1 << i).
6924
ba20e309 6925 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
6926
6927 * expr.h (get_mem_align_offset): Updated.
6928
6929 * tree.h (tree_decl_common): Change align to "unsigned int" and
6930 move it before pointer_alias_set.
6931
689b689c
L
69322009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6933 Jakub Jelinek <jakub@redhat.com>
6934
6935 PR target/38034
6936 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
6937 gr_register_operand with gr_reg_or_0_operand.
6938 (cmpxchg_rel_di): Likewise.
6939 (sync_lock_test_and_set<mode>): Likewise.
6940
c619e982
L
69412009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6942
6943 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
6944 (true_regnum): Likewise.
6945
6946 * rtlanal.c (subreg_info): Moved to ...
6947 * rtl.h (subreg_info): Here. New.
6948 (subreg_get_info): New.
6949
6950 * rtlanal.c (subreg_get_info): Make it extern.
6951
51212b32
L
69522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6953
6954 PR target/39472
6955 * config/i386/i386.c (ix86_abi): New.
6956 (override_options): Handle -mabi=.
ba20e309 6957 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
6958 (ix86_call_abi_override): Likewise.
6959 (init_cumulative_args): Likewise.
6960 (function_arg_advance): Likewise.
6961 (function_arg_64): Likewise.
6962 (function_arg): Likewise.
6963 (ix86_pass_by_reference): Likewise.
6964 (ix86_function_value_regno_p): Likewise.
6965 (ix86_build_builtin_va_list_abi): Likewise.
6966 (setup_incoming_varargs_64): Likewise.
6967 (is_va_list_char_pointer): Likewise.
6968 (ix86_init_machine_status): Likewise.
ba20e309 6969 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
6970 (ix86_function_type_abi): Return enum calling_abi. Rewrite
6971 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 6972 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
6973 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
6974 with ix86_abi.
6975 (ix86_fn_abi_va_list): Updated.
6976
6977 * config/i386/i386.h (ix86_abi): New.
6978 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
6979 (CONDITIONAL_REGISTER_USAGE): Likewise.
6980 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
6981 (machine_function): Likewise.
6982
6983 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
6984 with ix86_abi.
6985 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
6986 (STACK_BOUNDARY): Likewise.
6987 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
6988
6989 * config/i386/i386.opt (mabi=): New.
6990
6991 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
6992 return enum calling_abi.
6993 (ix86_function_type_abi): Likewise.
6994 (ix86_function_abi): Removed.
6995
6996 * doc/invoke.texi: Document -mabi= option for x86.
6997
7338ea63
KG
69982009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6999
7000 * builtins.c (real_dconstp): Delete.
7001 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7002
68599f33
DS
70032009-03-27 Dodji Seketeli <dodji@redhat.com>
7004 Jakub Jelinek <jakub@redhat.com>
7005
7006 PR debug/37959
7007 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7008 (gen_subprogram_die): When a function is explicit, generate the
7009 DW_AT_explicit attribute.
7010 * langhooks.h (struct lang_hooks_for_decls): Add
7011 function_decl_explicit_p langhook.
7012 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7013 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7014
9f5e9983
JJ
70152009-03-27 Jakub Jelinek <jakub@redhat.com>
7016
64d7685c
JJ
7017 * builtins.c (fold_builtin_memory_op): Optimize memmove
7018 into memcpy if we can prove source and destination don't overlap.
7019
9f5e9983
JJ
7020 * tree-inline.c: Include gt-tree-inline.h.
7021 (clone_fn_id_num): New variable.
7022 (clone_function_name): New function.
7023 (tree_function_versioning): Use it.
7024 * Makefile.in (GTFILES): Add tree-inline.c.
7025
e54d52a8
MM
70262009-03-27 Mark Mitchell <mark@codesourcery.com>
7027
7028 * BASE-VER: Change to 4.5.0.
7029
e9d51dc6
XDL
70302009-03-27 Xinliang David Li <davidxl@google.com>
7031
7032 PR tree-optimization/39557
7033 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7034
4577cea1
XDL
70352009-03-27 Xinliang David Li <davidxl@google.com>
7036
7037 PR tree-optimization/39548
2ba9daa7 7038 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
7039 candidate check.
7040
0f7464f4
L
70412009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7042
7043 * c-common.c (pointer_int_sum): Use %wd on return from
7044 tree_low_cst.
7045
a8847a7f
L
70462009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7047
7048 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7049 on return from tree_low_cst.
7050
b0957daf
AP
70512009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
7052
7053 PR c++/36799
ba20e309
UB
7054 * ginclude/stdarg.h (va_copy): Define also for
7055 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 7056
a5f805df
MLI
70572009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7058
7059 PR c++/35652
7060 * builtins.h (c_strlen): Do not warn here.
7061 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7062 * c-common.c (pointer_int_sum): Take an explicit location.
7063 Warn about offsets out of bounds.
7064 * c-common.h (pointer_int_sum): Adjust declaration.
7065
6f401211
RW
70662009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7067
a5f805df
MLI
7068 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7069 markup glitch.
6f401211 7070
5a59b39e
JJ
70712009-03-26 Jakub Jelinek <jakub@redhat.com>
7072
7073 PR c++/39554
7074 * opts.c (warn_if_disallowed_function_p): Don't assume
7075 get_callee_fndecl must return non-NULL.
7076
d5f89b53
VM
70772009-03-26 Vladimir Makarov <vmakarov@redhat.com>
7078
7079 PR rtl-optimization/39522
7080 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7081 when reg_reloaded_valid is set.
7082
61238a79
UW
70832009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7084
7085 * config/spu/divv2df3.c: New file.
7086 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7087 (DPBIT_FUNCS): Filter out _div_df.
7088
03f8829b
BS
70892009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
7090
7091 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7092 a jump insn, count that jump in the distance to the loop start.
7093
9fdcdc74
KK
70942009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
7095
7096 PR target/39523
7097 * config/sh/sh.c (calc_live_regs): Fix condition for global
7098 registers except PIC_OFFSET_TABLE_REGNUM.
7099
46994828
KT
71002009-03-25 Kai Tietz <kai.tietz@onevision.com>
7101
7102 PR/39518
7103 * doc/invoke.texi (-mconsole): New.
7104 (-mcygwin): New.
7105 (-mno-cygwin): New.
7106 (-mdll): New.
7107 (-mnop-fun-dllimport): New.
7108 (-mthread): New.
7109 (-mwin32): New.
7110 (-mwindows): New.
7111 (sub section "i386 and x86-64 Windows Options"): New.
7112
60839f5d 71132009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
7114
7115 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7116 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7117
ae560440
RG
71182009-03-25 Richard Guenther <rguenther@suse.de>
7119
7120 PR middle-end/39497
7121 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7122 of -Wno-error.
7123
cd510f15
AM
71242009-03-25 Andrey Belevantsev <abel@ispras.ru>
7125
7126 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7127 neither of haifa/selective schedulers are working.
7128
44ab0f0e
RW
71292009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7130
7131 * doc/invoke.texi (Debugging Options): Fix description of
7132 -fno-merge-debug-strings.
7133
ad9646c7
HPN
71342009-03-24 Hans-Peter Nilsson <hp@axis.com>
7135
e6142656
HPN
7136 * config/cris/libgcc.ver: New version-script.
7137 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7138
ad9646c7
HPN
7139 * configure.ac <GAS features, nop mnemonic>: Add pattern
7140 crisv32-*-* for "nop".
ba20e309 7141 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
7142 * configure: Regenerate.
7143
09ac4473
IR
71442009-03-24 Ira Rosen <irar@il.ibm.com>
7145
7146 PR tree-optimization/39529
7147 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7148 mark_sym_for_renaming for the tag copied to the new vector
7149 pointer.
7150
d94a427e
AL
71512009-03-24 Arthur Loiret <aloiret@debian.org>
7152
ba20e309 7153 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
7154 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7155 EXTRA_SPEC_FUNCTIONS.
7156 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7157 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7158 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7159 -march and -mtune options.
7160
60839f5d 71612009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
7162
7163 * config/m68k/t-rtems: Add m5329 multilib.
7164
603f5959
DS
71652009-03-24 Dodji Seketeli <dodji@redhat.com>
7166 Jakub Jelinek <jakub@redhat.com>
7167
7168 PR debug/39524
7169 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7170 nodes.
7171
c5cdb03f
JJ
71722009-03-23 Jakub Jelinek <jakub@redhat.com>
7173
7174 PR c/39495
7175 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7176 instead of c_parser_expression_conv, if original_code isn't one of the
7177 4 allowed comparison codes, fail.
7178
3691626c
RG
71792009-03-23 Richard Guenther <rguenther@suse.de>
7180
7181 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7182 * tree.h (struct tree_type): Likewise.
7183 * reload.h (struct insn_chain): Likewise.
7184 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7185 * function.h (struct function): Likewise.
7186 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7187
88ccb72a
JJ
71882009-03-23 Jakub Jelinek <jakub@redhat.com>
7189
7190 PR tree-optimization/39516
7191 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7192
60839f5d 71932009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 7194
2ba9daa7 7195 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
7196 should be set true if BITS_PER_WORD of target is bigger than 32
7197
f82162f8
HPN
71982009-03-22 Hans-Peter Nilsson <hp@axis.com>
7199
7200 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7201 Translate -B-options to -rpath-link. Correct existing
7202 rpath-link and conditionalize on !nostdlib.
7203
048fd785
RW
72042009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7205
7206 * doc/extend.texi (Function Attributes, Variable Attributes):
7207 Fix typos.
7208 * doc/invoke.texi (Debugging Options, Optimize Options)
7209 (i386 and x86-64 Options, MCore Options): Likewise.
7210
6e75c1a9
JJ
72112009-03-20 Jakub Jelinek <jakub@redhat.com>
7212
7213 PR debug/37890
7214 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7215 it for block local namespace aliases.
7216 (gen_decl_die): Pass context_die to gen_namespace_die.
7217
ea1199ee
JJ
72182009-03-19 Jakub Jelinek <jakub@redhat.com>
7219
7220 PR c/39495
7221 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7222 minimum or maximum value.
7223
58929c10
AO
72242009-03-19 Alexandre Oliva <aoliva@redhat.com>
7225
7226 * reginfo.c (globalize_reg): Recompute derived reg sets.
7227
60839f5d 72282009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
7229
7230 PR target/39063
7231 * libgcc2.c (mprotect): Do not use signed arguments for
7232 VirtualProtect, use DWORD arguments. Also fix the 'may
7233 be used uninitialized' warning for the np variable.
7234
f57c2f04
JJ
72352009-03-19 Jakub Jelinek <jakub@redhat.com>
7236
7237 PR target/39496
7238 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7239 functions using regparm calling conventions when not optimizing.
7240 (ix86_function_sseregparm): Similarly for sseregparm calling
7241 conventions.
7242
9e517d61
LF
72432009-03-19 Li Feng <nemokingdom@gmail.com>
7244
7245 PR middle-end/39500
7246 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7247 dependence if the first conflict is after niter iterations.
7248
8ef20026
HPN
72492009-03-19 Hans-Peter Nilsson <hp@axis.com>
7250
7251 PR middle-end/38609
7252 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7253 functions with dynamic stack-pointer adjustments.
7254
64e4a1a6
BE
72552009-03-19 Ben Elliston <bje@au.ibm.com>
7256
7257 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7258 option; change to -msdata=data.
7259
9a0f3e86
RW
72602009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7261
7262 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7263 and -fopenmp.
7264
09bc5979
EB
72652009-03-18 Eric Botcazou <ebotcazou@adacore.com>
7266
7267 PR target/35180
7268 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7269
332459cd
SL
72702009-03-18 Sandra Loosemore <sandra@codesourcery.com>
7271
7272 * doc/invoke.texi (Code Gen Options): Expand discussion of
7273 -fno-common.
7274
8f5929e1
JJ
72752009-03-18 Jakub Jelinek <jakub@redhat.com>
7276
7277 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7278 * matrix-reorg.c (struct matrix_info): Likewise.
7279 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7280 * rtl.h (struct mem_attrs): Likewise.
7281 * df.h (struct df): Likewise.
7282 * tree-data-ref.h (struct data_dependence_relation): Likewise.
7283 * ira-int.h (struct ira_allocno): Likewise.
7284 * df-scan.c (struct df_collection_rec): Likewise.
7285 * ira.c (struct equivalence): Likewise.
7286 * function.c (struct temp_slot): Likewise.
7287 * cfgloop.h (struct loop): Likewise.
7288
d130d647
JJ
7289 PR debug/39485
7290 * function.c (use_register_for_decl): When not optimizing, disregard
7291 register keyword for variables with types containing methods.
7292
9968d233
SP
72932009-03-18 Sebastian Pop <sebastian.pop@amd.com>
7294
7295 PR middle-end/39447
7296 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7297 (is_simple_operand): Call contains_component_ref_p before calling data
7298 reference analysis that would fail on COMPONENT_REFs.
7299
7300 * tree-vrp.c (search_for_addr_array): Fix formatting.
7301
69484bfd
RG
73022009-03-18 Richard Guenther <rguenther@suse.de>
7303
7304 * tree-vect-transform.c (vect_loop_versioning): Fold the
7305 generated comparisons.
7306 * tree-vectorizer.c (set_prologue_iterations): Likewise.
7307 (slpeel_tree_peel_loop_to_edge): Likewise.
7308
66811228
RW
73092009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7310
0631b69f
RW
7311 PR middle-end/37805
7312 * opts.c (print_specific_help): In addition to `undocumented',
7313 accept `separate' and `joined' flags if passed alone. Describe
7314 output by the first matched one of those.
7315 (common_handle_option): Skip over empty strings.
7316 * gcc.c (display_help): Fix help string for `--help='.
7317 * doc/invoke.texi (Option Summary, Overall Options): With
7318 `--help=', classes and qualifiers can both be repeated, but
7319 only the latter can be negated. One should not pass only
7320 negated qualifiers. Fix markup and examples.
7321
66811228
RW
7322 Revert
7323 2008-10-14 Jakub Jelinek <jakub@redhat.com>
7324 PR middle-end/37805
7325 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7326 and -fhelp=separate.
7327
3c072c6b
JY
73282009-03-17 Jing Yu <jingyu@google.com>
7329
7330 PR middle-end/39378
80c65208
JY
7331 * function.h (struct rtl_data): Move is_thunk from here...
7332 (struct function): ...to here.
7333 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
7334 * varasm.c (assemble_start_function): Change is_thunk from crtl to
7335 cfun.
80c65208
JY
7336 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7337 cfun.
7338 (alpha_does_function_need_gp, alpha_start_function): Likewise.
7339 (alpha_output_function_end_prologue): Likewise.
7340 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7341 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7342 (rs6000_output_function_epilogue): Likewise.
7343 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 7344
9ade279b
UB
73452009-03-17 Uros Bizjak <ubizjak@gmail.com>
7346
7347 PR target/39482
7348 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7349 from different units in a single alternative.
7350 (*truncdfsf_i387): Ditto.
7351 (*truncxfsf2_mixed): Ditto.
7352 (*truncxfdf2_mixed): Ditto.
7353
16e60c17
JJ
73542009-03-17 Jakub Jelinek <jakub@redhat.com>
7355
98381eb4
JJ
7356 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7357 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7358
df5deb18
JJ
7359 PR debug/39474
7360 * tree-ssa-live.c (remove_unused_locals): Don't remove local
7361 unused non-artificial variables when not optimizing.
7362
a3f596ba
JJ
7363 PR debug/39471
7364 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7365 DW_TAG_imported_module even if decl is IMPORTED_DECL with
7366 NAMESPACE_DECL in its DECL_INITIAL.
7367
6b2b8871
JJ
7368 PR middle-end/39443
7369 * optabs.c (set_user_assembler_libfunc): New function.
7370 * expr.h (set_user_assembler_libfunc): New prototype.
7371 * c-common.c: Include libfuncs.h.
7372 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7373 for memcmp, memset, memcpy, memmove and abort.
7374 * Makefile.in (c-common.o): Depend on libfuncs.h.
7375
16e60c17
JJ
7376 PR debug/39412
7377 * dwarf2out.c (gen_inlined_enumeration_type_die,
7378 gen_inlined_structure_type_die, gen_inlined_union_type_die,
7379 gen_tagged_type_instantiation_die): Removed.
7380 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7381 do nothing.
7382
4d936aca
JJ
73832009-03-17 Janis Johnson <janis187@us.ibm.com>
7384
7385 PR testsuite/38526
7386 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7387 its use.
7388 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7389 (check-parallel-%): Ditto.
7390 (check-consistency): Ditto.
7391
4e9b2e50
KT
73922009-03-17 Kai Tietz <kai.tietz@onevision.com>
7393
7394 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7395 local variable rhs by NULL_TREE.
7396
21440b2d
L
73972009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7398
7399 PR target/39477
9ade279b 7400 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 7401
d8905c6a
L
74022009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7403
7404 PR target/39476
9ade279b 7405 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
7406
74072009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
7408
7409 PR target/39473
7410 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7411 for ms->sysv ABI calls only in 64bit mode.
7412
7413 * config/i386/i386.md (untyped_call): Support 32bit.
7414
cdcabece
L
74152009-03-16 H.J. Lu <hongjiu.lu@intel.com>
7416
7417 * doc/extend.texi: Replace x86_65 with x86_64.
7418
97b4ba9f
JJ
74192009-03-16 Jakub Jelinek <jakub@redhat.com>
7420
7421 PR tree-optimization/39455
7422 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7423 mismatches for POINTER_TYPE_P (type).
7424 (number_of_iterations_le): Likewise.
7425
60839f5d 74262009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
7427
7428 * config/picochip/picochip.c: Removed profiling support.
7429 * config/picochip/picochip.md: Removed profiling instruction.
7430 * config/picochip/picochip.h: Removed profiling builtin.
7431
f38095f3
JM
74322009-03-16 Joseph Myers <joseph@codesourcery.com>
7433
7434 * doc/install.texi (--with-host-libstdcxx): Document.
7435
2cb4817b
AS
74362009-03-14 Anatoly Sokolov <aesok@post.ru>
7437
7438 PR target/34299
7439 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7440 generate a warning if the function name does not begin with
7441 "__vector" and the function has either the 'signal' or 'interrupt'
7442 attribute, from here to ...
7443 (avr_declare_function_name): ...here. New function.
7444 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7445 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7446
39b2ac74
JJ
74472009-03-14 Jakub Jelinek <jakub@redhat.com>
7448
7449 PR bootstrap/39454
7450 * cse.c (fold_rtx): Don't modify original const_arg1 when
7451 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7452 separate variable instead.
7453 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7454 from out of range shift counts.
7455 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7456
ad41bd84 74572009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 7458
60839f5d 7459 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
7460 diagnostic.h with $(DIAGNOSTIC_H).
7461
ad41bd84 74622009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
7463
7464 PR target/39431
7465 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7466 predicate.
7467 * config/i386/sync.md (sync_compare_and_swap<mode>,
7468 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7469 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7470 into a register.
7471 (sync_double_compare_and_swapdi_pic,
7472 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7473 cmpxchg8b_pic_memory_operand instead of just memory_operand.
7474
122c59c7
L
74752009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7476
7477 PR target/39445
9ade279b 7478 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 7479
cec8874f
L
74802009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7481
7482 PR target/39327
7483 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7484 (avx_addsubv4df3): Likewise.
7485 (*avx_addsubv4sf3): Likewise.
7486 (sse3_addsubv4sf3): Likewise.
7487
bbb52802
L
74882009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7489
7490 PR target/38824
9ade279b 7491 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 7492
a812fb07
VM
74932009-03-12 Vladimir Makarov <vmakarov@redhat.com>
7494
7495 PR debug/39432
7496 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7497 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7498 registers for allocnos created from user-defined variables.
7499
4caab5ba
UW
75002009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7501
7502 PR target/39181
7503 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7504 of non-integer mode as well.
7505
498e51ca
AN
75062009-03-11 Adam Nemet <anemet@caviumnetworks.com>
7507
7508 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7509 for functions for which the parameter types are unknown.
7510
9bfaf89d
JJ
75112009-03-11 Jakub Jelinek <jakub@redhat.com>
7512
7513 PR target/39137
9ade279b 7514 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
7515 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7516 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7517 * config/i386/i386.c (ix86_local_alignment): For
7518 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7519 long long variables on the stack to avoid dynamic realignment.
7520 Allow the first argument to be a decl rather than type.
7521 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7522
18a3bdcb
NC
75232009-03-11 Nick Clifton <nickc@redhat.com>
7524
7525 PR target/5362
40190a76
NC
7526 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7527 options.
7528 Add description to mno-lsim option.
7529 * config/mcore/mcore.h: Remove comment about deprecated m4align
7530 option.
7531 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7532 * doc/invoke.texi: Add description of mno-lsim and
7533 mstack-increment options.
7534
18a3bdcb
NC
7535 * config/fr30/fr30.opt: Document the -mno-lsim option.
7536 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7537 and -mno-lsim options.
7538
dc215785
UW
75392009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7540
7541 * fold-const.c (fold_comparison): Only call fold_inf_compare
7542 if the mode supports infinities.
7543
7716876b
JM
75442009-03-11 Jason Merrill <jason@redhat.com>
7545
7546 PR debug/39086
7547 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7548 end already did. Notice GIMPLE_CALL modifications of the result.
7549 Don't copy debug information from an ignored decl or a decl from
7550 another function.
7551
ddef83d2
RG
75522009-03-10 Richard Guenther <rguenther@suse.de>
7553 Nathan Froyd <froydnj@codesourcery.com>
7554
7555 PR middle-end/37850
9ade279b 7556 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
7557 (__divMODE3): Likewise.
7558
9a9ba8d9
JJ
75592009-03-09 Jakub Jelinek <jakub@redhat.com>
7560
7561 PR tree-optimization/39394
7562 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7563 DECL_SIZE_UNIT of variable length FIELD_DECLs.
7564
929b7fc3
AK
75652009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7566
7567 * recog.c (verfiy_changes): Disallow renaming of hard regs in
7568 inline asms for register asm ("") declarations.
7569
1803581d
EB
75702009-03-09 Eric Botcazou <ebotcazou@adacore.com>
7571
7572 * fold-const.c (fold_unary): Fix comment.
7573
8454d27e
JH
75742009-03-07 Jan Hubicka <jh@suse.cz>
7575
7576 PR target/39361
969a5433
JJ
7577 * tree-inline.c (setup_one_parameter): Do replacement of const
7578 argument by constant in SSA form.
8454d27e 7579
3a695389
UW
75802009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7581
7582 PR middle-end/38028
7583 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7584 determine alignment passed to assign_stack_local.
7585 (assign_parms_unsplit_complex): Likewise.
7586 * except.c (sjlj_build_landing_pads): Likewise.
7587
9f0e7885
JJ
75882009-03-06 Jakub Jelinek <jakub@redhat.com>
7589
65401a0b
JJ
7590 PR middle-end/39360
7591 * tree-flow.h (add_referenced_var): Return bool instead of void.
7592 * tree-dfa.c (add_referenced_var): Return result of
7593 referenced_var_check_and_insert call.
7594 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7595 of referenced_var_check_and_insert.
7596
9f0e7885 7597 PR debug/39372
9ade279b 7598 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
7599 (gen_variable_die): Emit DW_AT_location on abstract static variable's
7600 DIE, don't emit it if abstract origin already has it.
7601 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7602 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7603
3b664bd1
JBG
76042009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7605
ba20e309 7606 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
7607 detection.
7608 (write_tm_constrs_h): Indent generated code.
7609
d8f8ca80
RR
76102009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7611
7612 * doc/extend.texi (Function Attributes): Add documentation
7613 for isr attributes.
7614
6c3d550c
JJ
76152009-03-06 Jakub Jelinek <jakub@redhat.com>
7616
7617 PR debug/39387
7618 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7619 take locus from its DECL_SOURCE_LOCATION instead of input_location.
7620
f9e96751
BS
76212009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
7622
7623 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7624 the loop as bad.
7625
ee0ee7e2
JJ
76262009-03-05 Jakub Jelinek <jakub@redhat.com>
7627
7628 PR debug/39379
7629 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7630 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7631
6c6094f1
UB
76322009-03-05 Uros Bizjak <ubizjak@gmail.com>
7633
7634 * config/i386/i386.md (R8_REG, R9_REG): New constants.
7635 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7636 constants instead of magic numbers.
7637 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7638 (QI_REG_P): Ditto.
7639 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7640 (x86_64_ms_abi_int_parameter_registers): Ditto.
7641 (x86_64_int_return_registers): Ditto.
09f8a8d3 7642 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
7643 (ix86_expand_call): Ditto for clobbered_registers array.
7644 (ix86_hard_regno_mode_ok): Ditto.
7645 (x86_extended_QIreg_mentioned_p): Ditto.
7646
b267bd41
R
76472009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
7648
6c6094f1 7649 PR tree-optimization/39349
1f3ad3f0
R
7650 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7651
b267bd41
R
7652 * combine.c (gen_lowpart_for_combine): Use omode when generating
7653 clobber.
7654
1242bc9d
R
76552009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
7656
6c6094f1 7657 PR rtl-optimization/39235
1242bc9d
R
7658 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7659
48f03606
ZD
76602009-03-04 Zdenek Dvorak <ook@ucw.cz>
7661
7662 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7663
b505e785
RG
76642009-03-04 Richard Guenther <rguenther@suse.de>
7665
7666 PR tree-optimization/39362
7667 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7668 that occur in abnormal PHIs should be varying.
7669
f017bf5e
ZD
76702009-03-04 Zdenek Dvorak <ook@ucw.cz>
7671
7672 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7673 Extend comments.
7674 (simple_iv): Take loop as an argument instead of statement.
7675 * tree-scalar-evolution.h (simple_iv): Declaration changed.
7676 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7677 to simple_iv.
7678 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7679 Ditto.
7680 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7681 * matrix-reorg.c (analyze_transpose): Ditto.
7682 * tree-data-ref.c (dr_analyze_innermost): Ditto.
7683 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7684 * tree-predcom.c (ref_at_iteration): Ditto.
7685 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7686
6a66f28e
RG
76872009-03-04 Richard Guenther <rguenther@suse.de>
7688
7689 PR tree-optimization/39358
7690 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7691 escaped_id and callused_id.
7692 (solve_graph): Likewise.
7693
57e454ee
RG
76942009-03-04 Richard Guenther <rguenther@suse.de>
7695
7696 PR tree-optimization/39339
7697 * tree-sra.c (try_instantiate_multiple_fields): Make it
7698 no longer ICE on the above.
7699
a6fe9ed4
JM
77002009-03-03 Joseph Myers <joseph@codesourcery.com>
7701
7702 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7703 that fits within Pmode.
7704
dc672951
SE
77052009-03-03 Steve Ellcey <sje@cup.hp.com>
7706
7707 PR middle-end/10109
7708 * tm.texi (LIBCALL_VALUE): Update description.
7709
8b9d598f
SE
77102009-03-03 Steve Ellcey <sje@cup.hp.com>
7711
7712 PR middle-end/34443
7713 * doc/extend.texi (section): Update description.
7714
13e4e36e
L
77152009-03-03 H.J. Lu <hongjiu.lu@intel.com>
7716
7717 PR middle-end/39345
7718 * tree-inline.c (remapped_type): New.
7719 (can_be_nonlocal): Call remapped_type instead of remap_type.
7720
067dd3c9
JJ
77212009-03-03 Jakub Jelinek <jakub@redhat.com>
7722
7723 PR fortran/39354
7724 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7725 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7726
9bd9f738
RG
77272009-03-03 Richard Guenther <rguenther@suse.de>
7728
7729 PR middle-end/39272
7730 * tree.c (tree_nonartificial_location): New function.
7731 * tree.h (tree_nonartificial_location): Declare.
7732 * builtins.c (expand_builtin_memory_chk): Provide location
7733 of the call location for artificial function pieces.
7734 (maybe_emit_chk_warning): Likewise.
7735 (maybe_emit_sprintf_chk_warning): Likewise.
7736 (maybe_emit_free_warning): Likewise.
7737 * expr.c (expand_expr_real_1): Likewise.
7738
f07049c8
JJ
77392009-03-03 Jakub Jelinek <jakub@redhat.com>
7740
7741 PR tree-optimization/39343
7742 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7743 COMPONENT_REF t has ARRAY_TYPE.
7744
7d4fba4a
SP
77452009-03-02 Sebastian Pop <sebastian.pop@amd.com>
7746
7747 PR middle-end/39335
7748 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7749 when the type precision of the induction variable should be
7750 larger than the type precision of nit.
7751 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7752 * graphite.c (graphite_loop_normal_form): Same.
7753 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7754
78168632
UB
77552009-03-02 Uros Bizjak <ubizjak@gmail.com>
7756
7757 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
7758 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 7759 numbers to describe clobbered registers.
78168632 7760 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
7761 * config/i386/mmx.md (mmx_emms): Ditto.
7762 (mmx_femms): Ditto.
78168632 7763
63553059
RS
77642009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
7765
7766 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
7767 of ABI_64.
7768
500a1f85
UW
77692009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7770
7771 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
7772 (spu_section_type_flags): New function.
7773
962aae34
UB
77742009-03-02 Uros Bizjak <ubizjak@gmail.com>
7775
7776 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
7777 reg_class_contents of FLOAT_REGS into a temporary.
7778
6dfb529c 77792009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 7780 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
7781
7782 PR tree-optimization/39318
7783 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
7784 information to the vectorized statement.
7785
6b5629db
UB
77862009-03-01 Uros Bizjak <ubizjak@gmail.com>
7787
434426d2
UB
7788 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
7789 variable. Use defined names instead of magic constants for REX SSE
7790 registers.
6b5629db 7791
14e5b285
RG
77922009-03-01 Richard Guenther <rguenther@suse.de>
7793
7794 PR tree-optimization/39331
7795 * omp-low.c (lower_send_shared_vars): Do not receive new
7796 values for the reference of DECL_BY_REFERENCE parms or results.
7797
526d73ab
JH
77982009-03-01 Jan Hubicka <jh@suse.cz>
7799
7800 PR debug/39267
7801 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
7802 BLOCK_NONLOCALIZED_VAR): New macros.
7803 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
7804 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
7805 gen_decl_die): Add origin argument. Allow generation of die with
7806 origin at hand only.
526d73ab 7807 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
7808 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
7809 of gen_*.
526d73ab
JH
7810 (gen_block_die): Fix checking for unused blocks.
7811 (process_scope_var): Break out from .... ; work with origins only.
7812 (decls_for_scope) ... here; process nonlocalized list.
7813 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
7814 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
7815 vars.
526d73ab
JH
7816 (dump_scope_block): Dump them.
7817 * tree-inline.c (remap_decls): Handle nonlocalized vars.
7818 (remap_block): Likewise.
7819 (can_be_nonlocal): New predicate.
7820 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
7821
7a9d3fe8
RW
78222009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7823
7824 * configure: Regenerate.
7825
b3cdf3cb
RW
78262009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7827
a16d1645 7828 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 7829 Reuse help texts for duplicate options which do not have any.
a16d1645 7830
1156c176
RW
7831 * gcc.c (display_help): Document --version.
7832
033505fc
RW
7833 * gcc.c (main): If print_help_list and verbose_flag, ensure
7834 driver output comes before subprocess output.
7835
4d077054
RW
7836 * optc-gen.awk: Assign all remaining fields to help string,
7837 space-separated, for multi-line help in *.opt.
7838
a072f1cf
RW
7839 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
7840 -Wno-pedantic-ms-format is for MinGW targets only.
7841
b3cdf3cb
RW
7842 * doc/options.texi (Option file format): Fix bad indentation,
7843 restoring dropped sentence.
7844
a3aadcc5
JH
78452009-02-28 Jan Hubicka <jh@suse.cz>
7846
7847 * tree-inline.c (tree_function_versioning): Output debug info.
7848
1cf5abb3
JH
78492009-02-28 Jan Hubicka <jh@suse.cz>
7850
7851 PR debug/39267
7852 * tree-inline.c (setup_one_parameter): Do not copy propagate
7853 arguments when not optimizing.
7854
c4d3f42f
L
78552009-02-28 H.J. Lu <hongjiu.lu@intel.com>
7856
7857 PR target/39327
7858 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7859 (avx_addsubv4df3): Likewise.
7860 (*avx_addsubv4sf3): Likewise.
7861 (sse3_addsubv4sf3): Likewise.
7862 (*avx_addsubv2df3): Likewise.
7863 (sse3_addsubv2df3): Likewise.
7864 (avx_unpckhps256): Correct item selectors.
7865 (avx_unpcklps256): Likewise.
7866 (avx_unpckhpd256): Likewise.
7867 (avx_unpcklpd256): Likewise.
7868
eb50f5f4
JH
78692009-02-28 Jan Hubicka <jh@suse.cz>
7870
7871 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
7872 static vars.
7873 (copy_arguments_for_versioning): If var is declared don't declare it.
7874 (tree_function_versioning): First setup substitutions and then copy
7875 args.
7876
26140130
JH
78772009-02-27 Jan Hubicka <jh@suse.cz>
7878
7879 PR debug/39267
7880 * cgraph.h (varpool_output_debug_info): Remove.
7881 * cgraphunit.c (varpool_output_debug_info): Remove.
7882 * dwarf2out.c (deferred_locations_struct): New struct
7883 (deferred_locations): New type.
7884 (deferred_locations_list): New static var.
7885 (deffer_location): New function.
7886 (gen_variable_die): Use it.
7887 (decls_for_scope): Output info on local static vars.
7888 (dwarf2out_finish): Process deferred locations.
7889 * varpool.c (varpool_output_debug_info): Remove.
7890
cff7525f
JH
78912009-02-27 Jan Hubicka <jh@suse.cz>
7892
7893 PR debug/39267
7894 * tree.h (TREE_PROTECTED): Fix comment.
7895 (BLOCK_HANDLER_BLOCK): Remove.
7896 (struct tree_block): Remove handler_block add body_block.
7897 (inlined_function_outer_scope_p): New.
7898 (is_body_block): Remove.
7899 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
7900 * dwarf2out.c (is_inlined_entry_point): Remove.
7901 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
7902 (gen_block_die): Use is_inlined_entry_point check. Remove body block
7903 code.
cff7525f
JH
7904 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
7905 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
7906 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
7907 block with multiple subblocks.
cff7525f
JH
7908 (dump_scope_block): Prettier output; dump more flags and info.
7909 (dump_scope_blocks): New.
7910 (remove_unused_locals): Use dump_scope_blocks.
7911 * tree-flow.h (dump_scope_blocks): Declare.
7912 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
7913 * stmt.c (is_body_block): Remove.
7914 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
7915 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
7916
c20993b9
SP
79172009-02-27 Sebastian Pop <sebastian.pop@amd.com>
7918
7919 PR middle-end/39308
2ba9daa7 7920 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
7921 number_of_iterations_exit from a gcc_assert.
7922
e3cba5e5
AK
79232009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7924
60839f5d 7925 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
7926 jumps if COND is NULL.
7927 (find_cond_jump): New function.
7928 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 7929 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 7930
9dadeeb8
UB
79312009-02-26 Uros Bizjak <ubizjak@gmail.com>
7932
7933 * config/alpha/alpha.h (alpha_expand_mov): Return false if
7934 force_const_mem returns NULL_RTX.
7935
625d3251
EB
79362009-02-26 Jan Hubicka <jh@suse.cz>
7937
7938 PR debug/39267
7939 * cgraph.h (varpool_output_debug_info): Remove.
7940 * cgraphunit.c (varpool_output_debug_info): Remove.
7941 * dwarf2out.c (deferred_locations_struct): New struct
7942 (deferred_locations): New type.
7943 (deferred_locations_list): New static var.
7944 (deffer_location): New function.
7945 (gen_variable_die): Use it.
7946 (decls_for_scope): Output info on local static vars.
7947 (dwarf2out_finish): Process deferred locations.
7948 * varpool.c (varpool_output_debug_info): Remove.
7949
38432148 79502009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
7951
7952 PR rtl-optimization/39241
7953 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
7954 to subreg_offset_representable_p.
7955
62d049cf
PB
79562009-02-25 Paolo Bonzini <bonzini@gnu.org>
7957
7958 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
7959 execute function prototype. Get f and nregs from max_reg_num
7960 and get_insns. Remove the first backward pass as it's dead,
7961 guard the forward pass by flag_expensive_optimizations.
7962 (rest_of_handle_regmove): Delete.
7963 (pass_regmove): Replace it with regmove_optimize.
7964
f618d33e
MJ
79652009-02-25 Martin Jambor <mjambor@suse.cz>
7966
7967 PR tree-optimization/39259
7968 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 7969 calls_alloca function flags.
f618d33e
MJ
7970 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
7971 calls are detected.
7972
c8a05f7c
PB
79732009-02-25 Paolo Bonzini <bonzini@gnu.org>
7974
7975 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
7976 flags_set_1_rtx, flags_set_1_set): Delete.
7977 (regmove_optimize): Do not call mark_flags_life_zones.
7978
6d2538f5
JB
79792009-02-24 Julian Brown <julian@codesourcery.com>
7980
7981 PR target/35965
7982 * config/arm/arm.c (require_pic_register): Only set
7983 cfun->machine->pic_reg once per function.
7984
a2fa6772
SL
79852009-02-24 Sandra Loosemore <sandra@codesourcery.com>
7986
7987 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 7988 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 7989
5472de36
SE
79902009-02-24 Steve Ellcey <sje@cup.hp.com>
7991
7992 PR target/33785
7993 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
7994
844216f3
RG
79952009-02-24 Richard Guenther <rguenther@suse.de>
7996
7997 PR debug/39285
7998 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
7999
71adbef3 80002009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 8001 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
8002
8003 PR tree-optimization/39233
8004 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8005 from converting them to a generic type.
8006
f1a558e0
SP
80072009-02-23 Sebastian Pop <sebastian.pop@amd.com>
8008
8009 PR tree-optimization/39260
8010 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8011 contains a condition with a real type.
8012 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8013
d8028f2c
JM
80142009-02-23 Jason Merrill <jason@redhat.com>
8015
8016 PR c++/38880
8017 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8018 narrowing_initializer_constant_valid_p.
2ba9daa7 8019 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
8020 null_pointer_node for adding a pointer to itself.
8021
9283b513
JH
80222009-02-23 Jan Hubicka <jh@suse.cz>
8023
8024 PR c/12245
9dadeeb8
UB
8025 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8026 resizing.
9283b513 8027
61e04322
JH
80282009-02-23 Jan Hubicka <jh@suse.cz>
8029
9dadeeb8
UB
8030 PR tree-optimization/37709
8031 * tree.c (block_ultimate_origin): Move here from dwarf2out.
8032 * tree.h (block_ultimate_origin): Declare.
8033 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
8034 * tree-ssa-live.c (remove_unused_scope_block_p):
8035 Eliminate blocks containig no instructions nor live variables nor
8036 nested blocks.
8037 (dump_scope_block): New function.
8038 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 8039 enable dumping at TDF_DETAILS.
61e04322 8040
38432148 80412009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
8042
8043 * config/i386/i386.c (classify_argument): Don't allow COImode
8044 and OImode.
8045 (function_arg_advance_32): Don't allow OImode.
8046 (function_arg_32): Likewise.
8047 (function_value_32): Likewise.
8048 (return_in_memory_32): Likewise.
8049 (function_arg_64): Remove OImode comment.
8050
38432148 80512009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
8052
8053 PR target/39261
8054 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8055 ix86_expand_vector_set for V4DImode in 64bit mode only.
8056 (ix86_expand_vector_init_one_var): Likewise.
8057
dcd739a6
SP
80582009-02-21 Sebastian Pop <sebastian.pop@amd.com>
8059
8060 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8061
6c3b938d
RS
80622009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8063
8e361f23 8064 PR bootstrap/39257
6c3b938d
RS
8065 * loop-iv.c: Revert last change.
8066 * emit-rtl.c: Likewise.
8067
38432148 80682009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
8069
8070 PR target/39256
8071 * config/i386/i386.c (type_natural_mode): Remove an extra
8072 space in the warning message.
8073 (function_value_32): Handle 32-byte vector modes.
8074 (return_in_memory_32): Likewise.
8075
2ec62529
RS
80762009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8077
8078 * loop-iv.c (truncate_value): New function.
8079 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8080 of lowpart_subreg.
8081 (lowpart_subreg): Move to...
8082 * emit-rtl.c: ...here.
8083
ecb8c3cc 80842009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 8085
ecb8c3cc
DS
8086 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8087 accidental and undocumented change at revision 140860.
8088
ae46a823
JM
80892009-02-21 Joseph Myers <joseph@codesourcery.com>
8090
8091 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8092 take gimple_seq * arguments.
8093 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8094 types_compatible_p langhook.
8095
07d8efe3 80962009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 8097 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
8098
8099 * config/arm/arm.c (arm_builtin_va_list): New function.
8100 (arm_expand_builtin_va_start): Likewise.
8101 (arm_gimplify_va_arg_expr): Likewise.
8102 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8103 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8104 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8105 (va_list_type): New variable.
8106 (arm_mangle_type): Mangle va_list_type appropriately.
8107
b1fb9f56
JJ
81082009-02-20 Jakub Jelinek <jakub@redhat.com>
8109
8110 PR middle-end/39157
8111 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8112 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8113 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8114 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8115 parameter to 1000 for -O1 by default.
8116 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8117 parameter.
8118 * loop-invariant.c: Include params.h.
8119 (move_loop_invariants): Don't call move_single_loop_invariants on
8120 very large loops.
8121
5bc0807c
JM
81222009-02-20 Jaka Mocnik <jaka@xlab.si>
8123
8124 * calls.c (emit_library_call_value_1): Use slot_offset instead of
8125 offset when calculating bounds for indexing stack_usage_map. Fixes
8126 a buffer overflow with certain target setups.
8127
c69cd1f5
JJ
81282009-02-20 Jakub Jelinek <jakub@redhat.com>
8129
8130 PR target/39240
8131 * calls.c (expand_call): Clear try_tail_call if caller and callee
8132 disagree in promotion of function return value.
8133
09812622
JJ
81342009-02-19 Jakub Jelinek <jakub@redhat.com>
8135
8136 PR target/39175
8137 * c-common.c (c_determine_visibility): If visibility changed and
8138 DECL_RTL has been already set, call make_decl_rtl to update symbol
8139 flags.
8140
68017cb4
L
81412009-02-19 H.J. Lu <hongjiu.lu@intel.com>
8142
8143 PR c++/39188
8144 * varasm.c (assemble_variable): Don't check DECL_NAME when
8145 globalizing a variable.
8146
ab4194da
JM
81472009-02-19 Joseph Myers <joseph@codesourcery.com>
8148
8149 PR c/38483
8150 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8151 expression before any __builtin_trap call.
8152 * c-typeck.c (build_function_call): Convert and check function
8153 arguments before generating a call to a trap. Evaluate the
8154 function arguments before the trap.
8155
6b67572e
UB
81562009-02-19 Uros Bizjak <ubizjak@gmail.com>
8157
8158 PR target/39228
8159 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8160 (UNSPEC_FXAM_MEM): New unspec.
8161 (fxam<mode>2_i387_with_temp): New insn and split pattern.
8162 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
8163 memory using fxam<mode>2_i387_with_temp to remove excess precision.
8164
9e39dba6
RG
81652009-02-19 Richard Guenther <rguenther@suse.de>
8166
8167 PR tree-optimization/39207
8168 PR tree-optimization/39074
8169 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8170 storedanything_tree): New.
8171 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 8172 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
8173 (build_succ_graph): Add edges from STOREDANYTHING to all
8174 non-direct nodes.
8175 (init_base_vars): Initialize STOREDANYTHING.
8176 (compute_points_to_sets): Free substitution info after
8177 building the succ graph.
8178 (ipa_pta_execute): Likewise.
8179
8180 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8181 field.
8182 (do_ds_constraint): Do not add to special var or non-pointer
8183 field solutions.
8184 (type_could_have_pointers): Split out from ...
8185 (could_have_pointers): ... here. For arrays use the element type.
8186 (create_variable_info_for): Initialize may_have_pointers.
8187 (new_var_info): Likewise.
8188 (handle_lhs_call): Make the HEAP variable unknown-sized.
8189 (intra_create_variable_infos): Use a type with pointers for
8190 PARM_NOALIAS, make it unknown-sized.
8191
fd7b2603
L
81922009-02-18 H.J. Lu <hongjiu.lu@intel.com>
8193
8194 PR target/39224
6b67572e 8195 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 8196
98b80692
JM
81972009-02-18 Jason Merrill <jason@redhat.com>
8198
8199 PR target/39179
8200 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8201 value if DECL_EXTERNAL.
8202 * tree-sra.c (sra_walk_gimple_assign): Likewise.
8203 * target.h (gcc_target::binds_local_p): Clarify "module".
8204 * tree.h (TREE_PUBLIC): Clarify "module".
8205
0705d3f4
L
82062009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
8207
8208 PR target/38891
8209 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8210 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8211
bce08d50
L
82122009-02-17 H.J. Lu <hongjiu.lu@intel.com>
8213
8214 PR target/39082
8215 * c.opt (Wabi): Support C and ObjC.
8216 (Wpsabi): New.
8217
8218 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8219
8220 * config/i386/i386.c (classify_argument): Warn once about the ABI
8221 change when passing union with long double.
8222
8223 * doc/invoke.texi: Update -Wabi for warning psABI changes.
8224
5600f233
JM
82252009-02-18 Joseph Myers <joseph@codesourcery.com>
8226
8227 PR c/35447
8228 * c-parser.c (c_parser_compound_statement): Always enter and leave
8229 a scope.
8230
8cd01fe6
JDA
82312009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8232
8233 PR target/34587
8234 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8235
418df9d7
JJ
82362009-02-18 Jakub Jelinek <jakub@redhat.com>
8237
8238 PR tree-optimization/36922
8239 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8240 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8241 Likewise.
8242
082d2ebb
RS
82432009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8244
8245 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8246 to 0 for EABI64.
8247
17de576c
RS
82482009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8249
8250 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8251
6d8d5435
RS
82522009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8253
8254 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8255 tree sharing.
8256
e69ff910
RB
82572009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
8258 Richard Sandiford <rdsandiford@googlemail.com>
8259
8260 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8261 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8262 (loongson_biadd): ...this.
8263
6b24ee26
RG
82642009-02-17 Richard Guenther <rguenther@suse.de>
8265
8266 PR tree-optimization/39202
8267 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8268 a var make sure to follow existing collapses.
8269
91ab2c86
RG
82702009-02-17 Richard Guenther <rguenther@suse.de>
8271
8272 PR middle-end/39214
8273 * langhooks.c (lhd_print_error_function): Check for NULL block.
8274
73a63870
RG
82752009-02-17 Richard Guenther <rguenther@suse.de>
8276
8277 PR tree-optimization/39204
8278 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8279 of the PHI arg.
8280
0e08f686
UB
82812009-02-17 Uros Bizjak <ubizjak@gmail.com>
8282
8283 * config/soft-fp/double.h: Update from glibc CVS.
8284
a60b7ddb
RG
82852009-02-17 Richard Guenther <rguenther@suse.de>
8286
8287 PR tree-optimization/39207
8288 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8289 strict-aliasing warnings for pointers pointing to NULL.
8290
a47e20fd
JM
82912009-02-16 Joseph Myers <joseph@codesourcery.com>
8292
8293 PR c/35446
8294 * c-parser.c (c_parser_braced_init): Call pop_init_level when
8295 skipping until next close brace.
8296
50aab7dc
L
82972009-02-16 H.J. Lu <hongjiu.lu@intel.com>
8298
8299 PR target/37049
8300 * config/i386/i386.c (ix86_expand_push): Set memory alignment
8301 to function argument boundary.
8302
68e53db0
HS
83032009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
8304
8305 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8306 in the lea_add. Reload eventually constraints it properly.
8307 * config/picochip/constraints.md : Remove the target constraint
8308 "b", since it is not needed anymore.
8309
09e361bb
JJ
83102009-02-16 Jakub Jelinek <jakub@redhat.com>
8311
8312 * gthr-dce.h: Uglify function parameter and local variable names.
8313 * gthr-gnat.h: Likewise.
8314 * gthr-mipssde.h: Likewise.
8315 * gthr-nks.h: Likewise.
8316 * gthr-posix95.h: Likewise.
8317 * gthr-posix.h: Likewise.
8318 * gthr-rtems.h: Likewise.
8319 * gthr-single.h: Likewise.
8320 * gthr-solaris.h: Likewise.
8321 * gthr-tpf.h: Likewise.
8322 * gthr-vxworks.h: Likewise.
8323 * gthr-win32.h: Likewise.
8324
47f5a48f
L
83252009-02-15 H.J. Lu <hongjiu.lu@intel.com>
8326
8327 PR target/39196
8328 * config/i386/i386.md: Restrict the new peephole2 to move
8329 between MMX/SSE registers.
8330
68c9ab45
RG
83312009-02-15 Richard Guenther <rguenther@suse.de>
8332
8333 Revert
8334 2009-02-13 Richard Guenther <rguenther@suse.de>
8335
8336 * configure.ac: Enable LFS.
8337 * configure: Re-generate.
8338 * config.in: Likewise.
8339
d7815554
UW
83402009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8341
8342 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8343 spu_srqwbyte, spu_srqwbytebc): Define.
8344 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8345 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8346 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8347 "shrqby_<mode>"): New insn-and-split patterns.
8348 * config/spu/spu.c (expand_builtin_args): Determine and return
8349 number of operands using spu_builtin_description data.
8350 (spu_expand_builtin_1): Use it.
8351
c208436c
SE
83522009-02-13 Steve Ellcey <sje@cup.hp.com>
8353
8354 PR target/38056
8355 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8356 TARGET_CONST_GP.
8357
c2e7ba7e
L
83582009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8359
8360 PR target/39149
8361 * config/i386/i386.c (override_options): Correct warning
6c6094f1 8362 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 8363
72f4e3a7
L
83642009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8365
8366 PR target/39152
8367 * config/i386/i386.md: Restrict the new peephole2 to move
8368 between the general purpose registers.
8369
53f648e2
L
83702009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8371
8372 PR target/39162
8373 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 8374 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
8375 (function_arg_advance): Updated.
8376 (function_arg): Likewise.
8377 (ix86_function_value): Likewise.
8378 (ix86_return_in_memory): Likewise.
8379 (ix86_sol10_return_in_memory): Likewise.
8380 (ix86_gimplify_va_arg): Likewise.
8381 (function_arg_32): Don't warn ABX ABI change here.
8382 (function_arg_64): Likewise.
8383
38432148 83842009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
8385
8386 * loop-iv.c (implies_p): In the final case, test that operands 0
8387 of the two comparisons match.
8388
dd2139e7
BS
8389 * config/bfin/bfin.c (find_prev_insn_start): New function.
8390 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8391 (find_next_insn_start): Move.
8392
601b3e1a
RG
83932009-02-13 Richard Guenther <rguenther@suse.de>
8394
8395 * configure.ac: Enable LFS.
8396 * configure: Re-generate.
8397 * config.in: Likewise.
8398
f007042e
JM
83992009-02-13 Joseph Myers <joseph@codesourcery.com>
8400
8401 PR c/35444
8402 * c-parser.c (c_parser_parms_list_declarator): Discard pending
8403 sizes on syntax error after some arguments have been parsed.
8404
3f238e8b
JJ
84052009-02-12 Jakub Jelinek <jakub@redhat.com>
8406
8407 * doc/invoke.texi (-fira): Remove.
8408
328e13b7
L
84092009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8410
8411 * caller-save.c: Replace regclass.c with reginfo.c in comments.
8412 * recog.c: Likewise.
8413 * rtl.h: Likewise.
8414
c252db20
L
84152009-02-12 Uros Bizjak <ubizjak@gmail.com>
8416
8417 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8418 (umul_ppmm): Likewise.
8419 (count_leading_zeros): Likewise.
8420 (count_trailing_zeros): Likewise.
8421 (UMUL_TIME): Likewise.
8422
84232009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8424
ba181049
UB
8425 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8426 soft-fp/t-softfp to tmake_file.
c252db20
L
8427
8428 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
8429 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8430 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8431 IA64_BUILTIN_INFQ]: New.
c252db20
L
8432 (ia64_init_builtins): Initialize __builtin_infq,
8433 __builtin_fabsq and __builtin_copysignq if not HPUX.
8434 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8435 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8436
8437 * config/ia64/lib1funcs.asm (__divtf3): Define only if
8438 SHARED is defined.
8439 (__fixtfti): Likewise.
8440 (__fixunstfti): Likewise.
8441 (__floattitf): Likewise.
8442
8443 * config/ia64/libgcc-glibc.ver: New.
8444 * config/ia64/t-fprules-softfp: Likewise.
8445 * config/ia64/sfp-machine.h: Likewise.
8446
8447 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8448 (LIBGCC2_TF_CEXT): Likewise.
8449 (TF_SIZE): Likewise.
8450 (TARGET_INIT_LIBFUNCS): Likewise.
8451
ba181049 8452 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 8453 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 8454
f13eae6a
L
84552009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8456
8457 * config/i386/i386.c (construct_container): Rewrite processing
8458 BLKmode with X86_64_SSE_CLASS.
8459
12019aec
L
84602009-02-12 Paolo Bonzini <bonzini@gnu.org>
8461
8462 PR target/39152
8463 * config/i386/i386.md: Replace simplify_replace_rtx with
8464 replace_rtx in the new peephole2.
8465
28c11eb3
NS
84662009-02-12 Nathan Sidwell <nathan@codesourcery.com>
8467
8468 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8469 loop unrolling do not happen at -O2.
8470
c7b94907
MM
84712009-02-12 Michael Matz <matz@suse.de>
8472
8473 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8474
61e98967
JJ
84752009-02-12 Jakub Jelinek <jakub@redhat.com>
8476
8477 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8478 for -g3.
8479
a2a237b5
BE
84802009-02-12 Ben Elliston <bje@au.ibm.com>
8481
8482 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8483 patterns when updating the back chain. Missed in the 2009-02-10
8484 change.
8485
853eda8d
JJ
84862009-02-11 Janis Johnson <janis187@us.ibm.com>
8487
8488 * doc/extend.texi (Decimal Floating Types): Update identifier of
8489 draft TR and list of missing support.
8490
3ad6b266
JJ
84912009-02-11 Jakub Jelinek <jakub@redhat.com>
8492
8493 PR middle-end/39154
8494 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8495 bit to variable length decl's flags, add it also to its
8496 pointer replacement variable.
8497
b058b753
UB
84982009-02-11 Uros Bizjak <ubizjak@gmail.com>
8499 Jakub Jelinek <jakub@redhat.com>
8500
8501 PR target/39118
8502 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8503 (memory_blockage): New expander.
8504 (*memory_blockage): New insn pattern.
8505 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8506 instead of general blockage at the end of function prologue when
8507 frame pointer is used to access red zone area. Do not emit blockage
8508 when profiling, it is emitted in generic code.
8509 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8510 function epilogue when frame pointer is used to access red zone area.
8511
bab64f23
PB
85122009-02-11 Paolo Bonzini <bonzini@gnu.org>
8513
0ce6dcfa 8514 PR target/38824
bab64f23
PB
8515 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8516 by arithmetic with memory operands.
8517 * config/i386/predicates.md (commutative_operator): New.
8518
8fd94bda
JJ
85192009-02-10 Janis Johnson <janis187@us.ibm.com>
8520
8521 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8522 bulleted lists.
8523
794511d2
EB
85242009-02-10 Eric Botcazou <ebotcazou@adacore.com>
8525
8526 * alias.h (record_alias_subset): Declare.
8527 * alias.c (record_alias_subset): Make global.
8528
6da7fc87
NC
85292009-02-10 Nick Clifton <nickc@redhat.com>
8530
8531 * tree-parloops.c: Change license to GPLv3.
8532 * ipa-struct-reorg.c: Change license to GPLv3.
8533 * ipa-struct-reorg.h: Change license to GPLv3.
8534
a03813c8
SE
85352009-02-10 Steve Ellcey <sje@cup.hp.com>
8536
8537 PR c/39084
8538 * c-decl.c (start_struct): Return NULL on error.
8539
fc3103e7
JJ
85402009-02-10 Jakub Jelinek <jakub@redhat.com>
8541
9b43d37b
JJ
8542 PR middle-end/39124
8543 * cfgloopmanip.c (remove_path): Call remove_bbs after
8544 cancel_loop_tree, not before it.
8545
fc3103e7 8546 PR target/39139
b058b753 8547 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
8548 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8549 VAR_DECLs were seen.
8550 * tree-ssa-live.c (remove_unused_locals): Recompute
8551 cfun->has_local_explicit_reg_vars.
8552 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8553 copies or clearings if cfun->has_local_explicit_reg_vars.
8554
dbf9ee15
UB
85552009-02-10 Uros Bizjak <ubizjak@gmail.com>
8556
8557 PR target/39118
8558 * config/i386/i386.c (expand_prologue): Emit blockage at the end
8559 of function prologue when frame pointer is used to access
8560 red zone area.
8561
bdec4dc7
RG
85622009-02-10 Richard Guenther <rguenther@suse.de>
8563
8564 PR middle-end/39127
8565 * gimplify.c (gimple_regimplify_operands): Always look if
8566 we need to create a temporary.
8567
7cae94fc
RG
85682009-02-10 Richard Guenther <rguenther@suse.de>
8569
8570 PR tree-optimization/39132
8571 * tree-loop-distribution.c (todo): New global var.
8572 (generate_memset_zero): Trigger TODO_rebuild_alias.
8573 (tree_loop_distribution): Return todo.
8574
a8800687
L
85752009-02-10 H.J. Lu <hongjiu.lu@intel.com>
8576
8577 PR target/39119
8578 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8579 (x86_64_reg_class_name): Removed.
8580 (classify_argument): Return 0 if bytes > 32. Return 0 if the
8581 first one isn't X86_64_SSE_CLASS or any other ones aren't
8582 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
8583 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8584 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
8585 and 3 X86_64_SSEUP_CLASS.
8586 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
8587 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8588
d4bacef0
BE
85892009-02-10 Ben Elliston <bje@au.ibm.com>
8590
8591 * config/rs6000/rs6000.md (allocate_stack): Always use an update
8592 form instruction to update the stack back chain word, even if the
8593 user has disabled the generation of update instructions.
8594 (movdi_<mode>_update_stack): New.
8595 (movsi_update_stack): Likewise.
8596 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8597 always use an update form instruction to update the stack back
8598 chain word.
8599
01d7d2f3
SP
86002009-02-09 Sebastian Pop <sebastian.pop@amd.com>
8601
8602 PR middle-end/38953
b058b753
UB
8603 * graphite.c (if_region_set_false_region): After moving a region in
8604 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
8605 (gloog): Remove wrong fix for PR38953.
8606
e41e2ab4
UW
86072009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8608
8609 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8610 generation due to implicit sign extension.
8611
4bb07c5d
EB
86122009-02-09 Eric Botcazou <ebotcazou@adacore.com>
8613
8614 PR middle-end/38981
8615 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8616 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8617
f060a261
RG
86182009-02-09 Richard Guenther <rguenther@suse.de>
8619
8620 PR middle-end/35202
8621 * convert.c (convert_to_real): Disable (float)fn((double)x)
8622 to fnf(x) conversion if errno differences may occur and
8623 -fmath-errno is set.
8624
5a7e237c
AS
86252009-02-07 Anatoly Sokolov <aesok@post.ru>
8626
8627 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8628 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8629 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8630
feab5a67
JM
86312009-02-06 Joseph Myers <joseph@codesourcery.com>
8632
8633 PR c/35434
8634 * c-common.c (handle_alias_attribute): Disallow attribute for
8635 anything not a FUNCTION_DECL or VAR_DECL.
8636
90ef2296
JJ
86372009-02-06 Janis Johnson <janis187@us.ibm.com>
8638
8639 PR c/39035
8640 * real.c (do_compare): Special-case compare of zero against
8641 decimal float value.
8642
1de2c900
JM
86432009-02-06 Joseph Myers <joseph@codesourcery.com>
8644
8645 PR c/36432
8646 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8647 as indicating flexible array members unless the field itself is
8648 being declarared as the incomplete array.
8649
e901811a
JH
86502009-02-06 Jan Hubicka <jh@suse.cz>
8651
8652 PR tree-optimization/38844
8653 * ipa-inline.c (try_inline): Stop inlining recursion when edge
8654 is already inlined.
8655
3cfa762b
RG
86562009-02-06 Richard Guenther <rguenther@suse.de>
8657
8658 PR middle-end/38977
8659 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8660 fork because we may expand it as __gcov_fork.
8661
8506528c
NC
86622009-02-06 Nick Clifton <nickc@redhat.com>
8663
dbf9ee15 8664 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 8665
85169114
PB
86662009-02-06 Paolo Bonzini <bonzini@gnu.org>
8667
8668 PR tree-optimization/35659
8669 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8670 vn_phi_eq): Shortcut if hashcode does not match.
8671 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8672 NULL operands.
8673 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8674 and avoid iterative_hash_expr.
8675 (FOR_EACH_VALUE_ID_IN_SET): New.
8676 (value_id_compare): Remove.
8677 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8678 sort expressions by value id.
8679
6d39673d
KK
86802009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
8681
8682 PR target/38991
8683 * config/sh/predicates.md (general_movsrc_operand): Don't check
8684 the subreg of system registers here.
8685
e6e1c050
JJ
86862009-02-05 Jakub Jelinek <jakub@redhat.com>
8687
8688 PR c++/39106
8689 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8690 on the copied decl.
8691
65a74b5d
PB
86922009-02-05 Paolo Bonzini <bonzini@gnu.org>
8693
8694 PR rtl-optimization/39110
8695 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8696 addresses, not aligned ones.
8697
08e14b2a
DB
86982009-02-05 Daniel Berlin <dberlin@dberlin.org>
8699 Richard Guenther <rguenther@suse.de>
8700
8701 PR tree-optimization/39100
8702 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8703 comment says and add edges.
8704
5006381c
JM
87052009-02-05 Joseph Myers <joseph@codesourcery.com>
8706
8707 PR c/35435
8708 * c-common.c (handle_tls_model_attribute): Ignore attribute for
8709 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8710
2ba9daa7 87112009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
8712
8713 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8714 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8715 register_bb_in_sese, new_sese, free_sese): Moved.
8716 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8717 outermost_loop_in_scop, build_scop_iteration_domain,
8718 expand_scalar_variables_ssa_name, get_vdef_before_scop,
8719 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8720 Use loop_in_sese_p instead of loop_in_scop_p.
8721 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8722 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8723 (scopdet_basic_block_info): Fix bug in scop detection.
8724 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8725 eq_loop_to_cloog_loop): Remove.
8726 (nb_loops_around_loop_in_scop, nb_loop
8727 ref_nb_loops): Moved here...
8728 * graphite.h (ref_nb_loops): ... from here.
8729 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8730 (loop_domain_dim, loop_iteration_vector_dim): Remove.
8731 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8732 * testsuite/gcc.dg/graphite/scop-19.c: New
8733
48e8382e
PB
87342009-02-04 Paolo Bonzini <bonzini@gnu.org>
8735 Hans-Peter Nilsson <hp@axis.com>
8736
8737 PR rtl-optimization/37889
8738 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8739 Move offset handling from PLUS to before the switch. Use new
8740 arguments when considering SYMBOL_REFs too.
8741 (rtx_addr_can_trap_p): Pass dummy offset and size.
8742 (enum may_trap_p_flags): Remove.
8743 (may_trap_p_1): Pass size from MEM_SIZE.
8744
8745 PR rtl-optimization/38921
8746 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8747 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8748 * rtlanal.c (may_trap_after_code_motion_p): Delete.
8749 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8750
69349ea5
L
87512009-02-04 H.J. Lu <hongjiu.lu@intel.com>
8752
8753 AVX Programming Reference (January, 2009)
8754 * config/i386/sse.md (*vpclmulqdq): New.
8755
b545e411
JJ
87562009-02-04 Jakub Jelinek <jakub@redhat.com>
8757
8758 PR tree-optimization/38977
8759 PR gcov-profile/38292
bf9b2cc9 8760 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 8761
5b43bf05
HS
87622009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
8763
8764 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
8765 non-indexable addresses even before reload.
8766
062c4bb3
JM
87672009-02-03 Joseph Myers <joseph@codesourcery.com>
8768
8769 PR c/29129
8770 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
8771 as having variable size. Do not give an error for unnamed
8772 parameters with [*] declarators. Give a warning for type names
8773 with [*] declarators and mark them as variable size.
8774 * c-parser.c (c_parser_sizeof_expression): Do not give an error
8775 for sizeof applied to [*] type names.
8776
6175f578
AP
87772009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8778
8779 PR C++/36607
8780 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
8781
d4f4bc84
JJ
87822009-02-03 Jakub Jelinek <jakub@redhat.com>
8783
8784 * gcc.c (process_command): Update copyright notice dates.
8785 * gcov.c (print_version): Likewise.
8786 * gcov-dump.c (print_version): Likewise.
8787 * mips-tfile.c (main): Likewise.
8788 * mips-tdump.c (main): Likewise.
8789
f6294de7
JM
87902009-02-03 Joseph Myers <joseph@codesourcery.com>
8791
8792 PR c/35433
8793 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
8794 for composite type involving a zero-length array type.
8795
754ccf7c
JJ
87962009-02-03 Jakub Jelinek <jakub@redhat.com>
8797
70f16287
JJ
8798 PR target/35318
8799 * function.c (match_asm_constraints_1): Skip over
8800 initial optional % in the constraint.
8801
754ccf7c
JJ
8802 PR inline-asm/39059
8803 * c-parser.c (c_parser_postfix_expression): If fixed point is not
8804 supported, don't accept FIXED_CSTs.
8805 * c-decl.c (finish_declspecs): Error if fixed point is not supported
8806 and _Sat is used without _Fract/_Accum. Set specs->type to
8807 integer_type_node for cts_fract/cts_accum if fixed point is not
8808 supported.
8809
965fdadf
CM
88102009-02-02 Catherine Moore <clm@codesourcery.com>
8811
dbf9ee15 8812 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 8813
2e8a796f
RS
88142009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8815
8816 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
8817 (ABI_HAS_64BIT_SYMBOLS): Use it.
8818 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
8819
e0079468
PB
88202009-02-02 Paul Brook <paul@codesourcery.com>
8821
8822 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
8823
eca72963
JJ
88242009-02-02 Jakub Jelinek <jakub@redhat.com>
8825
8826 PR inline-asm/39058
8827 * recog.h (asm_operand_ok): Add constraints argument.
8828 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
8829 recurse on matching constraint.
8830 (check_asm_operands): Pass constraints as 3rd argument to
8831 asm_operand_ok. Don't look up matching constraint here.
8832 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
8833 to asm_operand_ok.
8834
b5bde9ff
BE
88352009-02-02 Ben Elliston <bje@au.ibm.com>
8836
8837 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
8838 TARGET_NARROW_VOLATILE_BITFIELD macro names.
8839
30f3e427
JDA
88402009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8841
be7659ba
JDA
8842 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
8843 information. Remove some obsolete information. Reorganize.
8844
30f3e427
JDA
8845 * config/pa/fptr.c: Revert license to GPL 2.
8846 * config/pa/milli64.S: Likewise.
8847
3cbfaf98
DK
88482009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8849
8850 PR target/38904
8851 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
8852 LIBRARY name in, instead of hard-coding it.
8853 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
8854 extra target make frag to tmake_files according to EH model.
8855 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8856 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
8857 frags that define makefile variable EH_MODEL appropriately.
8858 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
8859 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
8860 to "-sjlj" according to type of EH configured.
8861 (LIBGCC_SONAME): Concatenate it to shared library base name.
8862 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
8863 to "_sjlj" according to type of EH configured.
8864 (LIBGCC_SONAME): Concatenate it to shared library base name.
8865 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
8866 (SHLIB_LINK): Add missing semicolon to if-else construct.
8867 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8868 string value of "pe_dll" command-line option.
8869 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
8870 (SHLIB_SONAME): Use it when overriding t-cygming default.
8871 (SHLIB_IMPLIB): Override t-cygming default.
8872 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8873 string value of "pe_dll" command-line option.
8874
8d0b6068
DK
88752009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8876
8877 PR target/38952
8878 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 8879 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 8880
14c28276
RG
88812009-01-31 Richard Guenther <rguenther@suse.de>
8882
8883 PR tree-optimization/38937
8884 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
8885 computing the transitive closure.
8886
5f4d82c2
RG
88872009-01-30 Richard Guenther <rguenther@suse.de>
8888
8889 PR tree-optimization/39041
8890 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
8891 Propagate variable indices only if the types match for this stmt.
8892
d0728ae0
JJ
88932009-01-30 Jakub Jelinek <jakub@redhat.com>
8894
8895 PR target/39013
8896 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
8897 inline but never defined.
8898
6b67572e 88992009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
8900
8901 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
8902 (*insv_h_di_reg_extimm): New insn.
8903 (*insv_l<mode>_reg_extimm): New insn.
8904
89052009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
8906
8907 * config/picochip/picochip.c (flag_conserve_stack): set
8908 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
8909 fconserve-stack. Reduce call-overhead used by inliner.
8910
9fec758d 89112009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
8912
8913 PR/38157
8914 * common.opt (flag_conserve_stack): Initialised to zero.
8915
7f1c539c
KT
89162009-01-30 Kai Tietz <kai.tietz@onevision.com>
8917
8918 PR/39002
8919 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
8920 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
8921 method.
8922
3631be48
L
89232009-01-29 H.J. Lu <hongjiu.lu@intel.com>
8924
8925 * ira-color.c (allocno_reload_assign): Update comments.
8926 * regmove.c (regmove_optimize): Likewise.
8927
8928 * ra.h: Removed.
8929
416ac4d4
RM
89302009-01-29 Robert Millan <rmh@aybabtu.com>
8931
60839f5d
EB
8932 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
8933 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 8934 `MD_UNWIND_SUPPORT'.
60839f5d 8935 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 8936
d5e54bc1
KH
89372009-01-29 Kazu Hirata <kazu@codesourcery.com>
8938
8939 PR tree-optimization/39007
8940 * tree-loop-distribution.c (generate_builtin): Use
8941 recompute_dominator to compute the immediate dominator of the
8942 basic block just after the loop.
8943
38432148 89442009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
8945
8946 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
8947 (ASM_OUTPUT_DWARF_PCREL): Define.
8948
38432148 89492009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
8950
8951 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
8952 * doc/passes.texi: Remove entries about regclass, local-alloc, and
8953 global. Modify entries about regmove and IRA.
8954
8955 * ra-conflict.c: Remove the file.
8956
8957 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
8958
8959 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
8960 (pass_regclass_init): Rename to pass_reginfo_init.
8961
8962 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
8963
8964 * toplev.h (flag_ira): Remove.
8965
8966 * caller-save.c (setup_save_areas): Remove flag_ira.
8967
bf9b2cc9 8968 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
8969
8970 * global.c: Remove the file.
8971
ba20e309 8972 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
8973
8974 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
8975
8976 * regmove.c: Modify file description.
8977 (find_use_as_address, try_auto_increment): Define them only if
8978 AUTO_INC_DEC is defined.
8979 (replacement_quality, replace_in_call_usage, fixup_match_1,
8980 stable_and_no_regs_but_for_p): Remove.
8981 (reg_set_in_bb): Make it static.
8982 (regmove_optimize): Remove flag_ira and code which worked for
8983 !flag_ira.
8984
8985 * local-alloc.c: Remove the file.
8986
8987 * common.opt (fira): Remove.
8988
8989 * ira.c: Include except.h.
8990 (eliminable_regset): Move from global.c.
8991 (mark_elimination): Ditto. Remove flag_ira.
8992 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
8993 equiv_mem_modified, validate_equiv_mem_from_store,
8994 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
8995 contains_replace_regs, memref_referenced_p, memref_used_between_p,
8996 no_equiv, recorded_label_ref): Move from local-alloc.c.
8997 (update_equiv_regs): Ditto. Make it static.
8998 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 8999 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
9000 (build_insn_chain): Ditto. Make it static.
9001 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
9002 Rename to init_live_subregs.
9003 (gate_ira): Remove flag_ira.
9004
9005 * regclass.c: Rename reginfo.c. Change file description.
9006 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 9007 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
9008 (init_reg_sets_1): Remove code for evaluation of
9009 reg_class_superclasses and losing_caller_save_reg_set.
9010 (init_regs): Remove init_reg_autoinc.
9011 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9012 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 9013 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
9014 (pass_regclass_init): Rename to pass_reginfo_init. Modify
9015 corresponding entries.
9016 (dump_regclass, record_operand_costs, scan_one_insn,
9017 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9018 record_address_regs, auto_inc_dec_reg_p): Remove.
9019 (gt-regclass.h): Rename to gt-reginfo.h.
9020
9021 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 9022 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
9023
9024 * Makefile.in (RA_H): Remove.
9025 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9026 Rename regclass.o to reginfo.o.
9027 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
9028 gt-reginfo.h.
9029 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9030 (GTFILES): Rename regclass.c to reginfo.c.
9031
9032 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 9033 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
9034
9035 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9036 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9037 Remove flag_ira.
6b67572e 9038 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 9039
c95b2534 90402009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
9041
9042 PR middle-end/35854
9043 * doc/invoke.texi (rtl debug options): Complete rewrite.
9044 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9045 to auto_inc_dec".
9046 * mode-switching.c (pass_mode_switching): Rename pass from
9047 "mode-sw" to "mode_sw".
9048 * except.c (pass_convert_to_eh_ranges): Rename pass from
9049 "eh-ranges" to "eh_ranges".
9050 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9051 to "subreg1".
2ba9daa7
AS
9052
9053
72a54528
AM
90542009-01-29 Andrey Belevantsev <abel@ispras.ru>
9055 Alexander Monakov <amonakov@ispras.ru>
9056
9057 PR middle-end/38857
9058 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9059 register.
9060 (move_exprs_to_boundary): Change return type and pass through
9061 should_move from move_op. Relax assert. Update usage ...
9062 (schedule_expr_on_boundary): ... here. Use should_move instead of
9063 cant_move.
9064 (move_op_orig_expr_found): Indicate that insn was disconnected from
9065 stream.
9066 (code_motion_process_successors): Do not call after_merge_succs
9067 callback if original expression was not found when traversing any of
9068 the branches.
9069 (code_motion_path_driver): Change return type. Update prototype.
9070 (move_op): Update comment. Add a new parameter (should_move). Update
9071 prototype. Set *should_move based on indication provided by
9072 move_op_orig_expr_found.
9073
001b9eb6
PH
90742009-01-28 Pat Haugen <pthaugen@us.ibm.com>
9075
9076 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9077 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9078 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9079 * config/rs6000/rs6000.c (rs6000_override_options): Default
9080 avoid-indexed-addresses on for Power6, off for everything else.
9081 (avoiding_indexed_address_p): New function.
9082 (rs6000_legitimize_address): Use it.
9083 (rs6000_legitimate_address): Likewise.
9084 * config/rs6000/rs6000.md (movXX_updateX): Likewise
9085
59dc4898
KH
90862009-01-28 Kazu Hirata <kazu@codesourcery.com>
9087
9088 PR tree-optimization/38997
9089 * tree-loop-distribution.c (generate_memset_zero): Use
9090 POINTER_PLUS_EXPR for a pointer addition.
9091
07da44ab
AK
90922009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
9093
9094 * config/s390/s390.md (bswap<mode>2): New pattern added.
9095
cdc15d23
WG
90962009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9097
9098 * config/s390/s390.md (*tls_load_31): Added type attribute.
9099
d46f24b6
WG
91002009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9101
9102 * config/s390/s390.md: Fix a few comments.
9103
729e750f
WG
91042009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9105
9106 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9107 (*tm<mode>_full): Fixed z10prop attribute.
9108 (*tst<mode>_extimm): Fixed z10prop attribute.
9109 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9110 (*tstqiCCT_cconly): Fixed z10prop attribute.
9111 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9112 (*movsi_larl): Fixed z10prop attribute.
9113 (*movsi_zarch): Fixed z10prop attribute.
9114 (*movsi_eas): Fixed z10prop attribute.
9115 (*movhi): Fixed z10prop attribute.
9116 (*movqi): Fixed z10prop attribute.
9117 (*movstrictqi): Fixed z10prop attribute.
9118 (*mov<mode>): Fixed z10prop attribute.
9119 (*movcc): Fixed z10prop attribute.
9120 (*sethighpartdi_64): Fixed z10prop attribute.
9121 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9122 (*negdi2_sign_cc): Fixed z10prop attribute.
9123 (*negdi2_sign): Fixed z10prop attribute.
9124 (*absdi2_sign_cc): Fixed z10prop attribute.
9125 (*absdi2_sign): Fixed z10prop attribute.
9126 (*negabsdi2_sign_cc): Fixed z10prop attribute.
9127 (*negabsdi2_sign): Fixed z10prop attribute.
9128 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9129 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9130 (doloop_si64): Fixed z10prop attribute.
9131 (doloop_si31): Fixed z10prop attribute.
9132 (doloop_long): Fixed z10prop attribute.
9133 (indirect_jump): Fixed z10prop attribute.
9134 (nop): Fixed z10prop attribute.
9135 (main_base_64): Fixed z10prop attribute.
9136 (reload_base_64): Fixed z10prop attribute.
9137
c7789bfb
JJ
91382009-01-28 Jakub Jelinek <jakub@redhat.com>
9139
9140 PR rtl-optimization/38740
6b67572e
UB
9141 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9142 if !optimize.
c7789bfb
JJ
9143 * config/mips/mips.c (mips_reorg): Likewise.
9144
de081cfd
RG
91452009-01-28 Richard Guenther <rguenther@suse.de>
9146
9147 PR tree-optimization/38926
9148 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9149 with the correct value id to a value.
9150 (do_regular_insertion): Use the value number of edoubleprime
9151 for the value number of the expr.
9152
9153 Revert
9154 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 9155
d748c406
UB
9156 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9157 a PHI ask VN if it is already available.
9158 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9159 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 9160
a9d386a1
JJ
91612009-01-28 Jakub Jelinek <jakub@redhat.com>
9162
9163 PR middle-end/38934
9164 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9165 set to varying whenever max has TREE_OVERFLOW set, similarly
9166 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9167
97a170cd
RG
91682009-01-28 Richard Guenther <rguenther@suse.de>
9169
9170 PR middle-end/38908
9171 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9172 uninitialized aggregate uses in call arguments.
9173
89ebafc6
PB
91742009-01-28 Paolo Bonzini <bonzini@gnu.org>
9175
9176 PR tree-optimization/38984
9177 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9178 the nothing_id variable if -fno-delete-null-pointer-checks.
9179
bef3c57b
UB
91802009-01-28 Uros Bizjak <ubizjak@gmail.com>
9181
9182 PR target/38988
9183 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9184 (set_got_offset_rex64): Ditto.
9185
0c6390fa
L
91862009-01-27 H.J. Lu <hongjiu.lu@intel.com>
9187
9188 PR target/38941
9189 * doc/extend.texi: Improve local variable with asm reg.
9190
bee6fa6d
AN
91912009-01-27 Adam Nemet <anemet@caviumnetworks.com>
9192
9193 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9194 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9195 was not supplied then set warn_packed_bitfield_compat to the
9196 default value of 1.
9197 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9198 against 1.
9199
b5c3dfbb
RG
92002009-01-27 Richard Guenther <rguenther@suse.de>
9201
9202 PR tree-optimization/38503
9203 * cfgexpand.c (expand_gimple_basic_block): Ignore
9204 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9205 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9206 variables that cannot have TBAA applied.
9207 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9208 statements.
9209
d748c406 92102009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
9211
9212 PR middle-end/38969
9213 * calls.c (initialize_argument_information): Do not wrap complex
9214 arguments in SAVE_EXPR.
9215
9112bb38
AT
92162009-01-26 Andreas Tobler <a.tobler@schweiz.org>
9217
9218 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 9219 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 9220
4757704f
RG
92212009-01-26 Richard Guenther <rguenther@suse.de>
9222
9223 PR tree-optimization/38745
9224 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9225 from special handling.
9226
e3e6cff4
RG
92272009-01-26 Richard Guenther <rguenther@suse.de>
9228
9229 PR tree-optimization/38745
9230 * tree-ssa.c (execute_update_addresses_taken): Do not include
9231 variables that cannot possibly be a register in not_reg_needs.
9232 Do not clear TREE_ADDRESSABLE on vars that may not become
9233 registers.
9234 * tree-ssa.c (update_alias_info_1): Include those in the set
9235 of addressable vars.
9236
dc874b53
RG
92372009-01-26 Richard Guenther <rguenther@suse.de>
9238
9239 PR middle-end/38851
9240 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9241 * tree-ssa-dse.c: Include langhooks.h
9242 (execute_simple_dse): Remove stores with zero size.
9243
849421a3
JJ
92442009-01-24 Jakub Jelinek <jakub@redhat.com>
9245
9246 PR c/38957
9247 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9248 as PLUS_EXPR.
9249
82f70421
JB
92502009-01-24 Julian Brown <julian@codesourcery.com>
9251
9252 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9253 config/arm/linux-atomic.c.
9254 * config/arm/linux-atomic.c: New.
9255
863412d6
EB
92562009-01-24 Eric Botcazou <ebotcazou@adacore.com>
9257
9258 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9259 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9260 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9261
8c684300
L
92622009-01-24 H.J. Lu <hongjiu.lu@intel.com>
9263
9264 PR c/38938
93f1527a 9265 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
9266 properly.
9267
b840fb02
SP
92682009-01-24 Sebastian Pop <sebastian.pop@amd.com>
9269
9270 PR tree-optimization/38953
9271 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9272 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9273 (gloog): Split the exit of the scop when the scop exit is a loop exit.
9274 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9275 changed the CFG.
9276
ecee559f
PB
92772009-01-24 Paul Brook <paul@codesourcery.com>
9278
9279 * config/arm/neon.md (neon_type): Move to arm.md.
9280 (neon_mov<VSTRUCT>): Add neon_type attribute.
9281 * config/arm/arm.md (neon_type): Move to here.
9282 (conds): Add "unconditioal" and use as default for NEON insns.
9283
61ad0914
BE
92842009-01-24 Ben Elliston <bje@au.ibm.com>
9285
9286 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9287 void *' warning from -Wc++-compat.
9288 * Makefile.in (dominance.o-warn): Remove.
9289
38432148 92902009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
9291
9292 PR tree-optimization/38932
9293 * fold-const.c (fold_unary_ignore_overflow): New.
9294 * tree.h (fold_unary_ignore_overflow): Declare.
9295 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9296 * tree-ssa-sccvn.c (visit_reference_op_load,
9297 simplify_unary_expression): Likewise.
9298
2cd36c22
AN
92992009-01-22 Adam Nemet <anemet@caviumnetworks.com>
9300
9301 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9302 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
9303 regardless of their type.
9304 * c-common.c (handle_packed_attribute): Don't ignore packed on
9305 bitfields.
9306 * c.opt (Wpacked-bitfield-compat): New warning option.
9307 * stor-layout.c (place_field): Warn if offset of a field changed.
9308 * doc/extend.texi (packed): Mention the ABI change.
9309 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9310 (Warning Options): Add it to the list.
9311
e4e624ab
L
93122009-01-22 H.J. Lu <hongjiu.lu@intel.com>
9313
9314 * c-opts.c (c_common_post_options): Fix a typo in comments.
9315
d0ea0759
SE
93162009-01-22 Steve Ellcey <sje@cup.hp.com>
9317
9318 PR middle-end/38615
9319 * gimplify.c (gimplify_init_constructor): Fix promotion of const
9320 variables to static.
9321 * doc/invoke.texi (-fmerge-all-constants): Update description.
9322
87673f84
UB
93232009-01-22 Uros Bizjak <ubizjak@gmail.com>
9324
9325 PR target/38931
9326 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9327 (*movdi_1_rex64): Use type "mmx" for alternative 5.
9328
96339268
RE
93292009-01-22 Richard Earnshaw <rearnsha@arm.com>
9330
9331 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9332 a word boundary.
9333 (LOCAL_ALIGNMENT): Similarly.
9334
442dc742 93352009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 9336 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
9337
9338 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9339 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9340 * config/arm/arm-tune.md: Regenerate.
9341 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9342 -march=iwmmxt2.
9343
9b34732e
MS
93442009-01-22 Mark Shinwell <shinwell@codesourcery.com>
9345
9346 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9347 version number to five.
9348
03c2a308
DS
93492009-01-22 Dodji Seketeli <dodji@redhat.com>
9350
9351 PR c++/38930
ba20e309 9352 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
9353 * c-common.c (set_underlying_type): Likewise.
9354 (is_typedef_decl ): Likewise
9355 * tree.h: Likewise
9356 (set_underlying_type): Likewise.
9357 (is_typedef_type): Likewise.
9358
1240d76e
VM
93592009-01-21 Vladimir Makarov <vmakarov@redhat.com>
9360
9361 PR middle-end/38587
9362 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9363 crossing setjmps.
9364
b8a1087d
DK
93652009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
9366
9367 PR bootstrap/37660
9368 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
9369 (LIBGCC_SPEC): Don't define.
9370 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
9371
435da628
UB
93722009-01-21 Uros Bizjak <ubizjak@gmail.com>
9373
9374 PR rtl-optimization/38879
9375 * alias.c (base_alias_check): Unaligned access via AND address can
9376 alias all surrounding object types except those with sizes equal
9377 or wider than the size of unaligned access.
9378
d597b3ce
DS
93792009-01-21 Dodji Seketeli <dodji@redhat.com>
9380
9381 PR c++/26693
ba20e309 9382 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 9383 * c-common.c (set_underlying_type): ... here.
435da628 9384 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
9385 the newly created typedef variant type.
9386 (is_typedef_decl ): New entry point.
9387 * tree.h: Added a new member member_types_needing_access_check to
9388 struct tree_decl_non_common.
9389 (set_underlying_type): New entry point.
9390 (is_typedef_type): Likewise.
9391
71a6fe66
BM
93922009-01-21 Bingfeng Mei <bmei@broadcom.com>
9393
9394 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9395 Check whether two instructions have memory references that
9396 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
9397 are helper functions for traversing.
9398 * alias.h (insn_alias_sets_confilict_p): New prototypes.
9399 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9400 not to draw dependency edge for instructions with non-conflicting
9401 alias sets.
9402
5a248274
JM
94032009-01-20 Joseph Myers <joseph@codesourcery.com>
9404
9405 PR other/38758
6b67572e
UB
9406 * longlong.h: Update copyright years. Use soft-fp license notice.
9407 Sync __clz_tab declaration with glibc.
5a248274 9408
4b84f3de
SE
94092009-01-20 Steve Ellcey <sje@cup.hp.com>
9410
9411 PR target/30687
9412 * doc/extend.texi (syscall_linkage): New.
9413 (version_id): Modify.
9414
37348bf1 94152009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 9416 Richard Guenther <rguenther@suse.de>
37348bf1
AP
9417
9418 PR tree-optimization/38747
9419 PR tree-optimization/38748
9420 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9421 conversion if the base address is an indirect reference and the
9422 aliasing sets could cause issues.
9423
d0a58904
SP
94242009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9425
2ba9daa7 9426 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
9427 explaining why these options are not documented.
9428
71e7afb2
SP
94292009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9430
9431 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9432 gimple_call_lhs is NULL.
9433
38432148 94342009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
9435
9436 PR target/38868
9437 * emit-rtl.c (adjust_address_1): Make sure memref is never
9438 overwritten.
9439
cbb8dee3
BE
94402009-01-20 Ben Elliston <bje@au.ibm.com>
9441
9442 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 9443 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
9444 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9445 const qualifier from arg 2.
9446
72c66596
IS
94472009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9448
435da628 9449 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 9450
f68211cd
VM
94512009-01-19 Vladimir Makarov <vmakarov@redhat.com>
9452
9453 PR c/38869
9454 * rtl.h (reinit_regs): New prototype.
9455 * regclass.c: Include ira.h.
9456 (reinit_regs): New.
9457 * Makefile.in (regclass.o): Add ira.h.
9458 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9459
6e4f1168
L
94602009-01-18 H.J. Lu <hongjiu.lu@intel.com>
9461
9462 PR target/38736
9463 * c-common.c (handle_aligned_attribute): Use
9464 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9465 default alignment value.
9466
9467 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9468
9469 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9470 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9471
9472 * doc/extend.texi: Update __attribute__ ((aligned)). Document
9473 __BIGGEST_ALIGNMENT__.
9474
9475 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9476
890065bf
RG
94772009-01-18 Richard Guenther <rguenther@suse.de>
9478
9479 PR tree-optimization/38819
9480 * tree-flow.h (operation_could_trap_helper_p): Declare.
9481 * tree-eh.c (operation_could_trap_helper_p): Export.
9482 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9483 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9484 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9485 are about to insert a possibly trapping instruction and fail
9486 in this case.
9487
a729d731
AS
94882009-01-18 Andreas Schwab <schwab@suse.de>
9489
9490 * doc/install.texi (Configuration): Remove obsolete paragraph
9491 about use of --with-gnu-ld with --with-gnu-as.
9492
a640c13b
KH
94932009-01-18 Kazu Hirata <kazu@codesourcery.com>
9494
9495 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9496 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9497 Follow spelling conventions.
9498
dba2cc0c
BE
94992009-01-18 Ben Elliston <bje@au.ibm.com>
9500
9501 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9502 C++ warning about implicit conversion from void * to struct
9503 bitmap_head_def *.
9504 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 9505 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 9506
2207a498
DK
95072009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
9508
9509 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
9510
8137e465
SP
95112009-01-17 Sebastian Pop <sebastian.pop@amd.com>
9512 Tobias Grosser <tobi.grosser@amd.com>
9513
9514 * graphite.c (graphite_trans_scop_block): Do not block single
9515 nested loops.
9516
5be1c58c
AO
95172009-01-16 Alexandre Oliva <aoliva@redhat.com>
9518
9519 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9520 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9521 test with assertion.
9522
786ce82d
RG
95232009-01-16 Richard Guenther <rguenther@suse.de>
9524
9525 PR tree-optimization/38835
9526 PR middle-end/36227
9527 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9528 and INT + PTR -> (INT)(PTR p+ INT) folding.
9529 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9530
c1cb09ad
AN
95312009-01-16 Adam Nemet <anemet@caviumnetworks.com>
9532
9533 PR target/38554
9534 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9535 the subreg from a lowpart subreg if it is also casting the value.
9536
bcab4e19
SP
95372009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9538 Tobias Grosser <tobi.grosser@amd.com>
9539
9540 * graphite.c (compare_prefix_loops): New.
9541 (build_scop_canonical_schedules): Rewritten.
9542 (graphite_transform_loops): Move build_scop_canonical_schedules
9543 after build_scop_iteration_domain.
9544
0b040072
SP
95452009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9546 Tobias Grosser <tobi.grosser@amd.com>
9547
2ba9daa7 9548 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
9549 the dimension of the iteration domain. Do copy the domain
9550 only when it exists.
9551 (build_scop_conditions_1): Do not call add_conditions_to_domain.
9552 (add_conditions_to_constraints): New.
9553 (can_generate_code_stmt, can_generate_code): Removed.
9554 (gloog): Do not call can_generate_code.
9555 (graphite_transform_loops): Call add_conditions_to_constraints
9556 after building the iteration domain.
9557
56c6a499
JJ
95582009-01-16 Jakub Jelinek <jakub@redhat.com>
9559
9560 PR tree-optimization/38789
9561 * tree-ssa-threadedge.c
9562 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9563 __builtin_constant_p.
9564
c95b2534 95652009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
9566
9567 * dce.c (delete_unmarked_insns): Reversed the order that insns are
9568 examined before deleting them.
2ba9daa7 9569
c433cb14
RE
95702009-01-16 Richard Earnshaw <rearnsha@arm.com>
9571
9572 * function.c (aggregate_value_p): Correctly extract the function
9573 type from CALL_EXPR_FN lookup.
9574
c95b2534 95752009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
9576
9577 * config/picochip/picochip.c (picochip_override_options): Revert
9578 CFI asm flag disable commited previously.
9579
c77bb78f
SP
95802009-01-15 Sebastian Pop <sebastian.pop@amd.com>
9581 Tobias Grosser <tobi.grosser@amd.com>
9582 Jan Sjodin <jan.sjodin@amd.com>
9583
9584 * graphite.c (scan_tree_for_params): On substractions negate
9585 all the coefficients of the term.
9586 (clast_to_gcc_expression_red): New. Handle reduction expressions
9587 of more than two operands.
9588 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9589 (get_vdef_before_scop): Handle also the case of default definitions.
9590
574af2d6
RS
95912009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
9592
9593 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9594 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9595 Also use them when walking CALL_INSN_FUNCTION_USAGE.
9596
e939805b
L
95972009-01-15 H.J. Lu <hongjiu.lu@intel.com>
9598 Joey Ye <joey.ye@intel.com>
9599
9600 PR middle-end/37843
9601 * cfgexpand.c (expand_stack_alignment): Don't update stack
9602 boundary nor check incoming stack boundary here.
9603 (gimple_expand_cfg): Update stack boundary and check incoming
9604 stack boundary here.
9605
c95b2534 96062009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 9607
435da628 9608 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 9609
0196c95e
JJ
96102009-01-14 Jakub Jelinek <jakub@redhat.com>
9611
9612 PR rtl-optimization/38245
9613 * calls.c (expand_call): Add stack arguments to
9614 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9615 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9616 in regs and partially in memory or BLKmode arguments.
9617 (emit_library_call_value_1): Add stack arguments to
9618 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9619 ACCUMULATE_OUTGOING_ARGS).
9620 * dce.c: Include tm_p.h.
9621 (find_call_stack_args): New function.
9622 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
9623 argument.
9624 (mark_insn): Call find_call_stack_args for CALL_Ps.
9625 (prescan_insns_for_dce): Walk insns backwards in bb rather than
9626 forwards. Allocate and free arg_stores bitmap if needed, pass it
9627 down to deletable_insn_p, don't mark stores set in arg_stores
9628 bitmap, clear the bitmap at the beginning of each bb.
9629 * Makefile.in (dce.o): Depend on $(TM_P_H).
9630
6df6bcfa
MM
96312009-01-14 Michael Meissner <gnu@the-meissners.org>
9632
9633 PR target/22599
435da628
UB
9634 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9635 to make sure the insn is a conditional test (bug 22599). Reformat a
9636 few long lines.
6df6bcfa 9637
765ec70c
SP
96382009-01-14 Sebastian Pop <sebastian.pop@amd.com>
9639
9640 PR middle-end/38431
9641 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9642 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9643 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 9644 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
9645 scops have been code generated.
9646
7de2b688
BS
96472009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
9648 * doc/gty.texi (Invoking the garbage collector): Added new node
9649 and section documenting ggc_collect.
9650
10bd6c5c
RG
96512009-01-14 Richard Guenther <rguenther@suse.de>
9652
9653 PR tree-optimization/38826
9654 PR middle-end/38477
9655 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9656 initialization notes only if we actually emitted a warning.
9657 (intra_create_variable_infos): Add constraints for a result decl
9658 that is passed by hidden reference.
9659 (build_pred_graph): Mark all related variables non-direct on
9660 address-taking.
9661
9c7c70ee
NC
96622009-01-14 Nick Clifton <nickc@redhat.com>
9663
9664 * ira-conflicts.c: Include addresses.h for the definition of
9665 base_reg_class.
435da628
UB
9666 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9667 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 9668
cf0c2a60
VM
96692009-01-13 Vladimir Makarov <vmakarov@redhat.com>
9670
9671 PR target/38811
9672 * Makefile.in (ira-lives.o): Add except.h.
9673
9674 * ira-lives.c: Include except.h.
9675 (process_bb_node_lives): Process can_throw_internal.
9676
d3302fd3
JJ
96772009-01-13 Jakub Jelinek <jakub@redhat.com>
9678
9679 PR rtl-optimization/38774
9680 * combine.c (simplify_set): When undoing cc_use change, don't do
9681 PUT_CODE on the newly created comparison, but instead put back the
9682 old comparison.
9683
7ab23fd0
JM
96842009-01-13 Joseph Myers <joseph@codesourcery.com>
9685
9686 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9687 values. Remove duplicate arm8 entry.
9688
f9344488
SP
96892009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9690
9691 PR tree-optimization/38786
9692 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9693 the SSA_NAME case of expand_scalar_variables_expr.
9694 Set the type of an expression to the type of its assign statement.
9695 (expand_scalar_variables_expr): Also gather the scalar computation
9696 used to index the memory access. Do not pass loop_p.
9697 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
9698 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
9699 the gimple_stmt_iterator where it inserts new code.
9700 Do not pass loop_p.
f9344488
SP
9701 (copy_bb_and_scalar_dependences): Do not pass loop_p.
9702 (translate_clast): Update call to copy_bb_and_scalar_dependences.
9703
2d8bb84d
SP
97042009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9705
9706 * graphite.h (debug_value): Removed.
9707 * graphite.c (debug_value): Removed.
9708
ff128632
RE
97092009-01-13 Richard Earnshaw <rearnsha@arm.com>
9710
435da628
UB
9711 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9712 ldrd/strd with two 32-bit instructions.
ff128632 9713
d5a0a47b
RE
97142009-01-13 Richard Earnshaw <rearnsha@arm.com>
9715
435da628
UB
9716 * config/arm/arm.c (struct processors): Pass for speed down into
9717 cost helper functions.
d5a0a47b
RE
9718 (const_ok_for_op): Handle COMPARE and inequality nodes.
9719 (arm_rtx_costs_1): Rewrite.
9720 (arm_size_rtx_costs): Update prototype.
9721 (arm_rtx_costs): Pass speed down to helper functions.
9722 (arm_slowmul_rtx_costs): Rework cost calculations.
9723 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9724 (arm_9e_rtx_costs): Likewise.
9725
26d5bf5b
UB
97262009-01-13 Uros Bizjak <ubizjak@gmail.com>
9727
9728 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 9729 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
9730 (alpha_legitimize_address): Do not split local symbols wider than
9731 UNITS_PER_WORD into HIGH/LO_SUM parts.
9732
5d14e3d5
DS
97332009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
9734
9735 PR bootstrap/38580
9736 * gcc.c (process_command): Replace call to execvp with calls
9737 to pex_one and exit.
9738
33faafca
AS
97392009-01-03 Anatoly Sokolov <aesok@post.ru>
9740
9741 PR target/29141
9742 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9743 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9744 variant for devices with 3-byte PC.
ba20e309 9745 (__tablejump_elpm__): New.
33faafca 9746
634b5df5
JJ
97472009-01-12 Jakub Jelinek <jakub@redhat.com>
9748
9749 PR c/32041
9750 * c-parser.c (c_parser_postfix_expression): Allow `->' in
9751 offsetof member-designator, handle it as `[0].'.
9752
2842bb86
JDA
97532009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9754
9755 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9756 function when not using named sections on targets with named sections
9757 if branch distance is less than 262132.
9758
76ee70f6
RE
97592009-01-12 Richard Earnshaw <rearnsha@arm.com>
9760
9761 * combine.c (combine_instructions): Recompute
9762 optimize_this_for_speed_p for each BB in the main combine loop.
9763
f56e675d
TB
97642009-01-12 Tomas Bily <tbily@suse.cz>
9765
9766 PR middlend/38385
26d5bf5b
UB
9767 * tree-loop-distribution.c (prop_phis): New function.
9768 (generate_builtin): Call prop_phis.
9769 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 9770
c2152239
JJ
97712009-01-12 Jakub Jelinek <jakub@redhat.com>
9772
9773 PR tree-optimization/38807
9774 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
9775 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
9776
0e510b3e
AN
97772009-01-11 Adam Nemet <anemet@caviumnetworks.com>
9778
9779 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
9780 subreg of op0 to the original op0.
9781
c95b2534 97822009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
9783
9784 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 9785
53a7ff9a
MS
97862009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
9787
9788 PR debug/7055
60839f5d 9789 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
9790 starting with digits.
9791
b3a796bc
JJ
97922009-01-10 Jakub Jelinek <jakub@redhat.com>
9793
9794 PR target/38695
9795 * config/arm/arm.c (arm_is_long_call_p): Don't call
9796 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
9797
b21b850e
SB
97982009-01-09 Steven Bosscher <steven@gcc.gnu.org>
9799
9800 * regrename.c (regrename_optimize): Fix dumping.
9801 (find_oldest_value_reg): Preserve REG_POINTER.
9802 (copy_hardreg_forward_1): Likewise.
9803
e0e10d3a
DN
98042009-01-09 Diego Novillo <dnovillo@google.com>
9805
bf9b2cc9 9806 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
9807 the restrictions on its use.
9808 (gimple_uid): Tidy.
9809 (gimple_set_uid): Tidy.
9810
c9da2ae8
JJ
98112009-01-09 Jakub Jelinek <jakub@redhat.com>
9812
9813 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
9814 zero guard even if align_bytes != 0 and count is smaller than
9815 size_needed.
9816
38432148 98172009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
9818
9819 PR rtl-optimization/38495
26d5bf5b 9820 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
9821 (add_range_and_copies_from_move_list): Print all added ranges.
9822 Add ranges to memory optimized destination.
9823
260fda3d
JJ
98242009-01-09 Jakub Jelinek <jakub@redhat.com>
9825
6f6278ad
JJ
9826 PR target/38686
9827 PR target/38708
9828 * config/i386/i386.c (override_options): Reject
9829 -mstringop-strategy=rep_8byte with -m32.
9830 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
9831 to 1. Do count comparison against epilogue_size_needed at compile
9832 time even when count_exp was constant forced into register. For
9833 size_needed don't jump to epilogue, instead just avoid aligning
9834 and invoke the body algorithm. If need_zero_guard, add zero guard
9835 even if count is non-zero, but smaller than size_needed + number of
9836 bytes that could be stored for alignment.
9837 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
9838 to 1. If need_zero_guard, add zero guard even if count is non-zero,
9839 but smaller than size_needed + number of bytes that could be stored
9840 for alignment. Compare size_needed with epilogue_size_needed instead
9841 of desired_align - align, don't adjust size_needed, pass
9842 epilogue_size_needed to the epilogue expanders.
9843
260fda3d 9844 PR c/35742
26d5bf5b 9845 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 9846
67b846fa
JDA
98472009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9848
9849 * pa.c (last_address): Change to unsigned.
9850 (update_total_code_bytes): Change argument to unsigned. Don't
9851 check if insn addresses are set.
9852 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
9853 addresses are not set.
9854 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
9855
91c82473
NC
98562009-01-09 Nick Clifton <nickc@redhat.com>
9857
9858 * config/sh/symbian.c: Replace uses of DECL_INLINE with
9859 DECL_DECLARED_INLINE_P.
9860
4017e262
JJ
98612009-01-09 Jakub Jelinek <jakub@redhat.com>
9862
0a49e5c2
JJ
9863 PR middle-end/38347
9864 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
9865 GET_MODE (op0) in operand_subword_force calls.
9866
4017e262
JJ
9867 PR middle-end/38771
9868 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
9869 fold_convert arg0 operands to TREE_TYPE (op0) first.
9870
7cd06356
VM
98712009-01-08 Vladimir Makarov <vmakarov@redhat.com>
9872
9873 * params.def (ira-max-conflict-table-size): Decrease default value
9874 to 1000.
9875
96867bbd
JJ
98762009-01-08 Jakub Jelinek <jakub@redhat.com>
9877
9878 PR tree-optimization/37031
9879 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
9880 on parameter_set.
9881 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
9882 allocate it using gc instead of heap, use VEC_quick_push instead of
9883 VEC_safe_push.
9884 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
9885 instead of heap, use VEC_quick_push instead of VEC_safe_push.
9886 * tree-data-ref.h (struct access_matrix): Change matrix to gc
9887 allocated vector from heap allocated.
9888 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
9889 * tree-loop-linear.c (linear_transform_loops): Allocate nest
9890 vector only after perfect_loop_nest_depth call.
9891
68f61c3d
SP
98922009-01-08 Sebastian Pop <sebastian.pop@amd.com>
9893 Jan Sjodin <jan.sjodin@amd.com>
9894
9895 PR tree-optimization/38559
9896 * graphite.c (debug_value, copy_constraint,
9897 swap_constraint_variables, scale_constraint_variable, ): New.
9898 (get_lower_bound, get_upper_bound): Removed.
9899 (graphite_trans_bb_strip_mine): Clean up this code that works
9900 only for constant number of iterations. Fully copy upper and
9901 lower bound constraints, not only the constant part of them.
9902 * graphite.h (debug_value): Declared.
9903
82567e33
IR
99042009-01-08 Ira Rosen <irar@il.ibm.com>
9905
9906 PR tree-optimization/37194
9907 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 9908 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
9909 outside cost in case of known number of iterations.
9910
7da13f1d
NF
99112009-01-07 Nathan Froyd <froydnj@codesourcery.com>
9912 Alan Modra <amodra@bigpond.net.au>
9913
9914 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
9915 non-word-aligned REG+CONST addressing.
9916
c0f64575
UB
99172009-01-07 Uros Bizjak <ubizjak@gmail.com>
9918
9919 PR target/38706
9920 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
9921 free_after_compilation when outputting a thunk.
9922 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
9923 Do not call free_after_compilation here.
9924
301b6a4e
UB
99252009-01-07 Uros Bizjak <ubizjak@gmail.com>
9926
9927 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
9928 (ix86_valid_target_attribute_inner_p): Ditto.
9929
6a114766
JS
99302009-01-07 Jan Sjodin <jan.sjodin@amd.com>
9931
9932 PR tree-optimization/38492
9933 PR tree-optimization/38498
9934 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
9935 * tree-chrec.h (scev_is_linear_expression): Declared.
9936 * graphite.c (graphite_cannot_represent_loop_niter): New.
9937 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
9938 (graphite_loop_normal_form): Use gcc_assert.
9939 (scan_tree_for_params): Use CASE_CONVERT.
9940 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
9941 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
9942 Use gcc_assert. Discard scops that contain unhandled cases.
9943 (build_scop_conditions): Return a boolean status for unhandled cases.
9944 (strip_mine_profitable_p): Print the loop number, not its depth.
9945 (is_interchange_valid): Pass the depth of the loop nest, don't
9946 recompute it wrongly.
9947 (graphite_trans_bb_block): Same.
9948 (graphite_trans_bb_block): Print tentative of loop blocking.
9949 (graphite_trans_scop_block): Do not print that the loop has been
9950 blocked.
9951 (graphite_transform_loops): Do not handle scops that contain condition
9952 scalar phi nodes.
9953
65b82caa
L
99542009-01-07 H.J. Lu <hongjiu.lu@intel.com>
9955
9956 AVX Programming Reference (December, 2008)
9957 * config/i386/avxintrin.h (_mm256_stream_si256): New.
9958 (_mm256_stream_pd): Likewise.
9959 (_mm256_stream_ps): Likewise.
9960
9961 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
9962 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
9963 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
9964 (bdesc_special_args): Add __builtin_ia32_movntdq256,
9965 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
9966 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
9967 (ix86_expand_special_args_builtin): Likewise.
9968
9969 * config/i386/sse.md (AVXMODEDI): New.
9970 (avx_movnt<mode>): Likewise.
9971 (avx_movnt<mode>): Likewise.
9972 (<sse>_movnt<mode>): Remove AVX support.
9973 (sse2_movntv2di): Likewise.
9974
cef158f9
RG
99752009-01-07 Richard Guenther <rguenther@suse.de>
9976
9977 PR middle-end/38751
9978 * fold-const.c (extract_muldiv): Remove obsolete comment.
9979 (fold_plusminus_mult_expr): Undo MINUS_EXPR
9980 to PLUS_EXPR canonicalization for the canonicalization.
9981
246cb5be
GP
99822009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
9983
9984 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
9985 hosted cross-compilers generating less efficient code.
9986
84b9b872
RS
99872009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9988
9989 * function.h (rtl_data): Add a dbr_scheduled_p field.
9990 * reorg.c (dbr_schedule): Set it.
9991 (gate_handle_delay_slots): Check it.
9992 * config/mips/mips.c (mips_base_delayed_branch): Delete.
9993 (mips_reorg): Check flag_delayed_branch instead of
9994 mips_base_delayed_branch.
9995 (mips_override_options): Don't set mips_base_delayed_branch
9996 or flag_delayed_branch.
9997
ace984c8
RS
99982009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9999
10000 PR rtl-optimization/38426.
10001 * ira.c (ira): Set current_function_is_leaf earlier.
10002
7ad7809b
JJ
100032009-01-06 Jakub Jelinek <jakub@redhat.com>
10004
10005 PR rtl-optimization/38722
10006 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10007 too early, only set a flag and modify after last possible
10008 undo_all point.
10009
c52ec948
JJ
100102009-01-06 Janis Johnson <janis187@us.ibm.com>
10011
10012 PR c/34252
10013 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10014 * real.c (decimal_single_format): Correct values of emin and emax.
10015 (decimal_double_format): Ditto.
10016 (decimal_quad_format): Ditto.
10017 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10018 computation of DECnn_MIN and DECnn_MAX for corrected values of
10019 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
10020 __DECnn_MIN__, and adjust its computation for the corrected value
10021 of emin.
10022
300240e1
JH
100232009-01-06 Jan Hubicka <jh@suse.cz>
10024
10025 PR target/38744
435da628 10026 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 10027
271c069e
GP
100282009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
10029
10030 * doc/contrib.texi (Contributors): Slightly adjust the end note.
10031 Add Robert Clark to the list of testers.
10032
64e4c301 100332009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10034 Kai Tietz <kai.tietz@onevision.com>
64e4c301 10035
435da628
UB
10036 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10037 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 10038
7650b83e 100392009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10040 Kai Tietz <kai.tietz@onevision.com>
7650b83e 10041
435da628
UB
10042 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10043 for w64 ABI.
10044 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
10045 (ix86_nsaved_regs): Count only general purpose regs.
10046 (ix86_nsaved_sseregs): New.
10047 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10048 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
10049 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10050 general purpose regs.
7650b83e
JH
10051 (ix86_emit_save_sse_regs_using_mov): New.
10052 (ix86_expand_prologue): Save SSE regs if needed.
10053 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10054 (ix86_emit_restore_sse_regs_using_mov): New.
10055 (ix86_expand_epilogue): Save SSE regs if needed.
10056
9aa5c1b2 100572009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10058 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 10059
435da628
UB
10060 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10061 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10062 functions when accumulate outgoing args is off.
9aa5c1b2 10063
f7556aae
L
100642009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10065
10066 PR bootstrap/38742
10067 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10068 before using pseudos_have_intersected_live_ranges_p.
10069
10070 * ira-int.h (ira_assert): Always define.
10071
e47b7d04
L
100722009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10073
10074 AVX Programming Reference (December, 2008)
10075 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10076 (_mm256_permute2_pd): Likewise.
10077 (_mm_permute2_ps): Likewise.
10078 (_mm256_permute2_ps): Likewise.
10079 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10080 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10081
10082 * config/i386/i386.c (ix86_builtins): Remove
10083 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10084 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10085 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10086 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10087 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10088 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10089 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10090 __builtin_ia32_vpermil2ps256.
10091 (ix86_init_mmx_sse_builtins): Updated.
10092 (ix86_expand_args_builtin): Likewise.
10093
44b86471
JDA
100942009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10095
e47b7d04
L
10096 * pa.c (output_call): Relocate non-jump insns in the delay slot of
10097 long absolute calls when generating PA 2.0 code.
44b86471 10098
311aab06
VM
100992009-01-05 Vladimir Makarov <vmakarov@redhat.com>
10100
10101 PR rtl-optimization/38583
10102 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10103
10104 * params.def (ira-max-conflict-table-size): New.
10105
10106 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 10107
311aab06 10108 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 10109
311aab06
VM
10110 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10111 table. Report this. Return result of building.
10112 (ira_build_conflicts): Use ira_conflicts_p. Check result of
10113 building conflict table.
10114
301b6a4e 10115 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 10116 (ira_color): Use ira_conflicts_p.
2ba9daa7 10117
311aab06
VM
10118 * global.c: Include ira.h.
10119 (pseudo_for_reload_consideration_p, build_insn_chain): Use
10120 ira_conflicts_p.
10121
10122 * Makefile.in (global.o): Add ira.h.
2ba9daa7 10123
311aab06
VM
10124 * ira-build.c (mark_all_loops_for_removal,
10125 propagate_some_info_from_allocno): New.
10126 (remove_unnecessary_allocnos): Call
10127 propagate_some_info_from_allocno.
10128 (remove_low_level_allocnos): New.
10129 (remove_unnecessary_regions): Add parameter. Call
10130 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
10131 parameter to remove_unnecessary_regions.
10132 (ira_build): Remove all regions but root if the conflict table was
10133 not built. Update conflict hard regs for allocnos crossing calls.
10134
10135 * ira.c (ira_conflicts_p): New global.
10136 (ira): Define and use ira_conflicts_p.
10137
10138 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10139 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 10140 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 10141
5641785f
BE
101422009-01-06 Ben Elliston <bje@au.ibm.com>
10143
10144 * gengtype-lex.l (YY_NO_INPUT): Define.
10145
e4e5261f
AP
101462009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
10147
10148 PR c/34911
5641785f
BE
10149 * c-common.c (handle_vector_size_attribute): Also reject
10150 BOOLEAN_TYPE types.
e4e5261f 10151
7b10257f
SP
101522009-01-05 Sebastian Pop <sebastian.pop@amd.com>
10153
10154 PR tree-optimization/38492
10155 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
10156 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10157 rename_map_elt_info, eq_rename_map_elts,
10158 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
10159 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10160 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10161 (sese_build_livein_liveouts): New.
10162 (new_sese, free_sese): New.
10163 (new_scop): Call new_sese.
10164 (free_scop): Call free_sese.
10165 (rename_variables_from_edge, rename_phis_end_scop): Removed.
10166 (register_old_new_names): Renamed register_old_and_new_names.
10167 (register_scop_liveout_renames, add_loop_exit_phis,
10168 insert_loop_close_phis, struct igp,
10169 default_liveout_before_guard, add_guard_exit_phis,
10170 insert_guard_phis, copy_renames): New.
10171 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10172 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10173 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10174 (scop_adjust_phis_for_liveouts): New.
10175 (gloog): Call scop_adjust_phis_for_liveouts.
10176
10177 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 10178 num_ver and livein.
7b10257f
SP
10179 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10180 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10181 (struct scop): Added field liveout_renames.
10182 (SCOP_LIVEOUT_RENAMES): New.
10183
9761fcc7
HJ
101842009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
10185
10186 PR tree-optimization/38510
10187 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10188 (translate_clast): Call recompute_all_dominators before
10189 graphite_verify.
10190 (gloog): Call recompute_all_dominators before graphite_verify.
10191
101922009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 10193 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
10194
10195 PR tree-optimization/38500
10196 * graphite.c (create_sese_edges): Call fix_loop_structure after
10197 splitting blocks.
10198
c95b2534 101992009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
10200
10201 * config.gcc: Add m32r*-*-rtems*.
10202 * config/m32r/rtems.h: New file.
10203
fc0cd180
BE
102042009-01-05 Ben Elliston <bje@au.ibm.com>
10205
10206 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10207 (.po.pox): Likewise.
10208 (po/gcc.pot): Likewise.
10209
3106d8e5
DM
102102009-01-04 David S. Miller <davem@davemloft.net>
10211
10212 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10213 (STARTING_FRAME_OFFSET): Always set to zero.
10214
0009b473
RS
102152009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10216
10217 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10218 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10219 fixed-point types, and vectors of the same.
10220
4f24c6d6
RS
102212009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10222
10223 * config/mips/sync.md (*mb_barrier): Rename to...
10224 (*memory_barrier): ...this.
10225
1df48f5c
JW
102262009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
10227
10228 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 10229 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
10230 and put in alphabetical order. Fix 'target' name and put in order.
10231 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10232 typos.
10233
1a8c13b3
UB
102342009-01-04 Uros Bizjak <ubizjak@gmail.com>
10235
10236 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10237 (memory_barrier): Expand as unspec instead of unspec_volatile.
10238 Remove mem:BLK from insn operands. Use Pmode scratch register.
10239 (*memory_barrier): Define as unspec instead of unspec_volatile.
10240 Use (match_dup 0) as input operand.
10241
10242 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10243 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10244 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
10245 scratch register. Remove operand 1.
10246 (*stbar): Define as unspec instead of unspec_volatile.
10247 Use (match_dup 0) as input operand, remove (const_int 8).
10248 (*membar): Define as unspec instead of unspec_volatile.
10249 Use (match_dup 0) as input operand, remove input operand 2.
10250
10251 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10252 (memory_barrier): Expand as unspec instead of unspec_volatile.
10253 Remove mem:BLK from insn operands. Use Pmode scratch register.
10254 (*memory_barrier): Define as unspec instead of unspec_volatile.
10255 Use (match_dup 0) as input operand.
10256
10257 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10258 Remove mem:BLK from insn operands. Use Pmode scratch register.
10259 Set volatile flag on operand 0.
10260 (*memory_barrier): New insn pattern.
10261
10262 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10263 insn operands.
10264 (*memory_barrier): Use (match_dup 0) as input operand.
10265
10266 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10267 Remove mem:BLK from insn operands. Use Pmode scratch register.
10268 Set volatile flag on operand 0.
301b6a4e 10269 (*mb_internal): New insn pattern.
1a8c13b3
UB
10270
10271 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10272
fb0703f7
SB
102732009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10274
10275 PR middle-end/38586
10276 * function.c (struct temp_slot): Move to the section of the file
10277 that deals with temp slots. Remove field 'address'.
10278 (temp_slot_address_table): New hash table of address -> temp slot.
10279 (struct temp_slot_address_entry): New struct, items for the table.
10280 (temp_slot_address_compute_hash, temp_slot_address_hash,
10281 temp_slot_address_eq, insert_temp_slot_address): Support functions
10282 for the new table.
10283 (find_temp_slot_from_address): Rewrite to use the new hash table.
10284 (remove_unused_temp_slot_addresses): Remove addresses of temp
10285 slots that have been made available.
10286 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10287 worker function for remove_unused_temp_slot_addresses.
10288 (assign_stack_temp_for_type): Don't clear the temp slot address list.
10289 Add the temp slot address to the address -> temp slot map.
10290 (update_temp_slot_address): Update via insert_temp_slot_address.
10291 (free_temp_slots): Call remove_unused_temp_slot_addresses.
10292 (pop_temp_slots): Likewise.
10293 (init_temp_slots): Allocate the address -> temp slot map, or empty
10294 the map if it is already allocated.
10295 (prepare_function_start): Initialize temp slot processing.
10296
b5a430f3
SB
102972009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10298
10299 PR middle-end/38584
10300 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10301 Calculate the size of all stack vars assuming no packing of stack
10302 vars will happen, replacing a quadratic algorithm with a linear one.
10303
5d560619
JJ
103042009-01-03 Jakub Jelinek <jakub@redhat.com>
10305
10306 PR target/38707
10307 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10308 can't be used.
10309
953a7caa
DN
103102009-01-03 Diego Novillo <dnovillo@google.com>
10311
10312 * doc/contrib.texi: Update contributions.
10313
5f26a230
JJ
103142009-01-03 Jakub Jelinek <jakub@redhat.com>
10315
493aa551
JJ
10316 PR c++/38705
10317 * builtins.c (fold_builtin_memory_op): Give up if either operand
10318 is volatile. Set srctype or desttype to non-qualified version
10319 of the other type.
10320
5f26a230
JJ
10321 PR c/38700
10322 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10323 and FUNCTION_DECLs.
10324
c95b2534 103252009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
10326
10327 PR rtl-optimization/35805
10328 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10329 problem if fast dce is able to remove any instructions.
10330 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 10331
0b355794
MM
103322009-01-02 Mark Mitchell <mark@codesourcery.com>
10333
10334 PR 33649
10335 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10336
0cf0d02b
JJ
103372009-01-02 Jakub Jelinek <jakub@redhat.com>
10338
10339 PR middle-end/38690
10340 * tree-flow.h (op_code_prio, op_prio): New prototypes.
10341 * tree-pretty-print.c (op_code_prio): New function.
10342 (op_prio): No longer static. Use op_code_prio.
10343 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10344 Use op_prio and op_code_prio to determine if () should be
10345 printed around operand(s) or not.
10346
10347 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10348 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10349 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10350 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10351 pp_character instead of pp_string for single letter printing.
10352
e3606f3b
RS
103532009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10354
10355 * doc/extend.texi: Fix '#pragma GCC option' typo.
10356
c95b2534 103572009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 10358
a5f061dc
RG
10359 * doc/install.texi (--enable-checking): Mention different
10360 default for stage1.
10361 (--enable-stage1-checking): Document.
00f39bd5 10362
26de0bcb
AP
103632009-01-01 Andrew Pinski <pinskia@gmail.com>
10364
10365 PR middle-end/30142
10366 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
10367 case to be an error.
10368
7a7d8fab
BE
103692009-01-02 Ben Elliston <bje@au.ibm.com>
10370
10371 * config/fp-bit.h (pack_d): Constify argument.
10372 * config/fp-bit.c (makenan): Constify return type. Remove casts.
10373 (isnan): Constify argument.
10374 (isinf): Likewise.
10375 (iszero): Likewise.
10376 (pack_d): Likewise.
10377 (_fpadd_parts): Constify return type.
10378 (_fpmul_parts): Likewise.
10379 (_fpdiv_parts): Likewise.
10380
b295aee2
JJ
103812009-01-01 Jakub Jelinek <jakub@redhat.com>
10382
10383 PR c/36489
10384 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
10385 warn about overwriting initializer with side-effects or
10386 -Woverride-init if !IMPLICIT.
10387 (output_init_element): Likewise. Pass IMPLICIT down to
10388 add_pending_init.
10389 (process_init_element): Add IMPLICIT argument. Pass it down
10390 to output_init_element.
10391 (push_init_element, pop_init_level, set_designator): Adjust
10392 process_init_element callers.
10393 (set_nonincremental_init, set_nonincremental_init_from_string):
10394 Adjust add_pending_init callers.
10395 (output_pending_init_elements): Adjust output_init_element callers.
10396 * c-tree.h (process_init_element): Adjust prototype.
10397 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10398 process_init_element callers.
ad41bd84
JM
10399
10400\f
10401Copyright (C) 2009 Free Software Foundation, Inc.
10402
10403Copying and distribution of this file, with or without modification,
10404are permitted in any medium without royalty provided the copyright
10405notice and this notice are preserved.