]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
394bd84d
RH
12009-06-18 Richard Henderson <rth@redhat.com>
2
3 PR 40488
4 * tree-pass.h (TDF_ASMNAME): New.
5 * tree-dump.c (dump_options): Add asmname.
6 * doc/invoke.texi: Document it.
7
8 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
9 (dump_decl_name): ...here.
10 (dump_function_name): New flags arg; mind TDF_ASMNAME.
11 (dump_generic_node): Update dump_function_name calls.
12 (print_call_name): New flags arg; update all dump calls.
13 * diagnostic.h (print_call_name): Update.
14 * gimple-pretty-print.c (dump_gimple_call): Update.
15
2a457a9b
L
162009-06-18 H.J. Lu <hongjiu.lu@intel.com>
17
18 PR target/40470
19 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
20
fca5bb5c
DN
212009-06-18 Diego Novillo <dnovillo@google.com>
22
23 * doc/plugins.texi: Document plugin_is_GPL_compatible.
24 * plugin.c (str_license): Declare.
25 (try_init_one_plugin): Assert that the symbol
26 'plugin_is_GPL_compatible' exists.
27
b6680d72
SD
282009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
29
30 * see.c: Remove.
31 * Makefile.in (OBJS-common): Remove see.o.
32 (see.o): Remove.
33 * common.opt (fsee): Mark as preserved for backward compatibility.
34 * opts.c (common_handle_option): Add OPT_fsee to the backward
35 compatibility section.
36 * passes.c (init_optimization_passes, pass_see): Remove pass.
37 * timevar.def (TV_SEE): Remove.
38 * tree-pass.h (pass_see): Remove declaration.
39 * doc/invoke.texi (-fsee): Remove documentation.
40 * testsuite/gcc.dg/20080522-1.c: Remove testcase.
41 * testsuite/gcc.dg/20080528-1.c: Remove testcase.
42
2a45675f
MJ
432009-06-18 Martin Jambor <mjambor@suse.cz>
44
45 * tree-sra.c: Include statistics.h
46 (sra_stats): New variable.
47 (sra_initialize): Clear sra_stats.
48 (create_access_replacement): Increment sra_stats.replacements.
49 (get_access_replacement): Do not return twice.
50 (analyze_all_variable_accesses): Increment statistics counter by the
51 number of scalarized aggregates.
52 (generate_subtree_copies): Increment sra_stats.subtree_copies.
53 (sra_modify_expr): Increment sra_stats.exprs.
54 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
55 (sra_modify_assign): Increment sra_stats.exprs,
56 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
57 (perform_intra_sra): Update statistics counters.
58 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
59
bdc4827b
SL
602009-06-18 Sandra Loosemore <sandra@codesourcery.com>
61
62 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
63 (arm_scalar_mode_supported_p): New function.
64
d9dd51dc
PB
652009-06-18 Paul Brook <paul@codesourcery.com>
66 Sandra Loosemore <sandra@codesourcery.com>
67
68 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
69 (__extendhfsf2, __truncsfhf2): Define.
70 * config/arm/fp16.c: New file.
71 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
72 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
73
0fd8c3ad
SL
742009-06-18 Sandra Loosemore <sandra@codesourcery.com>
75
76 * doc/extend.texi (Half-Precision): New section.
77 * doc/invoke.texi (Option Summary): List -mfp16-format.
78 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
79 * config/arm/arm.opt (mfp16-format=): New.
80 * config/arm/arm.c: Include intl.h.
81 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
82 (TARGET_INVALID_RETURN_TYPE): Redefine.
83 (TARGET_PROMOTED_TYPE): Redefine.
84 (TARGET_CONVERT_TO_TYPE): Redefine.
85 (arm_fp16_format): Define.
86 (all_fpus): Add entry for neon-fp16.
87 (fp_model_for_fpu): Likewise.
88 (struct fp16_format): Declare.
89 (all_fp16_formats): Define.
90 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
91 functions.
92 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
93 and no ldrh.
94 (arm_legitimate_index_p): Treat HFmode like HImode.
95 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
96 (coproc_secondary_reload_class): Special-case HFmode.
97 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
98 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
99 (arm_init_fp16_builtins): New.
100 (arm_init_builtins): Call it.
101 (arm_invalid_parameter_type): New.
102 (arm_invalid_return_type): New.
103 (arm_promoted_type): New.
104 (arm_convert_to_type).
105 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
106 format.
107 (arm_emit_fp16_const): New function.
108 (arm_mangle_type): Mangle __fp16 as "Dh".
109 * config/arm/arm.h (TARGET_VFPD32): Make it know about
110 FPUTYPE_NEON_FP16.
111 (TARGET_NEON_FP16): New.
112 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
113 (enum fputype): Add FPUTYPE_NEON_FP16.
114 (enum arm_fp16_format_type): Declare.
115 (arm_fp16_format): Declare.
116 (LARGEST_EXPONENT_IS_NORMAL): Define.
117 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
118 * config/arm/arm-modes.def (HFmode): Define.
119 * config/arm/vfp.md: (*movhf_vfp): New.
120 (extendhfsf2): New.
121 (truncsfhf2): New.
122 * config/arm/arm.md: (fpu): Add neon_fp16.
123 (floatsihf2, floatdihf2): New.
124 (fix_trunchfsi2, fix_trunchfdi2): New.
125 (truncdfhf2): New.
126 (extendhfdf2): New.
127 (movhf): New.
128 (*arm32_movhf): New.
129 (*thumb1_movhf): New.
130 (consttable_2): Add check for HFmode constants.
131 (consttable_4): Handle HFmode constants.
132
2c2f70e1
UB
1332009-06-18 Uros Bizjak <ubizjak@gmail.com>
134
135 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
136
db4fa1c1
OH
1372009-06-17 Olivier Hainque <hainque@adacore.com>
138
139 * collect2.c (main): Use CONST_CAST2 to perform char ** to
140 const char ** conversion in AIX specific section.
141
6bec4135
L
1422009-06-17 H.J. Lu <hongjiu.lu@intel.com>
143
144 * config/i386/i386.c (ix86_special_builtin_type): Remove
145 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
146 (bdesc_special_args): Updated.
147 (ix86_init_mmx_sse_builtins): Likewise.
148 (ix86_expand_special_args_builtin): Likewise.
149
958d6d58
RH
1502009-06-17 Richard Henderson <rth@redhat.com>
151
152 * tree-pretty-print.c (maybe_dump_asm_name): New.
153 (dump_decl_name): Use it.
154 (PRINT_FUNCTION_NAME): Merge into...
155 (dump_function_name): ... here. Use maybe_dump_asm_name.
156
ed5ef2e4
CC
1572009-06-17 Cary Coutant <ccoutant@google.com>
158
159 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
160 Change caller.
161 * debug.c (struct gcc_debug_hooks): Change placeholder for
162 source_line hook.
163 (debug_nothing_int_charstar_int): Replaced by...
164 (debug_nothing_int_charstar_int_bool): ...this.
165 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
166 source_line prototype.
167 (debug_nothing_int_charstar_int): Replaced by...
168 (debug_nothing_int_charstar_int_bool): ...this.
169 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
170 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
171 Output is_stmt operand when necessary.
01a0acb7 172 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
173 (notice_source_line): Add is_stmt parameter.
174 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
175 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
176 Change callers.
177 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
178 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
179
b0f43ca0
ILT
1802009-06-17 Ian Lance Taylor <iant@google.com>
181
182 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
183 Change all uses.
184 (struct store_by_pieces_d): Rename from store_by_pieces. Change
185 call uses.
186
23314e77
AN
1872009-06-17 Adam Nemet <anemet@caviumnetworks.com>
188
189 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
190 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
191 tree_strip_sign_nop_conversions and
192 tree_ssa_strip_useless_type_conversions rather than stripping
193 the operations here.
194 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
195 Declare them.
196 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
197 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
198 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
199 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
200 functions.
201
799dbb0f
ME
2022009-06-17 Michael Eager <eager@eagercon.com>
203
c637b0fa
UB
204 * config/rs6000/constraints.md (register_constraint "d"): New.
205 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
206 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
207 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
208 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
209 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
210 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
211 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
212 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
213 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
214 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
215 __fctiwz): Same.
216 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
217 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
218 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
219 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
220 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
221 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
222 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
223 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
224 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
225 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
226 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
227 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
228 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
229 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
230
1469de3c
ILT
2312009-06-16 Ian Lance Taylor <iant@google.com>
232
233 * profile.c (total_num_never_executed): Don't define.
234 (compute_branch_probabilities): Don't count or print
235 num_never_executed.
236 (init_branch_prob): Don't set total_num_never_executed.
237 (end_branch_prob): Don't print total_num_never_executed.
238
2cb0a60d
DD
2392009-06-17 David Daney <ddaney@caviumnetworks.com>
240
c637b0fa 241 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 242
82882240
DE
2432009-06-17 David Edelsohn <edelsohn@gnu.org>
244
245 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
246 (nabstd2_fpr): Same.
247
a1a65f89
SE
2482009-06-17 Steve Ellcey <sje@cup.hp.com>
249
250 * expr.c (expand_assignment): Change complex type check.
251
07ae5620
BS
2522009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
253
254 * doc/plugins.texi (Building GCC plugins): Added new section.
255
5eb4df45
ILT
2562009-06-17 Ian Lance Taylor <iant@google.com>
257
258 * c-pch.c (get_ident): Don't set size of templ array.
259 (pch_init): Don't set size of partial_pch array.
260
261 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
262 string constant to intialize an array whose size is the length of
263 the string.
264
4d61856d
RG
2652009-06-17 Richard Guenther <rguenther@suse.de>
266
267 PR tree-optimization/40389
268 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
269 to addressable types.
270 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
271
3cb8677c
RG
2722009-06-17 Richard Guenther <rguenther@suse.de>
273
274 PR middle-end/40460
275 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
276 if there is no evolution of left in the loop bail out.
277 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
278 chrec_fold_multiply.
279
a4d99c86
R
2802009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
281 Janis Johnson <janis187@us.ibm.com>
282
283 PR target/39254
284 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
285 for the symbol ref of a constant that is the source of a move
286 - nor for any other not-obvious-label-ref constants.
287
8dd1bca0
OR
2882009-06-16 Olatunji Ruwase <tjruwase@google.com>
289
1469de3c 290 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
291 traversal to avoid repeated insertion.
292
8019538f
ILT
2932009-06-16 Ian Lance Taylor <iant@google.com>
294
295 * vec.h (VEC_stack_alloc): Define different version if
296 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
297 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
298 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
299 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
300
7c45393e
L
3012009-06-16 H.J. Lu <hongjiu.lu@intel.com>
302
303 * config.gcc (extra_headers): Add ia32intrin.h for x86.
304
305 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
306 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
307 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
308 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
309 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
310 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 311 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
312 (bdesc_special_args): Add __builtin_ia32_rdtsc and
313 __builtin_ia32_rdtscp.
314 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
315 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 316 and __builtin_ia32_rorhi.
7c45393e
L
317 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
318 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 319 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
320 (ix86_expand_args_builtin): Likewise.
321 (ix86_expand_special_args_builtin): Likewise.
322
323 * config/i386/i386.md (UNSPECV_RDTSCP): New.
324 (UNSPECV_RDTSC): Likewise.
325 (UNSPECV_RDPMC): Likewise.
c637b0fa 326 (*bsr): Renamed to ...
7c45393e 327 (bsr): This
c637b0fa 328 (*bsr_rex64): Renamed to ...
7c45393e
L
329 (bsr_rex64): This.
330 (rdpmc): New.
331 (*rdpmc): Likewise.
332 (*rdpmc_rex64): Likewise.
333 (rdtsc): Likewise.
334 (*rdtsc): Likewise.
335 (*rdtsc_rex64): Likewise.
336 (rdtscp): Likewise.
337 (*rdtscp): Likewise.
338 (*rdtscp_rex64): Likewise.
339
340 * config/i386/ia32intrin.h: New.
341
342 * config/i386/x86intrin.h: Include <ia32intrin.h>.
343
504b33d8
ILT
3442009-06-16 Ian Lance Taylor <iant@google.com>
345
346 * ira-build.c (copy_info_to_removed_store_destinations):
347 Initialize parent_a.
348
f9551830
ILT
3492009-06-16 Ian Lance Taylor <iant@google.com>
350
351 * c-decl.c (grokdeclarator): Change size_varies to bool.
352
c32e2175
ILT
3532009-06-16 Ian Lance Taylor <iant@google.com>
354
355 * sel-sched.c: Make forward declarations of move_op_hooks and
356 fur_hooks explicitly extern.
357
415a06c2
ILT
3582009-06-16 Ian Lance Taylor <iant@google.com>
359
c637b0fa 360 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
361 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
362
675f99c9
ILT
3632009-06-16 Ian Lance Taylor <iant@google.com>
364
365 * resource.c (mark_referenced_resources): Change
366 include_delayed_effects parameter to bool. Change all callers.
367 (mark_end_of_function_resources): Likewise.
368 * reorg.c (insn_references_resource_p): Likewise.
369 (insn_sets_resource_p): Likewise.
370 * resource.h (mark_referenced_resources): Update declaration.
371 (mark_end_of_function_resources): Update declaration.
372
a322799d
DE
3732009-06-16 David Edelsohn <edelsohn@gnu.org>
374
375 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
376
c58c92f5
DE
3772009-06-16 David Edelsohn <edelsohn@gnu.org>
378
379 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
380 GCC can bootstrap on AIX with GNU Binutils 2.20.
381
95228603
ILT
3822009-06-16 Ian Lance Taylor <iant@google.com>
383
384 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
385
9c727c9a
ILT
3862009-06-16 Ian Lance Taylor <iant@google.com>
387
388 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
389 inline, not extern inline.
390 (exact_log2): Likewise.
391 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
392 test CLZ_HWI.
393 (exact_log2): Likewise, but don't test CTZ_HWI.
394
5fd8300b
ILT
3952009-06-16 Ian Lance Taylor <iant@google.com>
396
397 * bitmap.c (bitmap_clear): Don't declare as inline.
398 * gimple.c (gimplify_assign): Likewise.
399 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
400 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
401 (sched_scan_info): Remove duplicate definition.
402
7d882b83
ILT
4032009-06-16 Ian Lance Taylor <iant@google.com>
404
405 * c-common.c (skip_evaluation): Don't define.
406 (c_inhibit_evaluation_warnings): Define global variable.
407 (overflow_warning): Check c_inhibit_evaluation_warnings rather
408 than skip_evaluation.
409 (convert_and_check, warn_for_div_by_zero): Likewise.
410 * c-common.h (skip_evaluation): Don't declare.
411 (c_inhibit_evaluation_warnings): Declare.
412 * c-parser.c (c_parser_typeof_specifier): Set
413 c_inhibit_evaluation_warnings rather than skip_evaluation.
414 (c_parser_conditional_expression): Likewise.
415 (c_parser_binary_expression): Likewise.
416 (c_parser_sizeof_expression): Likewise.
417 (c_parser_alignof_expression): Likewise.
418 * c-typeck.c (build_indirect_ref): Check
419 c_inhibit_evaluation_warnings rather than skip_evaluation.
420 (build_conditional_expr, build_binary_op): Likewise.
421
2e407842
RG
4222009-06-16 Richard Guenther <rguenther@suse.de>
423
424 * tree-ssa-alias.c (is_escape_site): Remove.
425 * tree-ssa-alias.h (enum escape_type): Remove.
426 (is_escape_site): Likewise.
427 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
428 via casts and asms without deferring to is_escape_site.
429
f2ff8872
JJ
4302009-06-16 Jakub Jelinek <jakub@redhat.com>
431
432 PR middle-end/40446
433 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
434 use gen_lowpart if op0 has complex mode.
435
de70bb20
RG
4362009-06-16 Richard Guenther <rguenther@suse.de>
437
438 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
439 variables add them to ESCAPED.
c637b0fa 440 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 441
daa0eeb8
RAE
4422009-06-16 Rafael Avila de Espindola <espindola@google.com>
443
444 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
445 make_decl_one_only.
446
0ec19b8c
MJ
4472009-06-16 Martin Jambor <mjambor@suse.cz>
448
449 PR tree-optimization/40432
450 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
451 check whether we need to force gimple register operand.
452
2b26b801
MJ
4532009-06-16 Martin Jambor <mjambor@suse.cz>
454
455 PR tree-optimization/40413
456 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
457 build_ref_for_offset.
458 (propagate_subacesses_accross_link): Fix a typo in a comment.
459
7c5222ff
IR
4602009-06-16 Ira Rosen <irar@il.ibm.com>
461
462 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
463 with additional parameter.
c637b0fa 464 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
465 vect_nested_cycle.
466 (enum vect_relevant): Add comments.
467 (vect_is_simple_reduction): Add new argument.
468 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
469 Detect nested cycles.
470 (vect_is_simple_reduction): Update documentation, add an argument to
471 distinguish inner-loop reduction from nested cycle, detect nested
472 cycles, fix printings and indentation, don't swap operands in case
473 of nested cycle.
474 (get_initial_def_for_reduction): Handle subtraction.
475 (vect_create_epilog_for_reduction): Add new argument to specify
476 reduction variable.
477 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
478 (vectorizable_reduction): Handle nested cycles. In case of nested
479 cycle keep track of the reduction variable position. Call
7c5222ff
IR
480 vect_is_simple_reduction with additional parameter. Use original
481 statement code in reduction epilogue for nested cycle. Call
482 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
483 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
484 inner-loop vectorization.
7c5222ff
IR
485 (vect_recog_widen_sum_pattern): Likewise.
486 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
487 and reductions.
488 (vect_mark_stmts_to_be_vectorized): Likewise.
489 (vect_get_vec_def_for_operand): Handle nested cycles.
490
d376d545
RW
4912009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
492
493 * doc/invoke.texi (Debugging Options): Fix option index entries
494 for -fdump-statistics, -frandom-seed add entries for
495 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
496 (FRV Options): Fix entries for -mTLS, -mtls.
497 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
498 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
499 (M68hc1x Options): Fix @itemx for -mnominmax.
500 (MCore Options): Fix entry for -mno-lsim.
501 (MMIX Options): Fix entry for -mabi=mmixware.
502 (PDP-11 Options): Fix entry for -mbcopy-builtin.
503
bd117bb6
BS
5042009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
505
506 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
507 Mention the plugin mode of gengtype.
c637b0fa 508 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
509 * gengtype.c: Updated copyright.
510 (plugin_files, nb_plugin_files) Added new static variables.
511 (measure_input_list) Care about plugin_files.
512 (write_rtx_next): Added early return in plugin mode.
513 (create_file): Updated copyright year in generated file. Added
514 asserts.
515 (oprintf): Added early return if NULL outf.
516 (get_output_file_with_visibility): Care of plugin_files.
517 (get_output_file_name): May return null.
518 (write_local): Added early return.
519 (put_mangled_filename): Ditto.
520 (finish_root_table): Added check for base_files.
521 (write_roots): Care about null when plugins.
522 (main): Added plugin mode.
523
e1b7793c
ILT
5242009-06-15 Ian Lance Taylor <iant@google.com>
525
c637b0fa 526 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
527 * gcov.c (read_count_file): Add braces around variables declared
528 before label.
529
530 * c.opt (Wjump-misses-init): New warning.
531 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
532 -Wall and -Wc++-compat if not already set.
533 (c_common_post_options): Clear warn_jump_misses_init if it was not
534 set.
535 * c-decl.c (struct c_binding): Change type field to a union with
536 new label field. Make it the first field in the struct. Update
537 references to type to use u.type instead.
538 (struct c_spot_bindings): Define.
539 (struct c_goto_bindings): Define.
540 (c_goto_bindings_p): Define, along with VECs.
541 (struct c_label_vars): Define.
542 (struct c_scope): Add has_label_bindings field.
543 (bind_label, set_spot_bindings): New static functions.
544 (decl_jump_unsafe, update_spot_bindings): New static functions.
545 (update_label_decls): New static function.
546 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
547 Update binding u.label field to shadowed field.
548 (c_binding_start_stmt_expr): New function.
549 (c_binding_end_stmt_expr): New function.
550 (pushdecl): Don't call c_begin_vm_scope.
551 (make_label): Add defining and p_label_vars parameters. Change
552 all callers.
553 (lookup_label): Correct test for whether a label has not yet been
554 defined. Call bind_label rather than bind.
555 (warn_about_goto): New static function.
556 (lookup_label_for_goto): New function.
557 (declare_label): Call bind_label rather than bind.
558 (check_earlier_gotos): New static function.
559 (define_label): Don't give errors about jumping into statement
560 expressions or scopes of variably modified types. Call
561 set_spot_bindings and check_earlier_gotos. Call bind_label
562 instead of bind. Don't set label_context_stack_se or
563 label_context_stack_vm.
564 (c_get_switch_bindings): New function.
565 (c_release_switch_bindings): New function.
566 (c_check_switch_jump_warnings): New function.
567 (start_function): Don't set label_context_stack_se or
568 label_context_stack_vm.
569 (finish_function): Likewise.
570 * c-typeck.c (label_context_stack_se): Don't define.
571 (label_context_stack_vm): Don't define.
572 (c_finish_goto_label): Call lookup_label_for_goto rather than
573 lookup_label. Don't give errors about jumping into a statement
574 expression or the scope of a variably modified type. Don't set
575 label_context_stack_se or label_context_stack_vm.
576 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
577 fields. Add bindings field.
578 (c_start_case): Don't set deleted fields. Set bindings field.
579 (do_case): Rework order of tests. Don't check blocked_stmt_expr
580 or blocked_vm. Call c_check_switch_jump_warnings.
581 (c_finish_case): Don't test blocked_stmt_expr field. Call
582 c_release_switch_bindings.
583 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
584 c_switch_stack. Don't walk label_context_stack_se labels. Don't
585 set label_context_stack_se. Call c_bindings_start_stmt_expr.
586 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
587 c_switch_stack. Don't walk label_context_stack_se labels. Don't
588 set label_context_stack_se. Call c_bindings_end_stmt_expr.
589 (c_begin_vm_scope, c_end_vm_scope): Don't define.
590 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
591 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
592 (C_DECL_UNJUMPABLE_VM): Don't define.
593 (C_DECL_UNDEFINABLE_VM): Don't define.
594 (struct c_label_list): Don't define.
595 (struct c_label_context_se): Don't define.
596 (struct c_label_context_vm): Don't define.
597 (struct c_spot_bindings): Declare.
598 (c_bindings_start_stmt_expr): Declare.
599 (c_bindings_end_stmt_expr): Declare.
600 (lookup_label_for_goto): Declare.
601 (c_get_switch_bindings, c_release_switch_bindings): Declare.
602 (c_check_switch_jump_warnings): Declare.
603 (label_context_stack_se, label_context_stack_vm): Don't declare.
604 (c_finish_goto_label): Update declaration.
605 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
606 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
607 (Warning Options): Document -Wjump-misses-init.
608
98a129b9
JJ
6092009-06-15 Jakub Jelinek <jakub@redhat.com>
610
611 * tree-object-size.c (addr_object_size): Fix a pasto in the last
612 change.
613
19751f1f
RAE
6142009-06-15 Rafael Avila de Espindola <espindola@google.com>
615
616 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
617
d40eb158
AH
6182009-06-15 Aldy Hernandez <aldyh@redhat.com>
619
620 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
621
6222009-06-15 Aldy Hernandez <aldyh@redhat.com>
623
624 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
625
fc26fae3
RAE
6262009-06-15 Rafael Avila de Espindola <espindola@google.com>
627
628 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
629 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
630 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
631 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
632 * dwarf2asm.c (dw2_force_const_mem): Update call to
633 make_decl_one_only.
fc26fae3
RAE
634 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
635 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
636 * langhooks.c (lhd_comdat_group): Remove.
637 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
638 * tree.h (DECL_COMDAT_GROUP): New.
639 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
640 (tree_decl_with_vis): Add comdat_group. Remove one_only.
641 (make_decl_one_only): Change signature.
642 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
643 make_decl_one_only.
644 (make_decl_one_only): Change signature.
645 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
646
0eb92735
RG
6472009-06-15 Richard Guenther <rguenther@suse.de>
648
649 PR middle-end/40439
650 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
651
0ab352d5
AK
6522009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
653
654 * tree-ssa-math-opts.c: Remove extra divide.
655
677fbff4
AK
6562009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
657
658 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
659
03bd2f1a
AK
6602009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
661
662 * passes.c: Add bswap pass.
663 * tree-pass.h: Add pass_optimize_bswap declaration.
664 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
665 Include rtl.h, expr.h and optabs.h for optab_handler check.
666 (struct symbolic_number, pass_optimize_bswap): New definition.
667 (do_shift_rotate, verify_symbolic_number_p): New functions.
668 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
669 (gate_optimize_bswap): New function.
670 * tree.c (widest_int_cst_value): New function.
671 * tree.h (widest_int_cst_value): Prototype added.
672
fb4c4640
SB
6732009-06-14 Steven Bosscher <steven@gcc.gnu.org>
674
675 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
676 REG_EQUAL/REG_EQUIV notes.
677
1d24fdd9
RG
6782009-06-14 Richard Guenther <rguenther@suse.de>
679
680 PR middle-end/40389
681 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
682 has its address taken if NRV was applied and it is addressable.
683 * tree-ssa-structalias.c (get_constraint_for_address_of): New
684 function split out from ...
685 (get_constraint_for_1): ... here.
686 (handle_rhs_call): Use it to mark the return slot escaped if
687 it is addressable and NRV was applied.
688
4b29c5e5
AH
6892009-06-13 Aldy Hernandez <aldyh@redhat.com>
690
691 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
692 Change first argument type to location_t.
693 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
694 Do not set input_location.
695 Use loc instead of input_location throughout.
696
e1e6dc73
RG
6972009-06-13 Richard Guenther <rguenther@suse.de>
698
1d24fdd9 699 PR tree-optimization/40421
e1e6dc73
RG
700 * tree-predcom.c (should_unroll_loop_p): Remove.
701 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
702
8012b923
MM
7032009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
704
705 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
706 Add location argument.
707
4c4bde29
AH
7082009-06-13 Aldy Hernandez <aldyh@redhat.com>
709
710 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
711 build_decl.
712 * config/s390/s390.c (s390_build_builtin_va_list): Same.
713 (s390_gimplify_va_arg): Pass location to create_artificial_label.
714 * config/spu/spu-protos.h: Add location to
715 spu_resolve_overloaded_builtin.
716 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
717 spu_build_builtin_va_list.
718 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
719 argument. Pass location to build_function_call_vec.
720 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
721 build_decl.
722 (emit_fpu_switch): Same.
723 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
724 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
725 to build_decl and create_artificial_label.
726 (xtensa_gimplify_va_arg_expr): Same.
727 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
728 (xstormy16_gimplify_va_arg_expr): Same.
729 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
730 * config/arm/arm.c (arm_build_builtin_va_list): Same.
731 * config/mips/mips.c (mips_build_builtin_va_list): Same.
732 (mips16_build_function_stub): Same.
733 (mips16_build_call_stub): Same.
734
81beb031
RE
7352009-06-13 Richard Earnshaw <rearnsha@arm.com>
736
737 PR target/40327
738 * arm/constraints.md (Pa, Pb): New constraints.
739 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
740 split pattern to deal with them.
741
98f6c600
JS
7422009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
743
744 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
745 fix index entry for -Xpreprocessor.
746
71856685
AH
7472009-06-12 Aldy Hernandez <aldyh@redhat.com>
748
749 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
750 Add location argument to build_decl call.
751 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
752 (rs6000_init_builtins): Same.
753 (spe_init_builtins): Same.
754 (rs6000_gimplify_va_arg): Add location argument to
755 create_artificial_label call.
756
756b65f5
SB
7572009-06-12 Steven Bosscher <steven@gcc.gnu.org>
758
759 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
760 * combine-stack-adj.c (pass_stack_adjustments): Use it.
761 * Makefile.in: Fix GGC dependency for gcse.o.
762
c2255bc4
AH
7632009-06-12 Aldy Hernandez <aldyh@redhat.com>
764
765 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
766 * gimple-pretty-print.c (dump_gimple_stmt): Same.
767 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
768 created.
769 * c-parser.c (c_parser_binary_expression): Use current column while
770 building binary operations.
771 * common.opt (fshow-column): Enable by default.
772 * tree-vrp.c (check_array_ref): Use warning_at.
773 (check_array_bounds): Use location from call back if expr has no
774 location.
775 * tree.h: Add location argument to maybe_fold_*.
776 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
777 (maybe_fold_offset_to_array_ref): Add location argument and use it.
778 (maybe_fold_offset_to_component_ref): Same.
779 (maybe_fold_offset_to_reference): Same.
780 (maybe_fold_offset_to_address): Same.
781 (maybe_fold_stmt_indirect): Same.
782 (maybe_fold_stmt_addition): Same.
783 (fold_stmt_r): Pass location to maybe_fold_*.
784 (fold_gimple_assign): Same.
785 * c-tree.h: Add location argument to finish_decl,
786 default_function_array_conversion, store_init_value.
787 * c-decl.c (define_label): Use error_at.
788 (c_make_fname_decl): Pass location to finish_decl.
789 (finish_decl): New location argument.
790 (build_compound_literal): Pass location to store_init_value.
791 (grokdeclarator): Pass location to finish_decl.
792 (grokfield): Same.
793 * c-typeck.c (array_to_pointer_conversion): New location argument.
794 (function_to_pointer_conversion): Same.
795 (default_function_array_conversion): Same.
796 (parser_build_unary_op): Pass location to overflow_warning.
797 (parser_build_binary_op): Same. Use warning_at.
798 (build_unary_op): Pass location to array_to_pointer_conversion.
799 (build_c_cast): Pass location to digest_init.
800 (build_modify_expr): New location argument.
801 (convert_for_assignment): Same.
802 (store_init_value): Same.
803 (digest_init): Same.
804 (output_init_element): Pass location to digest_init and
805 array_to_pointer_conversion.
806 (c_finish_return): Pass location to convert_for_assignment.
807 * gimplify.c (gimplify_conversion): Pass location to
808 maybe_fold_offset_to_address.
809 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
810 to maybe_fold_stmt_addition.
811 * c-omp.c (c_finish_omp_atomic): Pass new location to
812 build_modify_expr.
813 (c_finish_omp_for): Same.
814 * c-common.c (overflow_warning): New argument.
815 * c-common.h: New argument to build_modify_expr, overflow_warning.
816 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
817 finish_decl.
818 (c_parser_initializer): Pass location to
819 default_function_array_conversion.
820 (c_parser_initelt): Same.
821 (c_parser_initval): Same.
822 (c_parser_asm_operands): Same.
823 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
824 (c_parser_conditional_expression): Same.
825 (c_parser_binary_expression): Add location info to stack. Use it.
826 (c_parser_unary_expression): Pass location to
827 default_function_array_conversion, parser_build_unary_op,
828 build_indirect_ref, c_parser_postfix_expression_after_primary.
829 (c_parser_postfix_expression_after_primary): New location argument.
830 Use it.
831 (c_parser_expression_conv): Pass location to
832 default_function_array_conversion.
833 (c_parser_expr_list): Same.
834 (c_parser_omp_atomic): Same.
835 (c_parser_omp_for_loop): Same.
836 * c-tree.h: (struct c_declarator): Add comment to id_loc.
837 (build_array_declarator): New argument.
838 * c-decl.c (build_array_declarator): Add location argument.
839 (grokdeclarator): Set id_loc for cdk_array.
840 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
841 build_array_declarator.
842 * tree.c (build_omp_clause): Add location argument.
843 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
844 (OMP_CLAUSE_LOCATION): New macro.
845 (struct tree_omp_clause): Add location field.
846 (build_omp_clause): Add argument.
847 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
848 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
849 build_omp_clause.
850 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
851 (cp_parser_omp_clause_collapse): Same.
852 (cp_parser_omp_clause_default): Same.
853 (cp_parser_omp_clause_if): Same.
854 (cp_parser_omp_clause_nowait): Same.
855 (cp_parser_omp_clause_num_threads): Same.
856 (cp_parser_omp_clause_ordered): Same.
857 (cp_parser_omp_clause_schedule): Same.
858 (cp_parser_omp_clause_untied): Same.
859 (cp_parser_omp_for_loop): Same.
860 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
861 * c-tree.h (c_start_case): Add location argument.
862 (c_process_expr_stmt): Same.
863 (c_finish_goto_*): Same.
864 * tree-parloops.c (initialize_reductions): Pass location to
865 build_omp_clause.
866 (create_parallel_loop): Same.
867 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
868 (gfc_trans_omp_reduction_list): Same.
869 (gfc_trans_omp_clauses): Same.
870 (gfc_trans_omp_do): Same.
871 * c-typeck.c (c_finish_goto_label): Same.
872 (c_finish_goto_ptr): New location argument.
873 (c_start_case): Same.
874 (emit_side_effect_warnings): Same.
875 (c_process_expr_stmt): Same.
876 (c_finish_stmt_expr): Same.
877 (c_finish_omp_clauses): Use error_at instead of error.
878 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
879 build_omp_clause.
880 * c-omp.c (c_split_parallel_clauses): New location argument.
881 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
882 to build_omp_clause.
883 (convert_local_reference_stmt): Same.
884 (convert_gimple_call): Same.
885 * c-common.h (c_split_parallel_clauses): New argument.
886 * c-parser.c (c_parser_statement_after_labels): Pass location to
887 c_finish_goto_label.
888 (c_parser_switch_statement): Pass location to c_start_case.
889 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
890 and c_process_expr_stmt.
891 (c_parser_omp_variable_list): Add location argument.
c637b0fa 892 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
893 (c_parser_omp_clause_default): Same.
894 (c_parser_omp_clause_if): Same.
895 (c_parser_omp_clause_num_threads): Same.
896 (-c_parser_omp_clause_ordered): Same.
897 (c_parser_omp_clause_reduction): Pass location to
898 c_parser_omp_variable_list.
899 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
900 (c_parser_omp_clause_untied): Same.
901 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 902 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
903
904 * c-tree.h (check_for_loop_decls, undeclared_variable,
905 build_component_ref, build_array_ref, build_external_ref,
906 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
907 build_conditional_expr, build_compound_expr, c_cast_expr,
908 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
909 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
910 argument.
911 * c-semantics.c (build_stmt): Same.
912 (build_case_label): Same.
913 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
914 (undeclared_variable): New argument.
915 (make_label): Same.
916 (lookup_label): Pass location on down.
917 (define_label): Same.
918 (finish_decl): Same.
919 (build_compound_literal): Same.
920 (finish_struct): Same.
921 (finish_function): Do not set location here.
922 (check_for_loop_decls): New argument.
923 * tree.c (save_expr): Set location.
924 (build_empty_stmt): New argument.
925 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
926 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
927 * builtins.c (gimplify_va_arg_expr): Use locations.
928 (expand_builtin_sync_operation): Same.
929 * c-typeck.c (build_component_ref): New argument.
930 (build_array_ref): Same.
931 (build_external_ref): Same.
932 (c_expr_sizeof_expr): Same.
933 (c_expr_sizeof_type): Same.
934 (parser_build_unary_op): Same.
935 (build_conditional_expr): Same.
936 (build_compound_expr): Pass location on down.
937 (build_compound_expr): New argument.
938 (build_c_cast): Same.
939 (c_cast_expr): Same.
940 (build_asm_expr): Same.
941 (c_finish_return): Same.
942 (c_process_expr_stmt): Pass location on down.
943 (c_finish_stmt_expr): New argument.
944 (push_clenaup): Same.
945 (c_finish_omp_parallel): Same.
946 (c_finish_omp_task): Same.
947 * gimplify.c (gimplify_call_expr): Pass location on down.
948 * c-omp.c (c_finish_omp_master): New argument.
949 (c_finish_omp_critical): Same.
950 (c_finish_omp_ordered): Same.
951 (c_finish_omp_barrier): Same.
952 (-c_finish_omp_taskwait): Same.
953 (c_finish_omp_atomic): Same.
954 (c_finish_omp_flush): Same.
955 * tree-inline.c (copy_tree_body_r): Pass location on down.
956 (inline_forbidden_p): Remove use of input_location.
957 * c-gimplify.c (c_build_bind_expr): New argument.
958 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
959 (c_sizeof_or_alignof_type): New argument.
960 (c_alignof_expr): Same.
961 (build_va_arg): Same.
962 (c_add_case_label): Same.
963 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
964 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
965 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
966 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
967 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
968 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
969 New argument.
970 * stub-objc.c (objc_build_selector_expr): Same.
971 (objc_build_throw_stmt): Same.
972 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
973 (c_parser_initelt): Same.
974 (c_parser_compound_statement): Same.
975 (c_parser_compound_statement_nostart): Same.
976 (c_parser_label): Same.
977 (c_parser_statement_after_labels): Same.
978 (c_parser_if_body): Same.
979 (c_parser_else_body): Same.
980 (c_parser_if_statement): Same.
981 (c_parser_switch_statement): Same.
982 (c_parser_while_statement): Same.
983 (c_parser_do_statement): Same.
984 (c_parser_for_statement): Same.
985 (c_parser_asm_statement): Same.
986 (c_parser_conditional_expression): Same.
987 (c_parser_binary_expression): Same.
988 (c_parser_cast_expression): Same.
989 (c_parser_unary_expression): Same.
990 (c_parser_sizeof_expression): Same.
991 (c_parser_alignof_expression): Same.
992 (c_parser_postfix_expression): Same.
993 (c_parser_expression): Same.
994 (c_parser_objc_receiver): Same.
995 (c_parser_omp_variable_list): Same.
996 (c_parser_omp_structured_block): Same.
997 (c_parser_omp_atomic): New argument.
998 (c_parser_omp_barrier): Same.
999 (c_parser_omp_critical): Same.
1000 (c_parser_omp_flush): Pass location on down.
1001 (c_parser_omp_for_loop): New argument.
1002 (c_parser_omp_for): Same.
1003 (c_parser_omp_master): Same.
1004 (c_parser_omp_ordered): Same.
1005 (c_parser_omp_sections_scope): Same.
1006 (c_parser_omp_sections): Same.
1007 (c_parser_omp_parallel): Same.
1008 (c_parser_omp_single): Same.
1009 (c_parser_omp_task): Same.
1010 (c_parser_omp_taskwait): Pass location on down.
1011 (c_parser_omp_construct): Same.
1012 (c_parser_omp_threadprivate): Same.
1013 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1014 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1015 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1016 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1017 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1018 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1019 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1020 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1021 config/i386/i386.c, stmt.c:
1022 Add location argument to the following function definitions and/or
1023 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1024 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1025 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1026 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1027 do_case, c_finish_bc_stmt, build_compound_literal,
1028 build_function_call.
1029 * c-decl.c (build_compound_literal): Add location argument.
1030 Make all diagnostic calls use location.
1031 (start_struct): Same.
1032 (finish_struct): Same.
1033 (start_enum): Same.
1034 (build_enumerator): Same.
1035 (start_function): Same.
1036 (grokdeclarator): Make all diagnostic calls use location.
1037 (store_parm_decls_oldstyle): Same.
1038 * c-typeck.c (build_function_call): Add location argument.
1039 Make all diagnostic calls use location.
1040 (do_case): Same.
1041 (c_finish_bc_stmt): Same.
1042 * tree-nested.c (get_trampoline_type): Add argument.
1043 Pass location to build_decl.
1044 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1045 * rtl.h (RTL_LOCATION): New.
1046 * c-common.c (c_add_case_label): Add location argument.
1047 Make all diagnostic calls use location.
1048 * c-common.h: Add location argument to make_fname_decl, do_case,
1049 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1050 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1051 Set it appropriately for every case. Pass enum_loc to start_enum
1052 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1053 parser_xref_tag.
1054 (c_parser_struct_or_union_specifier): Save location. Use it for
1055 start_struct, finish_struct, and parser_xref_tag.
1056
3d8b2a98
ILT
10572009-06-12 Ian Lance Taylor <iant@google.com>
1058
c637b0fa 1059 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1060
1061 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1062 cpp_opts->warn_cxx_operator_names.
1063
737142ce
AP
10642009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1065
1066 PR tree-opt/38865
1067 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1068 is returns NULL and OP is a VCE, look through the VCE.
1069
d3a0d55d
ILT
10702009-06-12 Ian Lance Taylor <iant@google.com>
1071
1072 PR bootstrap/40430
1073 * collect2.c (main): Use CONST_CAST2 in code inside #if
1074 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1075
f85882d8
JY
10762009-06-12 Joey Ye <joey.ye@intel.com>
1077
1078 PR middle-end/39146
1079 * cfgexpand.c (get_decl_align_unit): Update
1080 max_used_stack_slot_alignment with align instead of
1081 stack_alignment_needed.
1082
1083 * function.c (assign_stack_local_1): Update
1084 max_used_stack_slot_alignment with alignment_in_bits instead
1085 of stack_alignment_needed.
1086 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1087 here.
1088
fc9f468b
JJ
10892009-06-12 Jakub Jelinek <jakub@redhat.com>
1090
1091 * dwarf2out.c (last_var_location_insn): New variable.
1092 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1093 (dwarf2out_var_location): Don't record anything after last real
1094 insn. Only change labels if there were any real instructions
1095 in between last note and this one, or if changed sections.
1096
7c1db202
RH
10972009-06-11 Richard Henderson <rth@redhat.com>
1098
f85882d8 1099 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1100 note when storing the frame pointer in a register.
1101 (FRP): Don't redefine to nothing for epilogue.
1102 (alpha_expand_epilogue): Mark register and sp restores.
1103 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1104
7c1db202
RH
1105 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1106 when gen_lowpart is needed.
1107
f2ae7631
RH
11082009-06-11 Richard Henderson <rth@redhat.com>
1109
42755c21
RH
1110 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1111
f2ae7631
RH
1112 * dwarf2out.c (need_data_align_sf_opcode): New.
1113 (div_data_align): Move earlier.
1114 (def_cfa_1, reg_save): Use it.
1115
8ed0ce99
L
11162009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1117
1118 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1119 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1120 (ix86_handle_option): Handle OPT_mcrc32.
1121 (ix86_target_string): Add -mcrc32.
1122 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1123
1124 * config/i386/i386.h (TARGET_CRC32): New.
1125
c637b0fa 1126 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1127 (sse4_2_crc32di): Likewise.
1128
c637b0fa 1129 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1130
1131 * doc/invoke.texi: Document -mcrc32.
1132
9fd68a1f
RH
11332009-06-11 Richard Henderson <rth@redhat.com>
1134
8ed0ce99 1135 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1136 * doc/invoke.texi (gdwarf-): Update docs.
1137 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1138 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1139 version level, and record it.
1140
1141 * dwarf2.h (DW_CIE_VERSION): Remove.
1142 * dwarf2out.c (DWARF_VERSION): Remove.
1143 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1144 (output_call_frame_info): Use CIE version 3 for dwarf3,
1145 or if the return register column is out of range for version 1.
1146 (dwarf_stack_op_name): Add all dwarf3 values.
1147 (DEBUG_PUBTYPES_SECTION): New.
1148 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1149 encoding change for dwarf3.
1150 (output_die) [dw_val_class_die_ref]: Likewise.
1151 (output_compilation_unit_header): Emit correct version for dwarf3.
1152 (output_line_info): Likewise.
1153 (output_pubnames): Update for DWARF_VERSION removal.
1154 (output_aranges): Likewise.
1155 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1156 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1157 (dwarf2out_finish): Likewise.
1158
4de8ce3b
DD
11592009-06-11 David Daney <ddaney@caviumnetworks.com>
1160
1161 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1162 in r148403.
1163
468059bc
DD
11642009-06-11 David Daney <ddaney@caviumnetworks.com>
1165
1166 PR c/39252
1167 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1168 * builtins.c (expand_builtin_unreachable): New function.
1169 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1170 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1171 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1172 successors.
1173 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1174 searching for missing barriers.
1175
b5a6e96f
FXC
11762009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1177
1178 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1179 when -fprofile-generate* was passed.
1180 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1181
6be6462e
AG
11822009-06-11 Anthony Green <green@moxielogic.com>
1183
c637b0fa 1184 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1185 (rCC): Define.
1186 (*b<cond:code>): Support limited branch ranges for new PC-relative
1187 branch instructions.
1188 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1189
caaabe0a
JJ
11902009-06-11 Jakub Jelinek <jakub@redhat.com>
1191
e5219642
JJ
1192 * config/i386/i386.c (min_insn_size): Use get_attr_length
1193 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1194 For __asm return 0.
1195
caaabe0a
JJ
1196 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1197 instead of emit_insn_before.
1198
a567fa6a
ILT
11992009-06-10 Ian Lance Taylor <iant@google.com>
1200
1201 PR bootstrap/40408
1202 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1203 GIMPLE_SWITCH.
1204
6a753d5f
RE
12052009-06-10 Revital Eres <eres@il.ibm.com>
1206
1207 * passes.c (init_optimization_passes): Reschedule
1208 predictive-commoning pass before complete unroll pass.
1209
a550d677
MJ
12102009-06-10 Martin Jambor <mjambor@suse.cz>
1211
1212 * cgraph.c (cgraph_node_can_be_local_p): New function.
1213 (cgraph_make_node_local): New function.
1214 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1215 (cgraph_make_node_local): Declare.
1216
d8259b07
NF
12172009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1218
1219 * tree.h (tree_base): Add packed_flag and user_align fields.
1220 Decrease size of spare field.
1221 (TYPE_USER_ALIGN): Use user_align from tree_base.
1222 (DECL_USER_ALIGN): Likewise.
1223 (TYPE_PACKED): Use packed_flag from tree_base.
1224 (DECL_PACKED): Likewise.
1225 (tree_type): Delete packed_flag and user_align fields. Widen
1226 precision field. Widen mode field and shuffle fields to align
1227 mode on an 8-bit boundary.
1228 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1229 Renumber decl_flag_* fields. Fix comments. Widen
1230 decl_common_unused field.
c637b0fa 1231 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1232 (DECL_EXTERNAL): Likewise.
1233 (DECL_BIT_FIELD): Likewise.
1234 (DECL_NONADDRESSABLE_P): Likewise.
1235 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1236 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1237
c2569604
ILT
12382009-06-10 Ian Lance Taylor <iant@google.com>
1239
1240 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1241 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1242 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1243 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1244 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1245 DEF_VEC_ALLOC_FUNC_P.
1246 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1247 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1248 DEF_VEC_ALLOC_FUNC_O.
1249 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1250 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1251 DEF_VEC_ALLOC_FUNC_I.
1252 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1253 (vec_stack_p_reserve_exact_1): Declare.
1254 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1255 (vec_stack_free): Declare.
1256 (VEC_stack_alloc): Define.
1257 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1258 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1259 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1260 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1261 for void_p.
1262 (stack_vecs): New static variable.
1263 (vec_stack_p_reserve_exact_1): New function.
1264 (vec_stack_o_reserve_1): New static function.
1265 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1266 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1267 (vec_stack_free): New function.
1268 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1269 (VEC_df_ref_stack_alloc): Define.
1270 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1271 DEF_VEC_ALLOC_P_STACK.
1272 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1273 (struct df_collection_rec): Change _vec fields to VEC. Remove
1274 _use fields.
1275 (df_free_collection_rec): Adjust for new fields.
1276 (df_insn_rescan): Use new df_collection_rec fields.
1277 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1278 (df_ref_create_structure, df_ref_record): Likewise.
1279 (df_get_conditional_uses, df_get_call_refs): Likewise.
1280 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1281 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1282 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 1283 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
1284 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1285 Remove count parameter. Change return type to void. Change all
1286 callers.
1287 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1288 Remove count parameter. Change return type to void. Change all
1289 callers.
1290 (df_install_refs): Change old_vec parameter to VEC. Remove count
1291 parameter. Change all callers.
1292 (df_install_mws): Change old_vec parameter to VEC. Remove count
1293 parameter. Change all callers.
1294 (df_refs_verify): Change new_rec parameter to VEC. Change call
1295 callers.
1296 (df_mws_verify): Likewise.
1297
e7aae3e8
AO
12982009-06-10 Alexandre Oliva <aoliva@redhat.com>
1299
1300 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1301
412ac8d5
L
13022009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1303
1304 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1305
cceb575c
AG
13062009-06-10 Anthony Green <green@moxielogic.com>
1307
1308 * config/moxie/crti.asm: New file.
1309 * config/moxie/crtn.asm: New file.
1310 * config/moxie/moxie.c: New file.
1311 * config/moxie/moxie.h: New file.
1312 * config/moxie/sfp-machine.h: New file.
1313 * config/moxie/moxie-protos.h: New file.
1314 * config/moxie/t-moxie: Created.
1315 * config/moxie/t-moxie-softfp: Created.
1316 * config/moxie/moxie.md: Created.
1317 * config/moxie/constraints.md: Created.
1318 * config.gcc: Add moxie support.
1319 * doc/md.texi (Machine Constraints): Add moxie constraints.
1320 * doc/contrib.texi (Contributors): Mention moxie port.
1321 * doc/install.texi (Specific): Mention the moxie port.
1322
bf406687
ILT
13232009-06-09 Ian Lance Taylor <iant@google.com>
1324
1325 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1326 compiling with C++.
1327 * optabs.c (optab_table): Only use designated initializers if
1328 HAVE_DESIGNATED_INITIALIZERS is defined.
1329 (convert_optab_table): Likewise.
1330 (init_optabs): Always call init_insn_codes if
1331 HAVE_DESIGNATED_INITIALIZERS is not defined.
1332
744aa42f
ILT
13332009-06-09 Ian Lance Taylor <iant@google.com>
1334
1335 * targhooks.c (default_builtin_vectorized_function): Change fn
1336 parameter to unsigned int.
1337 (default_builtin_vectorized_conversion): Change code parameter to
1338 unsigned int.
1339 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1340 * targhooks.h: Update declarations.
1341 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1342 parameter to unsigned int.
1343
1344 * c-typeck.c (comptypes_check_enum_int): New static function.
1345 (comptypes_internal): Add enum_and_int_p parameter. Change all
1346 callers.
1347 (comp_target_types): Add location parameter. Change all callers.
1348 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1349 Change all callers.
1350 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1351 (build_conditional_expr): Add colon_loc parameter. Change all
1352 callers.
c637b0fa 1353 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
1354 * c-parser.c (c_parser_conditional_expression): Pass location of
1355 colon to build_conditional_expr.
1356 * c-tree.h (build_conditional_expr): Update declaration.
1357
bcbe3b25
SP
13582009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1359
1360 * graphite.c: Revert previous patch.
1361
dc2a6925
SP
13622009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1363
1364 PR bootstrap/40103
1365 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1366
d81f5387
GS
13672009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1368
8ed0ce99
L
1369 * tree-ssa-loop-prefetch.c
1370 (loop_prefetch_arrays): Fixed a portability problem in printf format
1371 string.
d81f5387 1372
8056eb4f
MJ
13732009-06-09 Martin Jambor <mjambor@suse.cz>
1374
1375 PR tree-optimization/40351
c637b0fa
UB
1376 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1377 refrence to a potential artifical subaccess can be constructed.
8056eb4f 1378
bd9a3465
KK
13792009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1380
1381 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1382 (sh_override_options): Likewise.
1383 * config/sh/sh.c: Include params.h.
1384 (sh_optimization_options): New.
1385 (sh_override_options): Likewise.
1386 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1387 (OVERRIDE_OPTIONS): Use sh_override_options.
1388
8845deab
JJ
13892009-06-08 Jakub Jelinek <jakub@redhat.com>
1390
1391 * dwarf2out.c (emit_cfa_remember): New variable.
1392 (add_fde_cfi): If emit_cfa_remember, recurse to add
1393 DW_CFA_remember_state first.
1394 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1395 instead just set emit_cfa_remember.
1396
9ea81b0c
JH
13972009-06-08 Jan Hubicka <jh@suse.cz>
1398
1399 PR debug/40126
1400 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1401
21ecdec5
JH
14022009-06-08 Jan Hubicka <jh@suse.cz>
1403
1404 PR middle-end/39834
c637b0fa
UB
1405 * cgraphunit.c (save_inline_function_body): Do not copy transform
1406 hooks for saved inline bodies.
21ecdec5
JH
1407 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1408 for given function.
1409
72e48218
AN
14102009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1411
1412 * jump.c (returnjump_p): Handle delayed branches. Add missing
1413 function comment.
1414
6ce2002b
JH
14152009-06-08 Jan Hubicka <jh@suse.cz>
1416
1417 PR middle-end/40102
1418 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1419 original node might've been modified.
1420 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1421
eb9ed98a
JJ
14222009-06-08 Jakub Jelinek <jakub@redhat.com>
1423
1424 * tree-object-size.c (addr_object_size): Add OSI argument.
1425 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1426 (compute_builtin_object_size, expr_object_size): Adjust callers.
1427 (plus_stmt_object_size): Call addr_object_size instead of
1428 compute_builtin_object_size.
1429
db34470d 14302009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1431 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1432
1433 * tree-ssa-loop-prefetch.c
1434 (gather_memory_references): Introduced a counter for the number of
1435 memory references.
1436 (anything_to_prefetch_p): Introduced a counter for the number of
1437 prefetches.
1438 (is_loop_prefetching_profitable): New function with a cost model
1439 for prefetching.
1440 (loop_prefetch_arrays): Use the new cost model to determine if
1441 prefetching is profitable.
1442 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1443 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1444 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1445 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1446 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1447 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1448
eb7adebc
MM
14492009-06-08 Michael Matz <matz@suse.de>
1450
1451 PR debug/40012
eb7adebc
MM
1452 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1453 partitions use the same.
1454 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1455 for basevars of SSA_NAMEs.
1456 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1457 to not expand them twice.
1458 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1459 multiple places.
1460
2153915d
AO
14612009-06-08 Alexandre Oliva <aoliva@redhat.com>
1462
1463 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1464 (fdump-final-insns=, gtoggle): New.
1465 * doc/invoke.texi: Document them.
1466 * final.c (rest_of_clean_state): Dump final insn stream.
1467 * gcc.c (invoke_as): Hook in -fcompare-debug.
1468 (static_spec_functions): Add compare-debug-dump-opt,
1469 compare-debug-self-opt and compare-debug-auxbase-opt.
1470 (compare_debug, compare_debug_second, compare_debug_opt): New.
1471 (switches_debug_check, n_switches_debug_check): New.
1472 (debug_auxbase_opt, debug_check_temp_file): New.
1473 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1474 -fcompare-debug=*.
1475 (do_self_spec): Handle arguments after switches.
1476 (do_spec_1): Add .gk extension to temp file basenames for compare.
1477 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1478 (cc1_options): Use it instead of normal auxbase computation for
1479 the second compare-debug compilation.
1480 (compare_files): New.
1481 (main): Set up and implement compare debug mode.
1482 (compare_debug_dump_opt_spec_function): New.
1483 (compare_debug_self_opt_spec_function): New.
1484 (compare_debug_auxbase_opt_spec_function): New.
1485 * toplev.c (process_options): Handle flag_gtoggle,
1486 flag_dump_final_insns.
1487 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1488 during -fcompare-debug-second compilation.
1489
cdb88468
ILT
14902009-06-07 Ian Lance Taylor <iant@google.com>
1491
c637b0fa 1492 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
1493 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1494
1495 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1496 with no default node. Change warning with %H to warning_at.
1497 Don't clear warn_switch around case checking.
1498 * doc/invoke.texi (Warning Options): Clarify distinction between
1499 -Wswitch and -Wswitch-enum.
1500
4fe8e1a2
BRF
15012009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1502
1503 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1504
69952c1d
BRF
15052009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1506
1507 * gbl-ctors.h: Add header guard.
1508
b2ad0284
BRF
15092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1510
1511 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1512 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1513 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1514 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1515 prototypes for removed functions.
1516 (expressions_equal_p): Move to ...
1517 * tree-ssa-sccvn.h: ... here and ...
1518 * matrix-reorg.c: ... adjust includes.
1519
c3df55f9
BRF
15202009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1521
1522 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1523
b5a7159f
BRF
15242009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1525
1526 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1527 (finish_function): Remove erroneous whitespace.
1528
95bca6b0
BRF
15292009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1530
2cd713a0
BRF
1531 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1532 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1533
15342009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1535
1536 * errors.c (internal_error): Commentary typo fix.
1537 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1538 * tree-ssa-pre.c: Ditto.
95bca6b0 1539
2cd713a0
BRF
15402009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1541
1542 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1543 them is supposed to hold actual statements.
1544
5bca4e80
ILT
15452009-06-06 Ian Lance Taylor <iant@google.com>
1546
1547 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1548 empty statements can now have attributes.
1549
47ac44d6
SZ
15502009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1551
1552 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1553 * config/mips/mips.md: Ditto.
1554
19b905ce
NF
15552009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1556
1557 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1558 _RELOCATABLE.
1559 (__eabi_uconvert): Likewise.
1560
16702e19
NF
15612009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1562
1563 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1564 CFI_* definitions with IN_GCC.
1565
a735afd1
DE
15662009-06-05 David Edelsohn <edelsohn@gnu.org>
1567
1568 * xcoffout.h (xcoffout_source_line): Update prototype.
1569
26a347c5
KG
15702009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1571
1572 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1573 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1574
9f706f23
JJ
15752009-06-05 Jakub Jelinek <jakub@redhat.com>
1576
1577 PR middle-end/40340
1578 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1579 inlined_function_outer_scope_p blocks for artificial inlines
1580 even at -g0/-g1.
1581 * tree.c (tree_nonartificial_location): Rewrite using
1582 block_nonartificial_location.
1583
8f439681
RE
15842009-06-05 Revital Eres <eres@il.ibm.com>
1585 Leehod Baruch <leehod@il.ibm.com>
1586
1587 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1588 (expand_expr_real_1): Remove comment.
1589 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1590 Vectorize misaligned access when the target supports it.
c637b0fa 1591 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
1592 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1593 and remove asset.
1594
b89f8e3c
JB
15952009-06-05 Julian Brown <julian@codesourcery.com>
1596
1597 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1598 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1599
47d1f191
RG
16002009-06-05 Richard Guenther <rguenther@suse.de>
1601
1602 PR bootstrap/40350
1603 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1604 as possibly unused.
1605
9f706f23 16062009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1607
1608 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1609 (save_gprs): Don't tell unwinder when a global register is saved.
1610 (s390_emit_epilogue): Emit needed epilogue unwind info.
1611
90f06248
AO
16122009-06-05 Alexandre Oliva <aoliva@redhat.com>
1613
1614 * dwarf2out.c (deferred_asm_name): New.
1615 (add_name_and_src_coords_attributes): Defer creation of
1616 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1617 computed yet.
1618 (move_linkage_attr): New.
1619 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1620 right place.
1621
c10348e5
AO
16222009-06-05 Alexandre Oliva <aoliva@redhat.com>
1623
1624 * tree-nested.c (finalize_nesting_tree_1): Declare the
1625 frame_decl in the binding tree.
1626
6c52e687
CC
16272009-06-04 Cary Coutant <ccoutant@google.com>
1628
1629 * basic-block.h (struct basic_block_def): Add discriminator field.
1630 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1631 callers.
1632 * debug.c (do_nothing_debug_hooks): Add additional entry.
1633 (debug_nothing_int_charstar_int): New function.
c637b0fa 1634 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
1635 (debug_nothing_int_charstar_int): New declaration.
1636 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1637 discriminator value in .loc directive.
1638 * final.c (last_discriminator): New variable.
1639 (discriminator): New variable.
1640 (final_start_function): Initialize above variables, pass current
1641 discriminator to debug hook.
1642 (notice_source_line): Check for discriminator change.
1643 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1644 * sdbout.c (sdbout_source_line): New parameter.
1645 * tree-cfg.c (struct locus_discrim_map): New structure type.
1646 (discriminator_per_locus): New hash table.
1647 (build_gimple_cfg): Allocate and free discriminator hash table.
1648 (make_edges): Call assign_discriminator.
1649 (locus_map_hash): New function.
1650 (locus_map_eq): New function.
1651 (next_discriminator_for_locus): New function.
1652 (same_line_p): New function.
1653 (assign_discriminator): New function.
1654 (make_cond_expr_edges): Call assign_discriminator.
1655 (make_gimple_switch_edges): Likewise.
1656 (first_non_label_stmt): New function.
1657 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1658 all callers.
1659 * xcoffout.c (xcoffout_source_line): Add new parameter.
1660
1661 * configure.ac (gcc_cv_as_discriminator): New configury check for
1662 gas support for discriminator.
1663 * configure: Regenerate.
1664 * config.in: Regenerate.
1665
e07e020b
RR
16662009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1667
1668 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1669 val after checking for integers.
1670
72fa3605
UB
16712009-06-04 Uros Bizjak <ubizjak@gmail.com>
1672
1673 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1674 X64_REGPARM_MAX.
1675 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1676 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1677 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1678 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1679 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1680 X64_SSE_REGPARM_MAX.
1681 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1682 X64_SSE_REGPARM_MAX.
1683
bdde878c
AO
16842009-06-04 Alexandre Oliva <aoliva@redhat.com>
1685
1686 * gcc.c (report_times_to_file): New.
1687 (execute): Implement it.
1688 (process_command): Support -time=.
1689 * doc/invoke.texi: Document it.
1690
2ce59df7
AO
16912009-06-04 Alexandre Oliva <aoliva@redhat.com>
1692
1693 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1694 that have value exprs.
1695
78bd9046
AO
16962009-06-04 Alexandre Oliva <aoliva@redhat.com>
1697
1698 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1699 declarations for constants until...
1700 (dw2_output_indirect_constant_1): ... this point.
1701
e63d4106
RE
17022009-06-04 Richard Earnshaw <rearnsha@arm.com>
1703
1704 PR target/10242
1705 * arm.md (arm_addsi3): Don't try to split an add with an
1706 eliminable register until after reload has completed.
1707
6bc7bc14
ILT
17082009-06-03 Ian Lance Taylor <iant@google.com>
1709
1710 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1711 * genattrtab.c (write_length_unit_log): Likewise.
1712 * genchecksum.c (dosum): Likewise.
1713 * gengtype.c (write_rtx_next): Likewise.
1714 (finish_root_table, write_roots): Likewise.
1715 * gimple.c (gimple_ops_offset_): Likewise.
1716 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1717 * config/arc/arc.c (arc_attribute_table): Likewise.
1718 * config/arm/arm.c (arm_attribute_table): Likewise.
1719 * config/avr/avr.c (avr_attribute_table): Likewise.
1720 * config/crx/crx.c (crx_attribute_table): Likewise.
1721 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1722 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1723 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1724 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1725 * config/sh/sh.c (sh_attribute_table): Likewise.
1726 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1727 * config/spu/spu.c (spu_attribute_table): Likewise.
1728 * config/v850/v850.c (v850_attribute_table): Likewise.
1729
1730 * config/alpha/alpha.c (vms_attribute_table): Make static.
1731 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1732 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1733 * config/mips/mips.c (mips_attribute_table): Likewise.
1734
1735 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1736 $(SYSTEM_H).
1737 (cc1-checksum.o): Likewise.
1738
19d892fd
SE
17392009-06-03 Steve Ellcey <sje@cup.hp.com>
1740
1741 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1742
679f3354
JJ
17432009-06-03 Jakub Jelinek <jakub@redhat.com>
1744
ff35822b
JJ
1745 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1746 insn if it is changing sp. Use gen_add3_insn instead of
1747 conditionally gen_addsi3 and gen_adddi3.
1748 (offset_below_red_zone_p): New static inline function.
1749 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1750 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1751 * config/rs6000/ppc-asm.h: Include auto-host.h.
1752 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1753 CFI_RESTORE): Define.
1754 * config/rs6000/crtresxgpr.asm: Add unwind info.
1755 * config/rs6000/crtresxfpr.asm: Likewise.
1756 * config/rs6000/crtresgpr.asm: Likewise.
1757 * config/rs6000/crtresfpr.asm: Likewise.
1758 * config/rs6000/crtsavgpr.asm: Likewise.
1759 * config/rs6000/crtsavfpr.asm: Likewise.
1760
679f3354
JJ
1761 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1762 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1763
2e94c12d
JB
17642009-06-03 Julian Brown <julian@codesourcery.com>
1765
1766 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1767 words or less (including TImode) in core registers.
1768
3111cce0
RG
17692009-06-03 Richard Guenther <rguenther@suse.de>
1770
1771 PR middle-end/40328
1772 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1773
5e1b50f6
AB
17742009-06-03 Andrey Belevantsev <abel@ispras.ru>
1775
1776 * statistics.c (statistics_counter_event): Do not record event
1777 in pass dump if its number == -1.
1778 (curr_statistics_hash): Add assert that we never get passes
1779 with static number == -1.
1780
6f11d690
RG
17812009-06-03 Richard Guenther <rguenther@suse.de>
1782 Andrey Belevantsev <abel@ispras.ru>
1783
1784 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1785 non-BLKmode arrays addressable.
1786
88961471
MK
17872009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1788
1789 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1790 * config/m68k/m68k.h: ... here.
1791 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1792 m68k and fido.
1793
9961eb45
MJ
17942009-06-03 Martin Jambor <mjambor@suse.cz>
1795
1796 PR tree-optimization/40323
1797 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1798 assignment.
1799
2f2c62a0
RG
18002009-06-03 Richard Guenther <rguenther@suse.de>
1801
1802 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1803 consistently.
1804
d6ced3b7
SZ
18052009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1806
1807 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1808 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1809 JUMP_TABLE_DATA_P where applicable.
1810 * config/sh/sh.c: Ditto.
1811 * config/sh/sh.h: Ditto.
1812 * config/sh/sh.md: Ditto.
1813 * config/sh/symbian.c: Ditto.
1814
f3afc8a7
UB
18152009-06-03 Uros Bizjak <ubizjak@gmail.com>
1816
1817 * config/i386/driver-i386.c (describe_cache): Optimize
1818 concatenation of strings. Use snprintf instead of sprintf.
1819 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1820 target when not compiling with GCC.
1821
1964788a
KK
18222009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1823
1824 * config/sh/sh.c: Revert last change.
1825 (sh_expand_epilogue): Emit a blockage insn before the frame
1826 pointer adjustment unconditionally.
1827
8633c315
RS
18282009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1829
1830 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1831 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1832 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1833 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1834 to COLLECT_GCC_OPTIONS.
1835
781a1758
RS
18362009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1837
1838 * collect2.c (target_system_root): New variable.
1839 (main): Handle --sysroot=.
1840 (ignore_library): Strip the sysroot from the library path.
1841
dfb636dc
RS
18422009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1843
1844 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1845 (collect2.o): Depend on collect2-aix.h.
1846 (collect2-aix.o): New rule.
1847 * collect2-aix.h: New file.
1848 * collect2-aix.c: Likewise.
1849 * collect2.c: Include collect2-aix.h. Don't undefine
1850 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1851 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1852 Use TARGET_AIX_VERSION instead of _AIX51.
1853 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1854 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1855 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1856 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1857 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1858
51136ae8
RS
18592009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1860
1861 * collect2.c (ignore_library): Avoid premature post-increment
1862 and null deference.
1863
7f142d33
RS
18642009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1865
1866 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1867 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1868 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1869 CROSS_DIRECTORY_STRUCTURE too.
1870 (LINK_LIBG_SPEC): Likewise.
1871 (LIB_SPEC): Add %R to sysroot paths.
1872 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1873 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1874 * config/rs6000/aix51.h: As for aix43.h.
1875 * config/rs6000/aix52.h: Likewise.
1876 * config/rs6000/aix53.h: Likewise.
1877 * config/rs6000/aix61.h: Likewise.
1878 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1879 to the beginning of sysroot paths.
1880
9e74b7d2
AO
18812009-06-02 Alexandre Oliva <aoliva@redhat.com>
1882
1883 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1884 INSN_LISTs that are out of the REG_NOTE range.
1885
a9f6ecee
AO
18862009-06-02 Alexandre Oliva <aoliva@redhat.com>
1887
1888 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1889 (struct var_to_expand): Likewise.
1890 (struct opt_info): Add head and tail for linked lists of the above.
1891 (analyze_insn_to_expand_var): Initialize next.
1892 (analyze_iv_to_split_insn): Likewise.
1893 (analyze_insns_in_loop): Create linked lists.
1894 (allocate_basic_variable): Simplify for use without hash table.
1895 (insert_var_expansion_initialization): Likewise, make it type-safer.
1896 (combine_var_copies_in_loop_exit): Likewise.
1897 (apply_opt_in_copies): Walk lists rather than hash tables.
1898 (release_var_copies): Simplified and inlined by hand into...
1899 (free_opt_info): ... this function.
1900
69596c69
RG
19012009-06-02 Richard Guenther <rguenther@suse.de>
1902
1903 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1904 for field decls.
1905
fe8a7779
AO
19062009-06-02 Alexandre Oliva <aoliva@redhat.com>
1907
1908 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1909 only for builtins that are not overridden.
1910
1bcca2c5
AO
19112009-06-02 Alexandre Oliva <aoliva@redhat.com>
1912
1913 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1914 label string.
1915
8588f797
AO
19162009-06-02 Alexandre Oliva <aoliva@redhat.com>
1917
1918 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1919
45f39d78
AO
19202009-06-02 Alexandre Oliva <aoliva@redhat.com>
1921
1922 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1923
2aa7c49b
AO
19242009-06-02 Alexandre Oliva <aoliva@redhat.com>
1925
1926 * common.opt (fdump-unnumbered-links): New.
1927 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1928 * print-rtl.c (flag_dump_unnumbered_links): New.
1929 (print_rtx): Test it.
1930
55b2829b
RE
19312009-06-02 Richard Earnshaw <rearnsha@arm.com>
1932
1933 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1934 push/pop multiple to 8-byte alignment.
e63d4106 1935
6c0d7021
JJ
19362009-06-01 Jakub Jelinek <jakub@redhat.com>
1937
0aa34d44
JJ
1938 * config/i386/i386.c (queued_cfa_restores): New static variable.
1939 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1940 functions.
1941 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1942 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1943 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1944 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1945 note unconditionally.
1946 (ix86_emit_restore_regs_using_mov): Likewise.
1947 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1948 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1949 it through to ix86_emit_restore_reg_using_pop.
1950 (ix86_emit_leave): Add RED_OFFSET argument. Call
1951 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1952 instead of adding REG_CFA_OFFSET note unconditionally.
1953 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1954 the above functions. Call ix86_add_queued_cfa_restore_notes when
1955 needed.
1956
1957 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1958 force output of the label even for dwarf2out_do_cfi_asm.
1959 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1960 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1961 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1962 caller.
1963 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1964 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1965 dwarf2out_cfi_label callers.
1966 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1967 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1968 Adjust dwarf2out_cfi_label callers.
1969 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1970
604a6be9
JJ
1971 * config/i386/i386.h (struct machine_cfa_state,
1972 struct machine_function): Guard with ifndef USED_FOR_TARGET
1973 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1974
df0026a7
JJ
1975 PR other/40024
1976 * emutls.c (__emutls_get_address): Change arr->size to mean number
1977 of allocated arr->data entries instead of # of slots + 1.
1978
6c0d7021
JJ
1979 PR middle-end/40316
1980 * recog.c (peep2_reinit_state): New function.
1981 (peephole2_init_state): Use it at the end of a basic block and also
1982 when seeing a RTX_FRAME_RELATED_P insn.
1983
49df2fb8
SE
19842009-06-01 Steve Ellcey <sje@cup.hp.com>
1985
1986 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1987 fixuns_truncrfdi2): New.
1988 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1989 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1990 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1991 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1992 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1993 *recip_approx): Remove.
1994 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1995 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1996 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1997 move to div.md.
1998 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1999 setf_exp_rf): New.
2000
67165eb3
ILT
20012009-06-01 Ian Lance Taylor <iant@google.com>
2002
2003 * attribs.c (register_attribute): Use CONST_CAST.
2004 * collect2.c (main): Use CONST_CAST2.
2005 (scan_prog_file): Likewise.
2006 * gcc.c (process_command, main): Likewise.
2007 * toplev.c (toplev_main): Likewise.
2008
2009 * c-typeck.c (handle_warn_cast_qual): New static function,
2010 partially broken out of build_c_cast.
2011 (build_c_cast): Call handle_warn_cast_qual.
2012 * doc/invoke.texi (Warning Options): Document new effect of
2013 -Wcast-qual.
2014
e74fe492
AH
20152009-06-01 Aldy Hernandez <aldyh@redhat.com>
2016
2017 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2018 (diagnostic_report_current_module): Print columns.
2019 * common.opt (flag_show_column): Enable by default.
2020
7eba2d1f
LM
20212009-06-01 Luis Machado <luisgpm@br.ibm.com>
2022
2023 * alias.c (find_base_term): Check for NULL term before returning.
2024
ee88d9aa
MK
20252009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2026
2027 Revert due to PR40320:
ee88d9aa
MK
2028 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2029 * calls.c (emit_library_call_value_1): Don't force_operand for move
2030 and push insns.
2031
324c9b02 20322009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 2033 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
2034
2035 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2036 to be processed as a bitfield for constructor output purposes.
2037 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2038 new function.
2039 * varasm.c (oc_local_state): New type, output_constructor
2040 local state to support communication with helpers.
2041 (oc_outer_state): New type, output_constructor outer state of
2042 relevance in recursive calls.
2043 (output_constructor_array_range): New output_constructor helper,
2044 extracted code for an array range element.
2045 (output_constructor_regular_field): New output_constructor helper,
2046 extracted code for an element that is not a bitfield.
2047 (output_constructor_bitfield): New output_constructor helper,
2048 extracted code for a bitfield element. Accept an OUTER state
2049 argument for recursive processing. Recurse on record or array
2050 CONSTRUCTOR values, possibly past noop conversions.
62295314 2051 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
2052 VALUE is a valid constant-valued expression for use in a static
2053 bit-field initializer.
62295314
OH
2054 (output_constructor): Rework to use helpers. Accept and honor an
2055 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
2056 prepared for nested constructors initializing bitfields.
2057 (output_constant): Feed OUTER in calls to output_constructor.
2058
0980d7fe
MK
20592009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2060
2061 * calls.c (emit_library_call_value_1): Don't force_operand for move
2062 and push insns.
2063
29661412
NC
20642009-06-01 Nick Clifton <nickc@redhat.com>
2065
2066 * doc/invoke.texi (IA-64 Options): Fix typo.
2067
e9dbe7bb
IR
20682009-06-01 Ira Rosen <irar@il.ibm.com>
2069
2070 PR tree-optimization/39129
2071 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2072 printed message.
2073 (vect_do_peeling_for_loop_bound): Use
2074 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2075 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2076 (vect_loop_versioning): Likewise.
2077 (vect_create_cond_for_alias_checks): Fix indentation.
2078 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2079 macros.
2080 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2081 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2082 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2083 "control flow in loop".
2084 (vect_estimate_min_profitable_iters): Use
2085 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2086 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2087 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2088 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2089 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2090 statement belongs to a group of strided accesses with the exact code
2091 check.
2092 (vectorizable_load): Likewise.
2093 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2094 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2095
5ac69a80
GP
20962009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2097
2098 * config/freebsd-stdint.h: New file.
2099 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2100 Add freebsd-stdint.h to tm_file.
2101
54b2b460
RE
21022009-06-01 Richard Earnshaw <rearnsha@arm.com>
2103
2104 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2105 (thumb2_extendhidi2): Likewise.
2106
a7ca77cf
ILT
21072009-05-31 Ian Lance Taylor <iant@google.com>
2108
f3afc8a7 2109 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2110
21112009-05-31 Ian Lance Taylor <iant@google.com>
2112
f3afc8a7 2113 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2114 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2115 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2116
1aec401e
JM
21172009-05-31 Jason Merrill <jason@redhat.com>
2118
2119 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2120 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2121 (dump_generic_node): Adjust.
2122 * diagnostic.h: Declare print_call_name.
2123 * gimple-pretty-print.c (dump_gimple_call): Use it.
2124
ed7910bb
KK
21252009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2126
2127 * config/sh/sh.md (ashldi3_std): New define_expand.
2128 (ashldi3): Use it.
2129
47ea8d4e
KK
21302009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2131
2132 PR target/40313
2133 * config/sh/sh.c: Include debug.h.
2134 (sh_expand_epilogue): Emit a blockage insn before the frame
2135 pointer adjustment also when dwarf2out_do_frame returns true.
2136
405e8b49
RE
21372009-05-31 Richard Earnshaw <rearnsha@arm.com>
2138
2139 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2140 (thumb2_extendqidi2): New pattern.
2141
71ece343
IR
21422009-05-31 Ira Rosen <irar@il.ibm.com>
2143
2144 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2145 mark phis for renaming.
2146 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2147 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2148 Call mark_sym_for_renaming.
2149 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2150 * tree-vect-loop.c (vect_transform_loop): Remove
2151 vect_memsyms_to_rename initialization and a call to
2152 mark_set_for_renaming.
71ece343 2153
b3041944
JJ
21542009-05-31 Jakub Jelinek <jakub@redhat.com>
2155
2156 PR middle-end/40304
2157 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2158 frame related even if !set_cfa && style < 0.
2159
a1bda0d7
KT
21602009-05-30 Kai Tietz <kai.tietz@onevision.com>
2161
2162 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2163 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2164 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2165 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2166
acd26225
KG
21672009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2168
2169 * configure.ac: Add MPC support.
2170
2171 * config.in, configure: Regenerate.
2172
cd9c1ca8
RH
21732009-05-29 Richard Henderson <rth@redhat.com>
2174
2175 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2176 NOTE_INSN_BASIC_BLOCK.
2177 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2178 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2179 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2180 to be deleted.
2181 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2182 add in_use field.
2183 (add_cfi): Disable check redefining cfa away from drap.
2184 (lookup_cfa_1): Add remember argument; handle remember/restore.
2185 (lookup_cfa): Pass remember argument.
2186 (cfa_remember): New.
2187 (compute_barrier_args_size_1): Remove sibcall check.
2188 (dwarf2out_frame_debug_def_cfa): New.
2189 (dwarf2out_frame_debug_adjust_cfa): New.
2190 (dwarf2out_frame_debug_cfa_offset): New.
2191 (dwarf2out_frame_debug_cfa_register): New.
2192 (dwarf2out_frame_debug_cfa_restore): New.
2193 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2194 (dwarf2out_begin_epilogue): New.
2195 (dwarf2out_frame_debug_restore_state): New.
2196 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2197 DW_CFA_restore_state.
2198 (output_cfi_directive): Likewise.
2199 (convert_cfa_to_fb_loc_list): Likewise.
2200 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2201 * dwarf2out.h: Update.
2202 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2203 (copy_insn_1): Early out for null.
2204 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2205 and dwarf2out_frame_debug_restore_state.
2206 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2207 (prologue_insn_hash, epilogue_insn_hash): New.
2208 (free_after_compilation): Adjust freeing accordingly.
2209 (record_insns): Create hash table if needed; push insns into
2210 hash instead of array.
2211 (maybe_copy_epilogue_insn): New.
2212 (contains): Search hash table instead of array.
2213 (sibcall_epilogue_contains): Remove.
2214 (thread_prologue_and_epilogue_insns): Split eh_return insns
2215 and mark them as epilogues.
2216 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2217 scanning in terms of basic blocks.
2218 * insn-notes.def (CFA_RESTORE_STATE): New.
2219 * jump.c (returnjump_p_1): Accept EH_RETURN.
2220 (eh_returnjump_p_1, eh_returnjump_p): New.
2221 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2222 CFA_REGISTER, CFA_RESTORE): New.
2223 * rtl.def (EH_RETURN): New.
2224 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2225
2226 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2227 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2228
2229 * config/i386/i386.c (gen_push): Update cfa state.
2230 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2231 add a CFA_ADJUST_CFA note.
2232 (ix86_dwarf_handle_frame_unspec): Remove.
2233 (ix86_expand_prologue): Update cfa state.
2234 (ix86_emit_restore_reg_using_pop): New.
2235 (ix86_emit_restore_regs_using_pop): New.
2236 (ix86_emit_leave): New.
2237 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2238 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2239 * config/i386/i386.h (struct machine_cfa_state): New.
2240 (ix86_cfa_state): New.
2241 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2242 (eh_return_internal): Merge from eh_return_<mode>,
2243 use eh_return rtx, split w/ epilogue.
2244
72b5577d
ILT
22452009-05-29 Ian Lance Taylor <iant@google.com>
2246
2247 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2248 enum type.
2249 * calls.c (emit_library_call_value_1): Likewise.
2250
2251 * c-typeck.c (c_build_va_arg): New function.
2252 * c-tree.h (c_build_va_arg): Declare.
2253 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2254 instead of build_va_arg.
2255
7a2faca1
EB
22562009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2257
2258 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2259 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2260 (ptr_difference_cost): Use affine combinations to compute it.
2261 (difference_cost): Likewise.
2262 (get_computation_cost_at): Compute more accurate cost for addresses
2263 if the ratio is a multiplier allowed in addresses.
2264 For non-addresses, consider that an additional offset or symbol is
2265 added only once.
2266
725fd454
JJ
22672009-05-29 Jakub Jelinek <jakub@redhat.com>
2268
a0987204
JJ
2269 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2270 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2271
725fd454
JJ
2272 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2273 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2274 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2275 if MODE_DI.
2276 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2277 to 1 for TYPE_SSE{IADD1,CVT1}.
2278 (prefix_vex_imm8): Removed.
2279 (length_vex): Only pass 1 as second argument to
2280 ix86_attr_length_vex_default if prefix_extra is 0.
2281 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2282 (length): For prefix vex computation use length_immediate
2283 attribute instead of prefix_vex_imm8.
2284 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2285 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2286 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2287 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2288 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2289 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2290 a space in between the operands.
2291 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2292 if one operand is 0xff and the other one si, di, bp or sp.
2293 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2294 other one si, di, bp or sp.
2295 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2296 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2297 type and mode attributes.
2298 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2299 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2300 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2301 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2302 prefix_data16 attribute iff MODE_DF.
2303 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2304 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2305 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2306 constm128_operand in length_immediate computation.
2307 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2308 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2309 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2310 length_immediate attribute to 1.
2311 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2312 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2313 for certain alternatives.
2314 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2315 prefix_data16 attribute if MODE_V1DF.
2316 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2317 length_immediate to 1.
2318 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2319 length_address to 4, set mode attribute to MODE_DI.
2320 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2321 (fxam<mode>2_i387): Set length attribute to 4.
2322 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2323 *prefetch_3dnow_rex): Override length_address attribute.
2324 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2325 attributes.
2326 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2327 (constm128_operand): Removed.
2328 * config/i386/i386.c (memory_address_length): For
2329 disp && !index && !base in 64-bit mode account for SIB byte if
2330 print_operand_address can't optimize disp32 into disp32(%rip)
2331 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2332 for fs: or gs: segment.
2333 (ix86_attr_length_immediate_default): When checking if shortform
2334 is possible, truncate immediate to the length of the non-shortened
2335 immediate.
2336 (ix86_attr_length_address_default): Ignore MEM_P operands
2337 with X constraint.
2338 (ix86_attr_length_vex_default): Only check for DImode on
2339 GENERAL_REG_P operands.
2340 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2341 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2342 (sse_cvttps2pi): Clear prefix_rep attribute.
2343 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2344 attribute.
2345 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2346 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2347 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2348 iff operand 2 is const_int_operand.
2349 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2350 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2351 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2352 instead of vex.
2353 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2354 prefix_data16.
2355 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2356 prefix_data16 attribute for movlpd and movhpd instructions.
2357 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2358 length_immediate for shufpd instruction.
2359 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2360 (avx_cmpp<avxmodesuffixf2c><mode>3,
2361 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2362 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2363 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2364 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2365 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2366 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2367 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2368 prefix_data16 attribute for the first alternative to 1.
2369 (*avx_loadlps): Override length_immediate for the first alternative.
2370 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2371 attributes for second alternative.
2372 (*vec_concatv2sf_sse4_1): Override length_immediate and
2373 prefix_data16 attributes for second alternative.
2374 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2375 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2376 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2377 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2378 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2379 prefix_data16 and length_immediate to 1.
2380 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2381 to 1.
2382 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2383 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2384 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2385 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2386 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2387 *sse4_1_pextrd): Set length_immediate to 1.
2388 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2389 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2390 to 1.
2391 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2392 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2393 length_immediate to 1 for second alternative.
2394 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2395 prefix_extra and length_immediate attributes for the first
2396 alternative.
2397 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2398 first alternative.
2399 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2400 to 1 for the first and third alternative.
2401 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2402 alternative.
2403 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2404 attribute.
2405 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2406 attribute to 0.
2407 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2408 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2409 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2410 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2411 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2412 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2413 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2414 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2415 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2416 (ssse3_palignrti): Override length_immediate to 1.
2417 (ssse3_palignrdi): Override length_immediate to 1, override
2418 prefix_rex attribute.
f3afc8a7 2419 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2420 (sse4a_extrqi): Override length_immediate to 2.
2421 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2422 (sse4a_insertq): Override prefix_data16 to 0.
2423 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2424 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2425 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2426 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2427 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2428 and length_immediate to 1.
2429 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2430 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2431 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2432 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2433 and length_immediate to 1.
2434 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2435 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2436 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2437 avx_ptest256): Override prefix_extra to 1.
2438 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2439 Override prefix_data16 and length_immediate to 1.
2440 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2441 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2442 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2443 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2444 prefix_data16 to 0 and prefix_extra to 2.
2445 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2446 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2447 attribute.
2448 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2449 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2450 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2451 and prefix_extra to 2.
2452 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2453 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2454 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2455 avx_vpermilvar<mode>3,
2456 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2457 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2458 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2459 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2460 Override prefix_extra to 1.
2461 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2462 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2463 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2464 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2465 prefix_extra and length_immediate to 1.
2466 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2467 modrm to 0.
2468 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2469 to 1 for the first alternative.
2470 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2471 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2472 cases.
2473 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2474 *movv2sf_internal_avx, *movv2sf_internal): Override
2475 prefix_rep attribute for certain alternatives.
2476 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2477 attributes for certain alternatives.
2478 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2479 attributes for certain alternatives.
2480 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2481 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2482 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2483 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2484 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2485 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2486 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2487 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2488 length_immediate to 1 if operand 2 is const_int_operand.
2489 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2490 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2491 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2492 using old 3DNOW insn rather than SSE/3DNOW_A.
2493 (mmx_emms, mmx_femms): Clear modrm attribute.
2494
0674b9d0
MJ
24952009-05-29 Martin Jambor <mjambor@suse.cz>
2496
2497 * tree-sra.c: New implementation of SRA.
2498
2499 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2500 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2501 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2502 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2503 (SRA_MAX_STRUCTURE_COUNT): Removed.
2504 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2505 * doc/invoke.texi (sra-max-structure-size): Removed.
2506 (sra-field-structure-ratio): Removed.
2507
616f21df
JJ
25082009-05-29 Jakub Jelinek <jakub@redhat.com>
2509
2510 PR middle-end/40291
2511 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2512 before expansion.
2513
da7ba240
AB
25142009-05-29 Andrey Belevantsev <abel@ispras.ru>
2515
2516 PR rtl-optimization/40101
2517 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2518 seqno. Adjust comment.
2519 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2520 inserting bookkeeping before a jump, the jump is not scheduled.
2521 When no positive seqno found, provide a value. Add comment.
2522
71dcd609
RG
25232009-05-29 Richard Guenther <rguenther@suse.de>
2524
2525 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2526 short-cutting on the first component.
2527
a900ae6b
JJ
25282009-05-29 Jakub Jelinek <jakub@redhat.com>
2529
2530 PR middle-end/39958
2531 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2532 for trees other than decls/types.
2533
821bb7f8
RG
25342009-05-29 Richard Guenther <rguenther@suse.de>
2535
2536 * tree-ssa-operands.c (get_expr_operands): Do not handle
2537 INDIRECT_REFs in the handled-component case. Remove
2538 unused get_ref_base_and_extent case.
2539 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2540 tree_low_cst and host_integerp where possible.
2541 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2542 codes for equivalence.
2543 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2544
e997fb9c
DB
25452009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2546
2547 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2548 to tmake_file for i[34567]86-*-cygwin*.
2549
58195b74
JJ
25502009-05-29 Jakub Jelinek <jakub@redhat.com>
2551
2552 PR target/40017
2553 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2554 (altivec_categorize_keyword, init_vector_keywords,
2555 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2556 similar to bool.
2557
055df276
KT
25582009-05-29 Kai Tietz <kai.tietz@onevision.com>
2559
2560 * tree.c (handle_dll_attribute): Check if node is
2561 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2562
f5939ef3
RE
25632009-05-29 Richard Earnshaw <rearnsha@arm.com>
2564
2565 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2566 component.
2567 (thumb2_zero_extendqidi2): Likewise.
2568
c185de40
KK
25692009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2570
2571 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2572 instead of gen_movrt.
2573 * config/sh/sh.md (movrt): Remove.
2574
bf3c6caf
SE
25752009-05-28 Steve Ellcey <sje@cup.hp.com>
2576
f3afc8a7 2577 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2578 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2579 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2580 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2581 -msched-prefer-non-control-spec-insns,
2582 -msched-stop-bits-after-every-cycle,
2583 -msched-count-spec-in-critical-path,
2584 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2585 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2586 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2587 and -msched-spec-verbose.
2588
8a66e987
JM
25892009-05-28 Joseph Myers <joseph@codesourcery.com>
2590
f3afc8a7 2591 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2592 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2593 error if used.
2594 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2595
b45d2719
RG
25962009-05-28 Richard Guenther <rguenther@suse.de>
2597
2598 * tree-ssa-alias.c (ao_ref_init): New function.
2599 (ao_ref_base): Likewise.
2600 (ao_ref_base_alias_set): Likewise.
2601 (ao_ref_alias_set): Likewise.
2602 (refs_may_alias_p_1): Change signature.
2603 (refs_may_alias_p): Adjust.
2604 (refs_anti_dependent_p): Likewise.
2605 (refs_output_dependent_p): Likewise.
2606 (call_may_clobber_ref_p_1): Change signature.
2607 (call_may_clobber_ref_p): Adjust.
2608 (stmt_may_clobber_ref_p_1): New function split out from ...
2609 (stmt_may_clobber_ref_p): ... here.
2610 (maybe_skip_until): Adjust signature.
2611 (get_continuation_for_phi): Likewise.
2612 (walk_non_aliased_vuses): Likewise.
2613 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2614 (ao_ref_init): Declare.
2615 (ao_ref_base): Likewise.
2616 (ao_ref_alias_set): Likewise.
2617 (stmt_may_clobber_ref_p_1): Likewise.
2618 (walk_non_aliased_vuses): Adjust.
2619 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2620 (get_ref_from_reference_ops): remove.
2621 (vn_reference_lookup_2): Adjust signature.
2622 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2623 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2624 (vn_reference_lookup): Adjust.
2625 (vn_reference_insert): Likewise.
2626 (vn_reference_insert_pieces): Adjust signature.
2627 (visit_reference_op_call): Adjust.
2628 * tree-ssa-pre.c (get_expr_type): Simplify.
2629 (phi_translate_1): Adjust.
2630 (compute_avail): Likewise.
2631 (translate_vuse_through_block): Do not re-build trees.
2632 (value_dies_in_block_x): Likewise.
2633 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2634 fields.
2635 (vn_reference_lookup_pieces): Adjust declaration.
2636 (vn_reference_insert_pieces): Likewise.
2637
554223b6
BK
26382009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2639
2640 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2641 with checking disabled.
2642
233215fe
DK
26432009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2644
2645 PR target/37216
2646
2647 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2648 macro definition for support of three-operand format aligned
2649 .comm directive in assembler on cygwin/pe/mingw target OS.
2650 * configure: Regenerate.
2651 * config.h: Regenerate.
2652
2653 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2654 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2655 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2656
2657 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2658 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2659
24adb18f
IR
26602009-05-28 Ira Rosen <irar@il.ibm.com>
2661
2662 PR tree-optimization/40254
2663 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2664 in analysis of basic blocks.
2665
2c5bfdf7
AN
26662009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2667
2668 PR middle-end/33699
f3afc8a7 2669 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2670 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2671 (TARGET_INITIALIZER): Use it.
2672 * cse.c (CHEAPER): Move it up to the other macros.
2673 (insert): Rename this ...
2674 (insert_with_costs): ... to this. Add cost parameters. Update
2675 function comment.
2676 (insert): New function. Call insert_with_costs.
2677 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2678 find_reg_offset_for_const, try_const_anchors): New functions.
2679 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2680 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2681 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2682 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2683
9e6aced0
AO
26842009-05-28 Alexandre Oliva <aoliva@redhat.com>
2685
2686 * tree-inline.c (remap_decls): Enable nonlocalized variables
2687 when not optimizing.
2688
89fbbe4e
AO
26892009-05-28 Alexandre Oliva <aoliva@redhat.com>
2690
2691 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2692 Simplify other tests involving optimize.
2693
e455776a
TT
26942009-05-27 Tom Tromey <tromey@redhat.com>
2695
2696 * unwind-dw2.c (_Unwind_DebugHook): New function.
2697 (uw_install_context): Call _Unwind_DebugHook.
2698
cea32bca
TT
26992009-05-27 Tom Tromey <tromey@redhat.com>
2700
2701 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2702
c607156f
ILT
27032009-05-27 Ian Lance Taylor <iant@google.com>
2704
2705 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2706 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2707 (ALL_LINKERFLAGS): Define.
2708 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2709 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2710 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2711 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2712 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2713 $(LINKER_FOR_BUILD).
2714 (build/gcov-iov$(build_exeext)): Likewise.
2715
ec0a1343
JB
27162009-05-27 Julian Brown <julian@codesourcery.com>
2717
2718 * gcse.c (target.h): Include.
2719 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2720 copy of argument to a pseudo register.
2721
ac80ba07
DN
27222009-05-27 Diego Novillo <dnovillo@google.com>
2723
2724 * tree-ssa-live.c (dump_scope_block): Document arguments.
2725 (dump_scope_blocks): Document.
2726 (debug_scope_blocks): New.
2727 * tree-flow.h (debug_scope_blocks): Declare.
2728
d1803a17
DC
27292009-05-21 Denis Chertykov <denisc@overta.ru>
2730
f3afc8a7 2731 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2732
51fb7760 27332009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2734
2735 * expr.c (target_align): New function. Alignment the TARGET of an
2736 assignment may be assume to have.
2737 (highest_pow2_factor_for_target): Use it instead of relying on
2738 immediate tree attributes of TARGET, not necessarily honored when
2739 intermediate bitfields are involved.
2740
634fa334
L
27412009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2742
2743 PR target/40266
2744 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2745 AVX, SSE4, AES, PCLMUL and POPCNT.
2746
65332587
DN
27472009-05-27 Diego Novillo <dnovillo@google.com>
2748
2749 * tree-pretty-print.c (dump_location): New.
2750 (dump_generic_node): Call it.
2751 Factor code to handle BLOCK nodes ...
2752 (dump_block_node): ... here.
2753
3e17e31d
RAE
27542009-05-27 Rafael Avila de Espindola <espindola@google.com>
2755
f3afc8a7
UB
2756 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2757 with it.
3e17e31d
RAE
2758 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2759 included.
2760 * gcc-plugin.h: Include config.h and system.h.
2761 (IN_GCC): Define if not defined.
2762
5e370570
HPN
27632009-05-27 Hans-Peter Nilsson <hp@axis.com>
2764
2765 PR middle-end/40249
2766 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2767 with -fno-inline.
2768
d000f0d9
SZ
27692009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2770
2771 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2772 applicable.
2773 * config/m32r/m32r.h: Ditto.
2774 * config/m32r/m32r.md: Ditto.
2775 * config/m32r/predicates.md: Ditto.
2776
82f331ff
AO
27772009-05-27 Alexandre Oliva <aoliva@redhat.com>
2778
2779 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2780
ae2392a9
BS
27812009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2782
2783 * doc/plugins.texi
2784 (Loading plugins): typo.
2785 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2786 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2787 (Interacting with the GCC Garbage Collector): Added new section.
2788 (Giving information about a plugin): Added new section for
2789 PLUGIN_INFO.
ae2392a9
BS
2790 * ggc.h (ggc_register_root_tab): Added declaration.
2791 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2792 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2793 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2794 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2795 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2796 (ggc_register_root_tab) Added new routine.
2797 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2798 PLUGIN_GGC_MARKING event.
2799 * ggc-zone.c: Include plugin.h.
2800 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2801 * ggc-page.c: Include plugin.h.
2802 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2803 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2804 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2805 (register_callback): check lack of callbacks for
2806 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2807 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2808 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2809 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2810 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2811 dependency on plugin.h.
2812 (plugin.o): Added dependency on ggc.h...
2813
f0cfd3a8
RG
28142009-05-26 Richard Guenther <rguenther@suse.de>
2815
2816 PR middle-end/40248
2817 Revert
2818 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2819 with mismatched comparison modes.
2820
2821 * expr.c (expand_expr_real_1): Expand the operand of a
2822 VIEW_CONVERT_EXPR in its natural mode.
2823
7980bfb8
ILT
28242009-05-26 Ian Lance Taylor <iant@google.com>
2825
2826 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2827 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2828 (ALL_COMPILERFLAGS): Define.
2829 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2830 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2831 (collect2$(exeext), collect2.o): Likewise.
2832 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2833 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2834 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2835 (libbackend.o, intl.o, cppdefault.o): Likewise.
2836 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2837 (build/%.o): Use $(COMPILER_FOR_BUILD).
2838 (build/gen%$(build_exeext)): Likewise.
2839 (build/gcov-iov$(build_exeext)): LIkewise.
2840 * config/t-darwin (darwin.o): Use $(COMPILER).
2841 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2842 * config/t-sol2 (sol2-c.o): Likewise.
2843 (sol2.o): Likewise.
2844 * config/t-vxworks (vxworks.o): Likewise.
2845 * config/x-darwin (host-darwin.o): Likewise.
2846 * config/x-hpux (host-hpux.o): Likewise.
2847 * config/x-linux (host-linux.o): Likewise.
2848 * config/x-solaris (host-solaris.o): Likewise.
2849 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2850 * config/arm/t-arm (arm-c.o): Likewise.
2851 * config/arm/t-pe (pe.o): Likewise.
2852 * config/arm/t-wince-pe (pe.o): Likewise.
2853 * config/i386/t-cygming (winnt.o): Likewise.
2854 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2855 * config/i386/t-cygwin (cygwin1.o): Likewise.
2856 (cygwin2.o): Likewise.
2857 * config/i386/t-i386 (i386-c.o): Likewise.
2858 * config/i386/t-interix (winnt.o): Likewise.
2859 * config/i386/t-netware (netware.o): Likewise.
2860 * config/i386/t-nwld (nwld.o): Likewise.
2861 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2862 * config/i386/x-i386 (driver-i386.o): Likewise.
2863 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2864 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2865 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2866 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2867 * config/mips/x-native (driver-native.o): Likewise.
2868 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2869 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2870 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2871 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2872 * config/score/t-score-elf (score7.o): Likewise.
2873 (score3.o): Likewise.
2874 * config/sh/t-sh (sh-c.o): Likewise.
2875 * config/sh/t-symbian (sh-c.o): Likewise.
2876 (symbian.o): Likewise.
2877 * config/spu/t-spu-elf (spu-c.o): Likewise.
2878 * config/v850/t-v850 (v850-c.o): Likewise.
2879 * config/v850/t-v850e (v850-c.o): Likewise.
2880
23977d3c
RG
28812009-05-26 Richard Guenther <rguenther@suse.de>
2882
2883 PR tree-optimization/40122
2884 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2885 VECTOR_CSTs if possible.
2886 (fold_gimple_assign): Likewise.
2887
3d62b895
RG
28882009-05-26 Richard Guenther <rguenther@suse.de>
2889
2890 PR middle-end/40252
2891 * fold-const.c (fold_binary): Use the correct types for building
2892 rotates.
2893
12346147
RG
28942009-05-26 Richard Guenther <rguenther@suse.de>
2895
2896 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2897 redundant calls to merge_alias_info.
2898 (bump_vector_ptr): Likewise.
2899 * tree-ssa-copy.c (merge_alias_info): Remove.
2900 (replace_exp_1): Remove call to merge_alias_info.
2901 (propagate_tree_value): Likewise.
2902 (fini_copy_prop): Propagate points-to info.
2903 * tree-flow.h (merge_alias_info): Remove.
2904
807d5e6f
HS
29052009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2906
2907 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2908
85057983
JH
29092009-05-25 Jan Hubicka <jh@suse.cz>
2910
2911 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2912 * cgraph.h (struct inline_summary): New filed self_wize,
2913 size_inlining_benefit, self_time and time_inlining_benefit.
2914 (struct cgraph_global_info): Replace insns by time ans size fields.
2915 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2916 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2917 (ipcp_update_callgraph): Do not touch function bodies.
2918 * ipa-inline.c: Include except.h
2919 (MAX_TIME): New constant.
2920 (overall_insns): Remove.
2921 (leaf_node_p): New.
2922 (overall_size, max_benefit): New static variables.
2923 (cgraph_estimate_time_after_inlining): New function.
2924 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2925 (cgraph_clone_inlined_nodes): Update size.
2926 (cgraph_mark_inline_edge): Update size.
2927 (cgraph_estimate_growth): Use size info.
2928 (cgraph_check_inline_limits): Check size.
2929 (cgraph_default_inline_p): Likewise.
2930 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2931 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2932 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2933 and times.
85057983
JH
2934 (cgraph_decide_inlining): Likewise.
2935 (cgraph_decide_inlining_incrementally): Likewise; honor
2936 PARAM_EARLY_INLINING_INSNS.
2937 (likely_eliminated_by_inlining_p): New predicate.
2938 (estimate_function_body_sizes): New function.
2939 (compute_inline_parameters): Use it.
2940 * except.c (must_not_throw_labels): New function.
2941 * except.h (must_not_throw_labels): Declare.
2942 * tree-inline.c (init_inline_once): Kill inlining_weigths
2943 * tree-ssa-structalias.c: Avoid uninitialized warning.
2944 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2945 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2946 (PARAM_INLINE_CALL_COST): Remove.
2947 (PARAM_EARLY_INLINING_INSNS): New.
2948
01df5c8a
RG
29492009-05-25 Richard Guenther <rguenther@suse.de>
2950
2951 PR tree-optimization/36327
2952 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2953 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2954 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2955 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2956 for union COMPONENT_REFs.
2957 (vn_reference_lookup_3): New callback. Lookup from memset
2958 and CONSTRUCTOR assignment, translate through struct copies.
2959 (vn_reference_lookup_pieces): Make sure to not free the
2960 passed operands array. Adjust walk_non_aliased_vuses call.
2961 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2962 make sure we do not leak memory.
2963
6b8ed145
RG
29642009-05-25 Richard Guenther <rguenther@suse.de>
2965
2966 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2967 * tree-inline.c (expand_call_inline): Reset the escaped and
2968 callused solutions.
2969 * tree-ssa-structalias.c (pass_build_ealias): New.
2970 * tree-pass.h (pass_build_ealias): Declare.
2971 * passes.c (init_optimization_passes): Add PTA during
2972 early optimizations.
2973 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2974 and CALLUSED solutions.
2975 (dump_points_to_solution): New function, split out from ...
2976 (dump_points_to_info_for): ... here.
2977 * tree-parloops.c (parallelize_loops): Reset the escaped and
2978 callused solutions.
2979
0adcf178
RO
29802009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2981
2982 PR bootstrap/40027
2983 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2984 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2985
12aaf609
IR
29862009-05-25 Ira Rosen <irar@il.ibm.com>
2987
2988 PR tree-optimization/40238
2989 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2990 statements after basic block's labels.
2991 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2992 to free the allocated memory.
2993
7f9a14e3
KK
29942009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2995
2996 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2997 return address with a USE.
2998
b842d478
RG
29992009-05-24 Richard Guenther <rguenther@suse.de>
3000
3001 PR middle-end/40233
3002 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3003 array type from the main variant of the inner type.
3004
8db7b33f
JBG
30052009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3006
3007 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3008 definition to bool (from int) to un-break build.
3009 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3010
cff4e50d
PB
30112009-05-24 Paolo Bonzini <bonzini@gnu.org>
3012
3013 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3014 discard_stmt_changes): Delete.
3015 * tree-ssa-operands.c (scb_stack): Delete.
3016 (init_ssa_operands): Do not initialize it.
3017 (fini_ssa_operands): Do not free it.
3018 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3019
3020 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3021 update_stmt, remove the others. Fix comments.
3022 * tree-dfa.c (optimize_stack_restore): Likewise.
3023 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3024 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3025 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3026 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3027 Likewise.
3028 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3029 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
3030 (dom_opt_finalize_block): Likewise, adjusting access to
3031 stmts_to_rescan.
cff4e50d
PB
3032 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3033 (stmts_to_rescan): Change item type to gimple.
3034 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3035
a70d6342
IR
30362009-05-24 Ira Rosen <irar@il.ibm.com>
3037
3038 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3039 * tree-pass.h (pass_slp_vectorize): New pass.
3040 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3041 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3042 * tree-vectorizer.c (timevar.h): Include.
3043 (user_vect_verbosity_level): Declare.
3044 (vect_location): Fix comment.
3045 (vect_set_verbosity_level): Update user_vect_verbosity_level
3046 instead of vect_verbosity_level.
3047 (vect_set_dump_settings): Add an argument. Ignore user defined
3048 verbosity if dump flags require higher level of verbosity. Print to
3049 stderr only for loop vectorization.
3050 (vectorize_loops): Update call to vect_set_dump_settings.
3051 (execute_vect_slp): New function.
3052 (gate_vect_slp): Likewise.
3053 (struct gimple_opt_pass pass_slp_vectorize): New.
3054 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3055 access its members.
3056 (vec_info_for_bb): New function.
3057 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3058 (VECTORIZATION_ENABLED): New macro.
3059 (SLP_ENABLED, SLP_DISABLED): Likewise.
3060 (vect_is_simple_use): Add bb_vec_info argument.
3061 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3062 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3063 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3064 vect_schedule_slp, vect_analyze_slp): Likewise.
3065 (vect_analyze_stmt): Add slp_tree argument.
3066 (find_bb_location): Declare.
3067 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3068 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3069 (vect_analyze_loop_operations, vect_analyze_loop,
3070 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3071 vect_finalize_reduction, vectorizable_reduction,
3072 vectorizable_live_operation, vect_transform_loop): Likewise.
3073 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3074 skip evolution analysis if analyzing a basic block.
3075 (dr_analyze_indices): Likewise.
3076 (initialize_data_dependence_relation): Skip the test whether the
3077 object is invariant for basic blocks.
3078 (compute_all_dependences): Skip dependence analysis for data
3079 references in basic blocks.
3080 (find_data_references_in_stmt): Don't fail in case of invariant
3081 access in basic block.
3082 (find_data_references_in_bb): New function.
3083 (find_data_references_in_loop): Move code to
782dc37a 3084 find_data_references_in_bb and add a call to it.
a70d6342
IR
3085 (compute_data_dependences_for_bb): New function.
3086 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3087 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3088 that STEP is 0.
3089 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3090 unknown dependence in basic block and fail in case of dependence in
3091 basic block.
3092 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3093 dependence instances from either loop or basic block vectorization
3094 info.
3095 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3096 before calling nested_in_vect_loop_p.
3097 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3098 dependence instances from either loop or basic block vectorization
3099 info.
3100 (vect_verify_datarefs_alignment): Likewise.
3101 (vect_enhance_data_refs_alignment): Adjust function calls.
3102 (vect_analyze_data_refs_alignment): Likewise.
3103 (vect_analyze_group_access): Fix printing. Skip different checks if
3104 DR_STEP is 0. Keep strided stores either in loop or basic block
3105 vectorization data structure. Fix indentation.
3106 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3107 basic blocks.
3108 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3109 dependence instances from either loop or basic block vectorization
3110 info.
3111 (vect_analyze_data_refs): Update comment. Call
3112 compute_data_dependences_for_bb to analyze basic blocks.
3113 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3114 case of loop vectorization. In case of basic block vectorization use
782dc37a 3115 data-ref itself as a base.
a70d6342
IR
3116 (vect_create_data_ref_ptr): In case of basic block vectorization:
3117 don't advance the pointer, add new statements before the current
3118 statement. Adjust function calls.
3119 (vect_supportable_dr_alignment): Support only aligned accesses in
3120 basic block vectorization.
3121 * common.opt (ftree-slp-vectorize): New flag.
3122 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3123 (vect_pattern_recog_1): Likewise.
3124 * tree-vect-stmts.c (process_use): Likewise.
3125 (vect_init_vector): Add new statements in the beginning of the basic
3126 block in case of basic block SLP.
3127 (vect_get_vec_def_for_operand): Adjust function calls.
3128 (vect_finish_stmt_generation): Likewise.
3129 (vectorizable_call): Add assert that it is loop vectorization, adjust
3130 function calls.
3131 (vectorizable_conversion, vectorizable_assignment): Likewise.
3132 (vectorizable_operation): In case of basic block SLP, take
3133 vectorization factor from statement's type and skip the relevance
3134 check. Adjust function calls.
3135 (vectorizable_type_demotion): Add assert that it is loop
3136 vectorization, adjust function calls.
3137 (vectorizable_type_promotion): Likewise.
3138 (vectorizable_store): Check for outer loop only in case of loop
3139 vectorization. Adjust function calls. For basic blocks, skip the
3140 relevance check and don't advance pointers.
3141 (vectorizable_load): Likewise.
3142 (vectorizable_condition): Add assert that it is loop vectorization,
3143 adjust function calls.
3144 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3145 that it is not reduction, get vector type, call only supported
782dc37a 3146 functions, skip loop specific parts.
a70d6342
IR
3147 (vect_transform_stmt): Check for outer loop only in case of loop
3148 vectorization.
3149 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3150 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3151 for external definition.
3152 * passes.c (pass_slp_vectorize): New pass.
3153 * tree-vect-slp.c (find_bb_location): New function.
3154 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3155 check for patterns only in loops.
3156 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3157 case of multiple types in basic block SLP.
3158 (vect_mark_slp_stmts_relevant): New function.
3159 (vect_supported_load_permutation_p): Fix comment.
3160 (vect_analyze_slp_instance): Add argument. In case of basic block
3161 SLP, take vectorization factor from statement's type, check that
3162 unrolling factor is 1. Adjust function call. Save SLP instance in
3163 either loop or basic block vectorization structure. Return FALSE,
3164 if SLP failed.
3165 (vect_analyze_slp): Add argument. Get strided stores groups from
3166 either loop or basic block vectorization structure. Return FALSE
3167 if basic block SLP failed.
3168 (new_bb_vec_info): New function.
3169 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3170 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3171 (vect_schedule_slp): Add argument. Get SLP instances from either
3172 loop or basic block vectorization structure. Set vectorization factor
3173 to be 1 for basic block SLP.
3174 (vect_slp_transform_bb): New function.
3175 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3176
0676c393
MM
31772009-05-23 Mark Mitchell <mark@codesourcery.com>
3178
3179 * final.c (shorten_branches): Do not align labels for jump tables.
3180 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3181
94324dae
EB
31822009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3183
3184 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3185 Remove outdated reference to flow.c and fix nits.
3186 * doc/gccint.texi: Tweak RTL description.
3187 * doc/rtl.texi: Likewise.
3188
92bffc14
DC
31892009-05-23 Denis Chertykov <chertykov@gmail.com>
3190
3191 * config/avr/avr.c: Change my email address.
3192 * config/avr/avr.h: Likewise.
3193 * config/avr/avr.md: Likewise.
3194 * config/avr/avr-protos.h: Likewise.
3195 * config/avr/libgcc.S: Likewise.
3196
eec9405e
TS
31972009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3198
3199 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3200 (spu_split_load, spu_split_store): Change return type to int.
3201 (spu_split_convert): Declare.
3202 * config/spu/predicates.md (spu_mem_operand): Remove.
3203 (spu_mov_operand): Update.
3204 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3205 * config/spu/spu.c (regno_aligned_for_load): Remove.
3206 (reg_aligned_for_addr, spu_expand_load): Define.
3207 (spu_expand_extv): Reimplement and handle MEM.
3208 (spu_expand_insv): Handle MEM.
3209 (spu_sched_reorder): Handle insn's with length 0.
3210 (spu_legitimate_address_p): Reimplement.
3211 (store_with_one_insn_p): Return TRUE for any mode with size
3212 larger than 16 bytes.
3213 (address_needs_split): Define.
3214 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3215 operands.
3216 (spu_convert_move): Define.
782dc37a 3217 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3218 (spu_split_store): Change all MEM's to TImode.
3219 (spu_init_expanders): Preallocate registers that correspond to
3220 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3221 mark_reg_pointer.
3222 (spu_split_convert): Define.
3223 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3224 (_move<mode>, _movdi, _movti): Update predicate and condition.
3225 (load, store): Change to define_split.
3226 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3227 extend<mode>ti2.
3228 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3229 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3230 define_insn_and_split of lshr<mode>3.
3231 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3232 (<v>ashr<mode>3_imm): Define.
3233 (extv, extzv, insv): Allow MEM operands.
3234 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3235 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3236 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3237 (_spu_convert2): Change to define_insn_and_split and remove the
3238 corresponding define_peephole2.
3239 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3240 Change predicates to memory_operand.
3241
7d31a807
MM
32422009-05-22 Mark Mitchell <mark@codesourcery.com>
3243
3244 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3245
d021d274
MM
32462009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3247
3248 PR tree-optimization/40219
3249 * tree.c (iterative_hash_expr): Make sure the builtin function is
3250 a normal builtin function and not a front end or back end builtin
3251 before indexing into the built_in_decls array.
3252
4d7a65ea
RG
32532009-05-22 Richard Guenther <rguenther@suse.de>
3254
3255 PR middle-end/38964
3256 * alias.c (write_dependence_p): Do not use TBAA for answering
3257 anti-dependence or output-dependence.
782dc37a 3258 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3259 (emit_pointer_definition): Remove.
3260 (emit_alias_warning): Likewise.
3261 (find_what_var_points_to): Remove TBAA pruning code.
3262 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3263 violations.
3264 (compute_points_to_sets): Remove code computing the set of
3265 dereferenced pointers.
3266 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3267 oracle for querying anti and output dependencies.
3268 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3269 if TBAA may be applied.
3270 (refs_anti_dependent_p): New function.
3271 (refs_output_dependent_p): Likewise.
3272 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3273 (refs_output_dependent_p): Likewise.
3274 * doc/tree-ssa.texi (Memory model): New section.
3275 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3276 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3277 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3278 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3279 * expr.c (expand_expr_real_1): Likewise.
3280 * gimple-low.c (lower_stmt): Likewise.
3281 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3282 (dump_gimple_cdt): Remove.
3283 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3284 (gimple_size): Likewise.
3285 (walk_gimple_op): Likewise.
3286 (is_gimple_stmt): Likewise.
3287 (walk_stmt_load_store_addr_ops): Likewise.
3288 (gimple_build_cdt): Remove.
3289 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3290 * gimple.h (gimple_cdt_new_type): Remove.
3291 (gimple_cdt_new_type_ptr): Likewise.
3292 (gimple_cdt_set_new_type): Likewise.
3293 (gimple_cdt_location): Likewise.
3294 (gimple_cdt_location_ptr): Likewise.
3295 (gimple_cdt_set_location): Likewise.
3296 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3297 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3298 GIMPLE_CHANGE_DYNAMIC_TYPE.
3299 (verify_types_in_gimple_stmt): Likewise.
3300 * tree-inline.c (estimate_num_insns): Likewise.
3301 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3302 (copy_decl_to_var): Likewise.
3303 (copy_result_decl_to_var): Likewise.
3304 * tree-pretty-print.c (dump_generic_node): Do not handle
3305 CHANGE_DYNAMIC_TYPE_EXPR.
3306 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3307 * tree-ssa-operands.c (get_expr_operands): Likewise.
3308 * tree-ssa-structalias.c (struct variable_info): Remove
3309 no_tbaa_pruning member.
3310 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3311 (unify_nodes): Do not copy it.
3312 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3313 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3314 (set_uids_in_ptset): Do not check it.
3315 (find_what_var_points_to): Likewise.
3316 (compute_tbaa_pruning): Remove.
3317 (compute_points_to_sets): Do not call it.
3318 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3319 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3320 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3321 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3322 (DECL_NO_TBAA_P): Likewise.
3323 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3324 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3325 (expand_omp_atomic_pipeline): Do not set it.
3326 * print-tree.c (print_node): Do not dump it.
3327 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3328 redundant check.
3329
83a6ac60
VM
33302009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3331
3332 PR target/39856
3333 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3334 for clobber.
3335
fe2978fb
MM
33362009-05-22 Mark Mitchell <mark@codesourcery.com>
3337
3338 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3339 non-external.
3340
134ef638
BE
33412009-05-22 Ben Elliston <bje@au.ibm.com>
3342
3343 * Makefile.in (bversion.h, s-bversion): New targets.
3344 (TOPLEV_H): Add bversion.h.
3345 * toplev.h: Include "bversion.h".
3346 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3347 the __format__ attribute only if compiling with the same version
3348 of GCC as the sources (the "build version").
3349
52fc669d
BE
33502009-05-22 Ben Elliston <bje@au.ibm.com>
3351
3352 * c-format.c (handle_format_attribute): Fix comment typo.
3353
583ca921
SE
33542009-05-21 Steve Ellcey <sje@cup.hp.com>
3355
3356 PR target/37846
3357 * config/ia64/ia64.opt (mfused-madd): New.
3358 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3359 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3360 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3361 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3362 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3363 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3364 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3365 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3366 instruction if !TARGET_FUSED_MADD.
3367 (fpma, fpms): Remove colon from name.
3368
150e3929
RG
33692009-05-22 Richard Guenther <rguenther@suse.de>
3370
3371 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3372 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3373 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3374 TARGET_MEM_REF.
3375 (create_expression_by_pieces): Only convert if necessary.
3376 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3377 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3378
9a2b090c
AN
33792009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3380
3381 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3382 regular pattern from a template and rename it ...
3383 (*extzv_truncsi_exts): ... to this.
3384
33b92c9d
RG
33852009-05-21 Richard Guenther <rguenther@suse.de>
3386
3387 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3388 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3389 (cgraph_default_inline_p): Likewise.
3390 (cgraph_decide_inlining_incrementally): Likewise.
3391
cabf85c3
L
33922009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3393 Uros Bizjak <ubizjak@gmail.com>
3394
3395 * config/i386/cpuid.h (bit_MOVBE): New.
3396
3397 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3398
3399 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3400 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3401 (ix86_handle_option): Handle OPT_mmovbe.
3402 (ix86_target_string): Add -mmovbe.
3403 (pta_flags): Add PTA_MOVBE.
3404 (processor_alias_table): Add PTA_MOVBE to "atom".
3405 (override_options): Handle PTA_MOVBE.
3406
3407 * config/i386/i386.h (TARGET_MOVBE): New.
3408
3409 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3410 (*bswapsi_movbe): New.
3411 (*bswapdi_movbe): Likewise.
3412 (bswapdi2): Renamed to ...
3413 (*bswapdi_1): This.
3414 (bswapdi2): New expander.
3415
3416 * config/i386/i386.opt (mmovbe): New.
3417
3418 * doc/invoke.texi: Document -mmovbe.
3419
9fefa0aa
TG
34202009-05-21 Taras Glek <tglek@mozilla.com>
3421
3422 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3423 * gcc-plugin.h (plugin_init): Updated signature.
3424 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3425 * doc/plugins.texi (plugin_init): Updated documention to reflect
3426 API change.
9fefa0aa
TG
3427 * doc/plugins.texi (plugin_name_args): Added to documention.
3428
1ea9fe56
MM
34292009-05-21 Mark Mitchell <mark@codesourcery.com>
3430
3431 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3432 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3433
52f84254
SZ
34342009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3435
3436 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3437 JUMP_TABLE_DATA_P predicates where applicable.
3438 * config/i386/predicates.md: Ditto.
3439 * config/i386/sse.md: Ditto.
3440
a952487c
JJ
34412009-05-21 Jakub Jelinek <jakub@redhat.com>
3442
93cac287
JJ
3443 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3444 operand2 -128 override length_immediate attribute to 1.
3445 * config/i386/predicates.md (constm128_operand): New predicate.
3446
a952487c
JJ
3447 * config/i386/i386.c (memory_address_length): Handle %r12
3448 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3449 also check REGNO.
3450 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3451 mode look through optional ZERO_EXTEND and SUBREG.
3452 * config/i386/i386.md (R12_REG): New define_constant.
3453 (prefix_data16): For sse unit set also for MODE_TI insns.
3454 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3455 insns set if operand 1 is ext_QIreg_operand.
3456 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3457 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3458 immediate.
3459 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3460 mode from MODE_DI to MODE_SI.
3461 (movdi_1_rex64): Override modrm and length_immediate attributes
3462 only for movabs (TYPE_IMOV, alternative 2).
3463 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3464 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3465 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3466 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3467 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3468 prefix_rex attribute if DImode.
3469 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3470 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3471 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3472 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3473 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3474 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3475 Likewise. For TYPE_IMOV clear length_immediate attribute.
3476 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3477 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3478 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3479 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3480 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3481 or one operand TYPE_ISHIFT.
3482 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3483 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3484 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3485 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3486 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3487 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3488 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3489 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3490 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3491 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3492 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3493 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3494 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3495 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3496 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3497 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3498 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3499 set mode attribute, don't override length attribute.
3500 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3501 to 1.
3502 (return_internal_long): Set length attribute to 2 instead of 1.
3503 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3504 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3505 prefix_rex attribute.
782dc37a
UB
3506 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3507 New predicates.
3508 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3509
64af62c2
RR
35102009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3511
3512 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3513
c166b898
ILT
35142009-05-20 Ian Lance Taylor <iant@google.com>
3515
3516 * tree.c (build_tree_list_vec_stat): New function.
3517 (ctor_to_vec): New function.
3518 (build_nt_call_vec): New function.
3519 (build_call_array): Change args to be a const pointer.
3520 (build_call_vec): New function.
3521 * tree.h (build_nt_call_vec): Declare.
3522 (build_tree_list_vec_stat): Declare.
3523 (build_tree_list_vec): Define.
3524 (build_call_array): Update declaration.
3525 (build_call_vec): Declare.
3526 (ctor_to_vec): Declare.
3527 * c-common.c (tree_vector_cache): New static variable.
3528 (make_tree_vector): New function.
3529 (release_tree_vector): New function.
3530 (make_tree_vector_single): New function.
3531 (make_tree_vector_copy): New function.
3532 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3533 (make_tree_vector_single, make_tree_vector_copy): Declare.
3534 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3535 (c_parser_expr_list): Don't manage cache here, instead call
3536 make_tree_vector.
3537 (c_parser_release_expr_list): Remove static function.
3538 (c_parser_vec_to_tree_list): Remove static function.
3539 (c_parser_attributes): Call build_tree_list_vec instead of
3540 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3541 c_parser_release_expr_list.
3542 (c_parser_postfix_expression_after_primary): Likewise.
3543 (c_parser_objc_keywordexpr): Likewise.
3544
40449a90
SL
35452009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3546
3547 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3548 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3549 TARGET_CONVERT_TO_TYPE.
3550 * hooks.c (hook_tree_const_tree_null): Define.
3551 * hooks.h (hook_tree_const_tree_null): Declare.
3552 * target.h (struct gcc_target): Add invalid_parameter_type,
3553 invalid_return_type, promoted_type, and convert_to_type fields.
3554 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3555 (TARGET_INVALID_RETURN_TYPE): Define.
3556 (TARGET_PROMOTED_TYPE): Define.
3557 (TARGET_CONVERT_TO_TYPE): Define.
3558 (TARGET_INITIALIZER): Update for new fields.
3559 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3560 (grokparms): Check targetm.invalid_parameter_type.
3561 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3562 * c-convert.c (convert): Check targetm.convert_to_type.
3563
642d97ff
AN
35642009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3565
3566 * config/mips/mips.md (*extenddi_truncate<mode>,
3567 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3568 defintions.
3569 (*extendhi_truncateqi): New define_insn_and_sptit.
3570
776248b8
JJ
35712009-05-20 Jakub Jelinek <jakub@redhat.com>
3572
3573 PR middle-end/40204
3574 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3575 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3576
d98e8686
EB
35772009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3578
3579 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3580 the operand of VIEW_CONVERT_EXPR.
3581
37c50435
L
35822009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3583
3584 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3585 extended family and model for Intel processors. Support Intel Atom.
37c50435 3586
dbb6088f
OH
35872009-05-20 Olivier Hainque <hainque@adacore.com>
3588
3589 * gstab.h (stab_code_type): Define, to be used instead of the
3590 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3591 notice.
3592 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3593 occurrences by stab_code_type.
3594 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3595
7ec49257
MJ
35962009-05-20 Martin Jambor <mjambor@suse.cz>
3597
3598 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3599 (sra_insert_before): Likewise.
3600 (sra_insert_after): Likewise.
3601 (sra_init_cache): Likewise.
3602 (sra_type_can_be_decomposed_p): Likewise.
3603 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3604 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3605 (sra_insert_before): Likewise.
3606 (sra_insert_after): Likewise.
3607 (sra_init_cache): Likewise.
3608 (insert_edge_copies_seq): Made static and moved upwards.
3609
3610 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3611 case.
3612
3613 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3614
3615 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3616 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3617 simple copies.
3618
0328ae4d
RG
36192009-05-20 Richard Guenther <rguenther@suse.de>
3620
3621 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3622 with mismatched comparison modes.
3623
a7994a57 36242009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3625
a7994a57 3626 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3627 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3628 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3629 with shifts for Thumb2.
3630 (orsi_notsi): New for orn.
3631 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3632 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3633 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3634 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3635 Don't invert remainder for IOR.
a7994a57 3636
e36dc339
ZD
36372009-05-19 Zdenek Dvorak <ook@ucw.cz>
3638
3639 PR tree-optimization/40087
3640 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3641 number_of_iterations_ne): Rename never_infinite argument.
3642 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3643 number_of_iterations_le): Handle pointer-type ivs when
3644 exit_must_be_taken is false.
3645 (number_of_iterations_cond): Do not always assume that
3646 exit_must_be_taken if the control variable is a pointer.
3647
5cfd5d9b
AP
36482009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3649
3650 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3651 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3652
2f1c7156
L
36532009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3654
3655 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3656 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3657
7bb27074
MLI
36582009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3659
3660 PR c/40172
3661 * c.opt (Wlogical-op): Disabled by default.
3662 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3663 Wextra.
3664 * doc/invoke.texi (Wlogical-op): Likewise.
3665
5aefc6a0
EB
36662009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3667
3668 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3669 into CASE_CONVERT.
3670 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3671 Propagate the type of the first operand.
3672 <ASSERT_EXPR>: Simplify.
3673 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3674 Rewrite using the RHS code as discriminant.
3675 <NOP_EXPR>: Turn into CASE_CONVERT.
3676 <PLUS_EXPR>: Propagate the type of the first operand.
3677
f3a83111
SE
36782009-05-19 Steve Ellcey <sje@cup.hp.com>
3679
3680 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3681 (ia64_dconst_0_375): New.
3682 * config/ia64/ia64.c (ia64_override_options): Remove
3683 -minline-sqrt-min-latency warning.
3684 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3685 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3686 * config/ia64/ia64.md (*sqrt_approx): Remove.
3687 (sqrtsf2): Remove #if 0.
3688 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3689 (sqrtdf): Remove assert.
3690 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3691 (sqrtxf2): Remove #if 0.
3692 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3693 * div.md (sqrt_approx_rf): New.
3694 (sqrtsf2_internal_thr): New implementation.
3695 (sqrtsf2_internal_lat): New.
3696 (sqrtdf2_internal_thr: New implementation.
3697 (sqrtxf2_internal): New implementation.
3698
1ffc7157
FXC
36992009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3700 Hans-Peter Nilsson <hp@axis.com>
3701
3702 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3703 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3704 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3705 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3706 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3707 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3708 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3709 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3710 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3711 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3712 * c-common.c: ...from here.
3713
db91d9ef
MLI
37142009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3715
f3afc8a7 3716 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3717
bbb9d91f
KG
37182009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3719
3720 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3721
ce883f54
BE
37222009-05-19 Ben Elliston <bje@au.ibm.com>
3723
3724 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3725 assignments with memcpy calls.
3726 (add_fdes): Likewise.
3727 (binary_search_unencoded_fdes): Likewise.
3728 (linear_search_fdes): Eliminate type puns.
3729
377f099a
RG
37302009-05-19 Richard Guenther <rguenther@suse.de>
3731
3732 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3733 not falsely claim to have propagated into all uses.
3734
848bc769
BE
37352009-05-19 Ben Elliston <bje@au.ibm.com>
3736
3737 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3738 version to v3.0.
3739
1bb99877
KK
37402009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3741
3742 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3743 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3744 (TARGET_LEGITIMATE_ADDRESS_P): New.
3745 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3746 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3747
82725547
DS
37482009-05-18 Dodji Seketeli <dodji@redhat.com>
3749
3750 PR debug/40109
3751 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3752 child of the containing namespace's DIE.
3753
f6a1e430
AN
37542009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3755
3756 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3757 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3758 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3759 extend patterns.
3760
6a90d232
L
37612009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3762
3763 PR target/39942
3764 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3765 gen_align with gen_pad.
3766 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3767 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3768
3769 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3770 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3771
3772 * config/i386/i386.md (align): Renamed to ...
3773 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3774 ASM_OUTPUT_MAX_SKIP_PAD.
3775
c4406f74
AS
37762009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3777
06555043
AS
3778 * config.gcc: Fix variable syntax.
3779
c4406f74
AS
3780 PR target/39531
3781 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3782 before calling exact_log2.
3783 (output_iorsi3): Likewise.
3784 (output_xorsi3): Likewise.
3785
99052692
KK
37862009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3787
3788 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3789 for the none zero constant operand except for EQ and NE
3790 comprisons even when the first operand is R0.
3791
f4aa3848
AK
37922009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3793
3794 * config/s390/2064.md: Remove trailing whitespaces.
3795 * config/s390/2084.md: Likewise.
3796 * config/s390/constraints.md: Likewise.
3797 * config/s390/fixdfdi.h: Likewise.
3798 * config/s390/libgcc-glibc.ver: Likewise.
3799 * config/s390/s390-modes.def: Likewise.
3800 * config/s390/s390-protos.h: Likewise.
3801 * config/s390/s390.c: Likewise.
3802 * config/s390/s390.h: Likewise.
3803 * config/s390/s390.md: Likewise.
3804 * config/s390/tpf-unwind.h: Likewise.
3805
ab7256e4
MK
38062009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3807
3808 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3809
75df395f
MK
38102009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3811
3812 M68K TLS support.
3813 * configure.ac (m68k-*-*): Check if binutils support TLS.
3814 * configure: Regenerate.
3815 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3816 * config/m68k/constraints.md (Cu): New constraint.
3817 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3818 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3819 (movsi): Handle TLS symbols.
3820 (addsi3_5200): Handle XTLS symbols, indent.
3821 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3822 (m68k_tls_reference_p): Declare.
3823 (m68k_legitimize_address): Declare.
3824 (m68k_unwrap_symbol): Declare.
3825 * config/m68k/m68k.opt (mxtls): New option.
3826 * config/m68k/m68k.c (ggc.h): Include.
3827 (m68k_output_dwarf_dtprel): Implement hook.
3828 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3829 (m68k_expand_prologue): Load GOT pointer when function needs it.
3830 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3831 (m68k_legitimate_constant_address_p): Same.
3832 (m68k_decompose_address): Handle TLS references.
3833 (m68k_get_gp): New static function.
3834 (enum m68k_reloc): New contants.
3835 (TLS_RELOC_P): New macro.
3836 (m68k_wrap_symbol): New static function.
3837 (m68k_unwrap_symbol): New function.
3838 (m68k_final_prescan_insn_1): New static function.
3839 (m68k_final_prescan_insn): New function.
3840 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3841 functions.
3842 (legitimize_pic_address): Handle TLS references..
3843 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3844 (m68k_libcall_value_in_a0_p)
3845 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3846 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3847 (m68k_legitimize_tls_address): Handle TLS references.
3848 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3849 New functions.
3850 (m68k_legitimize_address): Handle TLS symbols.
3851 (m68k_get_reloc_decoration): New static function.
3852 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3853 UNSPEC_RELOC32.
3854 (m68k_output_dwarf_dtprel): Implement hook.
3855 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3856 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3857 m68k_call_* routines.
3858 (sched_attr_op_type): Handle TLS symbols.
3859 (gt-m68k.h): Include.
3860 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3861 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3862
8b75fc9b
MJ
38632009-05-18 Martin Jambor <mjambor@suse.cz>
3864
3865 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3866 (visit_store_addr_for_mod_analysis): New function.
3867 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3868 (determine_cst_member_ptr): Use gimple_assign_single_p.
3869 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3870 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3871 operands. Don't check number of operands of a NOP_EXPR.
3872
f133d4a2
EF
38732009-05-18 Eric Fisher <joefoxreal@gmail.com>
3874
3875 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3876
ae8af500
L
38772009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3878
3879 PR c/40172
3880 * c-common.c (warn_logical_operator): Don't warn if one of
3881 expression isn't always true or false.
3882
25e8fde8
KT
38832009-05-17 Kai Tietz <kai.tietz@onevision.com>
3884
ae8af500
L
3885 * config/i386/biarch32.h: New file.
3886 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3887
ef67af22
AN
38882009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3889
3890 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3891 *zero_extend<mode>_truncqi): Merge these into ...
3892 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3893 Name the pattern following this as *zero_extendhi_truncqi.
3894
e2d87023
BL
38952009-05-16 Brad Lucier <lucier@math.purdue.edu>
3896
3897 PR middle-end/39301
3898 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3899 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3900 (output_info): Make field HOST_WIDEST_INT.
3901 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3902 (dump_bitmat_statistics): Same.
3903
428ddbf0
FXC
39042009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3905
3906 * config.gcc (use_gcc_stdint): Set to wrap.
3907 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3908 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3909 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3910 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3911 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3912 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3913 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3914 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3915
1ab8a8c2
JM
39162009-05-16 Joseph Myers <joseph@codesourcery.com>
3917
3918 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3919 tune_64.
3920 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3921 Move definitions earlier.
3922 (OPT_ARCH64, OPT_ARCH32): Define.
3923 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3924 and tune_64.
3925
70544f44
RE
39262009-05-16 Richard Earnshaw <rearnsha@arm.com>
3927
3928 PR target/40153
3929 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3930 implies.
3931
6241ded1
RE
39322009-05-16 Richard Earnshaw <rearnsha@arm.com>
3933
3934 * arm.md (movdi2): Copy non-reg values to DImode registers.
3935
a99c6711
JJ
39362009-05-16 Jakub Jelinek <jakub@redhat.com>
3937
40a8f07a
JJ
3938 PR target/39942
3939 * final.c (label_to_max_skip): New function.
3940 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3941 CODE_LABEL_NUMBER <= max_labelno.
3942 * output.h (label_to_max_skip): New prototype.
3943 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3944 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3945 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3946 Handle CODE_LABELs with >= 16 byte alignment or with
3947 max_skip == (1 << align) - 1.
3948 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3949 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3950
a99c6711
JJ
3951 PR target/39942
3952 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3953 .p2align 3 if MAX_SKIP is smaller than 7.
3954 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3955
7e5487a2
ILT
39562009-05-15 Ian Lance Taylor <iant@google.com>
3957
3958 * alias.c (struct alias_set_entry_d): Rename from struct
3959 alias_set_entry. Change all uses.
3960 * except.c (struct call_site_record_d): Rename from struct
3961 call_site_record. Change all uses.
3962 * except.h (struct eh_region_d): Rename from struct eh_region.
3963 Change all uses.
3964 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3965 Change all uses.
3966 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3967 ivtype_map_elt. Change all uses.
3968 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3969 Change all uses.
3970 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3971 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3972 Change all uses.
3973 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3974 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3975 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3976 * optabs.h (struct optab_d): Rename from struct optab. Change all
3977 uses.
3978 (struct convert_optab_d): Rename from struct convert_optab.
3979 Change all uses.
3980 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3981 ipa_opt_pass. Change all uses.
3982 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3983 all uses.
3984
3985 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3986 defined as a typedef.
3987 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3988 defined as a tag.
3989
a243fb4a
MLI
39902009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3991
3992 PR 16302
3993 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3994 declaration to...
3995 (merge_ranges): Returns bool.
3996 * tree.h (make_range): .. to here.
3997 (build_range_check): Likewise.
3998 (merge_ranges): Likewise. Renamed from merge_ranges.
3999 * c-typeck.c (parser_build_binary_op): Update calls to
4000 warn_logical_operator.
4001 * c-common.c (warn_logical_operator): Add new warning.
4002 * c-common.h (warn_logical_operator): Update declaration.
4003
1b53c5f3
MLI
40042009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4005
782dc37a 4006 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 4007
c128599a
KG
40082009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4009
f9bab007
KG
4010 * doc/install.texi: Document MPC requirements, flags etc.
4011
c128599a
KG
4012 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4013 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4014 Evaluate constant arguments.
4015 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4016 (fold_builtin_1): Likewise, also evaluate constant arguments.
4017 Remove superfluous break.
4018 (do_mpc_ckconv): New.
4019 * real.h: Include mpc.h.
4020 * toplev.c (print_version): Output MPC version info if available.
4021
d33e4b70
SL
40222009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4023
782dc37a 4024 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 4025
a02ab464
L
40262009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4027
4028 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4029 only once.
4030
796bda22
JH
40312009-05-15 Jan Hubicka <jh@suse.cz>
4032
4033 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4034 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4035 (try_inline): Fix return value.
4036 (cgraph_decide_inlining_incrementally): Honor new value.
4037 (cgraph_early_inlining): Handle indirect inlining.
4038 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4039
d88e5c37
JH
40402009-05-15 Jan Hubicka <jh@suse.cz>
4041
4042 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4043 * cgraphunit.c (cgraph_finalize_function): Set it.
4044 (cgraph_expand_function): Use it.
4045
ae63687c
SL
40462009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4047
4048 * real.c (encode_ieee_half): Define.
4049 (decode_ieee_half): Define.
4050 (ieee_half_format): Define.
4051 (arm_half_format): Define.
4052 * real.h (ieee_half_format): Declare.
4053 (arm_half_format): Declare.
4054
1bd74ad9
SL
40552009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4056
4057 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
4058 swapped, and reversed optabs exist before trying to use them.
4059
dc34db56
PB
40602009-05-15 Paul Brook <paul@codesourcery.com>
4061 Sandra Loosemore <sandra@codesourcery.com>
4062
dc34db56
PB
4063 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4064 loads. Allow PRE_DEC.
4065 (output_move_neon): Handle PRE_DEC.
4066 (arm_print_operand): Add 'A' for neon structure loads.
4067 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4068 * config/arm/neon.md (neon_mov): Update comment.
4069 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4070 calls.
4071 (Um): New constraint.
4072
1d405d7b
JH
40732009-05-15 Jan Hubicka <jh@suse.cz>
4074
4075 Revert the following patch until testsuite fallout is fixed:
4076 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4077 * cgraph.h (struct inline_summary): New filed self_wize,
4078 size_inlining_benefit, self_time and time_inlining_benefit.
4079 (struct cgraph_global_info): Replace insns by time ans size fields.
4080 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4081 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4082 (ipcp_update_callgraph): Do not touch function bodies.
4083 * ipa-inline.c: Include except.h
782dc37a 4084 (MAX_TIME): New constant.
1d405d7b
JH
4085 (overall_insns): Remove
4086 (overall_size, max_benefit): New static variables.
4087 (cgraph_estimate_time_after_inlining): New function.
4088 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4089 (cgraph_clone_inlined_nodes): Update size.
4090 (cgraph_mark_inline_edge): Update size.
4091 (cgraph_estimate_growth): Use size info.
4092 (cgraph_check_inline_limits): Check size.
4093 (cgraph_default_inline_p): Likewise.
4094 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4095 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4096 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4097 and times.
1d405d7b 4098 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4099 (cgraph_decide_inlining_incrementally): Likewise; honor
4100 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4101 (likely_eliminated_by_inlining_p): New predicate.
4102 (estimate_function_body_sizes): New function.
4103 (compute_inline_parameters): Use it.
4104 * except.c (must_not_throw_labels): New function.
4105 * except.h (must_not_throw_labels): Declare.
4106 * tree-inline.c (init_inline_once): Kill inlining_weigths
4107 * tree-ssa-structalias.c: Avoid uninitialized warning.
4108 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4109 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4110 (PARAM_INLINE_CALL_COST): Remove.
4111 (PARAM_EARLY_INLINING_INSNS): New.
4112
7ffa47ca
RG
41132009-05-15 Richard Guenther <rguenther@suse.de>
4114
4115 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4116 not TODO_update_ssa.
4117
828552ed
RG
41182009-05-15 Richard Guenther <rguenther@suse.de>
4119
4120 PR tree-optimization/39999
4121 * gimple.h (gimple_expr_type): Use the expression type looking
4122 through useless conversions.
4123 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4124 (vn_nary_op_insert_stmt): Likewise.
4125 (simplify_binary_expression): Likewise.
4126
248fc9f3
RG
41272009-05-15 Richard Guenther <rguenther@suse.de>
4128
4129 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4130 New options, enabled by default.
4131 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4132 Document.
4133 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4134 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4135 * tree-ssa-structalias.c (gate_tree_pta): New function.
4136 (pass_build_alias): Use it.
4137
16b29cc4
JM
41382009-05-15 Joseph Myers <joseph@codesourcery.com>
4139
4140 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4141 recurse on an invariant address if a conversion from a pointer
4142 type to a wider integer type is involved.
4143
125cae84
JH
41442009-05-15 Jan Hubicka <jh@suse.cz>
4145
4146 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4147 * cgraph.h (struct inline_summary): New filed self_wize,
4148 size_inlining_benefit, self_time and time_inlining_benefit.
4149 (struct cgraph_global_info): Replace insns by time ans size fields.
4150 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4151 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4152 (ipcp_update_callgraph): Do not touch function bodies.
4153 * ipa-inline.c: Include except.h
782dc37a 4154 (MAX_TIME): New constant.
125cae84
JH
4155 (overall_insns): Remove
4156 (overall_size, max_benefit): New static variables.
4157 (cgraph_estimate_time_after_inlining): New function.
4158 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4159 (cgraph_clone_inlined_nodes): Update size.
4160 (cgraph_mark_inline_edge): Update size.
4161 (cgraph_estimate_growth): Use size info.
4162 (cgraph_check_inline_limits): Check size.
4163 (cgraph_default_inline_p): Likewise.
4164 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4165 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4166 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4167 and times.
125cae84 4168 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4169 (cgraph_decide_inlining_incrementally): Likewise; honor
4170 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4171 (likely_eliminated_by_inlining_p): New predicate.
4172 (estimate_function_body_sizes): New function.
4173 (compute_inline_parameters): Use it.
4174 * except.c (must_not_throw_labels): New function.
4175 * except.h (must_not_throw_labels): Declare.
4176 * tree-inline.c (init_inline_once): Kill inlining_weigths
4177 * tree-ssa-structalias.c: Avoid uninitialized warning.
4178 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4179 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4180 (PARAM_INLINE_CALL_COST): Remove.
4181 (PARAM_EARLY_INLINING_INSNS): New.
4182 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4183 (inline-call-cost): Remove.
4184 (early-inlining-insns): New.
4185
84fb43a1
EB
41862009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4187
4188 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4189 for bounds.
4190 (print_int_cst_bounds_in_octal_p): Likewise.
4191 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4192 with subtypes.
4193 * dwarf2out.c (base_type_die): Likewise.
4194 (is_subrange_type): Delete.
4195 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4196 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4197 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4198 if the destination type is boolean.
84fb43a1
EB
4199 (build_range_check): Do not special-case subtypes.
4200 (fold_sign_changed_comparison): Likewise.
4201 (fold_unary): Likewise.
4202 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4203 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4204 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4205 * tree.c (subrange_type_for_debug_p): New predicate based on the
4206 former is_subrange_type.
84fb43a1
EB
4207 * tree.h (subrange_type_for_debug_p): Declare.
4208 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4209 (convert_affine_scev): Remove call to above function.
4210 (chrec_convert_aggressive): Likewise.
4211 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4212 false for conversions involving subtypes.
4213 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4214 (vrp_val_min): Likewise.
4215 (needs_overflow_infinity): Likewise.
4216 (extract_range_from_unary_expr): Likewise.
4217
331d9186
PB
42182009-05-15 Paolo Bonzini <bonzini@gnu.org>
4219
e9351712
L
4220 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4221 * config/frv/frv.c: Likewise.
4222 * config/s390/s390.c: Likewise.
4223 * config/sparc/sparc.h: Likewise.
4224 * config/i386/i386.h: Likewise.
4225 * config/i386/i386.c: Likewise.
4226 * config/crx/crx.c: Likewise.
4227 * config/m68hc11/m68hc11.h: Likewise.
4228 * config/iq2000/iq2000.c: Likewise.
4229 * config/mn10300/mn10300.h: Likewise.
4230 * config/mn10300/mn10300.c: Likewise.
4231 * config/m68k/m68k.c: Likewise.
4232 * config/rs6000/rs6000.c: Likewise.
4233 * config/rs6000/xcoff.h: Likewise.
4234 * config/rs6000/linux64.h: Likewise.
4235 * config/rs6000/sysv4.h: Likewise.
4236 * config/score/score3.c: Likewise.
4237 * config/score/score7.c: Likewise.
4238 * config/score/score.c: Likewise.
4239 * config/arm/arm.md: Likewise.
4240 * config/mips/mips.c: Likewise.
4241 * config/mips/mips.md: Likewise.
4242 * config/bfin/bfin.h: Likewise.
4243 * config/pa/pa.c: Likewise.
4244 * config/pa/constraints.md: Likewise.
4245
4246 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4247 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4248 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4249
09639a83
ILT
42502009-05-14 Ian Lance Taylor <iant@google.com>
4251
4252 * passes.c (finish_optimization_passes): Change i to int.
4253 * plugin.c (plugins_active_p): Change event to int.
4254 (dump_active_plugins): Likewise.
4255 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4256 Add cast.
4257 * tree.c (tree_range_check_failed): Change c to unsigned int.
4258 (omp_clause_range_check_failed): Likewise.
4259 (build_common_builtin_nodes): Change mode to int. Add cast.
4260 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4261 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4262
4263 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4264 ++ or -- with a variable of enum type.
4265
c04a56bf
SB
42662009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4267
4268 PR driver/40144
4269 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4270
237ee620
SB
42712009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4272
4273 * store-motion.c: Do not include params.h
4274 * Makefile.in: Fix dependencies for various files.
4275
1154c4fa
SB
42762009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4277
4278 * auto-inc-dec.c: Fix pass description, remove apparent
4279 accidental duplication.
4280
61c27353
L
42812009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4282
4283 PR middle-end/40147
4284 * ipa-utils.h (memory_identifier_string): Moved to ...
4285 * tree.h (memory_identifier_string): Here. Add GTY(()).
4286
c6c3dba9
PB
42872009-05-14 Paolo Bonzini <bonzini@gnu.org>
4288
4289 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4290 in the former documentation of...
4291 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4292 * ira-conflicts.c (get_dup_num): Use address_operand.
4293 * targhooks.c (default_legitimate_address_p): New.
4294 * targhooks.h (default_legitimate_address_p): New.
4295 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4296 Call hook.
4297 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4298 * target.h (struct target): Add legitimate_address_p.
4299 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4300 (TARGET_INITIALIZER): Include it.
4301
4302 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4303 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4304 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4305 (TARGET_LEGITIMATE_ADDRESS_P): New.
4306
4307 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4308 (REG_OK_STRICT_P): Delete.
4309 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4310 (frv_legitimate_address_p_1): ... this.
4311 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4312 (frv_legitimate_address_p_1): ... the renamed old
4313 frv_legitimate_address_p.
4314 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4315 (TARGET_LEGITIMATE_ADDRESS_P): New.
4316
4317 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4318 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4319 * config/s390/s390.c (legitimate_address_p): Rename to...
4320 (s390_legitimate_address_p): ... this, make static.
4321 (legitimize_address): Adjust call.
4322 (TARGET_LEGITIMATE_ADDRESS_P): New.
4323 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4324
4325 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4326 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4327 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4328 (TARGET_LEGITIMATE_ADDRESS_P): New.
4329
4330 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4331 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4332 * config/spu/spu.c (spu_legitimate_address): Rename to...
4333 (spu_legitimate_address_p): ... this, make static.
4334 (TARGET_LEGITIMATE_ADDRESS_P): New.
4335
4336 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4337 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4338 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4339 (sparc_legitimate_address_p): ... this, make static and return bool.
4340 (legitimize_address): Adjust call.
4341 (TARGET_LEGITIMATE_ADDRESS_P): New.
4342
4343 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4344 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4345 * config/i386/i386.c (legitimate_address_p): Rename to...
4346 (ix86_legitimate_address_p): ... this, make static.
4347 (constant_address_p): Move after it, adjust call.
4348 (TARGET_LEGITIMATE_ADDRESS_P): New.
4349
4350 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4351 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4352 * config/avr/avr.c (legitimate_address_p): Rename to...
4353 (avr_legitimate_address_p): ... this, make static.
4354 (legitimize_address): Adjust call.
4355 (TARGET_LEGITIMATE_ADDRESS_P): New.
4356
4357 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4358 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4359 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4360 (TARGET_LEGITIMATE_ADDRESS_P): New.
4361
4362 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4363 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4364 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4365 (TARGET_LEGITIMATE_ADDRESS_P): New.
4366
4367 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4368 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4369 Remove.
4370 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4371 Make static.
4372 (TARGET_LEGITIMATE_ADDRESS_P): New.
4373
4374 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4375 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4376 Remove.
4377 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4378 Rename to...
4379 (m68hc11_legitimate_address_p): ... this, make static.
4380 (go_if_legitimate_address_internal): Rename to...
4381 (m68hc11_legitimate_address_p_1): ... this.
4382 (legitimize_address): Adjust call.
4383 (TARGET_LEGITIMATE_ADDRESS_P): New.
4384
4385 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4386 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4387 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4388 (TARGET_LEGITIMATE_ADDRESS_P): New.
4389
4390 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4391 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4392 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4393 (mn10300_legitimate_address_p): ... this, make static.
4394 (TARGET_LEGITIMATE_ADDRESS_P): New.
4395
4396 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4397 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4398 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4399 (TARGET_LEGITIMATE_ADDRESS_P): New.
4400
4401 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4402 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4403 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4404 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4405 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4406 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4407 (rs6000_legitimate_address_p): ... this, make static.
4408 (TARGET_LEGITIMATE_ADDRESS_P): New.
4409 (REG_MODE_OK_FOR_BASE_P): Delete.
4410 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4411
4412 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4413 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4414 Delete.
4415 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4416 static, adjust types.
4417 (TARGET_LEGITIMATE_ADDRESS_P): New.
4418
4419 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4420 * config/score/score.c (score_address_p): Rename to...
4421 (score_legitimate_address_p): ... this.
4422 (TARGET_LEGITIMATE_ADDRESS_P): New.
4423 * config/score/score3.c (score3_address_p): Rename to...
4424 (score3_legitimate_address_p): ... this.
4425 * config/score/score7.c (score7_address_p): Rename to...
4426 (score7_legitimate_address_p): ... this.
4427
4428 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4429 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4430 GO_IF_LEGITIMATE_ADDRESS): Delete.
4431 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4432 thumb2_legitimate_address_p): Delete.
4433 (arm_legitimate_address_p): Rename to...
4434 (arm_legitimate_address_outer_p): ... this.
4435 * config/arm/constraints.md ("Uq"): Adjust call.
4436 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4437 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4438 to...
c6c3dba9 4439 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4440 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4441 static.
c6c3dba9
PB
4442 (TARGET_LEGITIMATE_ADDRESS_P): New.
4443
4444 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4445 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4446 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4447 (TARGET_LEGITIMATE_ADDRESS_P): New.
4448
4449 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4450 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4451 * config/vax/vax.c (legitimate_address_p): Rename to...
4452 (vax_legitimate_address_p): ... this, make static.
4453 (TARGET_LEGITIMATE_ADDRESS_P): New.
4454
4455 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4456 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4457 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4458 (TARGET_LEGITIMATE_ADDRESS_P): New.
4459
4460 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4461 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4462 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4463 (mmix_legitimate_address_p): ... this, make static.
4464 (TARGET_LEGITIMATE_ADDRESS_P): New.
4465
4466 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4467 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4468 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4469 (TARGET_LEGITIMATE_ADDRESS_P): New.
4470
3bd0d9c8
PB
44712009-05-14 Paolo Bonzini <bonzini@gnu.org>
4472
4473 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4474 of MODE_COMPLEX_INT.
4475
fe049033
RO
44762009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4477
4478 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4479 LCT_NORMAL in function call.
4480 * mips-tdump.c (print_file_desc): Add cast to enum type.
4481 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4482 (mark_stabs): Add casts to enum types.
4483 (parse_stabs_common): Add casts to enum types.
16f7ad42 4484
b0907a6c
AN
44852009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4486
4487 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4488 Check for invalid values of LETTER.
4489
d1c8e08a
TG
44902009-05-13 Taras Glek <tglek@mozilla.com>
4491
f3afc8a7
UB
4492 * attribs.c (register_attribute): moved out attribute registration
4493 into register_attribute.
4494 * doc/plugins.texi: Documented register_attribute and
4495 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4496 * gcc-plugin.h: Added forward decl for register_attribute.
4497 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4498 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4499 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4500
4ed7f970
DK
45012009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4502
4503 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4504 values even in sentinel and empty entries.
4505 (ms_printf_flag_specs): Likewise.
4506 (ms_scanf_flag_specs): Likewise.
4507 (ms_strftime_flag_specs): Likewise.
4508 (ms_print_char_table): Likewise.
4509 (ms_scan_char_table): Likewise.
4510 (ms_time_char_table): Likewise.
4511
3d8fa148
DK
45122009-05-13 Doug Kwan <dougkwan@google.com>
4513
4514 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4515
f06257d3
AN
45162009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4517
4518 * config/mips/mips.md (store): Add attributes for QI and HI.
4519 Update comment.
4520 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4521 (truncdi<mode>2): ... this new pattern.
4522
fb201767
BH
45232009-05-13 Brad Hards <bradh@kde.org>
4524
4525 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4526
c7bda60e 45272009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4528 Ben Elliston <bje@au.ibm.com>
4529
4530 PR middle-end/40035
4531 * dse.c (check_mem_read_rtx): Guard against width == -1.
4532
ce985b43
MM
45332009-05-13 Michael Matz <matz@suse.de>
4534
4535 PR middle-end/39976
4536 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4537 (trivially_conflicts_p): New function.
4538 (insert_backedge_copies): Use it.
4539
7de1d221
JJ
45402009-05-13 Janis Johnson <janis187@us.ibm.com>
4541
4542 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4543 (handle_stdc_pragma): Use new enum constant names.
4544 (handle_pragma_float_const_decimal64): Ditto.
4545
bfefafc6
ILT
45462009-05-13 Ian Lance Taylor <iant@google.com>
4547
4548 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4549 tree.def.
4550
286c4fcb
NS
45512009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4552
4553 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4554 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4555 multilibs.
4556 * config/m68k/m68k.h (FL_UCLINUX): Define.
4557
ebaa6ea7
JH
45582009-05-13 Jan Hubicka <jh@suse.cz>
4559
4560 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4561
2b703e1a
KK
45622009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4563
4564 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4565 unless -fschedule-insns is specified.
4566
c3537723
KK
45672009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4568
4569 PR target/39561
4570 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4571 TARGET_EXPAND_CBRANCHDI4.
4572 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4573 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4574 (cmpeqdi): Fix comment.
4575
cdeed45a
KK
45762009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4577
4578 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4579 (sh_legitimate_address_p): Likewise.
4580 * config/sh/sh.c (sh_legitimate_index_p): New.
4581 (sh_legitimate_address_p): Likewise.
4582 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4583 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4584 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4585 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4586 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4587 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4588 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4589 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4590 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4591
02f0b13a
JH
45922009-05-12 Jan Hubicka <jh@suse.cz>
4593
4594 * tree-inline.c (estimate_operator_cost): Add operands;
4595 when division happens by constant, it is cheap.
4596 (estimate_num_insns): Loads and stores are not having cost of 0;
4597 EH magic stuff is cheap; when computing runtime cost of switch,
4598 use log2 base of amount of its cases; builtin_expect has cost of 0;
4599 compute cost for moving return value of call.
4600 (init_inline_once): Initialize time_based flags.
4601 * tree-inline.h (eni_weights_d): Add time_based flag.
4602
ecb7f6de
PB
46032009-05-12 Paolo Bonzini <bonzini@gnu.org>
4604
4605 * df-core.c: Update head documentation.
4606
c24151ce
MM
46072009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4608
4609 PR bootstrap/40118
4610 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4611 shadowing exisiting variable op1.
4612
fbdf817d
UB
46132009-05-12 Uros Bizjak <ubizjak@gmail.com>
4614
704bf7c8 4615 PR target/37179
fbdf817d
UB
4616 * config/i386/driver-i386.c (processor_signatures): New enum.
4617 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4618 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4619 processor signature to detect geode processor.
4620
5e8d1826
PB
46212009-05-12 Paolo Bonzini <bonzini@gnu.org>
4622
4623 Revert:
4624
4625 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4626
4627 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4628 causes spurious differences between trunk and cond-optab branch.
4629
f90b7a5a
PB
46302009-05-12 Paolo Bonzini <bonzini@gnu.org>
4631
fbdf817d
UB
4632 * dojump.c (compare_from_rtx): Delete.
4633 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4634 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4635 if the comparison does not satisfy the predicate; test predicates for
4636 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4637 further if one existing pattern fails.
fbdf817d 4638 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4639 (prepare_operand): Declare it.
fbdf817d 4640 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4641 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4642 HAVE_conditional_trap, emit_cmp_insn): Delete.
4643 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4644 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4645 Accept other parameters by value.
4646 (prepare_operand): Make non-static.
4647 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4648 other parameters by value. Try to widen operands here based on
4649 an optab_methods argument and looking at cbranch_optab.
4650 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4651 loop. Use cbranch_optab directly.
4652 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4653 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4654 assertion.
4655 (emit_conditional_move, emit_conditional_add): Inline what's needed
4656 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4657 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4658 with COMPARE. Move cmov_optab and cstore_optab above
4659 with cbranch_optab, move cmp_optab down with ucmp_optab,
4660 remove tst_otpab. Do not initialize trap_rtx.
4661 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4662 for trap code. Do not check HAVE_conditional_trap. Use
4663 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4664 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4665 (OTI_ctrap, ctrap_optab): New.
4666 (tst_optab): Delete.
4667 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4668 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4669 with lookup of ctrap_optab.
f3afc8a7
UB
4670 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4671 Delete.
fbdf817d
UB
4672 (ctrap_optab): New.
4673
4674 * combine.c (combine_simplify_rtx, simplify_set): Do not
4675 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4676 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4677 COMPARE on cc0 machines.
4678 (simplify_relational_operation): Return a new expression when
4679 a COMPARE could be removed.
fbdf817d
UB
4680 * final.c (final_scan_insn): Compare cc_status values
4681 against LHS of a (compare FOO (const_int 0)) cc0 source.
4682 Also check if cc_status.value is the full compare.
f90b7a5a 4683
fbdf817d
UB
4684 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4685 (cstoreMM4): Document.
f90b7a5a 4686 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4687 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4688 (Dependent Patterns): Eliminate obsolete information referring to
4689 the old jump optimization phase.
fbdf817d 4690 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4691 of compares with 0 on cc0 machines.
4692 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4693 avoiding references to cc0. Remove text about storing operands
4694 in cmpMM.
4695 * doc/tm.texi (Condition Codes): Include blurb on different
4696 condition code representations, separate into subsections for
4697 CC0, MODE_CC and conditional execution.
4698
fbdf817d
UB
4699 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4700 alpha_emit_setcc): Accept operands and a machine mode.
4701 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4702 Get code/op0/op1 from operands, use machine mode argument
4703 instead of alpha_compare.fp_p. Emit the branch here.
4704 (alpha_emit_setcc): Likewise, and return boolean.
4705 (alpha_emit_conditional_move): Likewise. Assert that
4706 cmp_op_mode == cmp_mode, and simplify accordingly.
4707 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4708 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4709 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4710 Delete.
4711 (stack probe test): Use cbranchdi4.
4712 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4713
4714 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4715 * config/arc/arc.h (movsicc, movsfcc): Use it.
4716 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4717 (cbranchsi4, cstoresi4): New.
4718 (cmpsi, bCC and sCC expanders): Remove.
4719
4720 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4721 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4722 * config/arm/predicates.md (arm_comparison_operator): Only include
4723 floating-point operators if there is a hardware floating-point unit.
4724 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4725 deferring to cbranch_cc and cstore_cc respectively.
4726 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4727 cbranch_cc, cstore_cc): New.
4728 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4729 arm_compare_op1.
fbdf817d
UB
4730 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4731
4732 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4733 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4734 as an argument.
4735 (adjust_insn_length): Adjust calls.
4736 (avr_reorg): Handle (compare (foo) (const_int 0)).
4737 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4738 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4739 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4740 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4741 (bCC): Remove.
4742 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4743 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4744
fbdf817d
UB
4745 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4746 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4747 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4748 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4749 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4750 (bfin_optimize_loop): Use cbranch expander.
4751 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4752 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4753 (bfin_bimode_comparison_operator): ... this.
4754 (bfin_direct_comparison_operator): New.
f90b7a5a 4755
fbdf817d
UB
4756 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4757 inside (compare FOO (const_int 0)).
4758 (cris_rtx_costs): Handle ZERO_EXTRACT.
4759 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4760 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4761 (*tstdi_v32): Delete.
4762 (*cmpdi_non_v32): Add M alternative for operand 1.
4763 (cmpsi, cmp<mode>): Make private.
4764 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4765 with COMPARE.
4766 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4767
4768 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4769 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4770 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4771 (cc_reg_operand): New.
4772 (any_cond): Delete.
fbdf817d
UB
4773 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4774 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4775 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4776 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4777 crx_expand_scond): Delete.
4778
4779 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4780 (cbranchsi4): New.
4781 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4782 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4783
4784 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4785 cstoresi4, cstoresf4, cstoredf4): New.
4786 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4787 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4788 Receive the entire operands array.
4789 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4790 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4791 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4792 Get test/op0/op1 from the operands array.
4793 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4794
4795 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4796 (h8300_expand_store): New.
4797 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4798 (const_int 0)).
4799 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4800 (h8300_expand_store): New.
4801 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4802 or do not try to produce (set (cc0) REG).
4803 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4804 change a compare into a move to a scratch register. Disable some
4805 peepholes when comparing with zero.
4806 (tstsi, tsthi, tstsi, cmpqi): Make private.
4807 (cmphi): Delete.
4808 (bCC, sCC): Delete.
4809 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4810 cstoresi4): New.
f90b7a5a
PB
4811
4812 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4813 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4814 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4815 (ix86_emit_i387_log1p): Use cbranchxf2.
4816 (ix86_expand_setcc): Return void.
4817 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4818 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4819 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4820 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4821 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4822 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4823 (sCC and bCC expanders): Remove.
4824 (stack_protect_test): Use cbranchcc4.
4825
fbdf817d
UB
4826 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4827 Delete.
4828 (ia64_expand_compare): Accept three rtx by reference and return void.
4829 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4830 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4831 from *expr. Update *expr with the BImode comparison to do.
4832 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4833 cmptf, bCC, sCC, conditional_trap): Delete.
4834 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4835 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4836 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4837 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4838 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4839
4840 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4841 type of last argument.
4842 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4843 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4844 use machine mode argument instead of branch_type. Remove dead
4845 code for floating-point comparisons.
4846 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4847 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4848 Remove.
4849 (cbranchsi4, cstoresi4): New.
4850 * config/iq2000/predicates.md (reg_or_const_operand): New.
4851
4852 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4853 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4854 (b<code>_op): Rewrite to...
4855 (bcc_op): ... this, using match_operator.
4856 (s<code>_op): Rewrite to...
4857 (scc_op): ... this, using match_operator.
4858 (s<code>_24_op): Rewrite to...
4859 (scc_op_24): ... this, using match_operator.
4860 (s<code>_<mode>): Rewrite to...
4861 (cstore<mode>4): ... this, using match_operator.
4862 (s<code>_<mode>_24): Rewrite to...
4863 (cstore<mode>4_24): ... this, using match_operator.
4864 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4865 m32c_unpend_compare, m32c_expand_scc): Delete.
4866 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4867 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4868 (m32c_expand_movcc): Change NE to EQ if necessary.
4869 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4870
4871 * config/m32r/m32r-protos.h (gen_cond_store): New.
4872 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4873 (gen_cond_store): New, from sCC patterns.
4874 (m32r_expand_block_move): Use cbranchsi4.
4875 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4876 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4877 (cbranchsi4, cstoresi4): New.
4878
4879 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4880 Delete.
4881 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4882 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4883 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4884 Delete.
4885 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4886 cmphi, cmpqi, bCC): Delete.
4887 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4888 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4889 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4890 sets with COMPARE.
4891
4892 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4893 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4894 * config/m68k/constraints.md (H): New.
4895 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4896 the define_insn below.
4897 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4898 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4899 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4900 patterns): Wrap RHS with COMPARE.
4901 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4902 (*cmpdi_internal): Name this pattern.
4903 (cmpdi): Change to define_insn.
4904 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4905 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4906 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4907 predicate.
4908 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4909 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4910 (conditional_trap): Change to...
4911 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4912 (*conditional_trap): Use the ordered_comparison_operator and
4913 const1_operand predicates.
4914 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4915 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4916 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4917 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4918
4919 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4920 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4921 (mcore_gen_compare): New.
4922 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4923 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4924 (mcore_gen_compare): ... this.
4925 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4926 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4927 (stack probe pattern): Use cbranchsi4.
4928
4929 * config/mips/predicates.md (mips_cstore_operator): New.
4930 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4931 * config/mips/mips.md (any_cond): Delete.
4932 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4933 always succeed.
4934 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4935 fixuns_truncsfdi2): Use cbranch patterns.
4936 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4937 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4938 Adjust call to mips_expand_conditional_branch.
4939 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4940 cstore<GPR:mode>4.
4941 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4942 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4943 * config/mips/mips.c (cmp_operands): Delete.
4944 (mips_emit_compare): Get comparison operands from *op0/*op1.
4945 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4946 that it succeeds. Use op0/op1 instead of cmp_operands.
4947 (mips_expand_conditional_branch, mips_expand_conditional_move,
4948 mips_expand_conditional_trap): Likewise.
4949 (mips_block_move_loop): Use cbranch patterns.
4950 * config/mips/mips.h (cmp_operands): Delete.
4951
4952 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4953 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4954 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4955 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4956 (*cmpcc_folded): Rename to...
4957 (*cmpdi_folded): this.
4958 (*cmpcc): Rename to...
4959 (*cmps): ... this.
4960 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4961 (bCC): Remove.
4962 (cbranchdi4): New.
4963 (cbranchdf4): New. Handle invalid comparisons here.
4964 * config/mmix/predicates.md (float_comparison_operator): New.
4965
4966 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4967 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4968 * config/mn10300/mn10300.md (tst): Delete.
4969 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4970 Name these patterns and wrap RHS in a compare.
4971 (*cmpsi): Make this pattern private. Include tst.
4972 (*cmpsf): Make this pattern private.
4973 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4974 (compare with zero peepholes): Likewise.
4975 (bCC): Remove.
4976 (cbranchsi4, cbranchsf4): New.
4977 (casesi): Use cbranchsi4.
4978
4979 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4980 hppa_branch_type): Delete.
4981 (return_addr_rtx): Use cbranchsi4.
4982 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4983 Emit CCFPmode comparison here.
4984 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4985 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4986 hppa_branch_type): Delete.
4987 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4988 (movsicc, movdicc): Remove references to hppa_compare_op0,
4989 hppa_compare_op1 and compare_from_rtx.
4990 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4991 (casesi): Use cbranchsi4.
4992
4993 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4994 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4995 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4996 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4997 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4998 (bCC): Delete.
4999 (cbranchdf4, cbranchhi4, cbranchqi4): New.
5000 (*branch, *branch_inverted): New.
5001
5002 * config/picochip/picochip.md (cbranchhi4): Use
5003 ordered_comparison_operator.
5004 (cmphi, bCC): Remove.
5005
5006 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5007 (trap_comparison_operator): Delete.
5008 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5009 rs6000_emit_cbranch): Accept mode and operands.
5010 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5011 rs6000_compare_fp_p): Delete.
5012 (rs6000_generate_compare): Accept mode and comparison. Extract code
5013 and op0/op1 from there. Replace references to rs6000_compare_op0
5014 and rs6000_compare_op1.
5015 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5016 extract result from passed operands.
5017 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5018 extract loc from passed operands.
5019 (rs6000_emit_cmove): Likewise.
5020 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5021 rs6000_compare_fp_p): Delete.
5022 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5023 (cbranch<GPR>4, cbranch<FP>4): New.
5024 (cstore<mode>4): New. Consolidate here all choices about when to use
5025 portable or specialized sCC sequences.
5026 (stack_protect_test): Use cbranchsi4.
5027 (conditional_trap): Replace with ctrap<GPR>4.
5028 (conditional trap insn): Replace trap_comparison_operator with
5029 ordered_comparison_operator.
5030
5031 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5032 (s390_emit_prologue): Use ctrap.
5033 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5034 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5035 New predicates replacing...
5036 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5037 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5038 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5039 (add<mode>cc): Do not use s390_compare_op0/op1.
5040 (s<code>): Change to...
5041 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5042 (seq): Change to...
5043 (cstorecc4): ... this. Handle EQ or NE equally.
5044 (*sne): Un-privatize for use in cstorecc4.
5045 (b<code>): Change to...
5046 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5047 (conditional_trap): Replace with...
5048 (ctrap<GPR>4, ctrap<FP>4): ... these.
5049 (stack_protect): Use cbranchcc4.
5050
5051 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5052 * config/score/score-protos.h (score_gen_cmp): Delete.
5053 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5054 (score_block_move-loop): Use cbranchsi4.
5055 * config/score/score.md (cbranchsi4): New.
5056 (cmpsi, bCC): Delete.
5057 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5058 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5059 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5060 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5061 * config/score/score3.h (score3_gen_cmp): Delete.
5062 * config/score/score7.h (score7_gen_cmp): Delete.
5063
5064 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5065 (sh_emit_scc_to_t): ... this. Return void.
5066 (from_compare): Rename to...
5067 (sh_emit_compare_and_branch): ... this.
5068 (sh_emit_compare_and_set): New.
5069 (sh_expand_t_scc): Accept operands.
5070 * config/sh/predicates.md (sh_float_comparison_operator): New.
5071 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5072 (prepare_scc_operands): Rename to...
5073 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5074 arguments.
5075 (sh_emit_cheap_store_flag): New.
f90b7a5a 5076 (sh_emit_set_t_insn): New.
fbdf817d
UB
5077 (from_compare): Rename to...
5078 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5079 handling of TARGET_SH2E floating point to avoid recursive call.
5080 Generate branch here.
5081 (sh_emit_compare_and_set): New.
5082 (sh_expand_t_scc): Get op0/op1 from arguments.
5083 (sh_emit_cheap_store_flag): New.
5084 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5085 cases.
f90b7a5a 5086 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5087 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5088 (movsicc, movdicc): Do nothing when it recreated operands from
5089 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5090 prepare_scc_operands (now sh_emit_scc_to_t).
5091 (udivdi3): Use cstoresi4.
5092 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5093 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5094 (cbranchint4_media, cbranchfp4_media): New.
5095 (casesi): Use cbranchdi4.
5096 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5097 Delete.
5098 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5099 (movnegt): Remove second operand.
5100 (cbranchsf4, cbranchdf4): New.
5101 (stack_protect): Use cbranchdi4/cbranchsi4.
5102
5103 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5104 (gen_compare_reg): Accept comparison, extract part of it to...
5105 (gen_compare_reg_1): ... this.
5106 (gen_compare_operator): Delete.
5107 (gen_v9_scc): Accept separate destination, comparison code and arms.
5108 Do not use sparc_compare_op0/sparc_compare_op1.
5109 (emit_scc_insn, emit_conditional_branch_insn): New.
5110 (emit_v9_brxx): Make static. Remove useless assertion.
5111 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5112 emit_cmp_insn.
5113 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5114 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5115 sparc_emit_float_lib_cmp): Adjust prototype.
5116 (emit_scc_insn, emit_conditional_branch_insn): New.
5117 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5118 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5119 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5120 iterators to the top.
5121 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5122 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5123 snedi_special_trunc): Delete.
fbdf817d 5124 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5125 and snedi_special_trunc.
fbdf817d
UB
5126 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5127 cbranchdi4, cbranch<F:mode>4): New.
5128 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5129 here. Use gen_compare_reg instead of gen_compare_operator.
5130 (conditional_trap): Replace with...
5131 (ctrapsi4, ctrapdi4): ... this.
5132 (stack_protect_test): Use cbranchcc4.
5133
5134 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5135 argument to rtx.
5136 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5137 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5138 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5139 from operands[0] or operands[3] depending on is_set.
5140 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5141 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5142 cmpdf, bCC), sCC: Remove.
5143 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5144 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5145 cstoredf4): New.
5146 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5147 spu_emit_branch_or_set.
5148
5149 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5150 Add two arguments.
5151 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5152 xstormy16_compare_op1): Delete.
5153 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5154 xstormy16_compare_op1): Delete.
5155 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5156 Adjust calls.
5157 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5158 (cmphi, cmpsi, bCC): Remove.
5159
5160 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5161 (*cmpsi): ... this one.
5162 (cbranchsi4, cstoresi4): New.
5163 (bCC expanders): Delete.
5164 (sCC insns): Fold into...
5165 (*setcc): ... this one.
5166 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5167 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5168 (movsicc): Simplify.
5169 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5170
fbdf817d
UB
5171 * config/vax/vax-protos.h (cond_name): New.
5172 (vax_output_conditional_branch): Remove.
5173 * config/vax/vax.c (cond_name): New.
5174 (vax_output_conditional_branch): Remove.
5175 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5176 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5177 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5178 (bit<VAXint>): Wrap source with (compare).
5179 (b<code> and following unnamed pattern): Rename to *branch and
5180 *branch_reversed. Change macroization to match_operator.
5181 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5182
5183 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5184 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5185 Change last argument to machine_mode.
5186 (xtensa_expand_scc): Add machine_mode argument.
5187 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5188 (gen_conditional_move, xtensa_expand_conditional_branch,
5189 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5190 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5191 Adjust operand numbers.
5192 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5193 Delete.
5194 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5195 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5196 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5197
16670495
PB
51982009-05-12 Paolo Bonzini <bonzini@gnu.org>
5199
5200 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5201 causes spurious differences between trunk and cond-optab branch.
5202
4a4a4e99
AO
52032009-05-12 Alexandre Oliva <aoliva@redhat.com>
5204
5205 PR target/37137
5206 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5207
72b9acff
AO
52082009-05-12 Alexandre Oliva <aoliva@redhat.com>
5209
5210 * tree.c (iterative_hash_pointer): Delete.
5211 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5212 Hash UIDs and versions of SSA names. Don't special-case built-in
5213 function declarations.
5214
b7dd69ac
ILT
52152009-05-11 Ian Lance Taylor <iant@google.com>
5216
5217 PR bootstrap/40103
5218 * graphite.c: Force -Wc++-compat to only be a warning before
5219 #including "cloog/cloog.h".
5220
ed102b70
MJ
52212009-05-11 Martin Jambor <mjambor@suse.cz>
5222
5223 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5224
08f1af2e
JH
52252009-05-11 Jan Hubicka <jh@suse.cz>
5226
5227 * tree-ssa-loop-ivcanon.c: Include target.h
5228 (struct loop_size): new structure.
5229 (constant_after_peeling): New predicate.
5230 (tree_estimate_loop_size): New function.
5231 (estimated_unrolled_size): Rewrite for new estimates.
5232 (try_unroll_loop_completely): Use new estimates.
5233 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5234
a7d39bd3
AP
52352009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5236
5237 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5238 libcpp interface change.
5239 (spu_macro_to_expand): Likewise.
5240
f5a1f0d0
PB
52412009-05-11 Paolo Bonzini <bonzini@gnu.org>
5242
5243 PR tree-optimization/40026
5244 * gimplify.c (gimplify_init_constructor): Change initial conditional
5245 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5246 optimize_compound_literals_in_ctor.
5247
c260f01f
NS
52482009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5249
5250 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5251 New devices.
5252 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5253
df398a37
L
52542009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5255
5256 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5257 HOST_WIDE_INT for gap.
5258
4da39468
IR
52592009-05-11 Ira Rosen <irar@il.ibm.com>
5260
5261 PR tree-optimization/40074
5262 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5263 account in group size and step comparison.
5264
4effdf02
RG
52652009-05-11 Richard Guenther <rguenther@suse.de>
5266
5267 * passes.c (init_optimization_passes): Strip now incorrect comment.
5268 (execute_function_todo): Do not set PROP_alias.
5269 * tree-pass.h (PROP_alias): Remove.
5270 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5271 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5272 * tree-nrv.c (pass_return_slot): Likewise.
5273 * tree-object-size.c (pass_object_sizes): Likewise.
5274 * tree-ssa-dom.c (pass_dominator): Likewise.
5275 (pass_phi_only_cprop): Likewise.
5276 * tree-ssa-dse.c (pass_dse): Likewise.
5277 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5278 (pass_cselim): Likewise.
5279 * tree-ssa-pre.c (pass_pre): Likewise.
5280 (pass_fre): Likewise.
5281 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5282 * tree-ssa-sink.c (pass_sink_code): Likewise.
5283 * tree-stdarg.c (pass_stdarg): Likewise.
5284 * tree-tailcall.c (pass_tail_calls): Likewise.
5285 * tree-vrp.c (pass_vrp): Likewise.
5286
24b97832
ILT
52872009-05-10 Ian Lance Taylor <iant@google.com>
5288
5289 * basic-block.h (enum profile_status): Break out of struct
5290 control_flow_graph.
5291 * cgraph.h (struct inline_summary): Break out of struct
5292 cgraph_local_info.
5293 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5294 of struct cgraph_order_sort.
fbdf817d 5295 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5296 * cse.c (struct branch_path): Break out of struct
5297 cse_basic_block_data.
5298 * except.h (enum eh_region_type): Break out of struct eh_region.
5299 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5300 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5301 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5302 ggc_pch_data.
fbdf817d
UB
5303 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5304 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5305 * sched-int.h (enum post_call_group): New enum, broken out of
5306 struct deps.
5307 (struct deps_reg): Break out of struct deps.
5308 * target.h (struct asm_int_op): Break out of struct gcc_target.
5309 * tree-eh.c (struct goto_queue_node): Break out of struct
5310 leh_tf_state.
5311 * tree-inline.h (enum copy_body_cge_which): Break out of
5312 copy_body_data.
5313 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5314
5315 * c-decl.c (in_struct, struct_types): New static variables.
5316 (pushtag): Add loc parameter. Change all callers.
5317 (lookup_tag): Add ploc parameter. Change all callers.
5318 (check_compound_literal_type): New function.
5319 (parser_xref_tag): Add loc parameter. Change all callers. If
5320 -Wc++-compat, warn about struct/union/enum types defined within a
5321 struct or union.
5322 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5323 and loc parameters. Change all callers. Change error calls to
5324 error_at, using loc. For a redefinition, if the location of the
5325 original definition is known, report it. Set in_struct and
fbdf817d 5326 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5327 (finish_struct): Add new parameters enclosing_in_struct and
5328 enclosing_struct_types. Change all callers. Set
5329 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5330 in the struct. If in a struct, add this struct to struct_types.
5331 (start_enum): Add loc parameter. Change all callers. Use
5332 error_at for errors, using loc. For a redefinition, if the
5333 location of the original definition is known, report it. If in a
5334 struct, add this enum type to struct_types. If -Wc++-compat warn
5335 if in sizeof, typeof, or alignof.
fbdf817d
UB
5336 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5337 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5338 (c_parser_enum_specifier): Get enum location for start_enum.
5339 (c_parser_struct_or_union_specifier): Get struct location for
5340 start_struct. Save in_struct and struct_types status between
5341 start_struct and finish_struct.
5342 (c_parser_cast_expression): Get location of cast.
5343 (c_parser_alignof_expression): Get location of type.
5344 (c_parser_postfix_expression): Likewise.
5345 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5346 parameter. Change all callers. Call check_compound_literal_type.
5347 Use type_loc for error about variable size type.
5348 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5349 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5350 (c_cast_expr): Add loc parameter. Change all callers. If
5351 -Wc++-compat, warn about defining a type in a cast.
5352 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5353 (start_enum, start_struct, finish_struct): Update declarations.
5354 (parser_xref_tag, c_cast_expr): Update declarations.
5355 (check_compound_literal_type): Declare.
5356
7a2738fa
BE
53572009-05-11 Ben Elliston <bje@au.ibm.com>
5358
5359 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5360 for recent libcpp interface change.
5361 (rs6000_macro_to_expand): Likewise.
5362
af618949
MM
53632009-05-10 Michael Matz <matz@suse.de>
5364
5365 PR target/40031
5366 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5367 not at entry of function.
5368
b7d7a473
RG
53692009-05-10 Richard Guenther <rguenther@suse.de>
5370
5371 PR tree-optimization/40081
5372 Revert
5373 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5374 using the main variant of the element type. Do not fiddle with
5375 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5376
5377 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5378 structs with volatile fields.
5379
078c3644
JH
53802009-05-10 Jan Hubicka <jh@suse.cz>
5381
5382 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5383 (estimate_move_cost): Assert that it does not get called for
5384 VOID_TYPE_P.
078c3644
JH
5385 (estimate_num_insns): Skip VOID types in argument handling.
5386 (optimize_inline_calls): Delete unreachable blocks and verify that
5387 callgraph is valid.
5388
39ff5a96
JH
53892009-05-10 Jan Hubicka <jh@suse.cz>
5390
5391 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5392 * cgraph.c (cgraph_mark_address_taken_node): New function.
5393 (dump_cgraph_node): Dump new flag.
5394 * cgraph.h (struct cgraph_node): Add address_taken.
5395 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5396 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5397 since new direct calls can be born.
5398
9a0c6187
JM
53992009-05-10 Joseph Myers <joseph@codesourcery.com>
5400
5401 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5402 tok->val.node.node.
5403
4b685e14
JH
54042009-05-10 Jan Hubicka <jh@suse.cz>
5405
5406 PR middle-end/40084
fb0be169
EB
5407 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5408 argument; rewrite.
4b685e14
JH
5409 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5410 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5411 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5412 (fold_marked_statements): Update call to
5413 cgraph_update_edges_for_call_stmt.
4b685e14 5414
29d08eba
JM
54152009-05-10 Joseph Myers <joseph@codesourcery.com>
5416
5417 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5418 identifiers in diagnostics.
5419 * config/arm/arm.c (arm_handle_fndecl_attribute,
5420 arm_handle_isr_attribute): Likewise.
5421 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5422 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5423 * config/bfin/bfin.c (handle_int_attribute,
5424 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5425 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5426 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5427 Likewise.
5428 * config/darwin.c (darwin_handle_kext_attribute,
5429 darwin_handle_weak_import_attribute): Likewise.
5430 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5431 h8300_handle_eightbit_data_attribute,
5432 h8300_handle_tiny_data_attribute): Likewise.
5433 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5434 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5435 * config/i386/winnt.c (ix86_handle_shared_attribute,
5436 ix86_handle_selectany_attribute): Likewise.
5437 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5438 * config/m32c/m32c.c (function_vector_handler): Likewise.
5439 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5440 m68hc11_handle_fntype_attribute): Likewise.
5441 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5442 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5443 * config/mips/mips.c (mips_insert_attributes,
5444 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5445 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5446 rs6000_handle_struct_attribute): Likewise.
5447 * config/sh/sh.c (sh_insert_attributes,
5448 sh_handle_resbank_handler_attribute,
5449 sh_handle_interrupt_handler_attribute,
5450 sh2a_handle_function_vector_handler_attribute,
5451 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5452 Likewise.
5453 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5454 * config/spu/spu.c (spu_handle_fndecl_attribute,
5455 spu_handle_vector_attribute): Likewise.
5456 * config/stormy16/stormy16.c
5457 (xstormy16_handle_interrupt_attribute): Likewise.
5458 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5459 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5460
f41c4af3
JM
54612009-05-10 Joseph Myers <joseph@codesourcery.com>
5462
782dc37a 5463 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5464 (pp_translate_identifiers): New.
5465 (pp_identifier): Only conditionally translate identifier to locale
5466 character set.
5467 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5468 (pp_base_tree_identifier): Only conditionally translate identifier
5469 to locale character set.
5470 * c-pretty-print.c (M_): Define.
5471 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5472 fragments for conditional translation with M_.
5473 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5474 identifier translation.
5475
896d7dbd
RG
54762009-05-10 Richard Guenther <rguenther@suse.de>
5477
5478 PR tree-optimization/40081
5479 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5480 using the main variant of the element type. Do not fiddle with
5481 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5482
9a23acef
JH
54832009-05-09 Jan Hubicka <jh@suse.cz>
5484
5485 PR middle-end/40080
5486 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5487 indirect calls; verify cgraph afterwards.
5488
d563610d
JH
54892009-05-09 Jan Hubicka <jh@suse.cz>
5490
5491 PR bootstrap/40082
5492 * ipa.c (update_inlined_to_pointer): New function.
5493 (cgraph_remove_unreachable_nodes): Use it.
5494
f08a18d0
JH
54952009-05-09 Jan Hubicka <jh@suse.cz>
5496
5497 * tree-eh.c (struct leh_state): Remove prev_try.
5498 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5499 not track prev_try.
5500 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5501 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5502 remove_eh_handler_and_replace, foreach_reachable_handler,
5503 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5504 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5505 (gen_eh_region_cleanup): Update prototype.
5506
0afd7219
JH
55072009-05-09 Jan Hubicka <jh@suse.cz>
5508
5509 PR middle-end/40043
5510 * except.c (copy_eh_region): Always set prev_try.
5511 (redirect_eh_edge_to_label): Find outer try.
5512 (foreach_reachable_handler): When looking for prev try
5513 handle case where previous try is not going to be taken.
5514
ad6c0864
MM
55152009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5516
5517 PR tree-optimization/40049
5518 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5519 only vector/vector shifts, convert the type of the constant to the
5520 appropriate type to avoid building incorrect trees, which
5521 eventually have problems with garbage collection.
5522
c94f9067
JM
55232009-05-08 Joseph Myers <joseph@codesourcery.com>
5524
5525 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5526 -1 for complex floating-point types if honoring signed zeros.
5527
9187e02d
JH
55282009-05-08 Jan Hubicka <jh@suse.cz>
5529
20acb8a2
EB
5530 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5531 argument; handle correctly when profile is absent.
9187e02d
JH
5532 (build_cgraph_edges): Update.
5533 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5534 * cgraph.c: Do not include varray.h.
5535 (cgraph_set_call_stmt_including_clones): New function.
5536 (cgraph_create_edge_including_clones): Likewise
5537 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5538 (cgraph_update_edges_for_call_stmt): Handle clones.
5539 (cgraph_remove_node): Handle clone tree.
5540 (cgraph_remove_node_and_inline_clones): New function.
5541 (dump_cgraph_node): Dump clone tree.
5542 (cgraph_clone_node): Handle clone tree.
20acb8a2 5543 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5544 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5545 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5546 (cgraph_clone_info): New function.
9187e02d 5547 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5548 (cgraph_remove_node_and_inline_clones,
5549 cgraph_set_call_stmt_including_clones,
5550 cgraph_create_edge_including_clones,
5551 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5552 (cgraph_function_versioning): Use VEC argument.
5553 (compute_call_stmt_bb_frequency): Update prototype.
5554 (cgraph_materialize_all_clones): New function.
5555 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5556 (ipcp_create_replace_map): Update to VECtors.
5557 (ipcp_update_callgraph): Use virtual clones.
5558 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5559 (ipcp_update_profiling): Do not update local profiling.
5560 (ipcp_insert_stage): Use VECtors and virtual clones.
5561 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5562 (clone_of_p): New function.
5563 (cgraph_preserve_function_body_p): Use clone tree.
5564 (cgraph_optimize): Materialize clones.
5565 (cgraph_function_versioning): Update for VECtors.
5566 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5567 (cgraph_materialize_clone): New function.
5568 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5569 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5570 * ipa.c: Include gimple.h.
5571 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5572 * ipa-prop.c (ipa_note_param_call): Update call to
5573 compute_call_stmt_bb_frequencycall.
9187e02d 5574 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5575 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5576 (copy_bb): Handle updating of clone tree; add new edge when new call
5577 appears.
5578 (expand_call_inline): Be strict about every call having edge.
5579 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5580 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5581 (tree_function_versioning): Use VECtors; always remove unreachable
5582 blocks and fold conditionals.
5583 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5584 (tree_function_versioning): Remove.
5585 * Makefile.in (GTFILES): Remove tree-inline.c
5586 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5587 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5588 tree.
9187e02d 5589
9b86d6bb
L
55902009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5591 Andrew Morrow <acm@google.com>
5592
5593 PR c/36892
5594 * c-common.c (c_common_attribute_table): Permit deprecated
5595 attribute to take an optional argument.
5596 (handle_deprecated_attribute): If the optional argument to
5597 __attribute__((deprecated)) is not a string ignore the attribute
5598 and emit a warning.
5599
5600 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5601 * c-typeck.c (build_component_ref): Likewise.
5602 (build_external_ref): Likewise.
5603
5604 * toplev.c (warn_deprecated_use): Add an attribute argument.
5605 Emit the message associated with __attribute__((deprecated)).
5606
5607 * toplev.h (warn_deprecated_use): Updated.
5608
5609 * doc/extend.texi: Document new optional parameter to
5610 __attribute__((deprecated))
5611
82ad047f
ME
56122009-05-08 Michael Eager <eager@eagercon.com>
5613
5614 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5615 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5616
788d3075
RG
56172009-05-08 Richard Guenther <rguenther@suse.de>
5618
5619 PR tree-optimization/40062
5620 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5621 Avoid exponential behavior.
5622
00952e97
PB
56232009-05-08 Paolo Bonzini <bonzini@gnu.org>
5624
5625 PR rtl-optimization/33928
5626 PR 26854
5627 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5628 process_uses, build_single_def_use_links): New.
5629 (update_df): Update use_def_ref.
5630 (forward_propagate_into): Use get_def_for_use instead of use-def
5631 chains.
5632 (fwprop_init): Call build_single_def_use_links and let it initialize
5633 dataflow.
5634 (fwprop_done): Free use_def_ref.
5635 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5636 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5637 df_rd_simulate_one_insn): New.
5638 (df_rd_bb_local_compute_process_def): Update head comment.
5639 (df_chain_create_bb): Use the new RD simulation functions.
5640 * df.h (df_rd_simulate_artificial_defs_at_top,
5641 df_rd_simulate_one_insn): New.
5642 * opts.c (decode_options): Enable fwprop at -O1.
5643 * doc/invoke.texi (-fforward-propagate): Document this.
5644
2ca862e9
JM
56452009-05-08 Joseph Myers <joseph@codesourcery.com>
5646
5647 PR c/24581
5648 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5649 and one complex operand specially.
5650 * tree-complex.c (some_nonzerop): Do not identify a real value as
5651 zero if flag_signed_zeros.
5652
3e807ffc
PB
56532009-05-08 Paolo Bonzini <bonzini@gnu.org>
5654
5655 PR rtl-optimization/33928
7925c06c 5656 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5657
1bfdbb29
PB
56582009-05-08 Paolo Bonzini <bonzini@gnu.org>
5659
5660 PR rtl-optimization/33928
e913423f
EB
5661 * loop-invariant.c (struct use): Add addr_use_p.
5662 (struct def): Add n_addr_uses.
5663 (struct invariant): Add cheap_address.
5664 (create_new_invariant): Set cheap_address.
5665 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5666 (record_uses): Pass df_ref to record_use.
5667 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5668 used only as such.
1bfdbb29 5669
702cb2a0
KK
56702009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5671
5672 * config/sh/sh.c: Do not include c-pragma.h.
5673
5e8df753
AP
56742009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5675
5676 * config/spu/spu.c: Remove include of c-common.h.
5677
6ec637a4
JJ
56782009-05-07 Janis Johnson <janis187@us.ibm.com>
5679
5680 PR c/39037
5681 * c-common.h (mark_valid_location_for_stdc_pragma,
5682 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5683 clear_float_const_decimal64, float_const_decimal64_p): New.
5684 * c.opt (Wunsuffixed-float-constants): New.
5685 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5686 unsuffixed float constant, handle new warning.
5687 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5688 * c-decl.c (c_scope): New flag float_const_decimal64.
5689 (set_float_const_decimal64, clear_float_const_decimal64,
5690 float_const_decimal64_p): New.
5691 (push_scope): Set new flag.
5692 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5693 to use STDC pragmas.
5694 (c_parser_external_declaration): Ditto.
5695 (c_parser_compound_statement_nostart): Ditto.
5696 * c-pragma.c (valid_location_for_stdc_pragma,
5697 mark_valid_location_for_stdc_pragma,
5698 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5699 handle_pragma_float_const_decimal64): New.
5700 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5701 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5702 set_float_const_decimal64, clear_float_const_decimal64,
5703 float_const_decimal64_p): New dummy functions.
5704 * doc/extend.texi (Decimal Float): Remove statement that the
5705 pragma, and suffix for double constants, are not supported.
5706 * doc/invoke.texi (Warning Options): List new option.
5707 (-Wunsuffixed-float-constants): New.
5708
45b9b2e9
SB
57092009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5710
5711 * config/i386/i386.c: Do not include c-common.h.
5712
e71da632
MH
57132009-05-07 Mark Heffernan <meheff@google.com>
5714
5715 * doc/invoke.texi (Debugging Options): Document change of debugging
5716 dump location.
e913423f 5717 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5718 aux_base_name directory.
5719
fe4c7bc6
HS
57202009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5721
5722 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5723 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5724
3b3e44eb
RAE
57252009-05-07 Rafael Avila de Espindola <espindola@google.com>
5726
5727 * Makefile.in (install-plugin): Simplify a bit.
5728
fac41238
PB
57292009-05-07 Paolo Bonzini <bonzini@gnu.org>
5730
5731 * Makefile.in (OBJS-common): Add regcprop.o.
5732 (regcprop.o): New.
5733 * timevar.def (TV_CPROP_REGISTERS): New.
5734 * regrename.c (regrename_optimize): Return 0.
5735 (rest_of_handle_regrename): Delete.
5736 (pass_rename_registers): Point to regrename_optimize.
5737 (struct value_data_entry, struct value_data,
5738 kill_value_one_regno, kill_value_regno, kill_value,
5739 set_value_regno, init_value_data, kill_clobbered_value,
5740 kill_set_value, kill_autoinc_value, copy_value,
5741 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5742 replace_oldest_value_reg, replace_oldest_value_addr,
5743 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5744 debug_value_data, validate_value_data): Move...
5745 * regcprop.c: ... here.
5746 (rest_of_handle_cprop): Delete.
5747 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5748
472e0df9
JJ
57492009-05-07 Jakub Jelinek <jakub@redhat.com>
5750
5751 PR middle-end/40057
5752 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5753 GEN_INT for 1 << bitnum.
5754 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5755 build_int_cst_type.
5756
0d50d55a
UB
57572009-05-07 Uros Bizjak <ubizjak@gmail.com>
5758
5759 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5760 Remove wrong description of "nand" operation.
0d50d55a 5761
22f597f1
RG
57622009-05-06 Richard Guenther <rguenther@suse.de>
5763 Adam Nemet <anemet@caviumnetworks.com>
5764
5765 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5766 comment. Add that if LHS is not a gimple register, then RHS1 has
5767 to be a single object (GIMPLE_SINGLE_RHS).
5768
641cac0b
AN
57692009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5770
5771 * expr.c (get_def_for_expr): Move it up in the file.
5772 (store_field): When expanding a bit-field store, look at the
5773 defining gimple stmt for the masking conversion.
5774
5a5c6435
JJ
57752009-05-06 Janis Johnson <janis187@us.ibm.com>
5776
5777 PR middle-end/39986
5778 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5779 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5780 32-bit memcpy into long.
5781
96474f36
JJ
57822009-05-06 Jakub Jelinek <jakub@redhat.com>
5783
5784 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5785 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5786 new_reg_loc_descr.
5787 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5788 instead of appending DW_OP_deref*.
5789
529ff441
MM
57902009-05-06 Michael Matz <matz@suse.de>
5791
5792 PR middle-end/40021
5793 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5794 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5795
9419a9fd
RAE
57962009-05-06 Rafael Avila de Espindola <espindola@google.com>
5797
5798 * Makefile.in (install-plugin): Fix srcdir handling.
5799
fff1894c
AB
58002009-05-06 Andrey Belevantsev <abel@ispras.ru>
5801
5802 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5803 when processing for not_regs_needed bitmap.
5804 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5805 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5806 handling it for rhs.
5807
700ae70c
L
58082009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5809
ab3426a7 5810 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5811 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5812 * config/i386/predicates.md (incdec_operand): Likewise.
5813 (aligned_operand): Likewise.
5814 * config/i386/sse.md (divv8sf3): Likewise.
5815 (sqrtv8sf2): Likewise.
5816
67341fb5
L
58172009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5818
5819 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5820
5821 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5822
87946f42
L
58232009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5824
5825 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5826 ssemodesuffixf2c with avxmodesuffixf2c.
5827
1202aec1
JM
58282009-05-06 Joseph Myers <joseph@codesourcery.com>
5829
5830 PR c/40032
aa016ff7 5831 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5832
6e57a01d
JJ
58332009-05-05 Jakub Jelinek <jakub@redhat.com>
5834
5835 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5836 (struct tree_base): Adjust spacing for 8 bit boundaries.
5837 (struct tree_decl_common): Add decl_by_reference_flag bit.
5838 (DECL_BY_REFERENCE): Adjust.
5839 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5840 print DECL_BY_REFERENCE bit.
5841 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5842 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5843 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5844 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5845 unconditionally.
5846
32f579f6
JJ
5847 PR middle-end/39666
5848 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5849 range of the type, but default label is missing, add it with one
5850 of the existing labels instead of adding a new label for it.
5851
617ab743
JM
58522009-05-05 Joseph Myers <joseph@codesourcery.com>
5853
5854 * dwarf.h: Remove.
5855
bf016de8
RAE
58562009-05-05 Rafael Avila de Espindola <espindola@google.com>
5857
5858 * Makefile.in (enable_plugin, plugin_includedir): New.
5859 (install): Depend on install-plugin.
5860 (PLUGIN_HEADERS): New.
5861 (install-plugin): New.
5862 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5863
7f8fdb9f
RG
58642009-05-05 Richard Guenther <rguenther@suse.de>
5865
5866 PR tree-optimization/40022
5867 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5868 the only vuse.
5869 (phivn_valid_p): Fix tuplification error, simplify.
5870 (phiprop_insert_phi): Add dumps.
5871 (propagate_with_phi): Simplify.
5872
8d972839
RG
58732009-05-05 Richard Guenther <rguenther@suse.de>
5874
5875 PR middle-end/40023
aa016ff7 5876 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5877
66ba9b0b
SZ
58782009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5879
5880 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5881 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5882 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5883 block_ultimate_origin): Rearrange the declarations line to match the
5884 comment that indicates the .c file which the functions are defined.
5885 (dwarf2out_*, set_decl_rtl): Add comment.
5886 (get_base_address): Adjust comment.
5887 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5888 declarations line and add comment.
5889 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5890
4f1e4960
JM
58912009-05-04 Joseph Myers <joseph@codesourcery.com>
5892
5893 * attribs.c (decl_attributes): Use %qE for identifiers in
5894 diagnostics.
5895 * cgraphunit.c (verify_cgraph_node): Translate function names to
5896 locale character set in diagnostics.
5897 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5898 diagnostics.
5899 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5900 Document that functions are named in UTF-8.
5901 * expr.c (expand_expr_real_1): Translate function names to locale
5902 character set in diagnostics.
5903 * gimplify.c (omp_notice_variable, omp_is_private,
5904 gimplify_scan_omp_clauses): Use %qE for identifiers in
5905 diagnostics.
5906 * langhooks.c (lhd_print_error_function): Translate function names
5907 to locale character set.
5908 * langhooks.h (decl_printable_name): Document that return value is
5909 in internal character set.
5910 * stmt.c: Include pretty-print.h
5911 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5912 diagnostics.
5913 (resolve_operand_name_1): Translate named operand name to locale
5914 character set.
5915 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5916 diagnostics.
5917 * toplev.c (announce_function): Translate function names to locale
5918 character set.
5919 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5920 (default_tree_printer): Use pp_identifier or translate identifiers
5921 to locale character set. Mark "<anonymous>" for translation.
5922 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5923 for identifiers in diagnostics.
5924 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5925 diagnostics.
5926 * varasm.c (output_constructor): Use %qE for identifiers in
5927 diagnostics.
5928
40540e68
RAE
59292009-05-04 Rafael Avila de Espindola <espindola@google.com>
5930
5931 * configure.ac: use ` ` instead of $()
5932 * configure: Regenerate.
5933
33fc884c
BE
59342009-05-05 Ben Elliston <bje@au.ibm.com>
5935
5936 * config/pa/linux-atomic.c: Eliminate conditional include of
5937 errno.h on non-LP64 systems to simplify build requirements.
5938
88388a52
JM
59392009-05-04 Joseph Myers <joseph@codesourcery.com>
5940
5941 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5942 diagnostics.
5943 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5944 and pass value to identifier_to_locale.
5945 (warn_variable_length_array): Make name a tree.
5946 (grokdeclarator): Separate diagnostic texts for named and unnamed
5947 declarators. Use %qE for named declarators.
5948 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5949 diagnostics.
5950 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5951 identifiers in diagnostics.
5952 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5953 identifier_to_locale. Mark "anonymous" strings for translation.
5954
960c5c79
ME
59552009-05-04 Michael Eager <eager@eagercon.com>
5956
5957 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5958 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5959
d083fbba
ME
59602009-05-04 Michael Eager <eager@eagercon.com>
5961
5962 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5963 TARGET_SINGLE_FLOAT check.
5964
c3ba8d32
ME
59652009-05-04 Michael Eager <eager@eagercon.com>
5966
5967 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5968
edce9f18
ME
59692009-05-04 Michael Eager <eager@eagercon.com>
5970
5971 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5972 * config/rs6000/t-xilinx: New
5973
506d7b68
PB
59742009-05-04 Paolo Bonzini <bonzini@gnu.org>
5975
e913423f 5976 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5977 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5978 * gcc/explow.c (memory_address): Use target hook.
5979 * gcc/targhooks.c (default_legitimize_address): New.
5980 * gcc/targhooks.h (default_legitimize_address): New.
5981 * gcc/target.h (legitimize_address): New.
5982 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5983 (TARGET_INITIALIZER): Include it.
5984 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5985
5986 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5987 * config/bfin/bfin.c (legitimize_address): Remove.
5988 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5989 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5990 Remove.
506d7b68
PB
5991 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5992 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5993
5994 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5995 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5996 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5997 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5998 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5999 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6000 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6001 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6002 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6003 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6004 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6005 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6006 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6007 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6008 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6009 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6010 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6011 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6012 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6013 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6014 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6015 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6016 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6017
6018 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6019 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6020 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6021 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6022 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6023 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6024 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6025 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6026 (thumb_legitimize_address): Delete.
6027 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6028 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6029 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6030 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6031 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
6032 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6033 Delete.
6034 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6035 Delete.
506d7b68
PB
6036
6037 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6038 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6039 * config/m32r/m32r.c (m32r_legitimize_address): New.
6040 * config/m68k/m68k.c (m68k_legitimize_address): New.
6041 * config/score/score.c (score_legitimize_address): Standardize.
6042 * config/score/score3.c (score3_legitimize_address): Standardize.
6043 * config/score/score3.h (score3_legitimize_address): Adjust.
6044 * config/score/score7.c (score7_legitimize_address): Standardize.
6045 * config/score/score7.h (score7_legitimize_address): Adjust.
6046 * config/sh/sh.c (sh_legitimize_address): New.
6047 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6048
6049 * gcc/config/s390/s390.c (legitimize_address): Rename to...
6050 (s390_legitimize_address): ... this.
6051 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6052 (sparc_legitimize_address): ... this.
6053 * gcc/config/i386/i386.c (legitimize_address): Rename to...
6054 (ix86_legitimize_address): ... this.
6055 * gcc/config/avr/avr.c (legitimize_address): Rename to...
6056 (avr_legitimize_address): ... this.
6057 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6058 (mn10300_legitimize_address): ... this.
6059 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6060 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6061 (alpha_expand_mov): Adjust call.
6062
6063 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6064 * config/spu/spu.c (spu_legitimize_address): Likewise.
6065 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6066 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6067
a3af5087
JM
60682009-05-04 Joseph Myers <joseph@codesourcery.com>
6069
6070 * intl.c (locale_encoding, locale_utf8): New.
6071 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6072 * intl.h (locale_encoding, locale_utf8): Declare.
6073 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6074 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6075 New.
6076 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6077 argument.
6078 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6079 (pp_base_tree_identifier): Declare as function.
6080 (identifier_to_locale): Declare.
6081 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6082 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6083
ea5cd5f1
RG
60842009-05-04 Richard Guenther <rguenther@suse.de>
6085
6086 PR middle-end/40015
6087 * builtins.c (fold_builtin_memory_op): Do not decay to element
6088 type if the size matches the whole array.
6089
ddc2690a
KH
60902009-05-04 Kazu Hirata <kazu@codesourcery.com>
6091
6092 * expmed.c (synth_mult): When trying out a shift, pass the result
6093 of a signed shift.
6094
ef268d34
KH
60952009-05-04 Kazu Hirata <kazu@codesourcery.com>
6096
6097 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6098 (shiftsub1_cost): New.
6099 (init_expmed): Compute shiftsub1_cost.
6100 (synth_mult): Optimize multiplications by constants of the form
6101 -(2^^m-1) for some constant positive integer m.
6102
255d3827
RG
61032009-05-03 Richard Guenther <rguenther@suse.de>
6104
6105 PR c/39983
6106 * c-typeck.c (array_to_pointer_conversion): Do not built
6107 ADDR_EXPRs of arrays of pointer-to-element type.
6108 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6109 up wrong ADDR_EXPRs after-the-fact.
6110 * c-common.c (strict_aliasing_warning): Strip pointer
6111 conversions for obtaining the original type.
6112 * builtins.c (fold_builtin_memset): Handle array types.
6113 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6114 and array types
6115
16c33770
RG
61162009-05-03 Richard Guenther <rguenther@suse.de>
6117
6118 PR middle-end/23329
6119 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6120 Do not lose casts from array types with unknown extent to array
6121 types with known extent.
6122 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6123 alias set compatibility.
6124
62a67c94
MLI
61252009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6126
6127 * flags.h (extra_warnings): Delete.
6128 * toplev.c (process_options): Handle Wuninitialized here.
6129 * opts.c (extra_warnings): Delete.
6130 (set_Wextra): Delete.
6131 (common_handle_option): -Wextra can be handled automatically.
6132 * c-opts.c (c_common_handle_option): Delete obsolete code.
6133 (c_common_post_options): Simplify comment.
6134 * common.opt (W): Add Var.
6135 (Wextra): Add Var.
6136 (Wuninitialized): Initialize to -1.
6137
8c7926c4
AN
61382009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6139 Richard Guenther <rguenther@suse.de>
6140
6141 * expr.c (get_def_for_expr): New function.
6142 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6143 SSA rather than trees.
6144 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6145 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6146
fa5da7de
JM
61472009-05-03 Joseph Myers <joseph@codesourcery.com>
6148
6149 * c-common.c (reswords): Add _Imaginary.
6150 * c-common.c (enum rid): Add RID_IMAGINARY.
6151
2ddd5020
PB
61522009-05-03 Paolo Bonzini <bonzini@gnu.org>
6153
6154 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6155 Patch by Richard Guenther.
6156
aea88c05
AS
61572009-05-03 Anatoly Sokolov <aesok@post.ru>
6158
6159 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6160 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6161 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6162 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6163 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6164 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6165 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6166 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6167 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6168 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6169 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6170 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6171 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6172 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6173 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6174 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6175 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6176 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6177
85e59f3a
RG
61782009-05-02 Richard Guenther <rguenther@suse.de>
6179
6180 PR tree-optimization/39940
6181 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6182 doing so.
6183
4636b850
RG
61842009-05-02 Richard Guenther <rguenther@suse.de>
6185
6186 PR middle-end/40001
6187 * tree-ssa.c (execute_update_addresses_taken): Properly check
6188 if we can mark a variable DECL_GIMPLE_REG_P.
6189 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6190 back to the end of the function.
6191 (is_gimple_reg_type): Remove complex type special casing.
6192 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6193 if not optimizing.
6194
5e10cb5a
BE
61952009-05-02 Ben Elliston <bje@au.ibm.com>
6196
6197 * doc/collect2.texi (Collect2): Document search path behaviour
6198 when configured with --with-ld.
6199
048bf48b
JH
62002009-05-02 Jan Hubicka <jh@suse.cz>
6201
6202 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6203 parameter; update callers.
aa016ff7
UB
6204 (coalesce_cost_edge): EH edges are costier because they needs
6205 splitting even if not critical and even more costier when there are
6206 multiple EH predecestors.
048bf48b 6207
d5c5f9ab
JH
62082009-05-02 Jan Hubicka <jh@suse.cz>
6209
6210 * except.c (remove_eh_handler_and_replace): Handle updating after
6211 removing TRY blocks.
6212
2ed1959a
EB
62132009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6214
6215 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6216
d363a7e7
SB
62172009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6218
6219 * varasm.c: Do not include c-pragma.h.
6220 * attribs.c: Do not incude c-common.h.
6221
9c3d55b4
MM
62222009-05-01 Michael Matz <matz@suse.de>
6223
6224 * calls.c (initialize_argument_information): Handle SSA names like
6225 decls with a non MEM_P DECL_RTL.
6226
ea264ca5
SB
62272009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6228
6229 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6230 * ipa-utils.c: Likewise.
6231 * ipa-type-escape.c: Likewise.
6232 * cgraphunit.c Do not include c-common.h.
6233 * ipa-pure-const.c: Likewise.
6234 * tree-if-conv.c: Likewise.
6235 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6236 * ipa-struct-reorg.c: Likewise.
6237 * tree-nomudflap.c: Likewise.
6238 * tree-ssa-structalias.c: Likewise.
6239
6c5d4d1a
SB
62402009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6241
6242 * store-motion.c: Many cleanups to make this pass a first-class
6243 citizen instead of an appendix to gcse load motion. Add TODO list
6244 to make this pass faster/cleaner/better.
6245
6246 (struct ls_expr): Post gcse.c-split cleanups.
6247 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6248 "stores" field to "avail_stores".
6249 (pre_ldst_mems): Rename to store_motion_mems.
6250 (pre_ldst_table): Rename to store_motion_mems_table.
6251 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6252 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6253 (ldst_entry): Rename to st_expr_entry, update users.
6254 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6255 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6256 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6257 update caller.
6c5d4d1a
SB
6258 (first_ls_expr): Rename to first_st_expr, update users.
6259 (next_ls_expr): Rename to next_st_expr, update users.
6260 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6261 fields properly for store motion instead of names inherited from load
6262 motion in gcse.c.
6263 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6264 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6265 are done with it.
6266
6267 (ae_kill): Rename to st_kill, update users.
6268 (ae_gen): Rename to st_avloc, update users.
6269 (transp): Rename to st_transp, update users.
6270 (pre_insert_map): Rename to st_insert_map, update users.
6271 (pre_delete_map): Rename to st_delete_map, update users.
6272 (insert_store, build_store_vectors, free_store_memory,
6273 one_store_motion_pass): Update for abovementioned changes.
6274
6275 (gcse_subst_count, gcse_create_count): Remove.
6276 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6277 and "n_stores_created", local variables.
6278
6279 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6280 use for_each_rtx.
6281
6282 (regvec, compute_store_table_current_insn): Remove.
6283 (reg_set_info, reg_clear_last_set): Remove.
6284 (compute_store_table): Use DF caches instead of local dataflow
6285 solvers.
6286
b02cec6e
JM
62872009-05-01 Joseph Myers <joseph@codesourcery.com>
6288
6289 * c-objc-common.c (c_tree_printer): Print identifiers with
6290 pp_identifier, not pp_string. Mark "({anonymous})" for
6291 translation.
6292 * c-pretty-print.c (pp_c_ws_string): New.
6293 (pp_c_cv_qualifier, pp_c_type_specifier,
6294 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6295 pp_c_storage_class_specifier, pp_c_function_specifier,
6296 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6297 pp_c_primary_expression, pp_c_postfix_expression,
6298 pp_c_unary_expression, pp_c_shift_expression,
6299 pp_c_relational_expression, pp_c_equality_expression,
6300 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6301 use pp_string and pp_c_ws_string in place of pp_identifier and
6302 pp_c_identifier for non-identifiers. Mark English strings for
6303 translation.
6304 * c-pretty-print.h (pp_c_ws_string): Declare.
6305
cd533689
PP
63062009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6307 Roland McGrath <roland@redhat.com>
6308
aa016ff7 6309 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6310 (ENABLE_LD_BUILDID): New configuration option.
6311 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6312 (LINK_BUILDID_SPEC): New macro.
6313 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6314 link_spec.
6315 * doc/install.texi: Document --enable-linker-build-id option.
6316 * configure: Rebuild.
6317 * config.in: Rebuild.
6318
ba6adec4
AN
63192009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6320
6321 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6322 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6323 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6324 MIPS_GP_SAVE_AREA_SIZE.
6325 * config/mips/mips.c (struct mips_frame_info): Update comment
6326 before arg_pointer_offset and hard_frame_pointer_offset.
6327 (mips_compute_frame_info): Update diagram before function: to
6328 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6329 indicate the position of frame_pointer_rtx with -fstack-protector and
6330 to show args_size. Don't allocate cprestore area for leaf functions
6331 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6332 cprestore_size.
6333 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6334
48f5b722
MM
63352009-04-30 Michael Matz <matz@suse.de>
6336
ba6adec4
AN
6337 PR tree-optimization/39955
6338 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6339
b65d6744
DK
63402009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6341
6342 * ira.c (setup_cover_and_important_classes): Use safe macro
6343 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6344 directly.
6345 * genpreds.c (write_tm_preds_h): Output suitable definition of
6346 REG_CLASS_FOR_CONSTRAINT.
6347
f136c8ae
RAE
63482009-04-30 Rafael Avila de Espindola <espindola@google.com>
6349
6350 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6351 instead of an int.
6352 * bitmap.c (bitmap_descriptor): Likewise.
6353 * ggc-common.c (loc_descriptor): Likewise.
6354 * varray.c (varray_descriptor): Likewise.
6355 * vec.c (vec_descriptor): Likewise.
6356
43fcece8 63572009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6358
6359 * Makefile.in (dce.o): Add $(EXCEPT_H).
6360 * dce.c: Include except.h and delete redundant vector definitions.
6361 (deletable_insn_p): Return false for non-call insns that can throw
6362 if DF is running.
6363
df35c271
SB
63642009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6365
6366 * gcse.c (ae_gen): Remove.
6367 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6368 and make non-static function to make it available in store-motion.c.
6369 Update call sites with search-and-replace.
6370 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6371 extract_mentioned_regs, extract_mentioned_regs_helper,
6372 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6373 store_killed_in_insn, store_killed_after, store_killed_before,
6374 build_store_vectors, insert_insn_start_basic_block, insert-store,
6375 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6376 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6377 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6378 * store-motion.c: ...new file. Also copy data structures from gcse.c
6379 and clean up to remove parts not used by store motion.
6380 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6381 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6382
f711a87a
RR
63832009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6384
6385 PR target/38571
6386 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6387 when optimizing for size.
6388
fa5ed76e
HPN
63892009-04-30 Hans-Peter Nilsson <hp@axis.com>
6390
6391 * gcse.c (gcse_constant_p): Fix typo in last change.
6392
0acbbdb0
RAE
63932009-04-30 Rafael Avila de Espindola <espindola@google.com>
6394
6395 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6396
82f5c05d
AK
63972009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6398
6399 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6400
6d8f135b
JW
64012009-04-29 James E. Wilson <wilson@codesourcery.com>
6402
6403 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6404 CONST_HIGH_PART result.
6405
c21ca196
AS
64062009-04-29 Anatoly Sokolov <aesok@post.ru>
6407
6408 * config/avr/avr.c (initial_elimination_offset): Rename to
6409 avr_initial_elimination_offset.
6410 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6411 change return type to bool.
6412 (avr_can_eliminate): New function.
6413 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6414 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6415 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6416 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6417 avr_initial_elimination_offset.
6418 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6419 (avr_initial_elimination_offset): Define.
6420
2a34bece 64212009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6422 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6423
6424 PR rtl-optimization/39938
6425 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6426 * cfgrtl.c: Include insn-attr.h.
6427 (rest_of_pass_free_cfg): New function.
6428 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6429 * resource.c (init_resource_info): Remove call to df_analyze.
6430
5dc7911e
RG
64312009-04-29 Richard Guenther <rguenther@suse.de>
6432
6433 PR target/39943
6434 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6435 allow conversion to signed integers.
6436
1fe479fd
RG
64372009-04-29 Richard Guenther <rguenther@suse.de>
6438
6439 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6440 shifts of floating point vectors if the shift amount is
6441 a constant multiple of the element size.
6442
8e001680
AK
64432009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6444 Michael Matz <matz@suse.de>
6445
6446 PR middle-end/39927
6447 PR bootstrap/39929
6448 * tree-outof-ssa.c (emit_partition_copy): New function.
6449 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6450 insert_part_to_rtx_on_edge): Perform the partition base var
6451 copy using emit_partition_copy.
6452 (insert_value_copy_on_edge): Convert constants to the right mode.
6453 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6454 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6455
e50e3081
BS
64562009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6457
6458 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6459 scan backwards to try to find a constant to initialize it.
6460
4e5d521b
BS
6461 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6462 insn before the loop_end instruction, don't look past labels.
6463
7c90021d
RG
64642009-04-29 Richard Guenther <rguenther@suse.de>
6465
6466 PR middle-end/39937
6467 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6468 loose type conversions.
6469 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6470 stmts only if there are no uses of its definition.
6471
97a988bc
BS
64722009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6473
6474 * config/bfin/bfin.h (splitting_loops): Declare.
6475 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6476 Reorder bit definitions to be ascending.
6477 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6478 * config/bfin/bfin.c (splitting_loops): New variable.
6479 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6480 (struct loop_info): Remove members INIT and LOOP_INIT.
6481 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6482 the LSETUP sequence. Allow LC to be loaded from any register, but
6483 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6484 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6485 set to 1.
6486 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6487 of reload_completed.
aa016ff7 6488
97a988bc
BS
6489 From Jie Zhang:
6490 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6491
0c463e16
RAE
64922009-04-29 Rafael Avila de Espindola <espindola@google.com>
6493
6494 * Makefile.in (PLUGIN_VERSION_H): New.
6495 (OBJS-common): Remove plugin-version.o.
6496 (plugin.o): Depend on (PLUGIN_VERSION_H).
6497 (plugin-version.o): Remove.
6498 * configure: Regenerate
6499 * configure.ac: Create plugin-version.h.
6500 * gcc-plugin.h (plugin_gcc_version): Remove.
6501 (plugin_default_version_check): Change signature.
6502 * plugin-version.c: Remove.
6503 * plugin.c: Include plugin-version.h.
6504 (str_plugin_gcc_version_name): Remove.
6505 (try_init_one_plugin): Pass gcc version to plugin_init.
6506 (plugin_default_version_check): Both gcc and plugin versions are now
6507 arguments.
6508
307e7eab
BS
65092009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6510
6511 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6512 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6513 Remove special case testing for last insn of inner loops. Don't fail
6514 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6515
c5d96723
BS
6516 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6517 DREGS rather than comparing directly. Remove code that tries to
6518 account for latencies.
6519
de0b4ad5
RG
65202009-04-29 Richard Guenther <rguenther@suse.de>
6521
6522 PR tree-optimization/39941
6523 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6524 eliminating an indirect call.
6525
3a19701a
RG
65262009-04-29 Richard Guenther <rguenther@suse.de>
6527
6528 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6529 parameter. Allow invariants as base if !require_lvalue.
6530 (verify_gimple_assign_single): Adjust.
6531
a0a31d1e
BS
65322009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6533
6534 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6535 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6536 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6537 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6538 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6539 a VEC_SELECT.
aa016ff7
UB
6540 * config/bfin/bfin.c (bfin_expand_builtin,
6541 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6542
795bd26a
RG
65432009-04-28 Richard Guenther <rguenther@suse.de>
6544
6545 * tree-vect-loop.c (get_initial_def_for_induction): Use
6546 correct types for pointer increment.
6547
04be270f
KG
65482009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6549
6550 * toplev.c (print_version): Update GMP version string calculation.
6551
e1a3b85c
EB
65522009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6553
6554 PR rtl-optimization/39938
6555 * resource.c (init_resource_info): Add call to df_analyze.
6556
8224166e
UB
65572009-04-28 Uros Bizjak <ubizjak@gmail.com>
6558
6559 * config/alpha/alpha.md (usegp): Cast the result of
6560 alpha_find_lo_sum_using_gp to enum attr_usegp.
6561 * config/alpha/alpha.c (override_options): Remove end-of-structure
6562 marker element from cpu_table. Use array size of cpu_table to handle
6563 -mcpu and -mtune options.
6564 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6565
c5f0fe67
JM
65662009-04-28 Joseph Myers <joseph@codesourcery.com>
6567
6568 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6569 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6570 tune_32 and tune_64.
6571 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6572 support on PowerPC.
6573 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6574 * config/rs6000/option-defaults.h: ... here. New file.
6575 (OPT_64, OPT_32): Define.
6576 (MASK_64BIT): Define to 0 if not already defined.
6577 (OPT_ARCH64, OPT_ARCH32): Define.
6578 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6579 and tune_64.
6580
0c48a567
RR
65812009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6582
6583 * config/arm/arm.c (arm_override_options): Emit error on using
6584 fpa with AAPCS.
6585
f1028b9d
UB
65862009-04-28 Uros Bizjak <ubizjak@gmail.com>
6587
6588 PR rtl-optimization/39914
6589 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6590 registers for allocnos created from user-defined variables only
6591 when not optimizing.
6592
e0dd989a
RG
65932009-04-28 Richard Guenther <rguenther@suse.de>
6594
6595 PR middle-end/39937
6596 * fold-const.c (fold_binary): Use distribute_real_division only
6597 on float types.
6598
9a17c91d
SE
65992009-04-28 Steve Ellcey <sje@cup.hp.com>
6600
6601 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6602 add hpux-stdint.h to tm_file.
6603 (hppa[12]*-*-hpux11*): Ditto.
6604 (ia64*-*-hpux*): Ditto.
6605 * config/hpux-stdint.h: New.
60839f5d 6606 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6607 __STDC_EXT__ for all compiles.
60839f5d
EB
6608 * config/pa/pa-hpux.h: Ditto.
6609 * config/pa/pa-hpux10.h: Ditto.
6610 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6611
af04e659
CM
66122009-04-28 Catherine Moore <clm@codesourcery.com>
6613
6614 * debug.h (set_name): Add comment.
6615
04ef80ce
AP
66162009-04-28 Andrew Pinski <pinskia@gmail.com>
6617
6618 PR target/39929
6619 * config/darwin.c (machopic_gen_offset): Check
6620 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6621 * config/arm/arm.c (require_pic_register): Likewise.
6622
65ad77af
PB
66232009-04-28 Paolo Bonzini <bonzini@gnu.org>
6624
8224166e
UB
6625 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6626 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6627 m32c_promote_prototypes): Delete.
65ad77af 6628
1b15a008
MM
66292009-04-28 Michael Matz <matz@suse.de>
6630
6631 PR middle-end/39922
6632 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6633 constants.
6634
7569a6cc
RG
66352009-04-28 Richard Guenther <rguenther@suse.de>
6636
f1028b9d 6637 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6638
ead204d9
RR
66392009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6640
6641 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6642 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6643 * config/arm/arm-tune.md: Regenerate.
6644
f2c45f08 66452009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6646
f2c45f08
AM
6647 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6648 block if there are complex incoming edges.
6649 (sel_merge_blocks): Remove useless assert.
6650 (sel_redirect_edge_and_branch): Check that edge was redirected.
6651 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6652 (sel_find_rgns): Delete declaration.
6653 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6654 the region when it is not a preheader.
6655
7a00d767
UB
66562009-04-28 Uros Bizjak <ubizjak@gmail.com>
6657
6658 PR c/39323
6659 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6660
448ee662
RG
66612009-04-28 Richard Guenther <rguenther@suse.de>
6662
6663 * tree.h (SSA_NAME_VALUE): Remove.
6664 (struct tree_ssa_name): Remove value_handle member.
6665 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6666 array for jump threading.
6667 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6668 SSA_NAME_VALUEs.
6669 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6670 * tree-flow.h (threadedge_initialize_values): Declare.
6671 (threadedge_finalize_values): Likewise.
6672 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6673 (SSA_NAME_VALUE): Define.
6674 (threadedge_initialize_values): New function.
6675 (threadedge_finalize_values): Likewise.
6676 * tree-ssa-dom.c (ssa_name_values): New global variable.
6677 (SSA_NAME_VALUE): Define.
f1028b9d 6678 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6679
8644a673
IR
66802009-04-28 Ira Rosen <irar@il.ibm.com>
6681
6682 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6683 Use REPORT_VECTORIZED_LOCATIONS instead
6684 REPORT_VECTORIZED_LOOPS.
6685 * tree-vectorizer.c (vect_verbosity_level): Make static.
6686 (vect_loop_location): Rename to vect_location.
6687 (vect_set_verbosity_level): Update comment.
6688 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6689 and vect_location.
6690 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6691 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6692 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6693 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6694 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6695 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6696 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6697 REPORT_UNVECTORIZED_LOCATIONS.
6698 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6699 and vect_used_in_loop and to vect_unused_in_scope and
6700 vect_used_in_scope.
6701 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6702 (vect_verbosity_level): Remove declaration.
6703 (vect_analyze_operations): Likewise.
6704 (vect_analyze_stmt): Declare.
6705 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6706 REPORT_UNVECTORIZED_LOCATIONS.
6707 (vect_get_loop_niters): Fix indentation.
6708 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6709 (vect_analyze_loop_operations): New function.
6710 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6711 vect_analyze_operations.
6712 (vect_is_simple_reduction): Use new names.
6713 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6714 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6715 to specify whether the data references can be a part of interleaving
6716 chain.
8644a673
IR
6717 (vect_analyze_data_ref_dependence): Use new names.
6718 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6719 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6720 * tree-vect-patterns.c (widened_name_p): Use new names.
6721 (vect_recog_dot_prod_pattern): Likewise.
6722 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6723 (process_use, vect_mark_stmts_to_be_vectorized,
6724 vect_model_simple_cost, vect_model_store_cost,
6725 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6726 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6727 vectorizable_operation, vectorizable_type_demotion,
6728 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6729 vectorizable_condition): Likewise.
6730 (vect_analyze_operations): Split into vect_analyze_loop_operations
6731 and ...
6732 (vect_analyze_stmt): ... new function.
6733 (new_stmt_vec_info): Use new names.
6734 (vect_is_simple_use): Use new names and fix comment.
6735 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6736 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6737
b91322f2
UB
67382009-04-28 Uros Bizjak <ubizjak@gmail.com>
6739
6740 PR target/39911
6741 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6742 and integer modes for x87 operands. Do not ICE for unsupported size,
6743 generate error instead. Generate error for unsupported operand types.
6744 ['z']: Do not handle HImode memory operands specially. Warning
6745 for floating-point operands. Fallthru to 'Z' for unsupported operand
6746 types. Do not ICE for unsupported size, generate error instead.
6747 (output_387_binary_op): Use %Z to output operands.
6748 (output_fp_compare): Ditto.
6749 (output_387_reg_move): Ditto.
6750
b2ed71b6
BE
67512009-04-28 Ben Elliston <bje@au.ibm.com>
6752
6753 PR c++/35652
6754 Revert:
6755
6756 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6757
6758 * builtins.c (c_strlen): Do not warn here.
6759 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6760 * c-common.c (pointer_int_sum): Take an explicit location.
6761 Warn about offsets out of bounds.
6762 * c-common.h (pointer_int_sum): Adjust declaration.
6763
81f40b79
ILT
67642009-04-27 Ian Lance Taylor <iant@google.com>
6765
6766 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6767 names to symkind.
6768 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6769 * df-core.c (df_set_flags): Change return type to int. Change
6770 type of old_flags to int.
6771 (df_clear_flags): Likewise.
6772 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6773 (df_get_conditional_uses): Likewise.
6774 * df.h (df_set_flags, df_clear_flags): Update declarations.
6775 * dwarf2out.c (struct indirect_string_node): Change type of form
6776 field to enum dwarf_form.
6777 (AT_string_form): Change return type to enum dwarf_form.
6778 * fixed-value.c (fixed_compare): Add cast to enum type.
6779 * fwprop.c (update_df): Change 0 to VOIDmode.
6780 * gensupport.c: Change 0 to UNKNOWN.
6781 * gimple.h (gimple_cond_code): Add cast to enum type.
6782 * haifa-sched.c (reemit_notes): Add cast to enum type.
6783 * hooks.c (hook_int_void_no_regs): Remove function.
6784 * hooks.h (hook_int_void_no_regs): Remove declaration.
6785 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6786 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6787 * real.c (real_arithmetic): Add cast to enum type.
6788 (real_compare): Likewise.
6789 * target.h (struct gcc_target): Change return type of
6790 branch_target_register_class to enum reg_class.
6791 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6792 default_branch_target_register_class.
7a00d767 6793 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6794 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6795 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6796 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6797 cast to int.
6798 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6799 ERROR_MARK.
6800 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6801 vect_uninitialized_def. Change 0 to ERROR_MARK.
6802 * tree-vect-stmts.c (supportable_widening_operation): Don't
6803 initialize icode1 and icode2.
7a00d767 6804 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6805 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6806 and to STD_C89.
6807 (cmn_err_flag_specs): Change 0 to STD_C89.
6808 (cmn_err_char_table): Likewise.
6809 * config/arm/arm.c (get_arm_condition_code): Change type of code
6810 to enum arm_cond_code.
6811 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6812 (IWMMXT_BUILTIN2): Likewise.
6813 (neon_builtin_type_bits): Don't define typedef.
6814 (neon_builtin_datum): Change type of bits field to int.
6815 (arm_expand_neon_args): Add cast to enum type.
6816 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6817 TLS_MODEL_NONE.
6818 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6819 casts to enum type.
6820 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6821 MIPS_FP_COND_f.
6822 * config/mips/mips.md (jal_macro): Return enum constant.
6823 (single_insn): Likewise.
6824 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6825 CODE_FOR_nothing.
6826 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6827 casts to enum type.
6828 * config/s390/s390.c (s390_tune_flags): Change type to int.
6829 (s390_arch_flags): Likewise.
7a00d767 6830 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6831 * config/s390/s390.h (s390_tune_flags): Update declaration.
6832 (s390_arch_flags): Likewise.
6833 * config/sh/sh.c (prepare_move_operands): Compare
6834 tls_symbolic_operand result with enum constant.
6835 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6836 (sh_expand_prologue): Add cast to enum type.
6837 (sh_expand_epilogue): Likewise.
6838 (tls_symbolic_operand): Change return type to enum tls_model.
6839 (fpscr_set_from_mem): Add cast to enum type.
6840 (legitimize_pic_address): Compare tls_symbolic_operand result with
6841 enum constant.
6842 (sh_target_reg_class): Change return type to enum reg_class.
6843 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6844 PROCESSOR_xxx.
7a00d767
UB
6845 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6846 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6847 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6848 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6849 (delayed_branch, tls_call_delay): Likewise.
6850 (eligible_for_sibcall_delay): Likewise.
6851 (eligible_for_return_delay): Likewise.
6852 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6853 (spu_expand_builtin_1): Likewise.
6854
6855 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6856 for all types of conversions.
6857 (output_init_element): Issue -Wc++-compat warning if needed when
6858 initializing a bitfield with enum type.
6859 * c-parser.c (c_parser_expression): Set original_type to
6860 original_type of right hand operand of comman operator.
6861
e4ae5e77
RW
68622009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6863
6864 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6865 grammar nits.
7a00d767 6866 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6867 * doc/cpp.texi (Standard Predefined Macros)
6868 (Implementation-defined behavior): Likewise.
7a00d767 6869 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6870 * doc/gimple.texi (GIMPLE Exception Handling)
6871 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6872 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6873 * doc/invoke.texi (Warning Options, Optimize Options)
6874 (AVR Options, Darwin Options): Likewise.
6875 (Optimize Options): Reformulate -fwhole-program description.
6876 * doc/loop.texi (Lambda): Likewise.
6877 * doc/md.texi (Output Template, Define Constraints)
6878 (Standard Names, Insn Splitting): Likewise.
6879 * doc/options.texi (Option properties): Likewise.
6880 * doc/passes.texi (Tree-SSA passes): Likewise.
6881 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6882 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6883 (File Names and DBX): Likewise.
6884 * doc/trouble.texi (Incompatibilities): Likewise.
6885
1883802f 68862009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6887
6888 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6889 instruction is correct.
6890
1883802f 68912009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6892
6893 Allow non-constant arguments to conversion intrinsics.
6894 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6895 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6896 * spu.c (print_operand): Handle 'v' and 'w'.
6897 (exp2_immediate_p, spu_gen_exp2): Define.
6898 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6899 spu_convtf_1): Update parameter descriptions.
7a00d767 6900 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6901 * constraints.md ('v', 'w'): New.
6902 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6903 Remove.
6904 (i2f, I2F): New define_mode_attr.
6905 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6906 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6907 fixuns_truncv4sfv4si2): Update to use mode attribute.
6908 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6909 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6910 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6911 patterns for combine.
6912
5f39ad47
SB
69132009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6914
6915 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6916 (cprop, hoist, pre, store_motion): New debug counters.
6917 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6918 is not an RTL pass anymore.
6919 (pass_profiling): Remove extern decl for pass removed in 2005.
6920 (pass_gcse, pass_jump_bypass): Remove.
6921 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6922 to 0 for clean state.
6923 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6924 * cse.c (gate_handle_cse_after_global_opts,
6925 rest_of_handle_cse_after_global_opts): New functions.
6926 (pass_cse_after_global_opts): New pass, does local CSE.
6927 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6928 (TV_CPROP): New timevar.
6929 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6930 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6931 (gcse_main, recompute_all_luids): Remove.
6932 (compute_hash_table_work): Call max_reg_num instead of reading
6933 max_gcse_regno.
6934 (cprop_jump): Don't set run_jump_opt_after_gcse.
6935 (constprop_register): Always allow to alter jumps.
6936 (cprop_insn): Likewise.
6937 (do_local_cprop): Likewise.
6938 (local_cprop_pass): Likewise. Return non-zero if something changed.
6939 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6940 (find_implicit_sets): Add note about missed optimization opportunity.
6941 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6942 pass_rtl_cprop execute function.
6943 Don't bother tracking the pass number, each pass gets its own dumpfile
6944 now anyway.
6945 Always allow to alter jumpsand bypass jumps.
6946 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6947 will just find no suitable set.
6948 (pre_edge_insert): Fix dumping, this function is for PRE only.
6949 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6950 pass_rtl_pre execute function.
6951 (hoist_code): Return non-zero if something changed. Keep track of
6952 substitutions and insertions for statistics gathering similar to PRE.
6953 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6954 called from the pass_rtl_hoist execute function. Show pass statistics.
6955 (compute_store_table): Use max_reg_num directly instead of using the
6956 formerly global max_gcse_regno.
6957 (build_store_vectors): Likewise.
6958 (replace_store_insn): Fix dumping.
6959 (store_motion): Rename to ...
6960 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6961 pass, called from the pass_rtl_store_motion execute function. Keep
6962 track of substitutions and insertions for statistics gathering similar
6963 to PRE.
6964 (bypass_jumps): Remove, fold interesting bits into ...
6965 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6966 from the pass_rtl_cprop execute function.
6967 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6968 pass_jump_bypass): Remove.
6969 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6970 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6971 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6972 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6973 (gate_rtl_store_motion, execute_rtl_store_motion,
6974 pass_rtl_store_motion): New.
6975 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6976 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6977 * passes.c (init_optimization_passes): Remove pass_gcse and
6978 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6979 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6980 instead of pass_jump_bypass.
6981
c685de4a
RG
69822009-04-27 Richard Guenther <rguenther@suse.de>
6983
6984 PR middle-end/39928
6985 * gimplify.c (gimplify_expr): If we are required to create
6986 a temporary make sure it ends up as register.
6987
72d41f29
L
69882009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6989
6990 PR target/39903
6991 * config/i386/i386.c (construct_container): Don't call
6992 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6993 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6994
e97809c6
MM
69952009-04-27 Michael Matz <matz@suse.de>
6996
6997 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6998 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6999 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7000 (dump_replaceable_exprs): Take a bitmap.
7001 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7002 array.
7003 (expand_gimple_basic_block): Likewise.
7004 * tree-ssa-ter.c (struct temp_expr_table_d): Make
7005 replaceable_expressions member a bitmap.
7006 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7007 (mark_replaceable): Likewise.
7008 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7009 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7010
211ca15c
RG
70112009-04-27 Richard Guenther <rguenther@suse.de>
7012
7013 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7014 (verify_stmts): Dispatch to gimple/type verification code.
7015 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7016 issue with call argument types.
7017
fca5f3d1
MM
70182009-04-27 Michael Matz <matz@suse.de>
7019
7020 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7021 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7022 to above.
7023
a1fa3e79 70242009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 7025 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
7026
7027 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7028 a label's basic block.
7029 (mark_target_live_regs): Tidy and rework obsolete comments.
7030 Change back DF problem to LIVE. If a label starts a basic block,
7031 assume that all registers that used to be live then still are.
7032 (init_resource_info): If a label starts a basic block, set its
7033 BLOCK_FOR_INSN accordingly.
7034 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7035
33b223c0
RG
70362009-04-27 Richard Guenther <rguenther@suse.de>
7037
7038 * tree-flow-inline.h (function_ann): Remove.
7039 (get_function_ann): Likewise.
7040 * tree-dfa.c (create_function_ann): Remove.
7041 * tree-flow.h (struct static_var_ann_d): Remove.
7042 (struct function_ann_d): Likewise.
7043 (union tree_ann_d): Remove fdecl member.
7044 (function_ann_t): Remove.
7045 (function_ann, get_function_ann, create_function_ann): Remove
7046 declarations.
7047
e3136fa2
UB
70482009-04-27 Uros Bizjak <ubizjak@gmail.com>
7049
7050 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7051
f87c9042
JH
70522009-04-27 Jan Hubicka <jh@suse.cz>
7053
7054 * ipa-pure-const.c (struct funct_state_d): New fields
7055 state_previously_known, looping_previously_known; remove
7056 state_set_in_source.
7057 (analyze_function): Use new fields.
7058 (propagate): Avoid assumption that state_set_in_source imply
7059 nonlooping.
7060
7061 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7062 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7063 * cfgloop.h (finite_loop_p): Declare.
7064
33abd718
MM
70652009-04-26 Michael Matz <matz@suse.de>
7066
e3136fa2 7067 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7068
ddc34084
MM
70692009-04-26 Michael Matz <matz@suse.de>
7070
7071 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7072 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7073 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7074 pass_mark_used_blocks): Remove.
7075 * tree-optimize.c (pass_free_datastructures,
7076 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7077 * passes.c (init_optimization_passes): Don't call
7078 pass_mark_used_blocks, remove dead code.
7079
1fec7ed4
L
70802009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7081
7082 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7083 * tree-ssa-live.h (register_ssa_partition): Likewise.
7084
4e3825db
MM
70852009-04-26 Michael Matz <matz@suse.de>
7086
7087 Expand from SSA.
7088 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7089 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7090 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7091 SSA names.
7092 (compare_pairs): Swap cost comparison.
7093 (coalesce_ssa_name): Don't use change_partition_var.
7094 * tree-nrv.c (struct nrv_data): Add modified member.
7095 (finalize_nrv_r): Set it.
7096 (tree_nrv): Use it to update statements.
7097 (pass_nrv): Require PROP_ssa.
7098 * tree-mudflap.c (mf_decl_cache_locals,
7099 mf_build_check_statement_for): Use make_rename_temp.
7100 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7101 * alias.c (find_base_decl): Handle SSA names.
7102 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7103 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7104 * rtl.h (set_reg_attrs_for_parm): Declare.
7105 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7106 to "optimized", remove unused locals at finish.
7107 (execute_free_datastructures): Make global, call
7108 delete_tree_cfg_annotations.
7109 (execute_free_cfg_annotations): Don't call
7110 delete_tree_cfg_annotations.
7111
7112 * ssaexpand.h: New file.
7113 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7114 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7115 (expand_expr_real_1): Expand SSA names.
7116 * cfgexpand.c (toplevel): Include ssaexpand.h.
7117 (SA): New global variable.
7118 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7119 (SSAVAR): New macro.
7120 (set_rtl): New helper function.
7121 (add_stack_var): Deal with SSA names, use set_rtl.
7122 (expand_one_stack_var_at): Likewise.
7123 (expand_one_stack_var): Deal with SSA names.
7124 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7125 before unique numbers.
7126 (expand_stack_vars): Use set_rtl.
7127 (expand_one_var): Accept SSA names, add asserts for them, feed them
7128 to above subroutines.
7129 (expand_used_vars): Expand all partitions (without default defs),
7130 then only the local decls (ignoring those expanded already).
7131 (expand_gimple_cond): Remove edges when jumpif() expands an
7132 unconditional jump.
7133 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7134 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7135 SSA name.
7136 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7137 members of SA; deal with PARM_DECL partitions here; expand
7138 all PHI nodes, free tree datastructures and SA. Commit instructions
7139 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7140 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7141 info and statements at start, collect garbage at finish.
7142 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7143 (VAR_ANN_PARTITION) Remove.
7144 (change_partition_var): Don't declare.
7145 (partition_to_var): Always return SSA names.
7146 (var_to_partition): Only accept SSA names.
7147 (register_ssa_partition): Only check argument.
7148 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7149 member.
7150 (delete_var_map): Don't free it.
7151 (var_union): Only accept SSA names, simplify.
7152 (partition_view_init): Mark only useful SSA names as used.
7153 (partition_view_fini): Only deal with SSA names.
7154 (change_partition_var): Remove.
7155 (dump_var_map): Use ssa_name instead of partition_to_var member.
7156 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7157 basic blocks.
7158 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7159 (struct _elim_graph): New member const_dests; nodes member vector of
7160 ints.
7161 (set_location_for_edge): New static helper.
7162 (create_temp): Remove.
7163 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7164 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7165 (new_elim_graph): Allocate const_dests member.
7166 (clean_elim_graph): Truncate const_dests member.
7167 (delete_elim_graph): Free const_dests member.
7168 (elim_graph_size): Adapt to new type of nodes member.
7169 (elim_graph_add_node): Likewise.
7170 (eliminate_name): Likewise.
7171 (eliminate_build): Don't take basic block argument, deal only with
7172 partition numbers, not variables.
7173 (get_temp_reg): New static helper.
7174 (elim_create): Use it, deal with RTL temporaries instead of trees.
7175 (eliminate_phi): Adjust all calls to new signature.
7176 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7177 (rewrite_trees): Only do checking.
7178 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7179 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7180 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7181 contains_tree_r, MAX_STMTS_IN_LATCH,
7182 process_single_block_loop_latch, analyze_edges_for_bb,
7183 perform_edge_inserts): Remove.
7184 (expand_phi_nodes): New global function.
7185 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7186 functions, initialize new parameter, remember partitions having a
7187 default def.
7188 (finish_out_of_ssa): New global function.
7189 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7190 don't reset in_ssa_p here, don't disable TER when mudflap.
7191 (pass_del_ssa): Remove.
7192 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7193 partition members.
7194 (execute_free_datastructures): Declare.
7195 * Makefile.in (SSAEXPAND_H): New variable.
7196 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7197 * basic-block.h (commit_one_edge_insertion): Declare.
7198 * passes.c (init_optimization_passes): Move pass_nrv and
7199 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7200 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7201 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7202 (redirect_branch_edge): Deal with super block when expanding, split
7203 out jump patching itself into ...
7204 (patch_jump_insn): ... here, new static helper.
7205
17c665a9
MM
72062009-04-26 Michael Matz <matz@suse.de>
7207
7208 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7209 beyond num_ssa_names.
7210 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7211 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7212
92061771
JJ
72132009-04-26 Jakub Jelinek <jakub@redhat.com>
7214
ce372372
JJ
7215 PR inline-asm/39543
7216 * fwprop.c (forward_propagate_asm): New function.
7217 (forward_propagate_and_simplify): Propagate also into __asm, if it
7218 doesn't increase the number of referenced registers.
7219
92061771
JJ
7220 PR c/39889
7221 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7222
72232009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7224
7225 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7226 note_nonlocal_vla_type for nonlocal VLAs.
7227 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7228 contains_remapped_vars, remap_vla_decls): New functions.
7229 (convert_nonlocal_reference_stmt): If not optimizing, call
7230 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7231 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7232 if it wasn't found in var_map.
7233 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7234 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7235 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7236 declare_vars.
7237 * gimplify.c (nonlocal_vlas): New variable.
7238 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7239 referenced VLAs.
7240 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7241
4561e242
JJ
7242 * dwarf2out.c (loc_descr_plus_const): New function.
7243 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7244 mem_loc_descriptor, loc_descriptor_from_tree_1,
7245 descr_info_loc, gen_variable_die): Use it.
7246
a9548ddf
JJ
7247 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7248 !TREE_STATIC VAR_DECLs.
7249 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7250 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7251 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7252 DECL_BY_REFERENCE is valid.
7253 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7254 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7255 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7256 Copy DECL_BY_REFERENCE.
7257 (struct nesting_copy_body_data): New type.
7258 (nesting_copy_decl): New function.
7259 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7260 if they have variable length.
7261
10555d08
MM
72622009-04-26 Michael Matz <matz@suse.de>
7263
7264 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7265 mark new temporaries for renaming.
7266
e11187cc
JM
72672009-04-26 Joseph Myers <joseph@codesourcery.com>
7268
7269 PR c/39581
7270 * c-decl.c (global_bindings_p): Return negative value.
7271 (c_variable_size): New. Based on variable_size from
7272 stor-layout.c.
7273 (grokdeclarator): Call c_variable_size not variable_size.
7274
f6a51d31
UB
72752009-04-26 Uros Bizjak <ubizjak@gmail.com>
7276
7277 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7278
4b97723d
KT
72792009-04-26 Kai Tietz <kai.tietz@onevision.com>
7280
7281 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7282 Redefine it to just use mingw/include.
7283 (ASM_SPEC): Rules for -m32 and -m64.
7284 (LINK_SPEC): Use Likewise.
7285 (SPEC_32): New define.
7286 (SPEC_64): Likewise.
7287 (SUB_LINK_SPEC): Likewise.
7288 (MULTILIB_DEFAULTS): New define.
7289 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7290 Add multilib options.
7291 (MULTILIB_DIRNAMES): Likewise.
7292 (MULTILIB_OSDIRNAMES): Likewise.
7293 (LIBGCC): Likewise.
7294 (INSTALL_LIBGCC): Likewise.
7295
991d6621
JM
72962009-04-26 Joseph Myers <joseph@codesourcery.com>
7297
7298 PR c/39556
7299 * c-tree.h (enum c_inline_static_type): New.
7300 (record_inline_static): Declare.
7301 * c-decl.c (struct c_inline_static, c_inline_statics,
7302 record_inline_static, check_inline_statics): New.
7303 (pop_file_scope): Call check_inline_statics.
7304 (start_decl): Call record_inline_static instead of pedwarning
7305 directly for static in inline function.
7306 * c-typeck.c (build_external_ref): Call record_inline_static
7307 instead of pedwarning directly for static referenced in inline
7308 function.
7309
4a81774c
SB
73102009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7311
7312 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7313 not new but only being rescanned.
7314 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7315 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7316 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7317 record_set_info, compute_set, grealloc): Remove.
7318 (recompute_all_luids): New function.
7319 (gcse_main): Don't compute sets, and don't do related memory
7320 allocations/free-ing. If something changed before the end of the
7321 pass, update LUIDs using recompute_all_luids.
7322 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7323 (free_gcse_mem): Don't free it either.
7324 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7325 Use the df insn LUIDs.
7326 (load_killed_in_block): Likewise.
7327 (compute_hash_table_work): Don't compute reg_set_in_block.
7328 (compute_transp): Use DF_REG_DEF_CHAINs.
7329 (local_cprop_pass): Don't use compute_sets and related functions.
7330 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7331 Use get_max_uid() instead of max_cuid.
7332 (insert_insn_end_basic_block, pre_insert_copy_insn,
7333 update_ld_motion_stores): Don't try to
7334 keep reg_set tables up to date.
7335 (pre_insert_copies): Use df insn LUIDs.
7336 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7337 (reg_set_info): Don't use extra bitmap argument.
7338 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7339 information to compute regs_set_in_block.
7340 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7341 (bypass_jumps): Don't use compute_sets and friends.
7342
e8f99a9d
RW
73432009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7344
7345 PR testsuite/39710
7346 * opts.c (undocumented_msg): Do not leave blank even with
7347 ENABLE_CHECKING.
7348
6895bac8
JM
73492009-04-25 Joseph Myers <joseph@codesourcery.com>
7350
7351 * c-decl.c (build_enumerator): Allow values folding to integer
7352 constants but not integer constant expressions with a pedwarn if
7353 pedantic.
7354
24070fcb
JM
73552009-04-25 Joseph Myers <joseph@codesourcery.com>
7356
7357 PR c/39582
7358 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7359 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7360 type is an integer constant.
7361
d6d89aa1
UB
73622009-04-25 Uros Bizjak <ubizjak@gmail.com>
7363
7364 PR target/39897
7365 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7366 HImode operands.
7367
92f6fd0b
JM
73682009-04-25 Joseph Myers <joseph@codesourcery.com>
7369
7370 PR c/39564
7371 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7372 with variably modified return type and no storage class
7373 specifiers, except for the case of nested functions. Distinguish
7374 extern declarations of functions with variably modified return
7375 types from those of objects with variably modified types.
7376
a3710436
JH
73772009-04-25 Jan Hubicka <jh@suse.cz>
7378
7379 * tree.c (list_equal_p): New function.
7380 * tree.h (list_equal_p): Declare.
7381 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7382 basic_block_def, basic_block, const_basic_block): New.
7383 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7384 (redirect_eh_edge): New function.
7385 (make_eh_edge_update_phi): EH edges are not abnormal.
7386 * except.c: Include tree-flow.h.
7387 (list_match): New function.
7388 (eh_region_replaceable_by_p): New function.
7389 (replace_region): New function.
7390 (hash_type_list): New function.
7391 (hash_eh_region): New function.
7392 (eh_regions_equal_p): New function.
7393 (merge_peers): New function.
7394 (remove_unreachable_regions): Verify EH tree when checking;
7395 merge peers.
7396 (copy_eh_region_1): New function.
7397 (copy_eh_region): New function.
7398 (push_reachable_handler): New function.
7399 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7400 regions without label but with live RESX.
7401 * except.h (redirect_eh_edge_to_label): New.
7402 * tree-flow.h (redirect_eh_edge): New.
7403 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7404 basic_block_def, basic_block, const_basic_block): Remove.
7405 * Makefile.in (except.o): Add dependency on tree-flow.h
7406 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7407 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7408 Remove.
7409
3764d512
EB
74102009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7411
7412 PR bootstrap/39645
7413 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7414 on the destination of memcpy.
7415
1c62e8f2
PB
74162009-04-25 Paolo Bonzini <bonzini@gnu.org>
7417
7418 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7419 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7420 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7421
496a4ef5
JH
74222009-04-25 Jan Hubicka <jh@suse.cz>
7423
7424 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7425 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7426 to be reached by different label than left.
7427 (update_eh_edges): Update comment; remove edge_to_remove if possible
7428 and return true if suceeded.
7429 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7430 (cleanup_eh): Compute sharing map.
7431 * except.c (remove_eh_handler_and_replace): Add argument if we should
7432 update regions.
7433 (remove_unreachable_regions): Update for label sharing.
7434 (label_to_region_map): Likewise.
7435 (get_next_region_sharing_label): New function.
7436 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7437 prev_try pointers.
7438 (remove_eh_handler): Update.
7439 (remove_eh_region_and_replace_by_outer_of): New function.
7440 * except.h (struct eh_region): Add next_region_sharing_label.
7441 (remove_eh_region_and_replace_by_outer_of,
7442 get_next_region_sharing_label): Declare.
7443 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7444
74452009-04-25 Jan Hubicka <jh@suse.cz>
7446
7447 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7448 insert code even if they are not critical.
7449
74502009-04-25 Jan Hubicka <jh@suse.cz>
7451
7452 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7453 (gimple_can_remove_branch_p): EH edges won't remove branch by
7454 redirection.
7455 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7456 updating of non-abnormal EH edges.
7457 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7458 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7459 (split_critical_edges): Split also edges where emitting code on them
7460 will lead to splitting later.
7461
a3a5e3d1
UB
74622009-04-25 Uros Bizjak <ubizjak@gmail.com>
7463 H.J. Lu <hongjiu.lu@intel.com>
7464
7465 PR target/39590
7466 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7467 the configured assembler supports fildq and fistpq mnemonics.
7468 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7469 * configure: Regenerated.
7470 * config.in: Ditto.
7471
7472 * config/i386/i386.c (print_operand): Handle 'Z'.
7473 ['z']: Remove handling of special fild/fist suffixes.
7474 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7475 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7476 suffix of fild insn.
7477 (*floatsi<mode>2_vector_mixed): Ditto.
7478 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7479 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7480 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7481 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7482 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7483
23750d7f
BE
74842009-04-25 Ben Elliston <bje@au.ibm.com>
7485
7486 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7487 the source of a set operation.
7488
e6ff3083
AS
74892009-04-25 Anatoly Sokolov <aesok@post.ru>
7490
7491 * target.h (struct gcc_target): Add case_values_threshold field.
7492 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7493 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7494 * targhooks.c (default_case_values_threshold): New function.
7495 * targhooks.h (default_case_values_threshold): Declare function.
7496 * stmt.c (expand_case): Use case_values_threshold target hook.
7497 * expr.h (case_values_threshold): Remove declartation.
7498 * expr.c (case_values_threshold): Remove function.
7499 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7500
7501 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7502 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7503 (avr_case_values_threshold): Declare as static.
7504 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7505
7506 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7507 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7508 (mn10300_case_values_threshold): New function.
7509
569c72fc
L
75102009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7511
7512 * ira.c (setup_cover_and_important_classes): Add enum cast.
7513
ff3cb468
VM
75142009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7515
7516 * genpreds.c (write_enum_constraint_num): Output definition of
7517 CONSTRAINT_NUM_DEFINED_P macro.
7518 * ira.c (setup_cover_and_important_classes): Use
7519 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7520
4f7be849
DD
75212009-04-24 DJ Delorie <dj@redhat.com>
7522
7523 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7524 __SH2A_SINGLE_ONLY__ also.
7525
735b94a7
SE
75262009-04-24 Steve Ellcey <sje@cup.hp.com>
7527
7528 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7529 (movdf_internal): Ditto.
7530 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7531 SFmode and DFmode constants.
7532 (ia64_print_operand): Add 'G' format for printing
7533 floating point constants.
7534
77a30264
RG
75352009-04-24 Richard Guenther <rguenther@suse.de>
7536
7537 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7538 from unsigned additions.
7539
2b6da65c
JM
75402009-04-24 Joseph Myers <joseph@codesourcery.com>
7541
7542 * c-typeck.c (set_init_index): Allow array designators that are
7543 not integer constant expressions with a pedwarn if pedantic.
7544
f5a17c43
BS
75452009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7546
7547 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7548 zero if no overlap in nonzero bits between the operands.
7549
32e8bb8e
ILT
75502009-04-24 Ian Lance Taylor <iant@google.com>
7551
7552 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7553 (record_dead_and_set_regs): Likewise.
7554 * df.h (struct df_mw_hardreg): Change flags field to int.
7555 (struct df_base_ref): Likewise.
7556 (struct df): Change changeable_flags field to int.
7557 * df-scan.c (df_defs_record): Change clobber_flags to int.
7558 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7559 constants rather than #define macros.
7560 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7561 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7562 (enum dwarf_calling_convention): Likewise.
7563 (enum dwarf_line_number_x_ops): Likewise.
7564 (enum dwarf_call_frame_info): Likewise.
7565 (enum dwarf_source_language): Likewise.
7566 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7567 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7568 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7569 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7570 * genrecog.c (maybe_both_true_2): Change c to int.
7571 (write_switch): Likewise. Add cast to enum type.
7572 * gimplify.c (gimplify_omp_for): Handle return values from
7573 gimplify_expr using MIN rather than bitwise or.
7574 (gimplify_expr): Add cast to enum type.
7575 * ipa-prop.c (update_jump_functions_after_inlining): Change
7576 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7577 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7578 Add casts to enum type.
32e8bb8e
ILT
7579 (setup_cover_and_important_classes): Change cl to int. Add casts
7580 to enum type.
7581 (setup_class_translate): Change cl and mode to int.
7582 (ira_init_once): Change mode to int.
7583 (free_register_move_costs): Likewise.
7584 (setup_prohibited_mode_move_regs): Add casts to enum type.
7585 * langhooks.c (add_builtin_function_common): Rework assertion that
7586 value fits bitfield.
7587 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7588 * omega.c (omega_do_elimination): Avoid math on enum types.
7589 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7590 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7591 int local to handle integral_argment value.
7592 * regmove.c (try_auto_increment): Change PUT_MODE to
7593 PUT_REG_NOTE_KIND.
7594 * reload.c (push_secondary_reload): Add casts to enum type.
7595 (secondary_reload_class, find_valid_class): Likewise.
7596 * reload1.c (emit_input_reload_insns): Likewise.
7597 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7598 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7599 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7600 constant.
7601 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7602 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7603 enum type.
7604 (expand_complex_libcall): Add casts to enum type.
7605 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7606 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7607 with ERROR_MARK, not NUM_TREE_CODES.
7608 (vect_create_epilog_for_reduction): Likewise.
7609 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7610 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7611 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7612 enum machine_mode.
7613 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7614 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7615 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7616 * var-tracking.c (get_init_value): Change return type to enum
7617 var_init_status.
7618 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7619 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7620 arm_fp_model.
7621 (arm_override_options): Add casts to enum type.
7622 (arm_emit_tls_decoration): Likewise.
7623 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7624 to enum type.
7625 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7626 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7627 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7628 enum type.
7629 * config/s390/s390.c (code_for_builtin_64): Change to array of
7630 enum insn_code.
7631 (code_for_builtin_31): Likewise.
7632 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7633 const *.
7634 * config/sparc/sparc.c (sparc_override_options): Change value
7635 field in struct code_model to enum cmodel. In initializer change
7636 0 to NULL and add cast to enum type.
7637
7638 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7639 Change all callers. Issue a -Wc++-compat warning using
7640 lhs_origtype if necessary.
7641 (convert_for_assignment): Issue -Wc++-compat warnings about
7642 invalid conversions to enum type on assignment.
7643 * c-common.h (build_modify_expr): Update declaration.
7644
ac4fc08a
NC
76452009-04-24 Nick Clifton <nickc@redhat.com>
7646
7647 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7648 (function_arg_advance): Likewise.
7649 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7650 5th alternative.
7651
f22e891a
AK
76522009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7653
7654 * config/s390/constraints.md ('I', 'J'): Fix condition.
7655
ad58aabe
DN
76562009-04-24 Diego Novillo <dnovillo@google.com>
7657
7658 * gengtype-parse.c (parse_error): Add newline after message.
7659
879a4a01
L
76602009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7661
7662 * config/i386/sse.md (avxmodesuffixs): Removed.
7663 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7664 (*avx_pinsr<ssevecsize>): This.
7665
f63426af
BS
76662009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7667
7668 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7669 follow chains of regs with a single definition, and allow expressions
7670 that are function_invariant_p.
ce72fe6c 7671 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7672
30349c74
PB
76732009-04-24 Paolo Bonzini <bonzini@gnu.org>
7674
7675 PR middle-end/39867
7676 * fold-const.c (fold_cond_expr_with_comparison): When folding
7677 > and >= to MAX, make sure the MAX uses the same type as the
7678 comparison's operands.
7679
8d8256c1
NC
76802009-04-24 Nick Clifton <nickc@redhat.com>
7681
7682 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7683 addressing for DImode accesses.
7684 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7685 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7686
6216f94e
JJ
76872009-04-24 Jakub Jelinek <jakub@redhat.com>
7688
7689 PR rtl-optimization/39794
7690 * alias.c (canon_true_dependence): Add x_addr argument.
7691 * rtl.h (canon_true_dependence): Adjust prototype.
7692 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7693 * cselib.c (cselib_invalidate_mem): Likewise.
7694 * gcse.c (compute_transp): Likewise.
7695 * dse.c (scan_reads_nospill): Likewise.
7696 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7697 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7698 canon_base_addr of the group, plus optional offset.
7699 (struct group_info): Rename canon_base_mem to
7700 canon_base_addr.
7701 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7702 canon_rtx of base_mem.
7703
6de7a512
PB
77042009-04-23 Paolo Bonzini <bonzini@gnu.org>
7705
7706 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7707 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7708
4a3a2376
UW
77092009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7710
7711 * config/spu/spu-builtins.h: Delete file.
7712
7713 * config/spu/spu.h (enum spu_builtin_type): Move here from
7714 spu-builtins.h.
7715 (struct spu_builtin_description): Likewise. Add GTY marker.
7716 Do not use enum spu_function_code or enum insn_code.
7717 (spu_builtins): Add extern declaration.
7718
7719 * config/spu/spu.c: Do not include "spu-builtins.h".
7720 (enum spu_function_code, enum spu_builtin_type_index,
7721 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7722 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7723 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7724 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7725 (spu_builtin_types): Make static. Add GTY marker.
7726 (spu_builtins): Add extern declaration with GTY marker.
7727 Include "gt-spu.h".
7728
7729 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7730 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7731 Check programmatically whether all parameters are scalar.
7732
7733 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7734
bbaba73f
EB
77352009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7736
7737 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7738 assignment from the constructor either if the target is volatile.
7739
ee93c1c6
DJ
77402009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7741
7742 * config/arm/arm.md (insv): Do not share operands[0].
7743
b2f21330
NS
77442009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7745
7746 * config/vxlib-tls.c (active_tls_threads): Delete.
7747 (delete_hook_installed): New.
7748 (tls_delete_hook): Don't delete the delete hook.
7749 (tls_destructor): Delete it here.
7750 (__gthread_set_specific): Adjust installing the delete hook.
7751 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7752 __gthread_leave_tsd_dtor_context.
7753
4782dfa7
RAE
77542009-04-23 Rafael Avila de Espindola <espindola@google.com>
7755
7756 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7757
bf758008
UB
77582009-04-23 Uros Bizjak <ubizjak@gmail.com>
7759
7760 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7761 enum type.
7762 (alpha_rtx_costs): Ditto.
7763 (emit_unlikely_jump): Use add_reg_note.
7764 (emit_frame_store_1): Ditto.
7765 (alpha_expand_prologue): Ditto.
7766 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7767 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7768
7323a100
NC
77692009-04-23 Nick Clifton <nickc@redhat.com>
7770
7771 * config/v850/v850.md (epilogue): Remove suppressed code.
7772 (return): Rename to return_simple and remove test of frame size.
7773 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7774 to gen_return_simple.
7775
360032ba
JY
77762009-04-22 Jing Yu <jingyu@google.com>
7777
7778 PR testsuite/39781
7779 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7780
53650abe
AP
77812009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7782
7783 PR C/31499
7784 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7785 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7786 value is a VECTOR_CST, the element type is the element type of the
7787 vector.
7788
89043e8a
DD
77892009-04-22 DJ Delorie <dj@redhat.com>
7790
7791 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7792
023f059b
JJ
77932009-04-22 Jakub Jelinek <jakub@redhat.com>
7794
7795 * alias.c (find_base_term): Move around LO_SUM case, so that
7796 CONST falls through into PLUS/MINUS handling.
7797
2c0eba5a
JJ
7798 PR c/39855
7799 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7800 into 0, use omit_one_operand.
7801
9a461028
BE
78022009-04-23 Ben Elliston <bje@au.ibm.com>
7803
7804 * config/rs6000/linux-unwind.h (get_regs): Remove type
7805 puns. Change the type of `pc' to an array of unsigned ints and
7806 update all users. Constify frame24.
7807
653e2568
DD
78082009-04-22 DJ Delorie <dj@redhat.com>
7809
7810 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7811 declarations before code.
7812 (current_function_special_page_vector): Likewise.
7813 (m32c_expand_insv): Silence a warning.
7814
60839f5d 78152009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7816
7817 * alias.c: Update GTY annotations to new syntax.
7818 * basic-block.h: Likewise.
7819 * bitmap.h: Likewise.
7820 * c-common.h: Likewise.
7821 * c-decl.c: Likewise.
7822 * c-parser.c: Likewise.
7823 * c-pragma.c: Likewise.
7824 * c-tree.h: Likewise.
7825 * cfgloop.h: Likewise.
7826 * cgraph.h: Likewise.
7827 * config/alpha/alpha.c: Likewise.
7828 * config/arm/arm.h: Likewise.
7829 * config/avr/avr.h: Likewise.
7830 * config/bfin/bfin.c: Likewise.
7831 * config/cris/cris.c: Likewise.
7832 * config/darwin.c: Likewise.
7833 * config/frv/frv.c: Likewise.
7834 * config/i386/i386.c: Likewise.
7835 * config/i386/i386.h: Likewise.
7836 * config/i386/winnt.c: Likewise.
7837 * config/ia64/ia64.h: Likewise.
7838 * config/iq2000/iq2000.c: Likewise.
7839 * config/mips/mips.c: Likewise.
7840 * config/mmix/mmix.h: Likewise.
7841 * config/pa/pa.c: Likewise.
7842 * config/pa/pa.h: Likewise.
7843 * config/rs6000/rs6000.c: Likewise.
7844 * config/s390/s390.c: Likewise.
7845 * config/sparc/sparc.c: Likewise.
7846 * config/xtensa/xtensa.c: Likewise.
7847 * cselib.h: Likewise.
7848 * dbxout.c: Likewise.
7849 * dwarf2out.c: Likewise.
7850 * except.c: Likewise.
7851 * except.h: Likewise.
7852 * fixed-value.h: Likewise.
7853 * function.c: Likewise.
7854 * function.h: Likewise.
7855 * gimple.h: Likewise.
7856 * integrate.c: Likewise.
7857 * optabs.c: Likewise.
7858 * output.h: Likewise.
7859 * real.h: Likewise.
7860 * rtl.h: Likewise.
7861 * stringpool.c: Likewise.
7862 * tree-data-ref.c: Likewise.
7863 * tree-flow.h: Likewise.
7864 * tree-scalar-evolution.c: Likewise.
7865 * tree-ssa-address.c: Likewise.
7866 * tree-ssa-alias.h: Likewise.
7867 * tree-ssa-operands.h: Likewise.
7868 * tree.c: Likewise.
7869 * tree.h: Likewise.
7870 * varasm.c: Likewise.
7871 * varray.h: Likewise.
7872 * vec.h: Likewise.
bf758008 7873 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7874 * doc/gty.texi: Update GTY documentation to new syntax.
7875 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7876 annotations on structs.
7877 * gengtype-parse.c: Likewise.
7878
a123d175
MH
78792009-04-22 Mark Heffernan <meheff@google.com>
7880
bf758008 7881 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7882
4c7c486a
KH
78832009-04-22 Kazu Hirata <kazu@codesourcery.com>
7884
7885 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7886 where appropriate.
7887
6e782a29
KH
78882009-04-22 Kazu Hirata <kazu@codesourcery.com>
7889
7890 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7891 the same as a PLUS without a shift. Increase the cost of a
7892 CONST_INT in MULT.
7893
38d2336a
MLI
78942009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7895
7896 * Makefile.in: Update dependencies.
bf758008 7897 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7898 * errors.h: Remove bogus comment about compatibility.
7899 (warning): Update declaration.
7900 * genautomata.c: Update all calls to warning.
7901 * gimple.c: Do not include errors.h. Include toplev.h.
7902 * tree-ssa-structalias.c: Do not include errors.h.
7903 * omega.c: Likewise.
7904 * tree-ssa-reassoc.c: Likewise.
7905 * config/spu/spu-c.c: Likewise.
7906 * config/spu/t-spu-elf: Update dependencies.
7907
aea4deba
RG
79082009-04-22 Richard Guenther <rguenther@suse.de>
7909
7910 PR tree-optimization/39824
7911 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7912 make sure the types are compatible.
7913
cfc93532
MLI
79142009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7915
7916 PR c++/14875
7917 * c-common.c (c_parse_error): Take a token_flags parameter.
7918 Use token_type for the token type instead.
7919 Pass token_flags to cpp_type2name.
7920 * c-common.h (c_parse_error): Update declaration.
7921 * c-parser.c (c_parser_error): Pass 0 as token flags.
7922
8632d02a
AB
79232009-04-22 Andrey Belevantsev <abel@ispras.ru>
7924
7925 PR rtl-optimization/39580
7926 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7927
4c33221c
UW
79282009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7929
7930 * function.c (expand_function_end): Do not emit a jump to the "naked"
7931 return label for fall-through returns.
7932 * except.c (sjlj_emit_function_exit): Always place the call to the
7933 unregister function at the location installed by expand_function_end.
7934
9925bce0
RG
79352009-04-22 Richard Guenther <rguenther@suse.de>
7936
7937 PR tree-optimization/39845
7938 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7939 (gen_inbound_check): Likewise.
7940
24a40b35
NS
79412009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7942
7943 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7944 padding for PPC.
7945 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7946 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7947
6c34a092
PB
79482009-04-22 Paolo Bonzini <bonzini@gnu.org>
7949
7950 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7951 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7952 shift counts to avoid out-of-bounds array accesses.
7953
baa48dfa
PB
79542009-04-22 Paolo Bonzini <bonzini@gnu.org>
7955
7956 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7957 (Pmode): Move above.
7958
7d83f4f5
UB
79592009-04-22 Uros Bizjak <ubizjak@gmail.com>
7960
7961 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7962 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7963 GET_CODE macro. Use IN_RANGE macro where appropriate.
7964 * config/alpha/alpha.h: Ditto.
7965 * config/alpha/alpha.md: Ditto.
7966 * config/alpha/constraints.md: Ditto.
7967 * config/alpha/predicates.md: Ditto.
7968
3ad606bc
PB
79692009-04-22 Paolo Bonzini <bonzini@gnu.org>
7970
7971 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7972 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7973 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7974 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7975 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7976 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7977 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7978 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7979 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7980 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7981 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7982 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7983 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7984 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7985 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7986 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7987 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7988 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7989 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7990 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7991 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7992 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7993 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7994 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7995 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7996 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7997 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7998
3cabd6d1
LB
79992009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8000
8001 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8002 references from comments.
8003 * cfgbuild.c: (count_basic_blocks): Delete.
8004 (find_basic_blocks_1): Delete.
8005 (find_basic_blocks): Delete.
8006 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 8007 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
8008 * except.h (finish_eh_generation): Delete.
8009 * basic-block.h (find_basic_blocks): Delete.
8010 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8011
270d1bcd
DK
80122009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
8013
8014 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
8015 (sdbout_parms): Likewise.
8016
b757d36f
KK
80172009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8018
8019 * config/sh/sh.c (prepare_cbranch_operands): Use
8020 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8021 (expand_cbranchdi4): Likewise.
8022 (from_compare): Add cast to enum type.
8023 (expand_cbranchsi4): Use add_reg_note.
8024 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8025 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8026 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8027 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8028 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8029 instead of CODE_FOR_nothing.
8030 (cbranchdi4): Likewise. Fix the order of arguments for
8031 gen_rtx_fmt_ee.
8032 (push_fpscr): Use add_reg_note.
8033 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8034 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8035
ad41bd84
JM
80362009-04-21 Joseph Myers <joseph@codesourcery.com>
8037
8038 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8039 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8040 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8041 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8042 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8043 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8044 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8045 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8046 config/alpha/x-vms, config/arc/t-arc,
8047 config/arm/README-interworking, config/arm/arm-c.c,
8048 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8049 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8050 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8051 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8052 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8053 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8054 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8055 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8056 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8057 config/cris/t-elfmulti, config/crx/t-crx,
8058 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8059 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8060 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8061 config/h8300/t-h8300, config/i386/athlon.md,
8062 config/i386/darwin-libgcc.10.4.ver,
8063 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8064 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8065 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8066 config/i386/t-linux64, config/i386/t-nwld,
8067 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8068 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8069 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8070 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8071 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8072 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8073 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8074 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8075 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8076 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8077 config/m68k/t-uclinux, config/mcore/t-mcore,
8078 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8079 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8080 config/mips/crtn.asm, config/mips/irix-crti.asm,
8081 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8082 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8083 config/mips/mips-fixed.md, config/mips/sb1.md,
8084 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8085 config/mips/t-iris6, config/mips/t-isa3264,
8086 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8087 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8088 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8089 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8090 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8091 config/mn10300/t-linux, config/mn10300/t-mn10300,
8092 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8093 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8094 config/picochip/libgccExtras/clzsi2.asm,
8095 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8096 config/rs6000/darwin-libgcc.10.4.ver,
8097 config/rs6000/darwin-libgcc.10.5.ver,
8098 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8099 config/rs6000/t-aix43, config/rs6000/t-aix52,
8100 config/rs6000/t-darwin, config/rs6000/t-fprules,
8101 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8102 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8103 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8104 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8105 config/rs6000/t-rtems, config/rs6000/t-spe,
8106 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8107 config/score/t-score-elf, config/sh/divcost-analysis,
8108 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8109 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8110 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8111 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8112 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8113 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8114 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8115 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8116 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8117 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8118 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8119 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8120 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8121 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8122 * config/h8300/genmova.sh: Include copyright and license notices
8123 in generated output.
8124 * config/h8300/mova.md: Regenerate.
8125 * doc/install.texi2html: Include word "Copyright" in copyright
8126 notice and use name "Free Software Foundation, Inc.".
8127 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8128 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8129 ChangeLog-2007, ChangeLog-2008: Correct dates.
8130
ca80e52b
EB
81312009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8132
8133 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8134 NE_EXPR operations as well.
8135 * c-parser.c (c_parser_condition): Do not set location information on
8136 the condition.
8137 (c_parser_conditional_expression): Likewise.
8138 (c_parser_binary_expression): Set location information on operators.
8139 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8140 TRUTH_NOT_EXPR has been folded.
8141 * fold-const.c (fold_truth_not_expr): Copy location information from
8142 the incoming expression to the outgoing one.
8143 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8144 recursive calls on the LHS of the operator but pass that of the
8145 operator to recursive calls on the RHS of the operator. Set it
8146 on the COND_EXPR.
8147 (shortcut_cond_expr): Set the locus of the operator on the second
8148 COND_EXPR and that of the expression on the first in degenerate cases.
8149 Pass the locus of the expression to calls to shortcut_cond_r.
8150 Set the locus of the 'then' block on the associated jump, if any.
8151 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8152 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8153 expression to call to gimplify_boolean_expr.
8154
35091630
KT
81552009-04-21 Kai Tietz <kai.tietz@onevision.com>
8156
8157 * config.gcc: Add additional configuration for
8158 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8159 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8160 (CPP_SPEC): Redefine for allowing -municode option.
8161 (STARTFILE_SPEC): Likewise.
8162 * config/i386/t-mingw-w64: New.
8163 * config/i386/mingw-w64.opt: New.
8164 (municode): Add new target option.
8165 * doc/invoke.texi (municode): Add documentation for new option.
8166
0267afc4
ILT
81672009-04-21 Ian Lance Taylor <iant@google.com>
8168
8169 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8170 Correct test for number of arguments.
8171 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8172
2ba9daa7
AS
81732009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8174
8175 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8176 argument of emit_library_call.
8177
ad8a1ac0
RG
81782009-04-21 Richard Guenther <rguenther@suse.de>
8179
8180 PR middle-end/39829
8181 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8182 inside VIEW_CONVERT_EXPRs.
8183
7156c8ab
MJ
81842009-04-21 Martin Jambor <mjambor@suse.cz>
8185
8186 * tree-switch-conversion.c (build_constructors): Split a long line.
8187 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8188 (build_one_array): Create assigns of constants if possible, do not
8189 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8190 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8191 make_rename_temp. Do not call mark_symbols_for_renaming, call
8192 update_stmt.
8193 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8194 find_new_referenced_vars, call update_stmt.
8195 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8196 instead of calling make_rename_temp. Do not call
8197 find_new_referenced_vars or mark_symbols_for_renaming, call
8198 update_stmt.
8199
2970ccb3
RG
82002009-04-21 Richard Guenther <rguenther@suse.de>
8201
8202 PR tree-optimization/39827
7d83f4f5 8203 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8204 (tree_ssa_phiprop): Pass the correct array size.
8205
47f402d1
UB
82062009-04-21 Uros Bizjak <ubizjak@gmail.com>
8207
8208 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8209
1e4ae551
MLI
82102009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8211
8212 PR 16202
8213 * c-typeck.c (lvalue_p): Move declaration ...
8214 * c-common.h (lvalue_p): ... to here.
8215 * c-common.c (candidate_equal_p): New.
8216 (add_tlist): Use it.
8217 (merge_tlist): Use it.
8218 (warn_for_collisions_1): Likewise.
8219 (warning_candidate_p): Accept more candidates.
8220 (verify_tree): A warning candidate can be an expression. Use
8221 candidate_equal_p.
8222
244609a6
BE
82232009-04-21 Ben Elliston <bje@au.ibm.com>
8224
8225 PR target/5267
8226 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8227 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8228 options. Remove -mcall-solaris documentation.
8229
9c650d90
MLI
82302009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8231
8232 PR c++/13358
8233 * doc/invoke.texi (-Wlong-long): Update description.
8234 * c-lex (interpret_integer): Only warn if there was no previous
8235 overflow and -Wlong-long is enabled.
8236 * c-decl.c (declspecs_add_type): Drop redundant flags.
8237 * c.opt (Wlong-long): Init to -1.
8238 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8239 and front-end warn_long_long. Wlong-long only depends on other
8240 flags if it is uninitialized.
8241 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8242 the same for CPP and FE.
8243 (restore_extension_diagnostics): Likewise.
8244
bbbbb16a
ILT
82452009-04-20 Ian Lance Taylor <iant@google.com>
8246
8247 Fix enum conversions which are invalid in C++:
47f402d1
UB
8248 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8249 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8250 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8251 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8252 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8253 (dbxout_parms): Likewise.
47f402d1 8254 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8255 (df_clear_flags): Likewise.
8256 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8257 top_flag parameter to int.
8258 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8259 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8260 Remove cast.
bbbbb16a
ILT
8261 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8262 (df_ref_create_structure, df_def_record_1): Likewise.
8263 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8264 (df_notes_rescan): Change 0 to VOIDmode in function call.
8265 (df_get_call_refs, df_insn_refs_collect): Likewise.
8266 (df_bb_regs_collect): Likewise.
8267 (df_entry_block_defs_collect): Likewise.
8268 (df_exit_block_uses_collect): Likewise.
8269 * df.h: Update declarations.
8270 * double-int.c (double_int_divmod): Add cast to enum type.
8271 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8272 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8273 (based_loc_descr): Likewise.
8274 (loc_descriptor_from_tree_1): Change first_op and second_op to
8275 enum dwarf_location_atom. Add cast to enum type.
8276 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8277 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8278 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8279 (do_store_flag): Likewise.
8280 * fixed-value.h (struct fixed_value): Change mode to enum
8281 machine_mode.
47f402d1 8282 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8283 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8284 function call.
8285 (insert_insn_decl, insert_decl, insert_state): Likewise.
8286 (automata_list_finish): Likewise.
8287 * genrecog.c (process_define_predicate): Add cast to enum type.
8288 * gensupport.c (init_predicate_table): Add cast to enum type.
8289 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8290 function call.
8291 (gimple_build_call_1, gimple_build_label): Likewise.
8292 (gimple_build_goto, gimple_build_asm_1): Likewise.
8293 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8294 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8295 (enum fallback): Rename from enum fallback_t.
8296 (fallback_t): Typedef as int.
8297 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8298 GSI_SAME_STMT in function call.
8299 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8300 enum type.
8301 (setup_reg_class_relations): Likewise.
47f402d1 8302 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8303 (setup_prohibited_class_mode_regs): Add cast to enum type.
8304 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8305 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8306 (record_address_regs): Change i to enum reg_class.
8307 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8308 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8309 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8310 (GET_MODE_2XWIDER_MODE): Likewise.
8311 (GET_CLASS_NARROWEST_MODE): Likewise.
8312 * omp-low.c (expand_omp_for): Add cast to enum type.
8313 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8314 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8315 * postreload.c (reload_cse_simplify_operands): Change rclass local
8316 to enum reg_class.
8317 * predict.c (combine_predictions_for_insn): Change best_predictor
8318 and predictor to enum br_predictor.
8319 (combine_predictions_for_bb): Likewise.
8320 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8321 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8322 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8323 * reginfo.c (init_move_cost): Add casts to enum type.
8324 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8325 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8326 enum reg_class.
8327 * reload.c (find_valid_class): Add casts to enum type.
8328 (push_reload): Change 0 to NO_REGS in function call.
8329 (find_reloads): Change this_alternative to array of enum
8330 reg_class. Remove some now-unnecessary casts.
8331 (make_memloc): Change 0 to VOIDmode in function call.
8332 * reload1.c (reload): Change 0 to VOIDmode in function call.
8333 (eliminate_regs_1, elimination_effects): Likewise.
8334 (eliminate_regs_in_insn): Likewise.
8335 (emit_input_reload_insns): Add cast to enum type.
8336 (delete_output_reload): Change 0 to VOIDmode in function call.
8337 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8338 to enum type in function call.
8339 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8340 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8341 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8342 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8343 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8344 (dump_function): Likewise.
8345 * tree-dump.h: Update declarations.
8346 * tree-pass.h: Update declarations.
8347 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8348 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8349 enum type.
8350 (arm_rtx_costs_1): Correct parenthesization.
8351 (arm_rtx_costs): Add casts to enum type.
8352 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8353 (vfp_emit_fstmd): Use add_rg_note.
8354 (emit_multi_reg_push, emit_sfm): Likewise.
8355 (thumb_set_frame_pointer): Likewise.
8356 (arm_expand_prologue): Likewise.
8357 (arm_regno_class): Change return type to enum reg_class.
8358 (thumb1_expand_prologue): Use add_reg_note.
8359 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8360 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8361 in function call.
8362 * config/arm/gentune.sh: Add cast to enum type.
8363 * config/arm/arm-tune.md: Rebuild.
8364 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8365 (ix86_split_fp_branch, predict_jump): Likewise.
8366 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8367 insn_code to enum rtx_code.
8368 (ix86_builtin_vectorized_function): Add cast to enum type.
8369 * config/i386/i386.md (truncdfsf2): Change slot to enum
8370 ix86_stack_slot.
8371 (truncxf<mode>2, isinf<mode>2): Likewise.
8372 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8373 enum type.
8374 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8375 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8376 (insert_bundle_state): Change 1 to INSERT in function call.
8377 (ia64_add_bundle_selector_before): Likewise.
8378 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8379 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8380 (restore_stack_nonlocal): Likewise.
8381 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8382 function call.
8383 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8384 function call.
8385 (mips_rtx_costs): Likewise.
8386 (mips_override_options): Add casts to enum type.
8387 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8388 in function call.
8389 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8390 (store_reg, set_reg_plus_d): Likewise.
8391 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8392 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8393 cast to enum type.
8394 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8395 function call.
8396 (emit_unlikely_jump): Use add_reg_note.
8397 (rs6000_emit_allocate_stack): Likewise.
8398 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8399 (output_toc): Change 1 to INSERT in function call.
8400 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8401 (rs6000_initialize_trampoline): Likewise.
8402 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8403 function call.
8404 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8405 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8406 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8407 (save_gprs): Use add_reg_note.
8408 (s390_emit_prologue): Likewise.
47f402d1 8409 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8410 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8411 (sparc_fold_builtin): Add cast to enum type.
8412 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8413 enum insn_code.
8414 (spu_expand_prologue): Use add_reg_note.
47f402d1 8415 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8416
84172009-04-20 Ian Lance Taylor <iant@google.com>
8418
8419 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8420 (c_parser_postfix_expression_after_primary): Get VEC for list of
8421 arguments. Get original types of arguments. Call
8422 build_function_call_vec.
8423 (cached_expr_list_1, cached_expr_list_2): New static variables.
8424 (c_parser_expr_list): Change return type to VEC *. Add
8425 p_orig_types parameter. Change all callers.
8426 (c_parser_release_expr): New static function.
8427 (c_parser_vec_to_tree_list): New static function.
8428 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8429 call build_function_call_vec.
8430 (build_function_call_vec): New function, based on old
8431 build_function_call.
8432 (convert_arguments): Remove nargs and argarray parameters. Change
8433 values to a VEC. Add origtypes parameter.
47f402d1 8434 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8435 (convert_for_assignment): Add origtype parameter. Change all
8436 callers. If warn_cxx_compat, check for conversion to an enum
8437 type when calling a function.
8438 (store_init_value): Add origtype parameter. Change all callers.
8439 (digest_init): Likewise.
8440 (struct init_node): Add origtype field.
8441 (add_pending_init): Add origtype parameter. Change all callers.
8442 (output_init_element): Likewise.
8443 (output_pending_init_elements): Pass origtype from init_node to
8444 output_init_element.
f28a61ab 8445 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8446 output_init_element.
8447 (c_finish_return): Add origtype parameter. Change all callers.
8448 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8449 caller.
8450 (sync_resolve_params): Likewise.
47f402d1 8451 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8452 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8453 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8454 * c-decl.c (finish_decl): Add origtype parameter. Change all
8455 callers. Call build_function_call_vec rather than
8456 build_function_call for cleanup.
8457 * c-tree.h: Update declarations.
8458 * c-common.h: Update declarations.
8459 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8460 params to first_param.
8461 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8462 params parameter from tree to void *.
8463 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8464 Change arglist parameter to have type void *, and to be a pointer
8465 to a VEC.
8466 * config/rs6000/rs6000-protos.h
8467 (altivec_resolve_overloaded_builtin): Update declaration.
8468 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8469 fnargs parameter to have type void *, and to be a pointer to a
8470 VEC. Call build_function_call_vec instead of
8471 build_function_call.
47f402d1 8472 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8473
6ff078d4 84742009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8475 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8476 H.J. Lu <hongjiu.lu@intel.com>
8477
8478 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8479
8480 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8481 (IX86_LEA_PRIORITY): Likewise.
8482 (distance_non_agu_define): New function.
8483 (distance_agu_use): Likewise.
8484 (ix86_lea_for_add_ok): Likewise.
8485 (ix86_dep_by_shift_count): Likewise.
8486
8487 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8488 should split for LEA.
8489
8490 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8491 function.
8492 (ix86_dep_by_shift_count): Likewise.
8493
87a5b4cc
RG
84942009-04-20 Richard Guenther <rguenther@suse.de>
8495
8496 * expr.c (handled_component_p): Move ...
8497 * tree.h (handled_component_p): ... here.
8498 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8499 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8500 and REALPART_EXPR to be in one group.
8501
438c239d
RG
85022009-04-20 Richard Guenther <rguenther@suse.de>
8503
8504 * basic-block.h (get_all_dominated_blocks): Declare.
8505 * dominance.c (get_all_dominated_blocks): New function.
8506 * tree-cfg.c (get_all_dominated_blocks): Remove.
8507 (remove_edge_and_dominated_blocks): Adjust.
8508 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8509 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8510 instead of recursing.
8511
fed5ae11
DK
85122009-04-20 Doug Kwan <dougkwan@google.com>
8513
8514 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8515 (struct cgraph_node_set_def): New type.
8516 (cgraph_node_set) New type. Also declare vector functions.
8517 (struct cgraph_node_set_element_def): New type.
8518 (cgraph_node_set_element): Ditto.
8519 (cgraph_node_set_iterator): New iterator type.
8520 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8521 cgraph_node_set_remove, dump_cgraph_node_set,
8522 debug_cgraph_node_set): New prototypes.
8523 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8524 cgraph_node_set_size): New inlines.
8525 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8526 including cgraph.h.
8527 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8528 argument to function 'write_summary'.
8529 * ipa.c: Include ggc.h.
8530 (hash_cgraph_node_set_element,
8531 eq_cgraph_node_set_element, cgraph_node_set_new,
8532 cgraph_node_set_add, cgraph_node_set_remove,
8533 cgraph_node_set_find, dump_cgraph_node_set,
8534 debug_cgraph_node_set): New functions.
8535 * Makefile.in (ipa.o): Add dependency on GGC_H.
8536
c4551b28
IR
85372009-04-20 Ira Rosen <irar@il.ibm.com>
8538
8539 PR tree-optimization/39675
2ba9daa7 8540 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8541 check of the return code of vect_schedule_slp. Check that
8542 stmt_vec_info still exists for the statement, before checking its
8543 vectorization type.
c4551b28 8544
21a495fb
MM
85452009-04-20 Michael Matz <matz@suse.de>
8546
8547 * Makefile.in (generated_files): Take out $(simple_generated_c).
8548
8e208874
DK
85492009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8550
8551 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8552 (UINTPTR_TYPE): Likewise.
8553
a45e580b
JM
85542009-04-19 Joseph Myers <joseph@codesourcery.com>
8555
8556 PR c/37481
8557 * c-typeck.c (digest_init): Check for initializing an array with a
8558 string literal.
8559
20845d35
JM
85602009-04-19 Joseph Myers <joseph@codesourcery.com>
8561
8562 PR c/19771
8563 * c-semantics.c (pop_stmt_list): Propagate
8564 STATEMENT_LIST_HAS_LABEL to parent statement list.
8565
28143fdd
AN
85662009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8567
8568 * config/mips/mips.h (mips_tune_attr): New macro.
8569 * config/mips/mips.md (cpu): Use it.
8570
da377db9
JM
85712009-04-19 Joseph Myers <joseph@codesourcery.com>
8572
8573 PR c/38243
8574 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8575 declaring a tag.
8576
3baf459d
DN
85772009-04-19 Diego Novillo <dnovillo@google.com>
8578
8579 * toplev.c (compile_file): Move call to coverage_finish ...
8580 * cgraphunit.c (ipa_passes): ... here.
8581 Call cgraph_process_new_functions.
8582 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8583 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8584
b6fa5b01
JH
85852009-04-19 Jan Hubicka <jh@suse.cz>
8586
47f402d1
UB
8587 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8588 cfun.
b6fa5b01
JH
8589 (dump_cgraph_node): Dump can throw external flag.
8590 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8591
ca409efd
MLI
85922009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8593
8594 PR c/32061
8595 PR c++/36954
8596 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8597 * common.opt (Wlogical-op): Move from here...
8598 * c.opt (Wlogical-op): ... to here.
8599 * c-typeck.c (parser_build_binary_op): Update call to
8600 warn_logical_operator.
8601 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8602 extra_warnings.
8603 * c-common.c (warn_logical_op): Update.
8604 * c-common.h (warn_logical_op): Update declaration.
8605
9db4cdd3
EB
86062009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8607
8608 * tree.c (protected_set_expr_location): Fix formatting.
8609
f37acdf9
JM
86102009-04-18 Joseph Myers <joseph@codesourcery.com>
8611
8612 PR c/27676
8613 * c-typeck.c (readonly_warning): new.
8614 (build_unary_op, build_modify_expr): Use readonly_warning for
8615 storing into something readonly but not const-qualified.
8616
2b4b7036
JM
86172009-04-18 Joseph Myers <joseph@codesourcery.com>
8618
8619 PR c/22367
8620 * c-typeck.c (build_unary_op): Check for taking address of
8621 expression of type void.
8622
3ce62965
JM
86232009-04-18 Joseph Myers <joseph@codesourcery.com>
8624
8625 PR c/35210
8626 * c-typeck.c (build_function_call): Check for calling a function
8627 with qualified void return types. Call require_complete_type when
8628 generating a trap.
8629
2505c5ed
JH
86302009-04-18 Jan Hubicka <jh@suse.cz>
8631
8632 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8633 Set nothrow flag.
8634 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8635 can_throw_external flag.
8636 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8637 * ipa-pure-const.c (ignore_edge): New function.
8638 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8639 only over can_throw_external edges.
8640 (local_pure_const): Add nothrow flag.
8641 * ipa-utils.c (searchc): Add ignore_edge callback.
8642 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8643 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8644 (set_nothrow_function_flags): Update cgraph.
8645 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8646
2586ba4b
RG
86472009-04-18 Richard Guenther <rguenther@suse.de>
8648
8649 PR middle-end/39804
8650 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8651 (fold_stmt): ... this and ...
8652 (fold_stmt_inplace): ... this.
8653 (fold_stmt_1): Fold references in calls and asms.
8654 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8655
1eefab17
KH
86562009-04-18 Kazu Hirata <kazu@codesourcery.com>
8657
8658 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8659 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8660
aa424b01
KH
86612009-04-18 Kazu Hirata <kazu@codesourcery.com>
8662
8663 * tree.c (function_args_count): Remove.
8664 * tree.h: Remove the prototype for function_args_count.
8665
613a896b
KH
86662009-04-18 Kazu Hirata <kazu@codesourcery.com>
8667
8668 * tree-iterator.c (expr_only): Remove.
8669 * tree.h: Remove the prototype for expr_only.
8670
579e694c
KH
86712009-04-18 Kazu Hirata <kazu@codesourcery.com>
8672
8673 * reginfo.c (cannot_change_mode_set_regs): Remove.
8674 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8675
ee7e3ad3
AS
86762009-04-08 Anatoly Sokolov <aesok@post.ru>
8677
8678 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8679 whether operands 0 and 1 overlaps.
8680
92ef7fb1
MLI
86812009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8682
8683 PR middle-end/36902
8684 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8685 pointer. Use warning_at instead of warning.
8686 (search_for_addr_array): Likewise.
8687 (check_array_bounds): Likewise.
8688 (check_all_array_refs): Check that the incoming edge is not in the
8689 list of edges to be removed.
8690 (check_all_array_refs): Avoid the temporal pointer.
8691 (vrp_visit_cond_stmt): Fix typo.
8692 (simplify_switch_using_ranges): Handle the case where the switch
8693 index is an integer constant.
8694
0e097268
AN
86952009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8696
8697 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8698
c782f1dd
KH
86992009-04-18 Kazu Hirata <kazu@codesourcery.com>
8700
8701 * doc/extend.texi, doc/invoke.texi: Fix typos.
8702
668fb0e8
CC
87032009-04-17 Cary Coutant <ccoutant@google.com>
8704
8705 * tree-flow-inline.h (get_lineno): Fix inverted test.
8706
4d4014c1
DN
87072009-04-17 Diego Novillo <dnovillo@google.com>
8708
8709 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8710 assertion for AVAIL_OUT.
8711
2984e1b6
MF
87122009-04-17 Mike Frysinger <vapier@gentoo.org>
8713
8714 PR target/38627
8715 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8716 * config/sh/linux-atomic.asm: Likewise.
8717
9994a182
DN
87182009-04-17 Diego Novillo <dnovillo@google.com>
8719
8720 * except.c (debug_eh_tree): New.
8721 (struct eh_region, struct eh_status): Move ...
8722 * except.h: ... here.
8723 (add_type_for_runtime): Declare extern.
8724 (lookup_type_for_runtime): Likewise.
8725 (debug_eh_tree): Declare.
8726 * Makefile.in (GTFILES): List except.h before except.c
8727
07485407
DN
87282009-04-17 Diego Novillo <dnovillo@google.com>
8729
47f402d1 8730 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8731 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8732 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8733 (find_vars_r): ... here.
8734 * tree-flow.h (find_referenced_vars_in): Declare.
8735 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8736 that AVAIL_OUT exists for BLOCK.
8737 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8738 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8739 (tree-parloops.o): Likewise.
8740
4e53d196
SB
87412009-04-17 Simon Baldwin <simonb@google.com>
8742
8743 * toplev.c (default_tree_printer): Add handling for %E format.
8744
413d3aa8
DN
87452009-04-17 Diego Novillo <dnovillo@google.com>
8746
47f402d1
UB
8747 * tree-pretty-print.c (dump_generic_node): Add break after
8748 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8749 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8750 FUNCTION_TYPE together. Call print_struct_decl when printing
8751 structures and TDF_SLIM is not given.
413d3aa8
DN
8752 (print_struct_decl): Fix logic for detecting recursion.
8753
5a691e98
RAE
87542009-04-17 Rafael Avila de Espindola <espindola@google.com>
8755
8756 PR 31567
8757 * gcc.c (create_at_file): New.
8758 (compile_input_file_p): New.
8759 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8760 * main.c (main): Update call to toplev_main.
8761 * toplev.c (toplev_main): Change signature. Call expandargv.
8762 * toplev.h (toplev_main): Change signature.
8763
9eacf7a6
EB
87642009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8765
8766 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8767 if the latter is not constant.
8768
58298177
DE
87692009-04-17 David Edelsohn <edelsohn@gnu.org>
8770
8771 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8772
5b4c43d7
EB
87732009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8774
8775 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8776 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8777
b51605c4
RG
87782009-04-17 Richard Guenther <rguenther@suse.de>
8779
8780 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8781 Handle component references view-converting an invariant address.
8782
9e3be889
AN
87832009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8784
8785 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8786 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8787 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8788 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8789 Use @deftypevr rather than @deftypevar.
8790
7c3e9dc3
RG
87912009-04-17 Richard Guenther <rguenther@suse.de>
8792
47f402d1 8793 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8794 (get_prop_source_stmt): Likewise.
8795 (can_propagate_from): Likewise.
8796
aca600aa
AS
87972009-04-17 Andrew Stubbs <ams@codesourcery.com>
8798
8799 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8800 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8801 (--with-multilib-list): Add default value.
8802 * configure: Regenerate.
8803 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8804 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8805 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8806 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8807 Don't add default cpu to multilib list unnecessarily, but do enable
8808 the relevant compiler option..
8809 Add support for --with-multilib-list=<blank> and
8810 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8811 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8812 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8813 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8814 TM_MULTILIB_CONFIG.
8815 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8816 (MULTILIB_OSDIRNAMES): New variable.
8817 * config/sh/t-1e: Delete file.
8818 * config/sh/t-mlib-sh1: Delete file.
8819 * config/sh/t-mlib-sh2: Delete file.
8820 * config/sh/t-mlib-sh2a: Delete file.
8821 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8822 * config/sh/t-mlib-sh2a-single: Delete file.
8823 * config/sh/t-mlib-sh2a-single-only: Delete file.
8824 * config/sh/t-mlib-sh2e: Delete file.
8825 * config/sh/t-mlib-sh3e: Delete file.
8826 * config/sh/t-mlib-sh4: Delete file.
8827 * config/sh/t-mlib-sh4-nofpu: Delete file.
8828 * config/sh/t-mlib-sh4-single: Delete file.
8829 * config/sh/t-mlib-sh4-single-only: Delete file.
8830 * config/sh/t-mlib-sh4a: Delete file.
8831 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8832 * config/sh/t-mlib-sh4a-single: Delete file.
8833 * config/sh/t-mlib-sh4a-single-only: Delete file.
8834 * config/sh/t-mlib-sh4al: Delete file.
8835 * config/sh/t-mlib-sh5-32media: Delete file.
8836 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8837 * config/sh/t-mlib-sh5-64media: Delete file.
8838 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8839 * config/sh/t-mlib-sh5-compact: Delete file.
8840 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8841 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8842 * doc/install.texi (Options specification): Add
8843 --with-multilib-list and --with-endian.
8844
cf8aba7f
RAE
88452009-04-17 Rafael Avila de Espindola <espindola@google.com>
8846
8847 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8848 REVISION_c.
8849 (OBJS-common): Add plugin-version.o.
8850 (plugin-version.o): New.
8851 * gcc-plugin.h (plugin_gcc_version): New.
8852 (plugin_default_version_check): New.
8853 (plugin_init_func, plugin_init): Add version argument.
8854 * plugin-version.c: New.
8855 * plugin.c (str_plugin_gcc_version_name): New.
8856 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8857 pass it to the init function.
8858 (plugin_default_version_check): New.
8859
61e20b90
RG
88602009-04-17 Richard Guenther <rguenther@suse.de>
8861
8862 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8863 for decl-vs-decl disambiguation.
8864
90c6fd8a
AK
88652009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8866
8867 * config/s390/s390.h (s390_tune_attr): New macro definition.
8868 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8869
9fe9fe04
RG
88702009-04-17 Richard Guenther <rguenther@suse.de>
8871
8872 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8873 (fold_stmt_r): Likewise.
8874 (maybe_fold_reference): New function.
8875 (fold_gimple_assign): Handle cases fold_stmt_r did.
8876 (fold_stmt): Do not use fold_stmt_r.
8877 (fold_stmt_inplace): Likewise.
8878
7e673273
RG
88792009-04-17 Richard Guenther <rguenther@suse.de>
8880
8881 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8882 (record_equivalences_from_stmt): Remove useless checks and
8883 simplifications.
8884 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8885 the type is already suitable.
8886
fabf2749
PB
88872009-04-17 Paolo Bonzini <bonzini@gnu.org>
8888
8889 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8890
68f7b061
UB
88912009-04-17 Uros Bizjak <ubizjak@gmail.com>
8892
8893 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8894 (CMPtype): Define as __gcc_CMPtype.
8895
532bfb0a
AJ
88962009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8897
8898 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8899 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8900
e3ac77ff
RG
89012009-04-17 Richard Guenther <rguenther@suse.de>
8902
8903 PR tree-optimization/39746
8904 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8905 special-casing for builtins and static variable use/def.
8906 (call_may_clobber_ref_p_1): Likewise.
8907
7072a650
ILT
89082009-04-16 Ian Lance Taylor <iant@google.com>
8909
8910 * df.h: Include "timevar.h".
8911 (struct df_problem): Change tv_id field to timevar_id_t.
8912 * tree-pass.h: Include "timevar.h".
8913 (struct opt_pass): Change tv_id field to timevar_id_t.
8914 * timevar.h (timevar_id_t): Define TV_NONE.
8915 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8916 TV_NONE rather than tv_id != 0.
8917 (execute_one_pass): Likewise.
8918 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8919 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8920 dependencies to $(TREE_PASS_H).
8921 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8922 to TV_NONE.
8923 (pass_branch_target_load_optimize2): Likewise.
8924 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8925 (pass_outof_cfg_layout_mode): Likewise.
8926 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8927 (pass_rebuild_cgraph_edges): Likewise.
8928 (pass_remove_cgraph_callee_edges): Likewise.
8929 * df-core.c (pass_df_initialize_opt): Likewise.
8930 (pass_df_initialize_no_opt): Likewise.
8931 (pass_df_finish): Likewise.
8932 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8933 * except.c (pass_set_nothrow_function_flags): Likewise.
8934 (pass_convert_to_eh_region_ranges): Likewise.
8935 * final.c (pass_compute_alignments): Likewise.
8936 * function.c (pass_instantiate_virtual_regs): Likewise.
8937 (pass_init_function): Likewise.
8938 (pass_leaf_regs): Likewise.
8939 (pass_match_asm_constraints): Likewise.
8940 * gimple-low.c (pass_lower_cf): Likewise.
8941 (pass_mark_used_blocks): Likewise.
8942 * init-regs.c (pass_initialize_regs): Likewise.
8943 * integrate.c (pass_initial_value_sets): Likewise.
8944 * ira.c (pass_ira): Likewise.
8945 * jump.c (pass_cleanup_barriers): Likewise.
8946 * omp-low.c (pass_expand_omp): Likewise.
8947 (pass_lower_omp): Likewise.
8948 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8949 * recog.c (pass_split_all_insns): Likewise.
8950 (pass_split_after_reload): Likewise.
8951 (pass_split_before_regstack): Likewise.
8952 (pass_split_before_sched2): Likewise.
8953 (pass_split_for_shorten_branches): Likewise.
8954 * reginfo.c (pass_reginfo_init): Likewise.
8955 (pass_subregs_of_mode_init): Likewise.
8956 (pass_subregs_of_mode_finish): Likewise.
8957 * passes.c (pass_postreload): Likewise.
8958 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8959 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8960 (pass_warn_function_return): Likewise.
8961 (pass_warn_function_noreturn): Likewise.
8962 * tree-complex.c (pass_lower_complex): Likewise.
8963 (pass_lower_complex_O0): Likewise.
8964 * tree-if-conv.c (pass_if_conversion): Likewise.
8965 * tree-into-ssa.c (pass_build_ssa): Likewise.
8966 * tree-mudflap.c (pass_mudflap_1): Likewise.
8967 (pass_mudflap_2): Likewise.
8968 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8969 (pass_mudflap_2): Likewise.
8970 * tree-nrv.c (pass_return_slot): Likewise.
8971 * tree-object-size.c (pass_object_sizes): Likewise.
8972 * tree-optimize.c (pass_all_optimizations): Likewise.
8973 (pass_early_local_passes): Likewise.
8974 (pass_all_early_optimizations): Likewise.
8975 (pass_cleanup_cfg): Likewise.
8976 (pass_cleanup_cfg_post_optimizing): Likewise.
8977 (pass_free_datastructures): Likewise.
8978 (pass_free_cfg_annotations): Likewise.
8979 (pass_fixup_cfg): Likewise.
8980 (pass_init_datastructures): Likewise.
8981 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8982 (pass_late_warn_uninitialized): Likewise.
8983 (pass_update_address_taken): Likewise.
8984 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8985 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8986 (pass_cse_sincos): Likewise.
8987 (pass_convert_to_rsqrt): Likewise.
8988 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8989 * tree-stdarg.c (pass_stdarg): Likewise.
8990 * tree-tailcall.c (pass_tail_recursion): Likewise.
8991 (pass_tail_calls): Likewise.
8992 * tree-vect-generic.c (pass_lower_vector): Likewise.
8993 (pass_lower_vector_ssa): Likewise.
8994 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8995
0051ef59
JM
89962009-04-16 Joseph Myers <joseph@codesourcery.com>
8997
8998 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8999 XLR entry.
9000 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9001 Handle -march=xlr.
9002 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9003 logical and signext.
9004
b3f8558a
KK
90052009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
9006
9007 PR target/39767
9008 * config/sh/predicates.md (arith_operand): Check if the operand
9009 of TRUNCATE is a REG.
9010
f57597d9
KH
90112009-04-16 Kazu Hirata <kazu@codesourcery.com>
9012
9013 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9014 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9015
b172d063
KH
90162009-04-16 Kazu Hirata <kazu@codesourcery.com>
9017
9018 * tree-iterator.c (tsi_split_statement_list_after,
9019 tsi_split_statement_list_before): Remove.
9020 * tree-iterator.h: Remove the prototypes for
532bfb0a 9021 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 9022
78fe4f1f
KH
90232009-04-16 Kazu Hirata <kazu@codesourcery.com>
9024
9025 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9026 * tree-ssa-propagate.h: Remove the prototype for
9027 stmt_makes_single_load.
9028
43dd3201
KH
90292009-04-16 Kazu Hirata <kazu@codesourcery.com>
9030
9031 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9032 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9033
4252a4aa
KH
90342009-04-16 Kazu Hirata <kazu@codesourcery.com>
9035
9036 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9037
bfb69968
KH
90382009-04-16 Kazu Hirata <kazu@codesourcery.com>
9039
9040 * except.c (eh_region_outer_p): Remove.
9041 * except.h: Remove the prototype for eh_region_outer_p.
9042
c7db7fa5
KH
90432009-04-16 Kazu Hirata <kazu@codesourcery.com>
9044
9045 * function.c (current_function_assembler_name): Remove.
9046 * function.h: Remove the prototype for
9047 current_function_assembler_name.
9048
efc0b2bd
ILT
90492009-04-16 Ian Lance Taylor <iant@google.com>
9050
532bfb0a 9051 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
9052 (add_reg_note): Call alloc_reg_note.
9053 * rtl.h (alloc_reg_note): Declare.
9054 * combine.c (try_combine): Use alloc_reg_note.
9055 (recog_for_combine, move_deaths): Likewise.
9056 (distribute_notes): Use alloc_reg_note and add_reg_note.
9057 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9058 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9059 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9060
6080348f
VM
90612009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9062
9063 PR rtl-optimization/39762
9064 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9065 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9066 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9067
6080348f
VM
9068 * ira-conflicts.c (process_regs_for_copy): Use function
9069 ira_get_register_move_cost instead of global
9070 ira_register_move_cost.
9071
9072 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9073 color_pass, move_spill_restore, update_curr_costs): Ditto.
9074
9075 * ira-lives.c (process_single_reg_class_operands): Ditto.
9076
9077 * ira-emit.c (emit_move_list): Ditto.
9078
9079 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9080 (record_reg_classes): Ditto. Use functions
9081 ira_get_register_move_cost and ira_get_may_move_cost instead of
9082 global vars ira_register_move_cost, ira_may_move_out_cost and
9083 ira_may_move_in_cost.
9084 (record_address_regs): Don't call ira_init_register_move_cost.
9085 Use function ira_get_may_move_cost instead of global
9086 ira_may_move_in_cost.
9087 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9088 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9089 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9090
646bea10
RG
90912009-04-16 Richard Guenther <rguenther@suse.de>
9092
9093 * tree-cfg.c (verify_gimple_assign_binary):
9094 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9095 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9096 (create_general_new_stmt): Note that this function is broken.
9097
02e819ff
RAE
90982009-04-16 Rafael Avila de Espindola <espindola@google.com>
9099
9100 * common.opt (fhelp): Add Var(help_flag).
9101 * gcc-plugin.h (plugin_info): Add help.
9102 * plugin.c (plugin_name_args): Add help.
9103 (register_plugin_info): Set plugin->help.
9104 (print_help_one_plugin): New.
9105 (print_plugins_help): New.
9106 * plugin.h (print_plugins_help): New.
9107 * toplev.c (toplev_main): Call print_plugins_help if needed.
9108
ccacdf06
RG
91092009-04-16 Richard Guenther <rguenther@suse.de>
9110
9111 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9112 (gimple_ior_addresses_taken_1): New function.
9113 (gimple_ior_addresses_taken): Likewise.
9114 * gimple.h (struct gimple_statement_with_ops_base): Remove
9115 addresses_taken member.
9116 (gimple_ior_addresses_taken): Declare.
9117 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9118 gimple_set_addresses_taken): Remove.
9119 * ipa-reference.c (mark_address): New function.
9120 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9121 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9122 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9123 (gimple_add_to_addresses_taken): Remove.
9124 (get_tmr_operands): Call mark_address_taken.
9125 (get_asm_expr_operands): Likewise.
9126 (get_expr_operands): Likewise.
9127 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9128 (free_stmt_operands): Do not free it.
9129 * tree-ssa.c (delete_tree_ssa): Likewise.
9130 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9131
346ef3fa
RG
91322009-04-16 Richard Guenther <rguenther@suse.de>
9133
9134 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9135 (walk_stmt_load_store_ops): Likewise.
9136 * gimple.c (get_base_loadstore): New function.
9137 (walk_stmt_load_store_addr_ops): Likewise.
9138 (walk_stmt_load_store_ops): Likewise.
9139 * ipa-pure-const.c (check_op): Simplify.
9140 (check_load, check_store): New functions.
9141 (check_stmt): Use walk_stmt_load_store_ops.
9142 * ipa-reference.c (mark_load): Adjust signature.
9143 (mark_store): Likewise.
9144 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9145
44e9f006
RAE
91462009-04-16 Rafael Avila de Espindola <espindola@google.com>
9147
9148 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9149 (plugin_info): New.
9150 * opts.c (common_handle_option): Don't call print_version.
9151 * plugin.c (plugin_name_args): Add version.
9152 (register_plugin_info): New.
9153 (register_callback): Handle PLUGIN_INFO.
9154 (try_init_one_plugin): New.
9155 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9156 if failed to init.
9157 (finalize_one_plugin): New.
9158 (finalize_plugins): New.
9159 (print_one_plugin): New.
9160 (print_plugins_versions): New.
9161 * plugin.h (print_plugins_versions): New.
9162 (finalize_plugins): New.
9163 * toplev.c (compile_file): Don't call initialize_plugins.
9164 (print_version): Call print_plugins_versions.
9165 (toplev_main): Call initialize_plugins. Print version if needed.
9166 Call finalize_plugins.
9167
41fd0f9b
RAE
91682009-04-16 Rafael Avila de Espindola <espindola@google.com>
9169
9170 * common.opt (fversion): New.
9171 * gcc.c (print_version): New.
9172 (process_command): Don't print the version. Just set print_version.
9173 (main): Print version. Call subprocesses if print_version and
9174 verbose_flag are set.
9175 * opts.c (common_handle_option): Handle OPT_fversion.
9176
550918ca 91772009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9178 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9179
9180 PR tree-optimization/39698
9181 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9182 type of the reduction variable. Only generate the def if
9183 it is needed.
9184
9185 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9186 make sure to first convert to an integer of the same precision.
9187 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9188 the type of the evolution correctly in computing the new
9189 induction variable base.
9190
54634841
RG
91912009-04-16 Richard Guenther <rguenther@suse.de>
9192
9193 PR middle-end/39625
9194 * tree-cfg.c (make_blocks): Split statements with to-be
9195 abnormal SSA names on the lhs.
9196
b6fc2cdb
PB
91972009-04-16 Paolo Bonzini <bonzini@gnu.org>
9198
9199 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9200 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9201 * c-typeck.c (really_start_incremental_init): Likewise.
9202 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9203 (TARGET_INITIALIZER): Remove it.
9204 * target.h (struct target): Remove vector_opaque_p.
9205 * tree.c (build_opaque_vector_type): New.
9206 * tree.h (TYPE_VECTOR_OPAQUE): New.
9207 (build_opaque_vector_type): Declare.
9208 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9209 * config/rs6000/rs6000.c (build_opaque_vector_type,
9210 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9211 (rs6000_init_builtins): Use build_opaque_vector_type for
9212 opaque_V4SI_type_node.
9213
a417cdd9
CM
92142009-04-15 Catherine Moore <clm@codesourcery.com>
9215
532bfb0a
AJ
9216 * debug.h (set_name): Declare.
9217 * dwarf2out.c (dwarf2out_set_name): Declare.
9218 (dwarf2_debug_hooks): Add set_name.
9219 (find_AT_string): New.
9220 (add_AT_string): Call find_AT_string.
9221 (dwarf2out_set_name): New.
9222 * cp/decl.c (grokdeclarator): Call set_name.
9223 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9224 * debug.c (do_nothing_debug_hooks): Likewise.
9225 * dbxout.c (dbx_debug_hooks): Likewise.
9226 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9227
60839f5d 92282009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9229
532bfb0a
AJ
9230 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9231 reg for single-precision FPU.
9232 * config/rs6000/rs6000.md (movsi_internal1): Only for
9233 !TARGET_SINGLE_FPU.
9234 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9235 single-precision FP regs.
9236
ada39f0b
RG
92372009-04-15 Richard Guenther <rguenther@suse.de>
9238
9239 * omp-low.c (lower_rec_input_clauses): Build correct address
9240 expressions.
9241 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9242 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9243 (generate_memset_zero): Fix types.
9244 * tree-profile.c (prepare_instrumented_value): Correctly
9245 widen a pointer.
9246
6866c6e8
ILT
92472009-04-15 Ian Lance Taylor <iant@google.com>
9248
9249 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9250 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9251 for -Wall and for -Wc++-compat.
9252 (c_common_post_options): For C++, set warn_enum_compare if not
9253 already set.
9254 * c-tree.h (struct c_expr): Add field original_type.
9255 (build_external_ref): Update declaration.
9256 * c-parser.c (c_parser_braced_init): Set original_type.
9257 (c_parser_initelt): Likewise.
9258 (c_parser_expr_no_commas): Likewise.
9259 (c_parser_conditional_expression): Likewise.
9260 (c_parser_cast_expression): Likewise.
9261 (c_parser_unary_expression): Likewise. Pull setting of
9262 original_code to top of function.
9263 (c_parser_sizeof_expression): Set original_type.
9264 (c_parser_alignof_expression): Likewise.
9265 (c_parser_postfix_expression): Likewise. Pull setting of
9266 original_code to top of function.
532bfb0a 9267 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9268 (c_parser_postfix_expression_after_primary): Likewise.
9269 (c_parser_expression): Likewise.
9270 * c-typeck.c (build_external_ref): Add type parameter. Change all
9271 callers.
9272 (c_expr_sizeof_expr): Set original_type field.
9273 (parser_build_unary_op): Likewise.
9274 (parser_build_binary_op): Likewise. Optionally warn about
9275 comparisons of enums of different types.
9276 (digest_init): Set original_type field.
9277 (really_start_incremental_init): Likewise.
9278 (push_init_level, pop_init_level): Likewise.
9279 * doc/invoke.texi (Warning Options): -Wenum-compare now
9280 supported in C.
9281
f116fecf
RG
92822009-04-15 Richard Guenther <rguenther@suse.de>
9283
9284 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9285 out a necessary conversion.
9286 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9287 names we didn't value number.
9288 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9289
25e20805
RG
92902009-04-15 Richard Guenther <rguenther@suse.de>
9291
9292 PR tree-optimization/39764
9293 * tree-ssa-ccp.c (get_value): Canonicalize value with
9294 canonicalize_float_value.
9295
90cc3676
JH
92962009-04-15 Jan Hubicka <jh@suse.cz>
9297
9298 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9299 Wrong version of patch.
9300
6d14c006
JH
93012009-04-15 Jan Hubicka <jh@suse.cz>
9302
9303 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9304
5afaa917
NS
93052009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9306
9307 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9308 our distinct integral and vector types.
9309
3b482fca
RAE
93102009-04-15 Rafael Avila de Espindola <espindola@google.com>
9311
9312 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9313 * init.c (build_vtbl_address): Remove call to assemble_external.
9314
6cd1d2e2
DJ
93152009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9316
9317 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9318 output for other floating point modes.
9319
dab71827
DN
93202009-04-14 Diego Novillo <dnovillo@google.com>
9321
9322 * diagnostic.c (diagnostic_report_diagnostic): Do not
9323 warn about loaded plugins for DK_ERROR and DK_WARNING.
9324 * c-decl.c (declspecs_add_type): Move call to
9325 invoke_plugin_callbacks ...
9326 * c-parser.c (c_parser_declspecs): ... here.
9327 * plugin.c (dump_active_plugins): Tidy output.
9328
68a607d8
DN
93292009-04-14 Diego Novillo <dnovillo@google.com>
9330 Le-Chun Wu <lcwu@google.com>
9331
9332 * configure.ac: Add --enable-plugin support.
9333 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9334 * Makefile.in (PLUGIN_H): Define.
9335 Export ENABLE_PLUGIN and GMPINC to site.exp.
9336 Add PLUGINLIBS to link command.
9337 Add/modify dependencies for plugin.o and files including plugin.h.
9338 (plugin.o): New.
9339 * config.in: Regenerate.
2ba9daa7 9340
68a607d8
DN
9341 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9342 OPT_fplugin_arg_.
9343
93442009-04-14 Le-Chun Wu <lcwu@google.com>
9345
9346 * tree-pass.h (register_one_dump_file): Add a prototype for
9347 register_one_dump_file.
9348 * toplev.c (compile_file): Call initialize_plugins.
9349 (do_compile): Call invoke_plugin_callbacks.
9350 (toplev_main): Call invoke_plugin_callbacks.
9351 * common.opt: Add -fplugin= and -fplugin-arg-.
9352 * gcc-plugin.h: New public header file for plugins to include.
9353 * plugin.c: New source file.
9354 * plugin.h: New internal header file.
9355 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9356
68a607d8
DN
9357 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9358
93592009-04-14 Diego Novillo <dnovillo@google.com>
9360
9361 * doc/plugins.texi: New.
9362 * doc/gccint.texi: Add reference to Plugins chapter.
9363 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9364 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9365 loaded plugins, if any.
9366 * timevar.def (TV_PLUGIN_INIT): Define.
9367 (TV_PLUGIN_RUN): Define.
9368 * plugin.c: Include timevar.h
9369 (plugins_active_p): New.
9370 (dump_active_plugins): New.
9371 (debug_active_plugins): New.
9372
50617257
JM
93732009-04-14 Joseph Myers <joseph@codesourcery.com>
9374
9375 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9376 library paths.
9377 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9378
b32f6fff
KH
93792009-04-14 Kazu Hirata <kazu@codesourcery.com>
9380
9381 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9382 the same as a minus without a shift.
9383
85d04fa2
NC
93842009-04-14 Nick Clifton <nickc@redhat.com>
9385
9386 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9387 comparisons with small integers will always produce a short
9388 branch.
9389
e495a0c8
RAE
93902009-04-14 Rafael Avila de Espindola <espindola@google.com>
9391
9392 Merge:
e495a0c8
RAE
9393 2008-12-19 Diego Novillo <dnovillo@google.com>
9394
532bfb0a 9395 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9396
ad41bd84 93972009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9398
9399 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9400 verification.
9401 (verify_gimple_assign_binary): Likewise. Handle shifts and
9402 rotates correctly.
9403 (verify_gimple_phi): Print the mismatched argument position.
9404 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9405 Fix types.
9406 (vect_update_init_of_dr): Likewise.
9407 * matrix-reorg.c (transform_access_sites): Do what the
9408 comment suggests.
9409 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9410
60839f5d 94112009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9412
9413 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9414 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9415 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9416 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9417 remove duplicate config
9418
b0e2d008
DR
94192009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9420
9421 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9422 file_name:line_number type locator of the call site.
2ba9daa7 9423
1244a8b7
VM
94242009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9425
9426 * genautomata.c: Put blank after comma.
9427 (automaton_decls): New.
9428 (struct unit_usage): Add comments to member next.
9429 (store_alt_unit_usage): Keep the list ordered.
9430 (unit_present_on_list_p, equal_alternatives_p): New.
9431 (check_regexp_units_distribution): Check units distribution
9432 correctness correctly.
9433 (main): Don't write automata if error is found. Return correct
9434 exit code.
2ba9daa7 9435
1244a8b7
VM
9436 * config/m68k/cf.md (cfv4_ds): Remove.
9437 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9438 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9439
9440 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9441 power4-load-ext, power4-store, power4-store-update,
9442 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9443 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9444 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9445 power4-sqrt, power4-isync): Modify reservation to make correct
9446 unit distribution to automata.
9447
9448 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9449 power5-store-update, power5-two, power5-three, power5-lmul,
9450 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9451
f7dd1864
AN
94522009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9453
9454 * except.c (pass_set_nothrow_function_flags): Set name and add
9455 TODO_dump_func.
9456 (set_nothrow_function_flags): Mention in the dump file when
9457 changing a function to nothrow.
9458
59a1171f
OS
94592009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9460
9461 PR/39066
9462 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9463 instead of unsigned long.
9464
934c2060
RR
94652009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9466
f7dd1864
AN
9467 * config/arm/arm.c (return_used_this_function): Remove.
9468 (arm_output_function_prologue): Remove use of
934c2060 9469 return_used_this_function.
f7dd1864 9470 (output_return_instruction): Replace use of
934c2060
RR
9471 return_used_this_function
9472 by cfun->machine->return_used_this_function.
f7dd1864
AN
9473 (arm_output_epilogue): Likewise.
9474 (arm_output_function_epilogue): Likewise.
9475 (thumb_unexpanded_epilogue): Likewise.
9476 * config/arm/arm.h (struct machine_function):
934c2060 9477 New member return_used_this_function.
f7dd1864 9478
ae5cc016
MM
94792009-04-12 Mark Mitchell <mark@codesourcery.com>
9480
9481 * doc/install.texi: Correct description of default directory for
9482 --with-gxx-include-dir.
9483
a0ce68df 94842009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9485
9486 * fold-const.c (build_range_check): Properly deal with enumeral and
9487 boolean base types.
9488
3906a4a1
SB
94892009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9490
9491 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9492 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9493 * params.h (MAX_GCSE_PASSES): Remove.
9494 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9495 in sequence. Remove ability to run multiple passes.
9496 (bypass_jumps): Report run as third CPROP pass.
9497
efaadb93
AN
94982009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9499
9500 PR middle-end/39651
9501 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9502 when deciding whether the whole SEQUENCE can throw.
9503
4c48007b
UB
95042009-04-12 Uros Bizjak <ubizjak@gmail.com>
9505
9506 PR target/39740
9507 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9508 offseted label references.
9509
b4104018
JH
95102009-04-11 Jan Hubicka <jh@suse.cz>
9511
9512 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9513
32848948
RG
95142009-04-11 Richard Guenther <rguenther@suse.de>
9515
9516 PR middle-end/39732
9517 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9518 return variables as TREE_ADDRESSABLE.
9519
8810712e
RG
95202009-04-11 Richard Guenther <rguenther@suse.de>
9521
9522 PR tree-optimization/39713
9523 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9524 reference trees have SSA_NAME operands.
9525
fa78c0c1
RG
95262009-04-11 Richard Guenther <rguenther@suse.de>
9527
9528 PR c/39712
9529 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9530 address expressions.
9531
4d722130
DK
95322009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9533
9534 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9535 match changes in Cygwin 1.7
9536 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9537 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9538
567a90f5
PB
95392009-04-10 Paolo Bonzini <bonzini@gnu.org>
9540
9541 PR tree-optimization/39701
9542 * doc/invoke.texi (Optimization Options): Document change in
9543 meaning and initialization of -fdelete-null-pointer-checks.
9544
1ad2f450
L
95452009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9546
9547 PR middle-end/39701
9548 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9549
9550 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9551 here.
9552
9553 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9554
1afc5373
CF
95552009-04-10 Chao-ying Fu <fu@mips.com>
9556
9557 * doc/tm.texi (Instruction Output): Document
9558 TARGET_ASM_FINAL_POSTSCAN_INSN.
9559 * target.h (final_postscan_insn): New field in asm_out.
9560 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9561 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9562 * final.c (final_scan_insn): Call
9563 targetm.asm_out.final_postscan_insn after outputting
9564 an asm macro and a normal instruction.
9565
9566 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9567 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9568 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9569 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9570 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9571
4d35e75c
PB
95722009-04-10 Paolo Bonzini <bonzini@gnu.org>
9573
9574 PR middle-end/39701
1ad2f450
L
9575 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9576 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9577
62c49b83
L
95782009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9579
9580 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9581
80558628
L
95822009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9583
9584 PR target/39678
9585 * config/i386/i386.c (classify_argument): Handle SCmode with
9586 (bit_offset % 64) != 0.
9587
8c70d28b
SL
95882009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9589
9590 * doc/invoke.texi (Optimize Options): Add cross-reference to
9591 -Q --help=optimizers examples.
9592
e1ff19bf
BE
95932009-04-10 Ben Elliston <bje@au.ibm.com>
9594
9595 PR target/36800
9596 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9597 regalign for the reg == fpr and TDmode case.
9598
52daca75
DA
95992009-04-09 David Ayers <ayers@fsfe.org>
9600
9601 PR objc/29200
9602 * objc/objc-act.c (warn_with_method): Remove helper function.
9603 (check_duplicates): Call warning and inform directly.
9604 (really_start_method): Likewise.
9605
b45f0e58
PB
96062009-04-09 Paolo Bonzini <bonzini@gnu.org>
9607
9608 * expmed.c (expand_divmod): Always use a comparison for a division
9609 by a large unsigned integer.
9610
1ad2f450
L
9611 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9612 for things others than variables or functions as nonzero.
b45f0e58 9613
748086b7
JJ
96142009-04-09 Nick Clifton <nickc@redhat.com>
9615
9616 * unwind-compat.c: Change copyright header to refer to version
9617 3 of the GNU General Public License with version 3.1 of the
9618 GCC Runtime Library Exception and to point readers at the
7a715bba 9619 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9620 * config/alpha/crtfastmath.c: Likewise.
9621 * config/alpha/linux-unwind.h: Likewise.
9622 * config/alpha/qrnnd.asm: Likewise.
9623 * config/alpha/vms-crt0-64.c: Likewise.
9624 * config/alpha/vms-crt0.c: Likewise.
9625 * config/alpha/vms-dwarf2.asm: Likewise.
9626 * config/alpha/vms-dwarf2eh.asm: Likewise.
9627 * config/alpha/vms-psxcrt0-64.c: Likewise.
9628 * config/alpha/vms-psxcrt0.c: Likewise.
9629 * config/alpha/vms_tramp.asm: Likewise.
9630 * config/arc/initfini.c: Likewise.
9631 * config/arc/lib1funcs.asm: Likewise.
9632 * config/arm/bpabi-v6m.S: Likewise.
9633 * config/arm/bpabi.S: Likewise.
9634 * config/arm/bpabi.c: Likewise.
9635 * config/arm/crti.asm: Likewise.
9636 * config/arm/crtn.asm: Likewise.
9637 * config/arm/ieee754-df.S: Likewise.
9638 * config/arm/ieee754-sf.S: Likewise.
9639 * config/arm/lib1funcs.asm: Likewise.
9640 * config/arm/libunwind.S: Likewise.
9641 * config/arm/linux-atomic.c: Likewise.
9642 * config/arm/mmintrin.h: Likewise.
9643 * config/arm/pr-support.c: Likewise.
9644 * config/arm/unaligned-funcs.c: Likewise.
9645 * config/arm/unwind-arm.c: Likewise.
9646 * config/arm/unwind-arm.h: Likewise.
9647 * config/avr/libgcc.S: Likewise.
9648 * config/bfin/crti.s: Likewise.
9649 * config/bfin/crtlibid.s: Likewise.
9650 * config/bfin/crtn.s: Likewise.
9651 * config/bfin/lib1funcs.asm: Likewise.
9652 * config/bfin/linux-unwind.h: Likewise.
9653 * config/cris/arit.c: Likewise.
9654 * config/cris/cris_abi_symbol.c: Likewise.
9655 * config/darwin-64.c: Likewise.
9656 * config/darwin-crt2.c: Likewise.
9657 * config/darwin-crt3.c: Likewise.
9658 * config/darwin.h: Likewise.
9659 * config/dbxelf.h: Likewise.
9660 * config/dfp-bit.c: Likewise.
9661 * config/dfp-bit.h: Likewise.
9662 * config/elfos.h: Likewise.
9663 * config/fixed-bit.c: Likewise.
9664 * config/fixed-bit.h: Likewise.
9665 * config/fp-bit.c: Likewise.
9666 * config/fp-bit.h: Likewise.
9667 * config/fr30/crti.asm: Likewise.
9668 * config/fr30/crtn.asm: Likewise.
9669 * config/fr30/lib1funcs.asm: Likewise.
9670 * config/freebsd-spec.h: Likewise.
9671 * config/frv/cmovd.c: Likewise.
9672 * config/frv/cmovh.c: Likewise.
9673 * config/frv/cmovw.c: Likewise.
9674 * config/frv/frvbegin.c: Likewise.
9675 * config/frv/frvend.c: Likewise.
9676 * config/frv/lib1funcs.asm: Likewise.
9677 * config/glibc-stdint.h: Likewise.
9678 * config/h8300/clzhi2.c: Likewise.
9679 * config/h8300/crti.asm: Likewise.
9680 * config/h8300/crtn.asm: Likewise.
9681 * config/h8300/ctzhi2.c: Likewise.
9682 * config/h8300/fixunssfsi.c: Likewise.
9683 * config/h8300/lib1funcs.asm: Likewise.
9684 * config/h8300/parityhi2.c: Likewise.
9685 * config/h8300/popcounthi2.c: Likewise.
9686 * config/i386/ammintrin.h: Likewise.
9687 * config/i386/att.h: Likewise.
9688 * config/i386/avxintrin.h: Likewise.
9689 * config/i386/biarch64.h: Likewise.
9690 * config/i386/bmmintrin.h: Likewise.
9691 * config/i386/cpuid.h: Likewise.
9692 * config/i386/cross-stdarg.h: Likewise.
9693 * config/i386/crtfastmath.c: Likewise.
9694 * config/i386/crtprec.c: Likewise.
9695 * config/i386/cygming-crtbegin.c: Likewise.
9696 * config/i386/cygming-crtend.c: Likewise.
9697 * config/i386/cygwin.asm: Likewise.
9698 * config/i386/emmintrin.h: Likewise.
9699 * config/i386/gmm_malloc.h: Likewise.
9700 * config/i386/gthr-win32.c: Likewise.
9701 * config/i386/i386.h: Likewise.
9702 * config/i386/immintrin.h: Likewise.
9703 * config/i386/linux-unwind.h: Likewise.
9704 * config/i386/linux64.h: Likewise.
9705 * config/i386/mm3dnow.h: Likewise.
9706 * config/i386/mmintrin-common.h: Likewise.
9707 * config/i386/mmintrin.h: Likewise.
9708 * config/i386/nmmintrin.h: Likewise.
9709 * config/i386/pmm_malloc.h: Likewise.
9710 * config/i386/pmmintrin.h: Likewise.
9711 * config/i386/smmintrin.h: Likewise.
9712 * config/i386/sol2-c1.asm: Likewise.
9713 * config/i386/sol2-ci.asm: Likewise.
9714 * config/i386/sol2-cn.asm: Likewise.
9715 * config/i386/sol2-gc1.asm: Likewise.
9716 * config/i386/tmmintrin.h: Likewise.
9717 * config/i386/unix.h: Likewise.
9718 * config/i386/w32-unwind.h: Likewise.
9719 * config/i386/wmmintrin.h: Likewise.
9720 * config/i386/x86-64.h: Likewise.
9721 * config/i386/x86intrin.h: Likewise.
9722 * config/i386/xmmintrin.h: Likewise.
9723 * config/ia64/crtbegin.asm: Likewise.
9724 * config/ia64/crtend.asm: Likewise.
9725 * config/ia64/crtfastmath.c: Likewise.
9726 * config/ia64/crti.asm: Likewise.
9727 * config/ia64/crtn.asm: Likewise.
9728 * config/ia64/fde-glibc.c: Likewise.
9729 * config/ia64/lib1funcs.asm: Likewise.
9730 * config/ia64/linux-unwind.h: Likewise.
9731 * config/ia64/quadlib.c: Likewise.
9732 * config/ia64/unwind-ia64.c: Likewise.
9733 * config/linux.h: Likewise.
9734 * config/m32c/m32c-lib1.S: Likewise.
9735 * config/m32c/m32c-lib2-trapv.c: Likewise.
9736 * config/m32c/m32c-lib2.c: Likewise.
9737 * config/m32r/initfini.c: Likewise.
9738 * config/m68hc11/larith.asm: Likewise.
9739 * config/m68hc11/m68hc11-crt0.S: Likewise.
9740 * config/m68k/cf.md: Likewise.
9741 * config/m68k/crti.s: Likewise.
9742 * config/m68k/crtn.s: Likewise.
9743 * config/m68k/lb1sf68.asm: Likewise.
9744 * config/m68k/linux-unwind.h: Likewise.
9745 * config/mcore/crti.asm: Likewise.
9746 * config/mcore/crtn.asm: Likewise.
9747 * config/mcore/lib1.asm: Likewise.
9748 * config/mips/linux-unwind.h: Likewise.
9749 * config/mips/loongson.h: Likewise.
9750 * config/mips/mips16.S: Likewise.
9751 * config/mmix/crti.asm: Likewise.
9752 * config/mmix/crtn.asm: Likewise.
9753 * config/pa/fptr.c: Likewise.
9754 * config/pa/hpux-unwind.h: Likewise.
9755 * config/pa/lib2funcs.asm: Likewise.
9756 * config/pa/linux-atomic.c: Likewise.
9757 * config/pa/linux-unwind.h: Likewise.
9758 * config/pa/milli64.S: Likewise.
9759 * config/pa/quadlib.c: Likewise.
9760 * config/pa/stublib.c: Likewise.
9761 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9762 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9763 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9764 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9765 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9766 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9767 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9768 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9769 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9770 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9771 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9772 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9773 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9774 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9775 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9776 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9777 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9778 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9779 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9780 * config/rs6000/750cl.h: Likewise.
9781 * config/rs6000/altivec.h: Likewise.
9782 * config/rs6000/biarch64.h: Likewise.
9783 * config/rs6000/crtresfpr.asm: Likewise.
9784 * config/rs6000/crtresgpr.asm: Likewise.
9785 * config/rs6000/crtresxfpr.asm: Likewise.
9786 * config/rs6000/crtresxgpr.asm: Likewise.
9787 * config/rs6000/crtsavfpr.asm: Likewise.
9788 * config/rs6000/crtsavgpr.asm: Likewise.
9789 * config/rs6000/darwin-asm.h: Likewise.
9790 * config/rs6000/darwin-fallback.c: Likewise.
9791 * config/rs6000/darwin-fpsave.asm: Likewise.
9792 * config/rs6000/darwin-ldouble.c: Likewise.
9793 * config/rs6000/darwin-tramp.asm: Likewise.
9794 * config/rs6000/darwin-unwind.h: Likewise.
9795 * config/rs6000/darwin-vecsave.asm: Likewise.
9796 * config/rs6000/darwin-world.asm: Likewise.
9797 * config/rs6000/e500crtres32gpr.asm: Likewise.
9798 * config/rs6000/e500crtres64gpr.asm: Likewise.
9799 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9800 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9801 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9802 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9803 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9804 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9805 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9806 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9807 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9808 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9809 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9810 * config/rs6000/eabi-ci.asm: Likewise.
9811 * config/rs6000/eabi-cn.asm: Likewise.
9812 * config/rs6000/eabi.asm: Likewise.
9813 * config/rs6000/linux-unwind.h: Likewise.
9814 * config/rs6000/linux64.h: Likewise.
9815 * config/rs6000/paired.h: Likewise.
9816 * config/rs6000/paired.md: Likewise.
9817 * config/rs6000/ppc64-fp.c: Likewise.
9818 * config/rs6000/ppu_intrinsics.h: Likewise.
9819 * config/rs6000/rs6000.h: Likewise.
9820 * config/rs6000/si2vmx.h: Likewise.
9821 * config/rs6000/sol-ci.asm: Likewise.
9822 * config/rs6000/sol-cn.asm: Likewise.
9823 * config/rs6000/spe.h: Likewise.
9824 * config/rs6000/spu2vmx.h: Likewise.
9825 * config/rs6000/sysv4.h: Likewise.
9826 * config/rs6000/tramp.asm: Likewise.
9827 * config/rs6000/vec_types.h: Likewise.
9828 * config/s390/linux-unwind.h: Likewise.
9829 * config/s390/tpf-unwind.h: Likewise.
9830 * config/score/crti.asm: Likewise.
9831 * config/score/crtn.asm: Likewise.
9832 * config/sh/crt1.asm: Likewise.
9833 * config/sh/crti.asm: Likewise.
9834 * config/sh/crtn.asm: Likewise.
9835 * config/sh/divtab-sh4-300.c: Likewise.
9836 * config/sh/divtab-sh4.c: Likewise.
9837 * config/sh/divtab.c: Likewise.
9838 * config/sh/lib1funcs-4-300.asm: Likewise.
9839 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9840 * config/sh/lib1funcs.asm: Likewise.
9841 * config/sh/lib1funcs.h: Likewise.
9842 * config/sh/linux-atomic.asm: Likewise.
9843 * config/sh/linux-unwind.h: Likewise.
9844 * config/sh/shmedia.h: Likewise.
9845 * config/sh/sshmedia.h: Likewise.
9846 * config/sh/ushmedia.h: Likewise.
9847 * config/sparc/crtfastmath.c: Likewise.
9848 * config/sparc/linux-unwind.h: Likewise.
9849 * config/sparc/sol2-c1.asm: Likewise.
9850 * config/sparc/sol2-ci.asm: Likewise.
9851 * config/sparc/sol2-cn.asm: Likewise.
9852 * config/spu/divmodti4.c: Likewise.
9853 * config/spu/divv2df3.c: Likewise.
9854 * config/spu/float_disf.c: Likewise.
9855 * config/spu/float_unsdidf.c: Likewise.
9856 * config/spu/float_unsdisf.c: Likewise.
9857 * config/spu/float_unssidf.c: Likewise.
9858 * config/spu/mfc_multi_tag_release.c: Likewise.
9859 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9860 * config/spu/mfc_tag_release.c: Likewise.
9861 * config/spu/mfc_tag_reserve.c: Likewise.
9862 * config/spu/mfc_tag_table.c: Likewise.
9863 * config/spu/multi3.c: Likewise.
9864 * config/spu/spu_internals.h: Likewise.
9865 * config/spu/spu_intrinsics.h: Likewise.
9866 * config/spu/spu_mfcio.h: Likewise.
9867 * config/spu/vec_types.h: Likewise.
9868 * config/spu/vmx2spu.h: Likewise.
9869 * config/stormy16/stormy16-lib2.c: Likewise.
9870 * config/svr4.h: Likewise.
9871 * config/sync.c: Likewise.
9872 * config/v850/lib1funcs.asm: Likewise.
9873 * config/vxlib-tls.c: Likewise.
9874 * config/vxlib.c: Likewise.
9875 * config/vxworks-dummy.h: Likewise.
9876 * config/xtensa/crti.asm: Likewise.
9877 * config/xtensa/crtn.asm: Likewise.
9878 * config/xtensa/ieee754-df.S: Likewise.
9879 * config/xtensa/ieee754-sf.S: Likewise.
9880 * config/xtensa/lib1funcs.asm: Likewise.
9881 * config/xtensa/lib2funcs.S: Likewise.
9882 * config/xtensa/linux-unwind.h: Likewise.
9883 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9884 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9885 * coretypes.h: Likewise.
9886 * crtstuff.c: Likewise.
9887 * defaults.h: Likewise.
9888 * dwarf2.h: Likewise.
9889 * emutls.c: Likewise.
9890 * gbl-ctors.h: Likewise.
9891 * gcov-io.h: Likewise.
9892 * ginclude/float.h: Likewise.
9893 * ginclude/iso646.h: Likewise.
9894 * ginclude/stdarg.h: Likewise.
9895 * ginclude/stdbool.h: Likewise.
9896 * ginclude/stddef.h: Likewise.
9897 * ginclude/stdfix.h: Likewise.
9898 * ginclude/stdint-gcc.h: Likewise.
9899 * ginclude/tgmath.h: Likewise.
9900 * gthr-aix.h: Likewise.
9901 * gthr-dce.h: Likewise.
9902 * gthr-gnat.c: Likewise.
9903 * gthr-gnat.h: Likewise.
9904 * gthr-lynx.h: Likewise.
9905 * gthr-mipssde.h: Likewise.
9906 * gthr-nks.h: Likewise.
9907 * gthr-posix.c: Likewise.
9908 * gthr-posix.h: Likewise.
9909 * gthr-posix95.h: Likewise.
9910 * gthr-rtems.h: Likewise.
9911 * gthr-single.h: Likewise.
9912 * gthr-solaris.h: Likewise.
9913 * gthr-tpf.h: Likewise.
9914 * gthr-vxworks.h: Likewise.
9915 * gthr-win32.h: Likewise.
9916 * gthr.h: Likewise.
9917 * libgcc2.c: Likewise.
9918 * libgcc2.h: Likewise.
9919 * libgcov.c: Likewise.
9920 * tsystem.h: Likewise.
9921 * typeclass.h: Likewise.
9922 * unwind-c.c: Likewise.
9923 * unwind-compat.h: Likewise.
9924 * unwind-dw2-fde-compat.c: Likewise.
9925 * unwind-dw2-fde-darwin.c: Likewise.
9926 * unwind-dw2-fde-glibc.c: Likewise.
9927 * unwind-dw2-fde.c: Likewise.
9928 * unwind-dw2-fde.h: Likewise.
9929 * unwind-dw2.c: Likewise.
9930 * unwind-dw2.h: Likewise.
9931 * unwind-generic.h: Likewise.
9932 * unwind-pe.h: Likewise.
9933 * unwind-sjlj.c: Likewise.
9934 * unwind.inc: Likewise.
9935 * config/arm/neon-gen.ml: Change generated copyright header to
9936 refer to version 3 of the GNU General Public License with
9937 version 3.1 of the GCC Runtime Library Exception and to point
9938 readers at the COPYING3 and COPYING3.RUNTIME files and the
9939 FSF's license web page.
9940 * config/arm/arm_neon.h: Regenerate.
9941
99422009-04-09 Jakub Jelinek <jakub@redhat.com>
9943
9944 * config/cris/cris.md: Change copyright header to refer to version
9945 3 of the GNU General Public License.
9946 * doc/install.texi2html: Change copyright header to refer to version
9947 3 of the GNU General Public License and to point readers at the
9948 COPYING3 file and the FSF's license web page.
9949 * config/vax/linux.h: Likewise.
9950
4a77c72b
PB
99512009-04-09 Paolo Bonzini <bonzini@gnu.org>
9952
1ad2f450
L
9953 * config/i386/i386.md (cmpcc): New.
9954 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9955 (sync_compare_and_swap_cc*): Delete.
9956
9957 * config/s390/s390.c (s390_compare_emitted): Remove.
9958 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9959 s390_compare_emitted used to be handled. Assert that modes match.
9960 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9961 refer to sync_compare_and_swap_ccsi.
9962 * config/s390/s390.h (s390_compare_emitted): Remove.
9963 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9964 instead of s390_compare_emitted.
9965 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9966 instead of s390_compare_emitted.
9967 * config/s390/s390.md (cmpcc): New.
9968 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9969 CC_REGNUM, do not pretend it's set.
9970 (sync_compare_and_swap_cc*): Delete.
9971 * config/s390/predicates.md (cc_reg_operand): New.
9972
9973 * expr.c (sync_compare_and_swap_cc): Delete.
9974 * optabs.h (sync_compare_and_swap_cc): Delete.
9975 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9976 is being used with can_compare_p.
9977 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9978 (find_cc_set): New.
9979 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9980 look for a MODE_CC set instead. Use emit_store_flag.
9981 (expand_compare_and_swap_loop): Likewise, with some additional
9982 complication to avoid a force_reg when useless. Use
9983 emit_cmp_and_jump_insns.
9984 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9985 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9986 sync_compare_and_swap documentation.
4a77c72b 9987
0c0efb33
JH
99882009-04-09 Jan Hubicka <jh@suse.cz>
9989
9990 * except.c (find_prev_try): Break out from ....
9991 (duplicate_eh_regions): ... here; properly update prev_try pointers
9992 when duplication part of tree.
9993 (dump_eh_tree): Improve dumping.
9994 (verify_eh_region): New.
9995 (verify_eh_tree): Use it.
9996
22a65a54
RG
99972009-04-06 Richard Guenther <rguenther@suse.de>
9998
9999 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10000 &ARRAY addresses by adjusting their types and prepending
10001 a conversion.
10002 * tree-cfg.c (verify_gimple_assign_single): Verify that
10003 addresses are correct.
10004
f76968e6
RG
100052009-04-09 Richard Guenther <rguenther@suse.de>
10006
10007 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10008 indices into an array reference if possible.
10009 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10010 Fold POINTER_PLUS_EXPR statements with invariant address.
10011
c90c5fb5
AM
100122009-04-09 Alan Modra <amodra@bigpond.net.au>
10013
10014 PR target/39634
10015 * config.gcc (powerpc64-*-linux*): Always build biarch.
10016
17cede2e
JM
100172009-04-09 Joseph Myers <joseph@codesourcery.com>
10018
10019 PR c/39613
10020 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10021 it and pedwarn if this results in an INTEGER_CST.
10022
a3337ea2
KG
100232009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10024
10025 * doc/install.texi: Update minimum GMP version. Remove obsolete
10026 text in MPFR section.
10027
ce9ba79b
JJ
100282009-04-08 Jakub Jelinek <jakub@redhat.com>
10029
10030 * dwarf2out.c (class_scope_p): New static inline.
10031 (class_or_namespace_scope_p): Use it.
10032 (gen_variable_die): Use DW_TAG_member tag for static data member
10033 declarations instead of DW_TAG_variable.
10034
4f0ae266
JJ
10035 PR middle-end/39573
10036 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10037 variables.
10038
d27f0ddc
RG
100392009-04-08 Richard Guenther <rguenther@suse.de>
10040
10041 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10042 valueize random data.
10043
557cc596
DE
100442009-04-08 David Edelsohn <edelsohn@gnu.org>
10045
10046 * config.gcc (aix tm_file): Add aix-stdint.h.
10047 (aix tm clause use_gcc_stdint): Set to wrap.
10048 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 10049
75ccc1e7
RG
100502009-04-08 Richard Guenther <rguenther@suse.de>
10051
10052 PR middle-end/36291
10053 * tree-dfa.c (add_referenced_var): Do not recurse into
10054 global initializers.
10055 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10056 exposed variables.
10057 (fold_const_aggregate_ref): Likewise.
10058
c6963675
PB
100592009-04-08 Paolo Bonzini <bonzini@gnu.org>
10060
6c44cf79
L
10061 * recog.c (ordered_comparison_operator): New.
10062 * gensupport.c (std_preds): Add it.
c6963675
PB
10063 * doc/md.texi (Machine-Independent Predicates): Document it.
10064
6d07ad98
JH
100652009-04-08 Jan Hubicka <jh@suse.cz>
10066
10067 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10068 * function.h (rtl_eh): Remove exception_handler_label_map.
10069 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10070 remove_exception_handler_label, for_each_eh_label_1): Remove.
10071 (rtl_remove_unreachable_regions): Remove.
10072 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10073 (find_exception_handler_labels): Don't build the hashtable.
10074 (maybe_remove_eh_handler): Remove.
10075 (for_each_eh_label): Rewrite to walk the tree.
10076 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10077 * except.h (maybe_remove_eh_handler): Remove.
10078 * passes.c (init_optimization_passes): Schedule second EH cleanup
10079 before out-of-ssa.
10080 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10081 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10082
7ddf71e3
PB
100832009-04-08 Paolo Bonzini <bonzini@gnu.org>
10084
10085 * genoutput.c (validate_optab_operands): New.
10086 (gen_insn, gen_expand): Call it.
10087
10088 * genflags.c (gen_insn): Detect misused iterators.
10089 (main): Pass line_no to gen_insn, exit with status 1 on error.
10090
10091 * genextract.c (line_no): Make global.
10092 (VEC_safe_set_locstr): Change assertion to error message.
10093 (main): Exit with status 1 on error.
10094
4d84fe7c
JM
100952009-04-08 Joseph Myers <joseph@codesourcery.com>
10096
10097 PR c/39614
10098 PR c/39673
10099 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10100 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10101 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10102 * c-convert.c (convert): Do not call fold on results of conversion
10103 functions when the result is a C_MAYBE_CONST_EXPR.
10104 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10105 of __builtin_choose_expr.
10106 * c-typeck.c (remove_c_maybe_const_expr): New.
10107 (build_unary_op, build_conditional_expr, build_compound_expr,
10108 build_binary_op, c_objc_common_truthvalue_conversion): Call
10109 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10110 integer operands.
10111
60839f5d 101122009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10113
2ba9daa7 10114 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10115 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10116
8e481a2c
DS
101172009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10118
10119 PR bootstrap/39660
10120 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10121 mix declarations and code.
10122
ee618c17
BE
101232009-04-08 Ben Elliston <bje@au.ibm.com>
10124
10125 * gcc.c: Replace `CC' with `GCC' throughout.
10126
f2a758a2
L
101272009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10128
10129 * doc/invoke.texi: Document Atom support.
10130
6ea2bd47
JM
101312009-04-07 Jason Merrill <jason@redhat.com>
10132
10133 PR c++/25185
10134 * c-common.h, c-common.c: Add flag_pretty_templates.
10135 * c-opts.c (c_common_handle_option): Set it.
10136 * c.opt: Add -fno-pretty-templates.
10137 * doc/invoke.texi (C++ Dialect Options): Likewise.
10138
fcb82ab0
UB
101392009-04-07 Uros Bizjak <ubizjak@gmail.com>
10140
10141 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10142 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10143 (ia64_expand_builtin): Likewise.
10144
dc5e7298
MJ
101452009-04-07 Martin Jambor <mjambor@suse.cz>
10146
10147 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10148 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10149 ADDR_EXPRS are include too.
10150
0609b355
RG
101512009-04-07 Richard Guenther <rguenther@suse.de>
10152
10153 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10154 decls are only used if passes as parameters or if they are
10155 local statics and the call is not to a builtin.
10156 (call_may_clobber_ref_p_1): Likewise.
10157
d8e535fa
PB
101582009-04-07 Paolo Bonzini <bonzini@gnu.org>
10159
10160 * expr.c (do_store_flag): Remove last argument. Simplify code
10161 to avoid duplication of tests already done by can_compare_p.
10162 (expand_expr_real_1): Adjust caller.
10163
c3c64f50
PB
101642009-04-07 Paolo Bonzini <bonzini@gnu.org>
10165
fcb82ab0
UB
10166 * optabs.c (can_compare_p): Test the predicate of a
10167 cbranch and cstore pattern.
c3c64f50 10168
9a53bc17
PB
101692009-04-07 Paolo Bonzini <bonzini@gnu.org>
10170
fcb82ab0
UB
10171 * expr.c (convert_move): Use emit_store_flag instead of
10172 "emulating" it.
9a53bc17 10173
67b8f1c1
PB
101742009-04-07 Paolo Bonzini <bonzini@gnu.org>
10175
fcb82ab0
UB
10176 * config/i386/i386.c (ix86_compare_emitted): Remove.
10177 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10178 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10179 * config/i386/i386.h (ix86_compare_emitted): Remove.
10180 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10181 instead of ix86_compare_emitted.
10182 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10183
44509946
AS
101842009-04-07 Andrew Stubbs <ams@codesourcery.com>
10185
10186 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10187 Add t-sysroot-suffix to tmake_file.
10188 * config/print-sysroot-suffix.sh: New file.
10189 * config/t-sysroot-suffix: New file.
10190
ca22d882
BE
101912009-04-07 Ben Elliston <bje@au.ibm.com>
10192
10193 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10194 as the latter produces a warning when the target does not support
10195 infinity.
10196
95aac11b
BE
101972009-04-07 Ben Elliston <bje@au.ibm.com>
10198
10199 * dfp.c: Replace type punning assignments with memcpy throughout.
10200 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10201
633dd061
AM
102022009-04-07 Alan Modra <amodra@bigpond.net.au>
10203
10204 PR target/39634
10205 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10206 Include soft-fp/t-softfp after rs6000/t-linux64.
10207
fe0a25ec
EB
102082009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10209
10210 * stor-layout.c (set_sizetype): Use the full precision of their
10211 machine mode for bitsize types.
10212
0c011bc3
L
102132009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10214
10215 * config/i386/i386.md: Revert 2 accidental checkins.
10216
b6837b94 102172009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10218 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10219 H.J. Lu <hongjiu.lu@intel.com>
10220
10221 Atom pipeline model, tuning and insn selection.
10222 * config.gcc (atom): Add atom config options and target.
10223
10224 * config/i386/atom.md: New.
10225
10226 * config/i386/i386.c (atom_cost): New cost.
10227 (m_ATOM): New macro flag.
10228 (initial_ix86_tune_features): Set m_ATOM.
10229 (x86_accumulate_outgoing_args): Likewise.
10230 (x86_arch_always_fancy_math_387): Likewise.
10231 (processor_target): Add Atom cost.
10232 (cpu_names): Add Atom cpu name.
10233 (override_options): Set Atom ISA.
10234 (ix86_issue_rate): New case PROCESSOR_ATOM.
10235 (ix86_adjust_cost): Likewise.
10236
10237 * config/i386/i386.h (TARGET_ATOM): New target macro.
10238 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10239 (TARGET_OPT_AGU): New target option.
10240 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10241 (processor_type): Add PROCESSOR_ATOM.
10242
10243 * config/i386/i386.md (cpu): Add new value "atom".
10244 (use_carry, movu): New attr.
10245 (atom.md): Include atom.md.
10246 (adddi3_carry_rex64): Set attr "use_carry".
10247 (addqi3_carry): Likewise.
10248 (addhi3_carry): Likewise.
10249 (addsi3_carry): Likewise.
10250 (*addsi3_carry_zext): Likewise.
10251 (subdi3_carry_rex64): Likewise.
10252 (subqi3_carry): Likewise.
10253 (subhi3_carry): Likewise.
10254 (subsi3_carry): Likewise.
10255 (x86_movdicc_0_m1_rex64): Likewise.
10256 (*x86_movdicc_0_m1_se): Likewise.
10257 (x86_movsicc_0_m1): Likewise.
10258 (*x86_movsicc_0_m1_se): Likewise.
10259 (*adddi_1_rex64): Emit add insn as much as possible.
10260 (*addsi_1): Likewise.
10261 (return_internal): Set atom_unit.
10262 (return_internal_long): Likewise.
10263 (return_pop_internal): Likewise.
10264 (*rcpsf2_sse): Set atom_sse_attr attr.
10265 (*qrt<mode>2_sse): Likewise.
10266 (*prefetch_sse): Likewise.
10267
10268 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10269 PROCESSOR_ATOM.
10270 (ix86_target_macros_internal): Likewise.
10271
10272 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10273 (*prefetch_sse_rex): Likewise.
10274 (sse_rcpv4sf2): Likewise.
10275 (sse_vmrcpv4sf2): Likewise.
10276 (sse_sqrtv4sf2): Likewise.
10277 (<sse>_vmsqrt<mode>2): Likewise.
10278 (sse_ldmxcsr): Likewise.
10279 (sse_stmxcsr): Likewise.
10280 (*sse_sfence): Likewise.
10281 (sse2_clflush): Likewise.
10282 (*sse2_mfence): Likewise.
10283 (*sse2_lfence): Likewise.
10284 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10285 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10286 (avx_movdqu<avxmodesuffix>): Likewise.
10287 (avx_lddqu<avxmodesuffix>): Likewise.
10288 (sse2_movntv2di): Change attr "type" to "ssemov".
10289 (sse2_movntsi): Likewise.
10290 (rsqrtv8sf2): Change attr "type" to "sseadd".
10291 (sse3_addsubv2df3): Set attr "atom_unit".
10292 (sse3_h<plusminus_insn>v4sf3): Likewise.
10293 (*sse2_pmaddwd): Likewise.
10294 (*vec_extractv2di_1_rex64): Likewise.
10295 (*vec_extractv2di_1_avx): Likewise.
10296 (sse2_psadbw): Likewise.
10297 (ssse3_phaddwv8hi3): Likewise.
10298 (ssse3_phaddwv4hi3): Likewise.
10299 (ssse3_phadddv4si3): Likewise.
10300 (ssse3_phadddv2si3): Likewise.
10301 (ssse3_phaddswv8hi3): Likewise.
10302 (ssse3_phaddswv4hi3): Likewise.
10303 (ssse3_phsubwv8hi3): Likewise.
10304 (ssse3_phsubwv4hi3): Likewise.
10305 (ssse3_phsubdv4si3): Likewise.
10306 (ssse3_phsubdv2si3): Likewise.
10307 (ssse3_phsubswv8hi3): Likewise.
10308 (ssse3_phsubswv4hi3): Likewise.
10309 (ssse3_pmaddubsw128): Likewise.
10310 (sse3_pmaddubsw: Likewise.
10311 (ssse3_palignrti): Likewise.
10312 (ssse3_palignrdi): Likewise.
10313
53e350d3
GP
103142009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10315
10316 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10317
439ef907
RG
103182009-04-06 Richard Guenther <rguenther@suse.de>
10319
10320 PR tree-optimization/28868
10321 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10322 of which PHI results we inserted.
10323 (insert_into_preds_of_block): Record inserted PHIs.
10324 (eliminate): Eliminate redundant PHI nodes.
10325 (init_pre): Init inserted_phi_names.
10326
4bad83f5
RG
103272009-04-06 Richard Guenther <rguenther@suse.de>
10328
10329 PR tree-optimization/39643
10330 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10331 IMAGPART_EXPRs of complex constants.
10332 (execute_fold_all_builtins): If we folded a call queue
10333 TODO_update_address_taken.
10334
570c4247
JH
103352009-04-06 Jan Hubicka <jh@suse.cz>
10336
10337 PR middle-end/39659
10338 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10339 flag.
10340
a460d7a1
AS
103412009-04-06 Andrew Stubbs <ams@codesourcery.com>
10342
10343 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10344 delay slot.
10345 (ic_invalidate_array): Likewise.
10346
60839f5d 103472009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10348
10349 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10350 alignment for library calls.
10351
7d253f6e
DS
103522009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10353
10354 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10355 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10356 * config/i386/mingw-stdint.h: New file.
10357
941c3614
RB
103582009-04-05 Richard Guenther <rguenther@suse.de>
10359
10360 PR tree-optimization/39648
10361 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10362 our &A vs. &A[0] IL deficiencies.
10363
12633413
JH
103642009-04-04 Jan Hubicka <jh@suse.cz>
10365
941c3614
RB
10366 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10367 removed toplevel regions.
12633413
JH
10368 (sjlj_mark_call_sites): Likewise.
10369
bb2aaded
DK
103702009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10371
10372 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10373 (cygwin tm clause use_gcc_stdint): Set to wrap.
10374 * config/i386/cygwin-stdint.h: New file.
10375
86290011
RG
103762009-04-04 Richard Guenther <rguenther@suse.de>
10377
10378 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10379 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10380 single-argument PHIs if we are in loop-closed SSA form.
10381 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10382 for the pre-condition.
10383 (slpeel_tree_peel_loop_to_edge): Likewise.
10384 (vect_build_loop_niters): Take an optional sequence to append stmts.
10385 (vect_generate_tmps_on_preheader): Likewise.
10386 (vect_do_peeling_for_loop_bound): Take extra guards for the
10387 pre-condition.
10388 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10389 the cost model check.
10390 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10391 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10392 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10393 (vect_do_peeling_for_loop_bound): Likewise.
10394 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10395 loop bound only record extra pre-conditions, do not apply loop
10396 versioning.
10397
5eeeac64
RG
103982009-04-04 Richard Guenther <rguenther@suse.de>
10399
10400 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10401 renaming code.
10402
1ff7d06b
JH
104032009-04-04 Jan Hubicka <jh@suse.cz>
10404
10405 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10406 last_basic_block for size of bb->index indexed array.
10407 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10408 compute_out, link_btr_uses, build_btr_def_use_webs,
10409 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10410
14925fcd
JH
104112009-04-04 Jan Hubicka <jh@suse.cz>
10412
10413 * except.c (remove_eh_handler_and_replace): Break out from ...
10414 (remove_eh_handler): ... here.
10415 (bring_to_root): New function.
10416 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10417 handled ones, bring others to root of tree.
10418
4e6d1743
JH
104192009-04-04 Jan Hubicka <jh@suse.cz>
10420
4cb735f7
JH
10421 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10422 (all_phis_safe_to_merge): New function.
10423 (update_info): New structure.
10424 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10425 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10426
c6803d43
RG
104272009-04-04 Richard Guenther <rguenther@suse.de>
10428
10429 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10430 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10431 (append_vuse): Likewise.
10432
54f5943c
JJ
104332009-04-04 Jakub Jelinek <jakub@redhat.com>
10434
10435 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10436 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10437 instead of REG_UNSAVED for DW_CFA_undefined.
10438 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10439 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10440 outermost frame.
10441
aad2bccb
RE
104422009-04-04 Richard Earnshaw <rearnsha@arm.com>
10443
10444 PR target/39501
10445 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10446 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10447 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10448
aa7069aa
RG
104492009-04-04 Richard Guenther <rguenther@suse.de>
10450
10451 PR tree-optimization/8781
10452 PR tree-optimization/37892
10453 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10454 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10455 (valueize_refs): Call it for *& valueizations.
10456 (shared_reference_ops_from_ref): Rename to ...
10457 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10458 (shared_reference_ops_from_call): Rename to ...
10459 (valueize_shared_reference_ops_from_call): ... this and valueize.
10460 (vn_reference_lookup): Update.
10461 (visit_reference_op_call): Likewise.
10462 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10463 (eliminate): Value-replace the call address in call statements.
10464
cd15ad3e
RG
104652009-04-04 Richard Guenther <rguenther@suse.de>
10466
10467 PR tree-optimization/39636
10468 * tree-ssa-forwprop.c
10469 (forward_propagate_addr_into_variable_array_index): Check for
10470 GIMPLE_ASSIGN before accessing the rhs code.
10471
462f3262
JM
104722009-04-03 Jason Merrill <jason@redhat.com>
10473
10474 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10475
6adb807e
SE
104762009-04-03 Steve Ellcey <sje@cup.hp.com>
10477
10478 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10479 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10480 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10481 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10482 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10483 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10484 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10485 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10486 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10487 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10488 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10489 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10490 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10491 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10492 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10493 Use fr_reg_or_fp01_operand instead of fr_register_operand
10494
10495 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10496 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10497 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10498
174b3107
VM
104992009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10500
b844e5d8
L
10501 PR rtl-optimization/39607
10502 PR rtl-optimization/39631
7a715bba
UB
10503
10504 Revert:
2ba9daa7 10505
174b3107
VM
10506 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10507 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10508 instead of DF_LR_OUT.
10509 * ira-lives.c (process_bb_node_lives): Ditto.
10510 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10511 instead of DF_LR_{OUT,IN}.
10512 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10513 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10514
535b544a
SB
105152009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10516
10517 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10518 (execute_lower_omp): Always run but take the short way out if -fopenmp
10519 is not given.
10520 (gate_lower_omp): Remove, forcing the pass manager to always run the
10521 pass and always set PROP_gimple_lomp.
10522 (pass_lower_omp): Remove gate function.
10523 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10524 PROP_trees. Instead, require it.
10525 * ipa-cp.c (pass_ipa_cp): Likewise.
10526 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10527 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10528 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10529 and PROP_gimple_leh.
10530
5006671f
RG
105312009-04-03 Richard Guenther <rguenther@suse.de>
10532
10533 PR middle-end/13146
10534 PR tree-optimization/23940
10535 PR tree-optimization/33237
10536 PR middle-end/33974
10537 PR middle-end/34093
10538 PR tree-optimization/36201
10539 PR tree-optimization/36230
10540 PR tree-optimization/38049
10541 PR tree-optimization/38207
10542 PR tree-optimization/38230
10543 PR tree-optimization/38301
10544 PR tree-optimization/38585
10545 PR middle-end/38895
10546 PR tree-optimization/38985
10547 PR tree-optimization/39299
10548 * tree-ssa-structalias.h: Remove.
10549 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10550 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10551 (struct vuse_element_d): Remove.
10552 (struct vuse_vec_d): Likewise.
10553 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10554 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10555 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10556 VUSE_ELEMENT_VAR): Likewise.
10557 (struct voptype_d): Likewise.
10558 (NUM_VOP_FREE_BUCKETS): Likewise.
10559 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10560 (struct stmt_operands_d): Remove.
10561 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10562 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10563 VDEF_NUM, VDEF_VECT): Likewise.
10564 (copy_virtual_operands): Remove.
10565 (operand_build_cmp): Likewise.
10566 (create_ssa_artificial_load_stmt): Likewise.
10567 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10568 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10569 vuse_index and mayuse_index members. Pack and move done and iter_type
10570 members to the front.
10571 (SSA_OP_VMAYUSE): Remove.
10572 (SSA_OP_VIRTUAL_USES): Adjust.
10573 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10574 (unlink_stmt_vdef): Declare.
10575 (add_to_addressable_set): Remove.
10576 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10577 (vrp_visit_stmt): Likewise.
10578 * doc/tree-ssa.texi (Alias analysis): Update.
10579 * doc/invoke.texi (max-aliased-vops): Remove docs.
10580 (avg-aliased-vops): Likewise.
10581 * tree-into-ssa.c (syms_to_rename): Remove.
10582 (need_to_update_vops_p): Likewise.
10583 (need_to_initialize_update_ssa_p): Rename to ...
10584 (update_ssa_initialized_fn): ... this. Track function we are
10585 initialized for.
10586 (symbol_marked_for_renaming): Simplify.
10587 (add_new_name_mapping): Do not set need_to_update_vops_p.
10588 (dump_currdefs): Use SYMS_TO_RENAME.
10589 (rewrite_update_stmt): Always walk all uses/defs.
10590 (dump_update_ssa): Adjust.
10591 (init_update_ssa): Take function argument. Track what we are
10592 initialized for.
10593 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10594 (create_new_def_for): Initialize for cfun, assert we are initialized
10595 for cfun.
10596 (mark_sym_for_renaming): Simplify.
10597 (mark_set_for_renaming): Do not initialize update-ssa.
10598 (need_ssa_update_p): Simplify. Take function argument.
10599 (name_mappings_registered_p): Assert we ask for the correct function.
10600 (name_registered_for_update_p): Likewise.
10601 (ssa_names_to_replace): Likewise.
10602 (release_ssa_name_after_update_ssa): Likewise.
10603 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10604 (dump_decl_set): Do not print a newline.
10605 (debug_decl_set): Do it here.
10606 (dump_update_ssa): And here.
10607 * tree-ssa-loop-im.c (move_computations): Adjust.
10608 (movement_possibility): Likewise.
10609 (determine_max_movement): Likewise.
10610 (gather_mem_refs_stmt): Likewise.
10611 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10612 or NAME_MEMORY_TAG.
10613 * tree-complex.c (update_all_vops): Remove.
10614 (expand_complex_move): Adjust.
10615 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10616 Simplify test for memory referencing statement. Exclude
10617 non-invariant ADDR_EXPRs.
10618 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10619 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10620 (rdg_flag_uses): Likewise.
10621 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10622 related code.
10623 (tree_optimize_tail_calls_1): Also split the
10624 edge from the entry block if we have degenerate PHI nodes in
10625 the first basic block.
10626 * tree.c (init_ttree): Remove memory-tag related code.
10627 (tree_code_size): Likewise.
10628 (tree_node_structure): Likewise.
10629 (build7_stat): Re-write to be build6_stat.
10630 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10631 (SSA_VAR_P): Adjust.
10632 (struct tree_memory_tag): Remove.
10633 (struct tree_memory_partition_tag): Likewise.
10634 (union tree_node): Adjust.
10635 (build7): Re-write to be build6.
10636 * tree-pass.h (pass_reset_cc_flags): Remove.
10637 (TODO_update_address_taken): New flag.
10638 (pass_simple_dse): Remove.
10639 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10640 * params.h (MAX_ALIASED_VOPS): Remove.
10641 (AVG_ALIASED_VOPS): Likewise.
10642 * omp-low.c (expand_omp_taskreg): Update SSA form.
10643 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10644 aliases the lhs in a copy stmt.
10645 * tree-ssa-dse.c (struct address_walk_data): Remove.
10646 (memory_ssa_name_same): Likewise.
10647 (memory_address_same): Likewise.
10648 (get_kill_of_stmt_lhs): Likewise.
10649 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10650 unused stores. Look through PHI nodes into post-dominated regions.
10651 (dse_optimize_stmt): Simplify. Properly remove stores.
10652 (tree_ssa_dse): Compute dominators.
10653 (execute_simple_dse): Remove.
10654 (pass_simple_dse): Likewise.
10655 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10656 gimple_loaded_syms and gimple_stored_syms computation.
10657 * toplev.c (dump_memory_report): Dump alias and pta stats.
10658 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10659 (vn_reference_eq): Likewise.
10660 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10661 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10662 valueize_vuses): Remove.
10663 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10664 (get_def_ref_stmt_vuse): ... this.
10665 (vn_reference_lookup_2): New function.
10666 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10667 walking equivalent vuses. Simplify.
10668 (vn_reference_lookup): Likewise.
10669 (vn_reference_insert): Likewise.
10670 (vn_reference_insert_pieces): Likewise.
10671 (visit_reference_op_call): Simplify.
10672 (visit_reference_op_load): Likewise.
10673 (visit_reference_op_store): Likewise.
10674 (init_scc_vn): Remove shared_lookup_vuses initialization.
10675 (free_scc_vn): Remove shared_lookup_vuses freeing.
10676 (sort_vuses, sort_vuses_heap): Remove.
10677 (get_ref_from_reference_ops): Export.
10678 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10679 vector with single vuse pointer.
10680 (vn_reference_lookup_pieces, vn_reference_lookup,
10681 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10682 (shared_vuses_from_stmt): Remove.
10683 (get_ref_from_reference_ops): Declare.
10684 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10685 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10686 memory-tag related code.
10687 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10688 (likely_value): Add comment, skip static-chain of call statements.
10689 (surely_varying_stmt_p): Adjust.
10690 (gimplify_and_update_call_from_tree): Likewise.
10691 (execute_fold_all_builtins): Do not rebuild alias info.
10692 (gimplify_and_update_call_from_tree): Properly update VOPs.
10693 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10694 (copy_ref_info): Remove memory-tag related code.
10695 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10696 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10697 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10698 computation.
10699 * tree-ssa-dom.c (gimple_p): Remove typedef.
10700 (eliminate_redundant_computations): Adjust.
10701 (record_equivalences_from_stmt): Likewise.
10702 (avail_expr_hash): Likewise.
10703 (avail_expr_eq): Likewise.
7a715bba 10704 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10705 (stmt_makes_single_load): Likewise.
10706 (stmt_makes_single_store): Likewise.
10707 * tree-ssa-alias.c: Rewrite completely.
10708 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10709 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10710 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10711 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10712 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10713 Remove public functions.
10714 (pass_reset_cc_flags): Remove.
10715 (pass_build_alias): Move ...
10716 * tree-ssa-structalias.c (pass_build_alias): ... here.
10717 * tree-ssa-alias.c (may_be_aliased): Move ...
10718 * tree-flow-inline.h (may_be_aliased): ... here.
10719 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10720 count_uses_and_derefs): Move ...
10721 * gimple.c: ... here.
10722 * gimple.h (count_uses_and_derefs): Declare.
10723 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10724 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10725 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10726 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10727 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10728 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10729 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10730 New functions.
10731 * tree-dfa.c (refs_may_alias_p): Move ...
10732 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10733 * tree-ssa-alias.h: New file.
10734 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10735 (statement_sink_location): Likewise.
10736 * opts.c (decode_options): Do not adjust max-aliased-vops or
10737 avg-aliased-vops values.
10738 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10739 (TV_CALL_CLOBBER): Likewise.
10740 (TV_FLOW_SENSITIVE): Likewise.
10741 (TV_FLOW_INSENSITIVE): Likewise.
10742 (TV_MEMORY_PARTITIONING): Likewise.
10743 (TV_ALIAS_STMT_WALK): New timevar.
10744 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10745 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10746 (get_address_description): Remove memory-tag related code.
10747 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10748 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10749 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10750 and immediate uses in statements. Document.
10751 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10752 (dump_symbols): Remove.
10753 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10754 * alias.c (get_deref_alias_set): New function split out from ...
10755 (get_alias_set): ... here.
10756 * alias.h (get_deref_alias_set): Declare.
10757 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10758 type parameter. Remove restrict pointer handling. Create a
10759 ref-all pointer in case type-based alias sets do not conflict.
10760 (vect_analyze_data_refs): Remove SMT related code.
10761 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10762 (vectorizable_load): Likewise.
10763 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10764 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10765 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10766 Ignore vops and SMTs.
10767 (dr_analyze_alias): Likewise..
10768 (free_data_ref): Likewise.
10769 (create_data_ref): Likewise.
10770 (analyze_all_data_dependences): Likewise.
10771 (get_references_in_stmt): Adjust.
10772 * tree-flow-inline.h (gimple_aliases_computed_p,
10773 gimple_addressable_vars, gimple_call_clobbered_vars,
10774 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10775 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10776 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10777 gimple_mem_ref_stats): Remove.
10778 (gimple_vop): New function.
10779 (op_iter_next_use): Remove vuses and mayuses cases.
10780 (op_iter_next_def): Remove vdefs case.
10781 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10782 (clear_and_done_ssa_iter): Do not set removed fields.
10783 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10784 Assert we are not iterating over vuses or vdefs if not also
10785 iterating over uses or defs.
10786 (op_iter_init_use): Likewise.
10787 (op_iter_init_def): Likewise.
10788 (op_iter_next_vdef): Remove.
10789 (op_iter_next_mustdef): Likewise.
10790 (op_iter_init_vdef): Likewise.
10791 (compare_ssa_operands_equal): Likewise.
10792 (link_use_stmts_after): Handle vuse operand.
10793 (is_call_used): Use is_call_clobbered.
10794 (is_call_clobbered): Global variables are always call clobbered,
10795 query the call-clobbers bitmap.
10796 (mark_call_clobbered): Ignore global variables.
10797 (clear_call_clobbered): Likewise.
10798 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10799 virtual operands sanity check.
10800 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10801 Remove.
10802 (TARGET_MEM_REF): Remove TMR_TAG operand.
10803 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10804 Remove call-clobber related code.
10805 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10806 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10807 partitions or escape reason.
10808 (get_single_def_stmt, get_single_def_stmt_from_phi,
10809 get_single_def_stmt_with_phi): Remove.
10810 (dump_referenced_vars): Tidy.
10811 (get_ref_base_and_extent): Allow bare decls.
10812 (collect_dfa_stats): Adjust.
10813 * graphite.c (rename_variables_in_stmt): Adjust.
10814 (graphite_copy_stmts_from_block): Likewise.
10815 (translate_clast): Likewise.
10816 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10817 (EXPR_DIES): New.
10818 (translate_vuse_through_block): Use the oracle.
10819 (phi_translate_1): Adjust.
10820 (value_dies_in_block_x): Use the oracle. Cache the outcome
10821 in EXPR_DIES.
10822 (valid_in_sets): Check if the VUSE for
10823 a REFERENCE is available.
10824 (eliminate): Do not remove stmts during elimination,
10825 instead queue and remove them afterwards.
10826 (do_pre): Do not rebuild alias info.
10827 (pass_pre): Run TODO_rebuild_alias before PRE.
10828 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10829 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10830 (mark_all_v_defs_stmt): Remove.
10831 (mark_all_v_defs_seq): Adjust.
10832 (sra_replace): Likewise.
10833 (scalarize_use): Likewise.
10834 (scalarize_copy): Likewise.
10835 (scalarize_init): Likewise.
10836 (scalarize_ldst): Likewise.
10837 (todoflags): Remove.
10838 (tree_sra): Do not rebuild alias info.
10839 (tree_sra_early): Adjust.
10840 (pass_sra): Run TODO_update_address_taken before SRA.
10841 * tree-predcom.c (set_alias_info): Remove.
10842 (prepare_initializers_chain): Do not call it.
10843 (mark_virtual_ops_for_renaming): Adjust.
10844 (mark_virtual_ops_for_renaming_list): Remove.
10845 (initialize_root_vars): Adjust.
10846 (initialize_root_vars_lm): Likewise.
10847 (prepare_initializers_chain): Likewise.
10848 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10849 (may_propagate_copy_into_stmt): Likewise.
10850 (merge_alias_info): Do nothing for now.
10851 (propagate_tree_value_into_stmt): Adjust.
10852 (stmt_may_generate_copy): Likewise.
10853 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10854 not mark symbols for renaming.
10855 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10856 with the same statement, make sure to update the new pointed-to one.
10857 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10858 call statements, do not mark symbols for renaming.
10859 (mark_operand_necessary): Dump something.
10860 (ref_may_be_aliased): New function.
10861 (mark_aliased_reaching_defs_necessary_1): New helper function.
10862 (mark_aliased_reaching_defs_necessary): Likewise.
10863 (mark_all_reaching_defs_necessary_1): Likewise.
10864 (mark_all_reaching_defs_necessary): Likewise.
10865 (propagate_necessity): Do not process virtual PHIs. For
10866 non-aliased loads mark all reaching definitions as necessary.
10867 For aliased loads and stores mark the immediate dominating
10868 aliased clobbers as necessary.
10869 (visited): New global static.
10870 (perform_tree_ssa_dce): Free visited bitmap after propagating
10871 necessity.
10872 (remove_dead_phis): Perform simple dead virtual PHI removal.
10873 (remove_dead_stmt): Properly unlink virtual operands when
10874 removing stores.
10875 (eliminate_unnecessary_stmts): Schedule PHI removal after
10876 stmt removal.
10877 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10878 (process_replaceable): Likewise.
10879 (find_replaceable_in_bb): Likewise.
10880 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10881 based on the single gimple vop.
10882 (verify_flow_insensitive_alias_info): Remove.
10883 (verify_flow_sensitive_alias_info): Likewise.
10884 (verify_call_clobbering): Likewise.
10885 (verify_memory_partitions): Likewise.
10886 (verify_alias_info): Likewise.
10887 (verify_ssa): Adjust..
10888 (execute_update_addresses_taken): Export. Update SSA
10889 manually. Optimize only when optimizing. Use a local bitmap.
10890 (pass_update_address_taken): Remove TODO_update_ssa, add
10891 TODO_dump_func.
10892 (pass_update_address_taken): Just use TODO_update_address_taken.
10893 (init_tree_ssa): Do not initialize addressable_vars.
10894 (verify_ssa): Verify new VUSE / VDEF properties.
10895 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10896 Do not call verify_alias_info.
10897 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10898 Do not free the loaded and stored syms bitmaps. Reset the escaped
10899 and callused solutions. Do not free addressable_vars.
10900 Remove memory-tag related code.
10901 (warn_uninitialized_var): Aliases are always available.
10902 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10903 * lambda-code.c (can_put_in_inner_loop): Adjust.
10904 (can_put_after_inner_loop): Likewise.
10905 (perfect_nestify): Likewise.
10906 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10907 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10908 (vectorizable_conversion): Do not mark symbols for renaming.
10909 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10910 (expand_call_inline): Unlink the calls virtual operands before
10911 replacing it.
10912 (tree_function_versioning): Do not call update_ssa if we are not
10913 updating clones. Simplify.
10914 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10915 (propagate_with_phi): Likewise..
10916 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10917 clobber code. Assert we are not aliased or global.
10918 * tree-flow.h: Include tree-ssa-alias.h
10919 (enum escape_type): Remove.
10920 (struct mem_sym_stats_d): Likewise.
10921 (struct mem_ref_stats_d): Likewise.
10922 (struct gimple_df): Add vop member. Remove global_var,
10923 call_clobbered_vars, call_used_vars, addressable_vars,
10924 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10925 escaped and callused members.
10926 (struct ptr_info_def): Remove all members, add points-to solution
10927 member pt.
10928 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10929 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10930 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10931 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10932 (tree-ssa-alias.o): Likewise.
10933 (toplev.o): Add tree-ssa-alias.h
10934 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10935 * gimple.c (gimple_set_bb): Fix off-by-one error.
10936 (is_gimple_reg): Do not handle memory tags.
10937 (gimple_copy): Also copy virtual operands.
10938 Delay updating the statement. Do not reset loaded and stored syms.
10939 (gimple_set_stored_syms): Remove.
10940 (gimple_set_loaded_syms): Likewise.
10941 (gimple_call_copy_skip_args): Copy the virtual operands
10942 and mark the new statement modified.
10943 * tree-ssa-structalias.c (may_alias_p): Remove.
10944 (set_uids_in_ptset): Take the alias set to prune with as
10945 parameter. Fold in the alias test of may_alias_p.
10946 (compute_points_to_sets): Compute whether a ptr is dereferenced
10947 in a local sbitmap.
10948 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10949 other ADDRESSOF constraints on the lhs.
10950 (get_constraint_for_component_ref): Assert that we don't get
10951 ADDRESSOF constraints from the base of the reference.
10952 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10953 (struct variable_info): Remove collapsed_to member.
10954 (get_varinfo_fc): Remove.
10955 (new_var_info): Do not set collapsed_to.
10956 (dump_constraint): Do not follow cycles.
10957 (dump_constraint_graph): Likewise.
10958 (build_pred_graph): Likewise.
10959 (build_succ_graph): Likewise.
10960 (rewrite_constraints): Likewise.
10961 (do_simple_structure_copy): Remove.
10962 (do_rhs_deref_structure_copy): Remove.
10963 (do_lhs_deref_structure_copy): Remove.
10964 (collapse_rest_of_var): Remove.
10965 (do_structure_copy): Re-implement.
10966 (pta_stats): New global variable.
10967 (dump_pta_stats): New function.
10968 (struct constraint_expr): Make offset signed.
10969 (UNKNOWN_OFFSET): Define special value.
10970 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10971 (solution_set_expand): New helper function split out from ...
10972 (do_sd_constraint): ... here.
10973 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10974 (do_ds_constraint): Likewise.
10975 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10976 and CALLUSED = *CALLUSED.
10977 (set_union_with_increment): Make inc argument signed.
10978 (type_safe): Remove.
10979 (get_constraint_for_ptr_offset): Handle unknown and negative
10980 constant offsets.
10981 (first_vi_for_offset): Handle offsets before start. Bail
10982 out early for offsets beyond the variable extent.
10983 (first_or_preceding_vi_for_offset): New function.
10984 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10985 Together with ESCAPED = *ESCAPED this properly computes reachability.
10986 (find_what_var_points_to): New function.
10987 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10988 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10989 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10990 pt_solutions_intersect): New functions.
10991 (compute_call_used_vars): Remove.
10992 (compute_may_aliases): New main entry into PTA computation.
10993 * gimple.h (gimple_p): New typedef.
10994 (struct gimple_statement_base): Remove references_memory_p.
10995 (struct gimple_statement_with_memory_ops_base): Remove
10996 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10997 members.
10998 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10999 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11000 gimple_set_references_memory): Remove.
11001 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11002 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11003 New functions.
11004 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11005 (verify_expr): Allow RESULT_DECL.
11006 (gimple_duplicate_bb): Do not copy virtual operands.
11007 (gimple_duplicate_sese_region): Adjust.
11008 (gimple_duplicate_sese_tail): Likewise.
11009 (mark_virtual_ops_in_region): Remove.
11010 (move_sese_region_to_fn): Do not call it.
11011 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11012 and pass_simple_dse.
11013 (execute_function_todo): Handle TODO_update_address_taken,
11014 call execute_update_addresses_taken for TODO_rebuild_alias.
11015 (execute_todo): Adjust.
11016 (execute_one_pass): Init dump files early.
11017 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11018 call-clobbered.
11019 (create_general_new_stmt): Clear vops.
11020 * tree-ssa-reassoc.c (get_rank): Adjust.
11021 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11022 symbols for renaming.
11023 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11024 (PARAM_AVG_ALIASED_VOPS): Likewise.
11025 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11026 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 11027 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
11028 (operand_build_cmp, copy_virtual_operands,
11029 create_ssa_artificial_load_stmt, add_to_addressable_set,
11030 gimple_add_to_addresses_taken): Remove public functions.
11031 (unlink_stmt_vdef): New function.
11032
457d1d00
AM
110332009-04-03 Alan Modra <amodra@bigpond.net.au>
11034
11035 * config.gcc (powerpc-*-linux*): Merge variants.
11036
e19da24c 110372009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 11038 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
11039
11040 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11041 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11042 cop0_sp_offset.
11043 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11044 keep_interrupts_masked_p, use_debug_exception_return_p.
11045 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11046 keep_interrupts_masked, use_debug_exception_return.
11047 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11048 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11049 New functions.
11050 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11051 (mips_print_operand): Process COP0 registers to print $0 .. $31
11052 correctly for GAS to process.
11053 (mips_interrupt_extra_call_saved_reg_p): New function.
11054 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11055 extra registers.
11056 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11057 (mips_compute_frame_info): Add supports for interrupt context that
11058 includes doubleword accumulators and COP0 registers.
11059 (mips_for_each_saved_acc): New function.
11060 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11061 mips_for_each_saved_reg.
11062 (mips_save_reg): Save accumulators.
11063 (mips_kernel_reg_p): A new for_each_rtx callback.
11064 (mips_expand_prologue): Support interrupt handlers.
11065 (mips_restore_reg): Restore accumulators.
11066 (mips_expand_epilogue): Support interrupt handlers.
11067 (mips_can_use_return_insn): Return false for interrupt handlers.
11068 (mips_epilogue_uses): New function.
11069 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11070 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11071 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11072 cop0_move): New instructions.
11073 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11074 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11075 defines.
11076 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11077 New defines.
11078 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11079 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11080 interrupt handlers, we use K0 as the temporary register.
11081 (EPILOGUE_USES): Change to a function call.
11082 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11083 handlers, we use K0 as the temporary register.
2ba9daa7 11084
e19da24c
CF
11085 * doc/extend.texi (Function Attributes): Document interrupt,
11086 use_shadow_register_set, keep_interrupts_masked,
11087 use_debug_exception_return for MIPS attributes.
11088
aa1ca044
AM
110892009-04-03 Alan Modra <amodra@bigpond.net.au>
11090
11091 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11092 Remove a number of t-files from tmake_file.
11093 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11094 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11095 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11096 target_prototype, not TARGET_PROTOTYPE.
11097 (LINK_OS_GNU_SPEC): Define.
11098 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11099 and darwin-ldoubdle.c.
11100
14fdc613
MM
111012009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11102
11103 PR driver/39293
11104 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11105 (cpp_options): Ditto.
11106 (default_compilers): Ditto.
11107 (display_help): Ditto.
11108 (process_command): Ditto.
11109 (do_spec_1): Ditto.
11110 (set_input): Use lbasename instead of duplicate code.
11111 (save_temps_prefix): New static for -save-temps=obj.
11112 (save_temps_length): Ditto.
2ba9daa7 11113
14fdc613
MM
11114 * doc/invoke.texi (-save-temps=obj): Document new variant to
11115 -save-temps switch.
11116
d3aa398e
JL
111172009-04-02 Jeff Law <law@redhat.com>
11118
11119 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11120 variable.
11121
83f0ccb8
L
111222009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11123
11124 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11125 * configure: Regenerated.
11126
dcb6e951
RAE
111272009-04-02 Rafael Avila de Espindola <espindola@google.com>
11128
11129 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11130 share the argument list.
11131
d85478c2
RAE
111322009-04-02 Rafael Avila de Espindola <espindola@google.com>
11133
11134 Merge
11135
11136 2009-02-12 Diego Novillo <dnovillo@google.com>
11137
83f0ccb8
L
11138 * varpool.c (debug_varpool): New.
11139 * cgraph.h (debug_varpool): Declare.
d85478c2 11140
34f42a49
JH
111412009-04-02 Jan Hubicka <jh@suse.cz>
11142
11143 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11144 pass.
11145
a4747b4a
L
111462009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11147
11148 * config/i386/i386.c (ix86_abi): Move initialization to ...
11149 (override_options): Here.
11150
63a9de54
CB
111512009-04-02 Christian Bruel <christian.bruel@st.com>
11152
11153 * config/sh/sh.c (sh_dwarf_register_span): New function.
11154 (TARGET_DWARF_REGISTER_SPAN): Define.
11155 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11156
2f0fa28e
IR
111572009-04-02 Ira Rosen <irar@il.ibm.com>
11158
11159 PR tree-optimization/39595
2ba9daa7 11160 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11161 interleaved loads group is not greater than the SLP group size.
11162
bbf7ce11
RAE
111632009-04-02 Rafael Avila de Espindola <espindola@google.com>
11164
11165 * builtins.c (is_builtin_name): New.
11166 (called_as_built_in): Use is_builtin_name.
11167 * tree.h (is_builtin_name): New.
11168 * varasm.c (incorporeal_function_p): Use is_builtin_name
11169
47e4dfcf
AS
111702009-04-02 Andrew Stubbs <ams@codesourcery.com>
11171
11172 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11173
d0940d56
DS
111742009-04-02 Dodji Seketeli <dodji@redhat.com>
11175
11176 PR c++/26693
532bfb0a 11177 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11178 * c-common.c (set_underlying_type): ... here.
11179 Also, make sure the function properly sets TYPE_STUB_DECL() on
11180 the newly created typedef variant type.
11181 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11182 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11183 points.
d0940d56 11184
bf1cbdc6
RG
111852009-04-02 Richard Guenther <rguenther@suse.de>
11186
11187 PR tree-optimization/37221
11188 * tree-flow.h (degenerate_phi_result): Declare.
11189 * tree-ssa-dom.c (degenerate_phi_result): Export.
11190 * tree-scalar-evolution.c (analyze_initial_condition): If
11191 the initial condition is defined by a degenerate PHI node
11192 use the degenerate value.
11193
87cfb32c
EB
111942009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11195
11196 PR rtl-optimization/39588
11197 * combine.c (merge_outer_ops): Do not set the constant when this
11198 is not necessary.
11199 (simplify_shift_const_1): Do not modify it either in this case.
11200
bbb6eae8
SB
112012009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11202
11203 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11204 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11205
839a3b8a
JJ
112062009-04-01 Janis Johnson <janis187@us.ibm.com>
11207
11208 PR c/29027
11209 * c-lex.c (interpret_float): Default (no suffix) is double.
11210
667e8acb
XDL
112112009-04-1 Xinliang David Li <davidxl@google.com>
11212
11213 * config/i386/i386.c (legitimate_constant_p): Recognize
11214 all one vector constant.
11215
60839f5d 112162009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11217
60839f5d 11218 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11219 Change #include order to silence two warnings.
11220
60839f5d 112212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11222
60839f5d 11223 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11224 (ASM_SPEC): Pass -k to the assembler for PIC code.
11225
60839f5d 112262009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11227
60839f5d
EB
11228 * config.gcc: Add vax-*-linux* to the switch.
11229 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11230 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11231
60839f5d 112322009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11233
60839f5d 11234 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11235 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11236 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11237 ashlsi3, rotrsi3, <unnamed>): Likewise.
11238
60839f5d 112392009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11240
60839f5d 11241 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11242 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11243 * config/vax/constraints.md: Likewise.
11244 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11245 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11246 * config/vax/predicates.md: Likewise.
11247 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11248 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11249 * config/vax/vax.h: Likewise.
11250 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11251
60839f5d 112522009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11253
60839f5d 11254 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11255 (indirectable_address_p, adjacent_operands_p): Add spaces around
11256 braces.
60839f5d 11257 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11258
60839f5d 112592009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11260
60839f5d 11261 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11262 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11263 index_term_p, reg_plus_index_p, legitimate_address_p,
11264 vax_mode_dependent_address_p): Update comments to match functions
11265 modified by the recent int->bool conversion.
11266
60839f5d 112672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11268
60839f5d
EB
11269 * config/vax/builtins.md: Update copyright message.
11270 * config/vax/constraints.md: Likewise.
11271 * config/vax/netbsd-elf.h: Likewise.
11272 * config/vax/predicates.md: Likewise.
11273 * config/vax/vax-protos.h: Likewise.
11274 * config/vax/vax.c: Likewise.
11275 * config/vax/vax.h: Likewise.
11276 * config/vax/vax.md: Likewise.
11277 * config/vax/vax.opt: Likewise.
c4e75102 11278
60839f5d 112792009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11280
60839f5d 11281 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11282 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11283 * config/vax/constraints.md (B, R): Likewise.
11284 * config/vax/predicates.md (external_memory_operand,
c4e75102 11285 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11286 * config/vax/vax.c (vax_output_int_add): Likewise.
11287 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11288 untyped_call): Likewise.
11289
60839f5d 112902009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11291
7a715bba
UB
11292 * config/vax/predicates.md: New file.
11293 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11294 external_const_operand, nonsymbolic_operand, external_memory_operand,
11295 indirect_memory_operand, indexed_memory_operand,
11296 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11297 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11298 predicate.
7a715bba
UB
11299 * config/vax/constraints.md: New file.
11300 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11301 New constraint.
11302 * config/vax/builtins.md: New file.
11303 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11304 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11305 jbbccisi): Define.
c4e75102
MT
11306 * config/vax/vax.opt (mqmath): Add option.
11307 * config/vax/vax.md (isfx): Extend with DI.
11308 (VAXintQH, VAXintQHSD): Define.
11309 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11310 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11311 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11312 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11313 (movdi): Update constraints and use vax_output_int_move().
11314 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11315 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11316 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11317 nonlocal_goto): New.
11318 (mov<mode>): Extend accepted operand types.
11319 (subdi3_old): Rename from subdi3, change update constraints and use
11320 a new implementation.
60839f5d 11321 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11322 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11323 MOVE_RATIO, CLEAR_RATIO): Define.
11324 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11325 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11326 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11327 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11328 (split_quadword_operands): Make static and really allow variable
11329 splitting.
11330 (print_operand_address): Update for PIC generation.
11331 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11332 indexable_address_p, fixup_mathdi_operand,
11333 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11334 (vax_float_literal, legitimate_constant_p,
11335 indirectable_constant_address_p, index_term_p,
11336 reg_plus_index_p): Return bool instead of int.
11337 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11338 where needed.
11339 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11340 generation.
11341 (vax_output_conditional_branch): Indent.
11342 (legitimate_constant_address_p, indirectable_constant_address_p,
11343 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11344 vax_mode_dependent_address_p): Return bool instead of int, update for
11345 PIC generation.
11346 * config/vax/vax-protos.h (legitimate_constant_address_p,
11347 legitimate_constant_p, legitimate_address_p,
11348 vax_mode_dependent_address_p): Change declaration to bool.
11349 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11350 vax_expand_addsub_di_operands, vax_output_int_subtract,
11351 vax_output_movmemsi): Declare.
11352 (split_quadword_operands, vax_float_literal): Delete declaration.
11353 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11354 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11355 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11356 ASM_OUTPUT_DWARF_PCREL): Define.
11357 (ASM_SPEC): Change definition to allow PIC generation.
11358
9332c6eb
L
113592009-04-01 Steve Ellcey <sje@cup.hp.com>
11360
11361 * doc/sourcebuild.texi: Update front-end requirements.
11362
d93e052c
JJ
113632009-04-01 Jakub Jelinek <jakub@redhat.com>
11364
11365 PR target/39226
11366 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11367 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11368 (booldi3_internal3): Use boolean_or_operator instead of
11369 boolean_operator.
11370
6ccb2a4a
JM
113712009-04-01 Joseph Myers <joseph@codesourcery.com>
11372
11373 PR c/39605
11374 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11375 declarator whose size is not an integer constant expression but
11376 folds to an integer constant, then treat it as a constant
11377 subsequently.
11378
299b87f8
RG
113792009-04-01 Richard Guenther <rguenther@suse.de>
11380
11381 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11382 i * 4 + 2 to (i * 2 + 1) * 2.
11383
b85eb797
JJ
113842009-04-01 Jakub Jelinek <jakub@redhat.com>
11385
11386 PR c/37772
11387 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11388 return if c_parser_asm_string_literal returned NULL.
11389
235e1fe8
NC
113902009-04-01 Nick Clifton <nickc@redhat.com>
11391
11392 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11393 already defined.
11394 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11395 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11396 other typedefs to avoid conflicts with libgcc2.c. Define labels
11397 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11398 include it.
11399 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11400 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11401 then include it.
11402
d6868399
RAE
114032009-04-01 Rafael Avila de Espindola <espindola@google.com>
11404
7a715bba
UB
11405 * varasm.c (default_function_rodata_section): Declare DOT as
11406 const char*.
d6868399 11407
73d21f56 114082009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11409 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11410
11411 PR/39492
11412 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11413 Make object_name unique for each process.
11414
03742a9b
JJ
114152009-04-01 Jakub Jelinek <jakub@redhat.com>
11416
11417 PR other/39591
11418 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11419 addressable variables in the parallel that could go out of scope while
11420 running queued tasks.
11421
4223ff5f
AS
114222009-04-01 Anatoly Sokolov <aesok@post.ru>
11423
11424 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11425 (CASE_VALUES_THRESHOLD): Redefine.
11426 * config/avr/avr.c (avr_override_options): Remove initialization of
11427 avr_case_values_threshold variable.
11428 (avr_case_values_threshold): Remove variable. Add new function.
11429 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11430 * config/avr/avr.opt (mno-tablejump): Remove option.
11431 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11432
e893f6f3
DD
114332009-04-01 DJ Delorie <dj@redhat.com>
11434
11435 * varasm.c (default_function_rodata_section): Don't assume
11436 anything about where the first '.' in the section name is.
11437
b246d100
AM
114382009-04-01 Alan Modra <amodra@bigpond.net.au>
11439
11440 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11441 rs6000_emit_stack_tie.
11442
d3e37a9e
ILT
114432009-03-31 Ian Lance Taylor <iant@google.com>
11444
11445 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11446 gimple_code with GIMPLE_RESX, not RESX.
11447
c1b61fca
JM
114482009-03-31 Joseph Myers <joseph@codesourcery.com>
11449
11450 * c-common.c (c_get_ident): New.
7a715bba 11451 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11452
c2d2ad48
BE
114532009-04-01 Ben Elliston <bje@au.ibm.com>
11454
11455 * config/rs6000/sysv4.opt (msdata): Improve option description.
11456
13d1a6e7
SE
114572009-03-31 Steve Ellcey <sje@cup.hp.com>
11458
11459 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11460 (divdf3_internal_lat): Remove.
11461 (divxf3_internal_lat): Remove.
11462 (divxf3_internal_thr): Remove.
11463 (divxf): Use divxf3_internal.
11464 * config/ia64/div.md (divsf3_internal_lat): New.
11465 (divdf3_internal_lat): New.
11466 (divxf3_internal): New.
11467
207bf79d
JM
114682009-03-31 Joseph Myers <joseph@codesourcery.com>
11469
11470 PR c/448
11471 * Makefile.in (USE_GCC_STDINT): Define.
11472 (stmp-int-hdrs): Install stdint.h if applicable.
11473 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11474 if known.
11475 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11476 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11477 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11478 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11479 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11480 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11481 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11482 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11483 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11484 (c_common_nodes_and_builtins): Initialize
11485 underlying_wchar_type_node. Do not initialize
11486 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11487 nodes for new types.
11488 (c_stddef_cpp_builtins): Define macros for new types.
11489 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11490 Remove.
11491 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11492 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11493 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11494 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11495 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11496 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11497 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11498 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11499 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11500 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11501 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11502 int16_type_node, int32_type_node, int64_type_node,
11503 uint8_type_node, uint16_type_node, c_uint32_type_node,
11504 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11505 int_least32_type_node, int_least64_type_node,
11506 uint_least8_type_node, uint_least16_type_node,
11507 uint_least32_type_node, uint_least64_type_node,
11508 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11509 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11510 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11511 uintptr_type_node): Define.
11512 * c-cppbuiltin.c (builtin_define_constants,
11513 builtin_define_type_minmax): New.
11514 (builtin_define_stdint_macros): Define more macros.
11515 (c_cpp_builtins): Define more limit macros.
11516 (type_suffix): New.
11517 (builtin_define_type_max): Define in terms of
11518 builtin_define_type_minmax. Remove is_long parameter. All
11519 callers changed.
11520 * config.gcc (use_gcc_stdint): Define.
11521 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11522 Add newlib-stdint.h for generic targets.
11523 * config/glibc-stdint.h, config/newlib-stdint.h,
11524 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11525 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11526 * config/score/score.h (UINTPTR_TYPE): Define.
11527 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11528 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11529 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11530 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11531 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11532 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11533 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11534 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11535 * config/spu/spu.h (STDINT_LONG32): Define.
11536 * configure.ac (use_gcc_stdint): Substitute.
11537 * configure: Regenerate.
11538 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11539 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11540 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11541 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11542 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11543 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11544 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11545 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11546 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11547 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11548 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11549 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11550 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11551 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11552 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11553 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11554 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11555 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11556 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11557 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11558 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11559 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11560 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11561 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11562 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11563 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11564 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11565 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11566 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11567
ed853664
BS
115682009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11569
11570 * loop-iv.c (suitable_set_for_replacement): Renamed from
11571 simplify_using_assignment; changed to return bool and to accept new
11572 args DEST and SRC. Return true iff we find a source/destination pair
11573 that can be used to make a replacement, and fill SRC and DEST if so.
11574 Remove arg ALTERED. Don't deal with altered regs here. All callers
11575 changed.
11576 (simplify_using_initial_values): Deal with altered regs here and track
11577 more precisely the effect they have on the validity of our expression.
11578
1569e190
BS
11579 * loop-iv.c (simplify_using_condition): A condition of the form
11580 (EQ REG CONST) can be used to simply make a substitution.
11581 (simplify_using_initial_values): Keep track of conditions we have seen
11582 and keep using them to simplify new expressions, while applying the
11583 same substitutions to them as to the expression.
11584
1d1eb80c
BS
11585 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11586 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11587 GEU/LTU reversed.
11588
28af33b0
BS
11589 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11590 changed. Use this when trying to improve the upper bound.
11591 Generate the comparison by using simplify_gen_relational.
11592
b30321cd
BS
11593 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11594
60081874
BS
11595 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11596 functions.
2ba9daa7 11597 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11598 replace_in_expr to make replacements. Call replace_single_def_regs
11599 once on the initial version of the expression.
11600
bebc6e07
RR
116012009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11602
fcb82ab0 11603 PR target/27237
bebc6e07 11604 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11605
6b12efe9
RG
116062009-03-31 Richard Guenther <rguenther@suse.de>
11607
11608 PR middle-end/31029
11609 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11610 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11611
108f6c2f
RG
116122009-03-31 Richard Guenther <rguenther@suse.de>
11613
11614 * tree.h (div_if_zero_remainder): Declare.
11615 * fold-const.c (div_if_zero_remainder): Export.
11616 * tree-ssa-forwprop.c
11617 (forward_propagate_addr_into_variable_array_index): Handle
11618 constant array index addition outside of the variable index.
11619
8f612190
JM
116202009-03-31 Joseph Myers <joseph@codesourcery.com>
11621
11622 PR target/39592
11623 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11624 define_splits, floatunssi<mode>2): Require x87 conversions from
11625 DImode to be permitted.
11626
47580d22
JM
116272009-03-31 Joseph Myers <joseph@codesourcery.com>
11628
11629 PR preprocessor/15638
11630 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11631
ba4d8f9d
RG
116322009-03-31 Richard Guenther <rguenther@suse.de>
11633
11634 PR middle-end/23401
11635 PR middle-end/27810
11636 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11637 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11638 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11639 a separate statement.
11640 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11641 (lookup_tmp_var): Likewise.
11642 (is_gimple_formal_tmp_or_call_rhs): Remove.
11643 (is_gimple_reg_or_call_rhs): Rename to ...
11644 (is_gimple_reg_rhs_or_call): ... this.
11645 (is_gimple_mem_or_call_rhs): Rename to ...
11646 (is_gimple_mem_rhs_or_call): ... this.
11647 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11648 DECL_GIMPLE_REG_P only if is_formal is true.
11649 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11650 for non-proper post-modify expression gimplification.
11651 (gimplify_self_mod_expr): For post-modify expressions gimplify
11652 the lvalue to a minimal lvalue.
11653 (rhs_predicate_for): Remove formal temp case.
11654 (gimplify_modify_expr_rhs): Likewise.
11655 (gimplify_addr_expr): Use is_gimple_reg.
11656 (gimplify_expr): Remove formal temp cases.
11657 (gimple_regimplify_operands): Likewise.
11658 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11659 and FILTER_EXPR like constants.
11660 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11661 is_gimple_reg.
11662 (is_gimple_formal_tmp_rhs): Remove.
11663 (is_gimple_reg_rhs): Remove special casing.
11664 (is_gimple_mem_rhs): Fix.
11665 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11666 (is_gimple_formal_tmp_var): Remove.
11667 (is_gimple_formal_tmp_reg): Likewise.
11668 (is_gimple_min_lval): Allow invariant component ref parts.
11669 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11670 is_gimple_formal_tmp_reg): Remove declarations.
11671 * tree-cfg.c (verify_expr): Verify that variables with address
11672 taken do not have DECL_GIMPLE_REG_P set.
11673 * tree-mudflap.c (mf_build_check_statement_for): Use
11674 force_gimple_operand instead of gimplify_expr.
11675
8de9b877
AZ
116762009-03-31 Ayal Zaks <zaks@il.ibm.com>
11677
11678 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11679 schedulable rows to compute_split_row.
11680
b5e3caf2
BE
116812009-03-31 Ben Elliston <bje@au.ibm.com>
11682
11683 PR target/31635
11684 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11685 OPT_mvrsave.
11686
9752c4ad
AM
116872009-03-31 Alan Modra <amodra@bigpond.net.au>
11688
11689 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11690 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11691 * configure: Regenerate.
11692 * config.in: Regenerate.
11693 * config/rs6000/rs6000.opt (mtls-markers): Add.
11694 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11695 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11696 (tls_ld_aix, tls_ld_sysv): Likewise.
11697 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11698 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11699
b597d1b6
AM
117002009-03-31 Alan Modra <amodra@bigpond.net.au>
11701
11702 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11703
a203a221
JH
117042009-03-30 Jan Hubicka <jh@suse.cz>
11705
b597d1b6
AM
11706 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11707 out of RESX.
11708 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11709 detection and label handling.
a203a221 11710
5b0c0b2c
VM
117112009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11712
11713 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11714 left_conflicts_size.
11715 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11716 ALLOCNO_LEFT_CONFLICTS_SIZE.
11717
11718 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11719 remove_allocno_from_bucket_and_push,
11720 allocno_spill_priority_compare, push_allocnos_to_stack,
11721 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11722 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11723 (setup_allocno_left_conflicts_num): Ditto. Rename to
11724 setup_allocno_left_conflicts_size.
11725 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11726 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11727 setup_allocno_left_conflicts_size instead of
11728 setup_allocno_left_conflicts_num.
11729
11730 * ira-build.c (ira_create_allocno): Use
11731 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11732 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11733
9a48a93f
VM
117342009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11735
11736 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11737 instead of DF_LR_OUT.
11738
11739 * ira-lives.c (process_bb_node_lives): Ditto.
11740
11741 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11742 instead of DF_LR_{OUT,IN}.
11743
11744 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11745
11746 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11747
4c936d4f
JH
117482009-03-30 Jan Hubicka <jh@suse.cz>
11749
11750 * except.c (label_to_region_map): Fix thinko.
11751
f4d9f129
SE
117522009-03-30 Steve Ellcey <sje@cup.hp.com>
11753
11754 PR middle-end/38237
11755 * tree.h (tree_find_value): New declaration.
11756 * tree.c (tree_find_value): New function.
11757 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11758
b3f27c15
JJ
117592009-03-30 Jakub Jelinek <jakub@redhat.com>
11760
11761 PR debug/39563
11762 * c-decl.c (struct c_binding): Add locus field.
11763 (bind): Add locus argument, set locus field from it.
11764 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11765 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11766 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11767 implicitly_declare, undeclared_variable, lookup_label,
11768 declare_label, c_make_fname_decl, c_builtin_function,
11769 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11770 bind callers.
11771
ad41bd84 117722009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11773
11774 PR target/38781
11775 * config/i386/i386.c (classify_argument): Check total size of
11776 structure.
11777
133f9369
MJ
117782009-03-30 Martin Jambor <mjambor@suse.cz>
11779
11780 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11781 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11782 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11783 respectively.
11784
11785 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11786 seen_variable_array_ref while also traversing a union.
11787
11788 * tree-inline.c (optimize_inline_calls): Do not call
11789 cgraph_node_remove_callees.
11790 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11791 (pass_remove_cgraph_callee_edges): New variable.
11792 * passes.c (init_optimization_passes): Add
11793 pass_remove_cgraph_callee_edges after early inlining and before all
11794 late intraprocedural passes.
11795
11796 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11797
1190f2eb
PB
117982009-03-30 Paolo Bonzini <bonzini@gnu.org>
11799
11800 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11801 Fix typos in names.
11802
fedc1775
PB
118032009-03-30 Paolo Bonzini <bonzini@gnu.org>
11804
fcb82ab0
UB
11805 * combine.c (simplify_comparison): Use have_insn_for.
11806 * dojump.c (do_jump): Likewise.
fedc1775 11807
65c5ae8b
PB
118082009-03-30 Paolo Bonzini <bonzini@gnu.org>
11809
11810 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11811 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11812 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11813 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11814 instead of sparc_compare_emitted.
11815 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11816 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11817 instead of sparc_compare_emitted.
11818
d25aa7ab
PB
118192009-03-30 Paolo Bonzini <bonzini@gnu.org>
11820
11821 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11822 enter/exit cfglayout mode.
11823 (pass_partition_block): Require it.
11824 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11825 (combine_instructions): Track basic blocks instead of labels.
11826 (update_cfg_for_uncondjump): New.
11827 (try_combine): Use it. Update jumps after rescanning.
11828 (pass_combine): Require PROP_cfglayout.
11829 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11830
9c9e26f5
PB
118312009-03-30 Paolo Bonzini <bonzini@gnu.org>
11832
fcb82ab0
UB
11833 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11834 Provide/destroy PROP_cfglayout respectively.
11835 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11836 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11837
28ddeea1
PB
118382009-03-30 Paolo Bonzini <bonzini@gnu.org>
11839
11840 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11841 fold_convert_const_fixed_from_fixed,
11842 fold_convert_const_fixed_from_int,
11843 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11844 set TREE_CONSTANT_OVERFLOW.
11845 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11846 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11847
ebfd146a
IR
118482009-03-30 Ira Rosen <irar@il.ibm.com>
11849
11850 * tree-vect-loop-manip.c: New file.
11851 * tree-vectorizer.c: Update documentation and included files.
11852 (vect_loop_location): Make extern.
11853 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11854 (rename_variables_in_bb, rename_variables_in_loop,
11855 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11856 slpeel_update_phi_nodes_for_guard1,
11857 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11858 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11859 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11860 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11861 find_loop_location): Likewise.
11862 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11863 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11864 get_vectype_for_scalar_type, vect_is_simple_use,
11865 supportable_widening_operation, supportable_narrowing_operation):
11866 Likewise.
11867 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11868 (new_loop_vec_info, destroy_loop_vec_info,
11869 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11870 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11871 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11872 (vect_supportable_dr_alignment): Likewise.
11873 * tree-vectorizer.h (tree-data-ref.h): Include.
11874 (vect_loop_location): Declare.
11875 Reorganize function declarations according to the new file structure.
11876 * tree-vect-loop.c: New file.
2ba9daa7 11877 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11878 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11879 * tree-vect-data-refs.c: New file.
11880 * tree-vect-patterns.c (timevar.h): Don't include.
11881 * tree-vect-stmts.c: New file.
2ba9daa7 11882 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11883 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11884 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11885 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11886 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11887 (tree-vect-analyze.o): Remove.
11888 (tree-vect-transform.o): Likewise.
11889 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11890 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11891 tree-vect-slp.o): Likewise.
11892 (tree-vect-patterns.o): Remove redundant dependencies.
11893 (tree-vectorizer.o): Likewise.
11894 * tree-vect-slp.c: New file.
11895
40a1cfba
RW
118962009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11897
11898 * optc-gen.awk: Warn if an option flag has multiple different
11899 help strings.
11900
a9a7a9a2
SP
119012009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11902
11903 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11904 -floop-block): Document dependences on PPL, CLooG and Graphite.
11905
8ce94e44
JM
119062009-03-30 Joseph Myers <joseph@codesourcery.com>
11907
11908 PR rtl-optimization/323
11909 * c-common.c (c_fully_fold, convert_and_check,
11910 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11911 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11912 * c-common.def (EXCESS_PRECISION_EXPR): New.
11913 * c-cppbuiltin.c (builtin_define_float_constants): Define
11914 constants with enough digits for long double.
11915 * c-lex.c (interpret_float): Interpret constant with excess
11916 precision where appropriate.
11917 * c-opts.c (c_common_post_options): Set
11918 flag_excess_precision_cmdline. Give an error for
11919 -fexcess-precision=standard for C++ for processors where the
11920 option is significant.
11921 * c-parser.c (c_parser_conditional_expression): Handle excess
11922 precision in condition.
11923 * c-typeck.c (convert_arguments): Handle arguments with excess
11924 precision.
11925 (build_unary_op): Move excess precision outside operation.
11926 (build_conditional_expr): Likewise.
11927 (build_compound_expr): Likewise.
11928 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11929 (build_modify_expr): Handle excess precision in RHS.
11930 (convert_for_assignment): Handle excess precision in converted
11931 value.
11932 (digest_init, output_init_element, process_init_element): Handle
11933 excess precision in initializer.
11934 (c_finish_return): Handle excess precision in return value.
11935 (build_binary_op): Handle excess precision in operands and add
11936 excess precision as needed for operation.
11937 * common.opt (-fexcess-precision=): New option.
11938 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11939 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11940 For standard excess precision, output explicit conversion to and
11941 truncation from XFmode.
11942 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11943 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11944 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11945 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11946 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11947 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11948 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11949 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11950 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11951 define_splits, sqrt<mode>2): Disable where appropriate for
11952 standard excess precision.
11953 * convert.c (convert_to_real): Do not shorten arithmetic to type
11954 for which excess precision would be used.
11955 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11956 * doc/invoke.texi (-fexcess-precision=): Document option.
11957 (-mfpmath=): Correct index entry.
11958 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11959 flag_excess_precision): New.
11960 * langhooks.c (lhd_post_options): Set
11961 flag_excess_precision_cmdline.
11962 * opts.c (common_handle_option): Handle -fexcess-precision=.
11963 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11964 init_excess_precision): New.
11965 (lang_dependent_init_target): Call init_excess_precision.
11966 * tree.c (excess_precision_type): New.
11967 * tree.h (excess_precision_type): Declare.
11968
1e57bf47
JM
119692009-03-30 Joseph Myers <joseph@codesourcery.com>
11970
11971 PR c/35235
11972 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11973 non-lvalue to component.
11974
148e4216
JM
119752009-03-29 Joseph Myers <joseph@codesourcery.com>
11976
11977 PR preprocessor/34695
11978 * Makefile.in (c-opts.o): Depend on c-tree.h.
11979 * c-common.c: Move down include of diagnostic.h.
11980 (done_lexing, c_cpp_error): New.
11981 * c-common.h (done_lexing): Declare.
11982 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11983 (parse_in).
11984 * c-opts.c: Include c-tree.h.
11985 (c_common_init_options): Set preprocessor error callback.
11986 (c_common_handle_option): Do not set preprocessor
11987 inhibit_warnings, warnings_are_errors, warn_system_headers,
11988 pedantic_errors or inhibit_warnings flags.
11989 (c_common_post_options): Do not check cpp_errors (parse_in).
11990 (c_common_finish): Do not output dependencies if there were
11991 errors. Do not check return value of cpp_finish.
11992 * c-ppoutput.c (pp_file_change): Set input_location.
11993 * c-tree.h (c_cpp_error): Declare.
11994 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11995 override_column.
11996 (diagnostic_build_prefix): Check override_column.
11997 * diagnostic.h (diagnostic_info): Add override_column field.
11998 (diagnostic_override_column): Define.
11999
2ec5deb5
PB
120002009-03-28 Paolo Bonzini <bonzini@gnu.org>
12001
ba20e309
UB
12002 * c-common.c (c_expand_expr, c_staticp): Remove.
12003 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12004 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12005 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12006 * c-gimplify.c (gimplify_compound_literal_expr,
12007 optimize_compound_literals_in_ctor): Remove.
12008 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12009 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12010 * c-semantics.c (emit_local_var): Remove.
12011
12012 * langhooks-def.h (lhd_expand_expr): Remove.
12013 * langhooks.c (lhd_expand_expr): Remove.
12014 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12015
12016 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12017 handling from c-semantics.c; don't call into langhook.
12018 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12019 * gimplify.c (gimplify_compound_literal_expr,
12020 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12021 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12022 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12023 as was done in c-gimplify.c.
12024 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12025 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12026 Move from c-common.h.
12027 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
12028
12029 * tree.c (staticp): Do not call langhook.
12030 * langhooks.c (lhd_staticp): Delete.
12031 * langhooks-def.h (lhd_staticp): Delete prototype.
12032 (LANG_HOOKS_STATICP): Delete.
12033 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12034
ba20e309
UB
12035 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12036 instead of DECL_STMTs.
2ec5deb5 12037
928c19bb
JM
120382009-03-29 Joseph Myers <joseph@codesourcery.com>
12039
12040 PR c/456
12041 PR c/5675
12042 PR c/19976
12043 PR c/29116
12044 PR c/31871
12045 PR c/35198
12046 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12047 void_type_node.
12048 (fold_call_expr): Return a NOP_EXPR from folding rather than the
12049 contained expression.
ba20e309 12050 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
12051 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
12052 conditional expressions for C.
12053 (decl_constant_value_for_optimization): Move from
ba20e309 12054 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
12055 whether optimizing and that the expression is a VAR_DECL not of
12056 array type instead of doing such checks in the caller. Do not
12057 check pedantic. Call gcc_unreachable for C++.
12058 * c-common.def (C_MAYBE_CONST_EXPR): New.
12059 * c-common.h (c_fully_fold, c_save_expr,
12060 decl_constant_value_for_optimization): New prototypes.
12061 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12062 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12063 EXPR_INT_CONST_OPERANDS): Define.
12064 * c-convert.c (convert): Strip nops from expression.
12065 * c-decl.c (groktypename): Take extra parameters expr and
12066 expr_const_operands. Update call to grokdeclarator.
12067 (start_decl): Update call to grokdeclarator. Add statement for
12068 expressions used in type of decl.
12069 (grokparm): Update call to grokdeclarator.
12070 (push_parm_decl): Update call to grokdeclarator.
12071 (build_compound_literal): Add parameter non_const and build a
12072 C_MAYBE_COSNT_EXPR if applicable.
12073 (grokdeclarator): Take extra parameters expr and
12074 expr_const_operands. Track expressions used in declaration
12075 specifiers and declarators. Fold array sizes and track whether
12076 they are constant expressions and whether they are integer
12077 constant expressions.
12078 (parser_xref_tag): Set expr and expr_const_operands fields in
12079 return value.
12080 (grokfield): Update call to grokdeclarator.
12081 (start_function): Update call to grokdeclarator.
12082 (build_null_declspecs): Set expr and expr_const_operands fields in
12083 return value.
12084 (declspecs_add_type): Handle expressions in typeof specifiers.
12085 * c-parser.c (c_parser_declspecs): Set expr and
12086 expr_const_operands fields for declaration specifiers.
12087 (c_parser_enum_specifier): Likewise.
12088 (c_parser_struct_or_union_specifier): Likewise.
12089 (c_parser_typeof_specifier): Likewise. Update call to
12090 groktypename. Fold expression as needed. Return expressions with
12091 type instead of adding statements.
12092 (c_parser_attributes): Update calls to c_parser_expr_list.
12093 (c_parser_statement_after_labels): Fold expression before passing
12094 to objc_build_throw_stmt.
12095 (c_parser_condition): Fold expression.
12096 (c_parser_asm_operands): Fold expression.
12097 (c_parser_conditional_expression): Use c_save_expr. Update call
12098 to build_conditional_expr.
12099 (c_parser_alignof_expression): Update call to groktypename.
12100 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12101 original_code. Fold expression argument of va_arg. Create
12102 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12103 argument to va_arg. Update calls to groktypename. Fold array
12104 index for offsetof. Verify that first argument to
12105 __builtin_choose_expr has integer type.
12106 (c_parser_postfix_expression_after_paren_type): Update calls to
12107 groktypename and build_compound_literal. Handle expressions with
12108 side effects in type name.
12109 (c_parser_postfix_expression_after_primary): Update call to
12110 c_parser_expr_list. Set original_code for calls to
12111 __builtin_constant_p.
12112 (c_parser_expr_list): Take extra parameter fold_p. Fold
12113 expressions if requested.
12114 (c_parser_objc_type_name): Update call to groktypename.
12115 (c_parser_objc_synchronized_statement): Fold expression.
12116 (c_parser_objc_receiver): Fold expression.
12117 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12118 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12119 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12120 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12121 (struct c_typespec): Add elements expr and expr_const_operands.
12122 (struct c_declspecs): Add elements expr and expr_const_operands.
12123 (groktypename, build_conditional_expr, build_compound_literal):
12124 Update prototypes.
12125 (in_late_binary_op): Declare.
12126 * c-typeck.c (note_integer_operands): New function.
12127 (in_late_binary_op): New variable.
12128 (decl_constant_value_for_broken_optimization): Move to c-common.c
12129 and rename to decl_constant_value_for_optimization.
12130 (default_function_array_conversion): Do not strip nops.
12131 (default_conversion): Do not call
12132 decl_constant_value_for_broken_optimization.
12133 (build_array_ref): Do not fold result.
12134 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12135 result when operand is a VLA.
12136 (c_expr_sizeof_type): Update call to groktypename. Handle
12137 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12138 result when operand names a VLA type.
12139 (build_function_call): Update call to build_compound_literal.
12140 Only fold result for calls to __builtin_* functions. Strip
12141 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12142 the function designator.
12143 (convert_arguments): Fold arguments. Update call to
12144 convert_for_assignment.
12145 (build_unary_op): Handle increment and decrement of
12146 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12147 decrement earlier. Fold operand of increment and decrement.
12148 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12149 built for integer operand. Wrap returns that are INTEGER_CSTs
12150 without being integer constant expressions or that have integer
12151 constant operands without being INTEGER_CSTs.
12152 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12153 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12154 result is an integer constant expression or can be used in
12155 unevaluated parts of one and avoid folding and wrap as
12156 appropriate. Fold operands before possibly doing -Wsign-compare
12157 warnings.
12158 (build_compound_expr): Wrap result for C99 if operands can be used
12159 in integer constant expressions.
12160 (build_c_cast): Update call to digest_init. Do not ignore
12161 overflow from casting floating-point constants to integers. Wrap
12162 results that could be confused with integer constant expressions,
12163 null pointer constants or floating-point constants.
12164 (c_cast_expr): Update call to groktypename. Handle expressions
12165 included in type name.
12166 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12167 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12168 Update calls to convert_for_assignment.
12169 (convert_for_assignment): Take new parameter
12170 null_pointer_constant. Do not strip nops or call
12171 decl_constant_value_for_broken_optimization. Set
12172 in_late_binary_op for conversions to boolean.
12173 (store_init_value): Update call to digest_init.
12174 (digest_init): Take new parameter null_pointer_constant. Do not
12175 call decl_constant_value_for_broken_optimization. pedwarn for
12176 initializers not constant expressions. Update calls to
12177 convert_for_assignment.
12178 (constructor_nonconst): New.
12179 (struct constructor_stack): Add nonconst element.
12180 (really_start_incremental_init, push_init_level, pop_init_level):
12181 Handle constructor_nonconst and nonconst element.
12182 (set_init_index): Call constant_expression_warning for array
12183 designators.
12184 (output_init_element): Fold value. Set constructor_nonconst as
12185 applicable. pedwarn for initializers not constant expressions.
12186 Update call to digest_init. Call constant_expression_warning
12187 where constant initializers are required.
12188 (process_init_element): Use c_save_expr.
12189 (c_finish_goto_ptr): Fold expression.
12190 (c_finish_return): Fold return value. Update call to
12191 convert_for_assignment.
12192 (c_start_case): Fold switch expression.
12193 (c_process_expr_stmt): Fold expression.
12194 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12195 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12196 (build_binary_op): Track whether results are integer constant
12197 expressions or may occur in such, disable folding and wrap results
12198 as applicable. Fold operands for -Wsign-compare warnings unless
12199 in_late_binary_op.
12200 (c_objc_common_truthvalue_conversion): Handle results folded to
12201 integer constants that are not integer constant expressions.
12202 * doc/extend.texi: Document when typeof operands are evaluated,
12203 that condition of __builtin_choose_expr is an integer constant
12204 expression, and more about use of __builtin_constant_p in
12205 initializers.
12206
5babbcc0
RG
122072009-03-29 Richard Guenther <rguenther@suse.de>
12208
12209 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12210 propagate addresses of array references.
12211
0340f2ba
SB
122122009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12213
12214 * regmove.c (perhaps_ends_bb_p): Remove.
12215 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12216 from INSN and check that the main loop stays within that basic block.
12217 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12218 (regmove_forward_pass): Split out from regmove_optimize. Use
12219 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12220 (regmove_backward_pass): Split out from regmove_optimize. Use
12221 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12222 (regmove_optimize): Simplify.
12223
eeae74a1
L
122242009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12225
12226 PR target/39545
12227 * config/i386/i386.c (classify_argument): Ignore flexible array
12228 member in struct and warn ABI change.
12229
a24078b2
L
122302009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12231
12232 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12233
12234 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12235 (ix86_adjust_cost): Updated.
12236
a8da523f
JH
122372009-03-29 Jan Hubicka <jh@suse.cz>
12238
12239 PR middle-end/28850
12240 * tree-pass.h (pass_cleanup_eh): New function.
12241 (remove_unreachable_regions): Break code handling RTL
12242 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12243 that can not be reached by runtime.
12244 (can_be_reached_by_runtime): New function.
12245 (label_to_region_map): New function.
12246 (num_eh_regions): New function.
12247 (rtl_remove_unreachable_regions): New function.
12248 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12249 (remove_eh_region): New function.
12250 * except.h: Include sbitmap and vecprim.
12251 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12252 num_eh_regions): Declare.
12253 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12254 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12255 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12256 (tree_empty_eh_handler_p): New function.
12257 (cleanup_empty_eh): New function.
12258 (cleanup_eh): New function.
12259 (pass_cleanup_eh): New function.
12260
98f358e5
JH
122612009-03-29 Jan Hubicka <jh@suse.cz>
12262
12263 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12264 for removed regions.
12265
13a9fa44
JH
122662009-03-29 Jan Hubicka <jh@suse.cz>
12267
12268 * except.c (dump_eh_tree): Dump all datastructures.
12269
e38cf733
JH
122702009-03-29 Jan Hubicka <jh@suse.cz>
12271
12272 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12273 (duplicate_eh_regions_1): Likewise.
12274 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12275 vector; call EH verification.
12276 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12277 Be ready for region being removed.
12278
12802c2b
JH
122792009-03-29 Jan Hubicka <jh@suse.cz>
12280
12281 * bitmap.c (bitmap_last_set_bit): New function.
12282 * bitmap.h (bitmap_last_set_bit): Declare.
12283
4ea80a41
DA
122842009-03-29 David Ayers <ayers@fsfe.org>
12285
12286 PR objc/27377
12287 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12288 by calling objc_compare_types and surpress warnings about
12289 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12290
4ea80a41 122912009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12292
12293 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12294 call initialize_inline_failed.
12295 (initialize_inline_failed): Move it from here ...
12296 * cgraph.c (initialize_inline_failed): ... to here.
12297 (cgraph_create_edge): Call initialize_inline_failed rather than
12298 setting inline_failed directly.
12299
7fb0ee07
BE
123002009-03-29 Ben Elliston <bje@au.ibm.com>
12301
12302 PR target/32542
12303 * sysv4.opt (msdata): Improve comment.
12304 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12305 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12306
0be77bf2
BE
123072009-03-29 Ben Elliston <bje@au.ibm.com>
12308
12309 PR target/30451
12310 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12311 load and store attributes.
12312
593812b6
BE
123132009-03-29 Ben Elliston <bje@au.ibm.com>
12314
12315 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12316 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12317 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12318 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12319 __builtin_infq and __builtin_huge_valq.
12320
8272d11d
AS
123212009-03-28 Anatoly Sokolov <aesok@post.ru>
12322
12323 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12324 atmega8m1 devices.
12325 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12326 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12327
74fe548b
XDL
123282009-03-28 Xinliang David Li <davidxl@google.com>
12329
2ba9daa7 12330 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12331 (do_dbg_cnt): New function.
12332
33977f81
JH
123332009-03-28 Jan Hubicka <jh@suse.cz>
12334
12335 Merge from pretty-ipa:
12336
12337 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12338
33977f81
JH
12339 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12340 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12341 * passes.c (function_called_by_processed_nodes_p): New.
12342 * ipa-pure-const.c (check_call): Fix handling of operands.
12343 (analyze_function): Dump debug output for skipped bodies.
12344 (local_pure_const): Use function_called_by_processed_nodes_p.
12345 * dwarf2out.c (reference_to_unused): Use output.
12346 * passes.c (do_per_function_toporder): Likewise.
12347
12348 2008-11-12 Jan Hubicka <jh@suse.cz>
12349
12350 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12351 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12352 state_set_in_source enum
12353 (check_decl): Ignore memory tags; do not set fake looping flags;
12354 dump diagnostics.
12355 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12356 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12357 (check_call, analyze_function): Rewrite.
12358 (check_stmt): New.
12359 (add_new_function): Update call of analyze_function.
12360 (generate_summary): Add call of analyze_function.
12361 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12362 (local_pure_const): New function.
12363 (pass_local_pure_const): New pass.
12364 * ipa-inline.c (inline_transform): Set after_inlining.
12365 * tree-eh.c (stmt_can_throw_external): New.
12366 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12367 work with aliasing built.
12368 * tree-flow.h (stmt_can_throw_external): New.
12369 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12370 and local pure/const pass in early and late optimization queue.
ba20e309 12371
617f3897
MJ
123722009-03-28 Martin Jambor <mjambor@suse.cz>
12373
12374 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12375 allow_func_align.
12376 (fold_binary): Allow function decl aligment consideration is the
12377 second argument is integer constant one.
12378 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12379 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12380 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12381
fe89fbc5
JH
123822009-03-28 Jan Hubicka <jh@suse.cz>
12383
12384 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12385 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12386 * function.h (rtl_data): Add nothrow flag.
12387 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12388 set DECL_NOTHROW for AVAILABLE functions.
12389
574872ff
JJ
123902009-03-28 Jakub Jelinek <jakub@redhat.com>
12391
b3bf8855
JJ
12392 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12393 following vector keyword has expansion starting with pixel or bool
12394 keyword, expand vector to __vector and pixel or bool to __pixel or
12395 __bool.
12396
574872ff
JJ
12397 PR c++/39554
12398 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12399 warn_if_disallowed_function_p): Removed.
12400 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12401 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12402 warning_if_disallowed_function_p.
12403 * flags.h (warn_if_disallowed_function_p,
12404 warn_disallowed_functions): Removed.
12405 * common.opt (Wdisallowed-function-list=): Removed.
12406 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12407
b005da11
RG
124082009-03-28 Richard Guenther <rguenther@suse.de>
12409
12410 PR tree-optimization/38723
12411 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12412 the entry block.
12413
1de812a6
JH
124142009-03-28 Jan Hubicka <jh@suse.cz>
12415
12416 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12417 test introduced by my previous patch.
12418
fbb789d4
RG
124192009-03-28 Richard Guenther <rguenther@suse.de>
12420
12421 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12422 the PHIs value undefined.
12423
6f1873a1
JH
124242009-03-28 Jan Hubicka <jh@suse.cz>
12425
12426 * tree-pass.h (pass_fixup_cfg): New pass.
12427 * ipa-inline.c (inline_transform): Set
12428 always_inline_functions_inlined/after_inlining.
12429 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12430 (pass_fixup_cfg): New pass.
12431 * passes.c (init_optimization_passes): Add fixup_cfg.
12432
17021bc8
RG
124332009-03-28 Richard Guenther <rguenther@suse.de>
12434
12435 PR tree-optimization/38458
12436 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12437 argument use the arguments copy-of value.
12438
e8114fba
RG
124392009-03-28 Richard Guenther <rguenther@suse.de>
12440
12441 PR tree-optimization/38180
12442 * tree-ssa-ccp.c (get_default_value): Simplify.
12443 (likely_value): Likewise.
12444 (surely_varying_stmt_p): Properly handle VOP case.
12445 (ccp_initialize): Likewise.
12446 (ccp_fold): Handle propagating through *&.
12447 (fold_const_aggregate_ref): Also handle decls.
12448
257eb6e3
JH
124492009-03-28 Jan Hubicka <jh@suse.cz>
12450
12451 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12452 * cgraph.h (cgraph_node): Likewise.
12453 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12454 (cgraph_reset_node): Use process flag.
12455 (cgraph_mark_functions_to_output): Likewise.
12456 (cgraph_expand_function): Likewise.
12457 (cgraph_expand_all_functions): Likewise.
12458 (cgraph_output_in_order): Likewise.
12459 * dwarf2out.c (reference_to_unused): Likewise.
12460 * passes.c do_per_function_toporder): Likewise.
12461
61a05df1
JH
124622009-03-28 Jan Hubicka <jh@suse.cz>
12463
12464 Bring from lto-branch:
ba20e309 12465
61a05df1
JH
12466 2008-09-03 Doug Kwan <dougkwan@google.com>
12467
12468 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12469 enums instead of reason strings.
12470 * cgraph.c (cgraph_create_edge): Same.
12471 (cgraph_inline_failed_string): New function.
12472 * cgraph.h (cgraph_inline_failed_t): New enum type.
12473 (cgraph_inline_failed_string): New prototype.
12474 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12475 char pointer to cgraph_inline_failed_t.
12476 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12477 (cgraph_default_inline_p): Ditto.
60839f5d 12478 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12479 to cgraph_inline_failed_t pointer.
12480 * cif-code.def: New file.
12481 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12482 reason string.
12483 (cgraph_check_inline_limits): Change type of REASON to pointer to
12484 cgraph_inline_failed_t. Replace reason strings with enums.
12485 (cgraph_default_inline_p): Ditto.
12486 (cgraph_recursive_inlining_p): Ditto.
12487 (update_caller_keys): Change type of FAILED_REASON to
12488 cgraph_inline_failed_t.
12489 (cgraph_set_inline_failed): Change type of REASON to pointer to
12490 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12491 convert enums to strings for text output.
12492 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12493 to be of type cgraph_inline_failed_t. Replace reason strings with
12494 enums. Call cgraph_inline_failed_string to covert enums
12495 to strings for text output.
12496 (cgraph_decide_inlining): Replace reason strings with enums.
12497 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12498 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12499 for text output.
12500 * tree-inline.c (expand_call_inline): Change type of REASON
12501 to cgraph_inline_failed_t. Replace reason strings with enums.
12502 Call cgraph_inline_failed_string for text output.
12503 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12504 (cgraph.o): Ditto.
12505
144e8aac
JH
125062009-03-28 Jan Hubicka <jh@suse.cz>
12507
12508 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12509 cgraph_clone_node): Remove master clone handling.
12510 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12511 * cgraph.h (master_clone): Remove.
12512 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12513 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12514 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12515
4a371c8d
JH
125162009-03-28 Jan Hubicka <jh@suse.cz>
12517
12518 * cgraph.c (cgraph_function_body_availability): Functions declared
12519 inline are always safe to assume that it is not going to be replaced.
12520
6cdb0ee3
RG
125212009-03-28 Richard Guenther <rguenther@suse.de>
12522
12523 PR tree-optimization/38513
12524 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12525 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12526 EXC_PTR_EXPR and FILTER_EXPR.
12527 (get_ref_from_reference_ops): Likewise.
12528
8ca1fd76
RG
125292009-03-28 Richard Guenther <rguenther@suse.de>
12530
12531 PR tree-optimization/38968
12532 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12533 Use FLOOR_MOD_EXPR to compute misalignment.
12534
a254e44d
RG
125352009-03-28 Richard Guenther <rguenther@suse.de>
12536
12537 PR tree-optimization/37795
12538 * tree.h (combine_comparisons): Declare.
12539 * fold-const.c (combine_comparisons): Export.
12540 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12541 comparisons.
12542 (ifcombine_iforif): Use combine_comparisons.
12543
a8ee227c
JH
125442009-03-28 Jan Hubicka <jh@suse.cz>
12545
12546 * tree-eh.c (inlinable_call_p): New function.
12547 (make_eh_edges): Use it.
12548 (verify_eh_edges): Use it.
12549 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12550 * except.c (reachable_next_level): Add inlinable_function argument
12551 (sjlj_find_directly_reachable_regions): Update.
12552 (add_reachable_handler): Do not set saw_any_handlers.
12553 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12554 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12555 Add new inlinable call parameter.
12556 (can_throw_internal, can_throw_external): Update.
12557 * except.h (can_throw_internal_1, can_throw_external_1,
12558 foreach_reachable_handler): Update declaration.
12559
52c0e446
JM
125602009-03-28 Joseph Myers <joseph@codesourcery.com>
12561
12562 * config/arm/t-arm-coff, config/h8300/coff.h,
12563 config/i386/i386-aout.h, config/i386/i386-coff.h,
12564 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12565 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12566 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12567 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12568 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12569 sys-types.h: Remove.
12570 * Makefile.in: Remove protoize and fixproto support and references
12571 in comments.
12572 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12573 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12574 Remove.
12575 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12576 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12577 unprotoize$(exeext).
12578 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12579 (.PHONY): Don't depend on proto.
12580 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12581 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12582 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12583 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12584 build/gen-protos.o, build/scan.o, xsys-protos.h,
12585 build/fix-header$(build_exeext), build/fix-header.o,
12586 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12587 stmp-install-fixproto): Remove.
12588 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12589 SYSCALLS.c or fixproto files.
12590 (install-common): Don't install protoize.
12591 (install-headers-tar, install-headers-cpio, install-headers-cp):
12592 Don't depend on $(STMP_FIXPROTO).
12593 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12594 install fixproto files or write out fixproto settings.
12595 (uninstall): Don't uninstall protoize.
12596 * config.gcc (use_fixproto): Remove.
12597 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12598 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12599 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12600 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12601 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12602 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12603 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12604 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12605 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12606 * config/t-vxworks (STMP_FIXPROTO): Remove.
12607 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12608 STMP_FIXPROTO): Remove.
12609 * config.in, configure: Regenerate.
12610 * crtstuff.c (gid_t, uid_t): Don't undefine.
12611 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12612 (arm-*-coff, arm-*-aout: Remove target entries.
12613 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12614 Remove mention of AIX 4.1.
12615 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12616 * doc/invoke.texi (Running Protoize): Remove.
12617 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12618 (Protoize Caveats): Remove.
12619 * tsystem.h: Update comments on headers assumed to exist.
12620
20a07f44
VM
126212009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12622
12623 * genautomata.c: Add a new year to the copyright. Add a new
12624 reference.
12625 (struct insn_reserv_decl): Add comments for member bypass_list.
12626 (find_bypass): Remove.
12627 (insert_bypass): New.
12628 (process_decls): Use insert_bypass.
12629 (output_internal_insn_latency_func): Output all bypasses with the
12630 same input insn in one switch case.
12631
12632 * rtl.def (define_bypass): Describe bypass choice.
12633 * doc/md.texi (define_bypass): Ditto.
12634
3a0d06c1
RB
126352009-03-27 Richard Guenther <rguenther@suse.de>
12636
12637 * gimplify.c (mark_addressable): Export.
12638 * tree-flow.h (mark_addressable): Declare.
12639 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12640 * tree-ssa.c (verify_phi_args): Verify that address taken
12641 variables have TREE_ADDRESSABLE set.
12642
126432009-03-27 Richard Guenther <rguenther@suse.de>
12644
12645 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12646 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12647 Do not mark decls TREE_ADDRESSABLE.
12648 (build_fold_addr_expr): Adjust.
12649 (fold_addr_expr): Remove.
12650 (fold_unary): Use build_fold_addr_expr.
12651 (fold_comparison): Likewise.
12652 (split_address_to_core_and_offset): Likewise.
12653 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12654 TREE_ADDRESSABLE.
12655 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12656 (gimplify_modify_expr_to_memcpy): Mark source and destination
12657 addressable.
12658 * omp-low.c (create_omp_child_function): Mark the object decl
12659 TREE_ADDRESSABLE.
12660 (lower_rec_input_clauses): Mark the var we take the address of
12661 TREE_ADDRESSABLE.
12662 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12663
2ac26e15
L
126642009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12665
12666 PR middle-end/39315
12667 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12668 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12669
472c7fbd
RG
126702009-03-27 Richard Guenther <rguenther@suse.de>
12671
12672 PR tree-optimization/39120
12673 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12674 constraints.
12675 (handle_lhs_call): Process return constraints. Add escape
12676 constraints if necessary.
12677 (handle_const_call): Fill out return constraints. Make nested
12678 case more precise. Avoid consttmp if possible.
12679 (handle_pure_call): Fill out return constraints. Avoid
12680 callused if possible.
12681 (find_func_aliases): Simplify call handling.
12682
126832009-03-27 Richard Guenther <rguenther@suse.de>
12684
12685 PR tree-optimization/39120
12686 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12687 as a representative.
12688 (solve_graph): Do propagate CALLUSED.
12689 (handle_pure_call): Use a scalar constraint from CALLUSED for
12690 the return value.
12691 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12692 solutions.
12693
d9223014
L
126942009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12695
12696 PR c/39323
12697 * c-common.c (handle_aligned_attribute): Properly check alignment
12698 overflow. Use (1U << i) instead of (1 << i).
12699
ba20e309 12700 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12701
12702 * expr.h (get_mem_align_offset): Updated.
12703
12704 * tree.h (tree_decl_common): Change align to "unsigned int" and
12705 move it before pointer_alias_set.
12706
689b689c
L
127072009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12708 Jakub Jelinek <jakub@redhat.com>
12709
12710 PR target/38034
12711 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12712 gr_register_operand with gr_reg_or_0_operand.
12713 (cmpxchg_rel_di): Likewise.
12714 (sync_lock_test_and_set<mode>): Likewise.
12715
c619e982
L
127162009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12717
12718 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12719 (true_regnum): Likewise.
12720
12721 * rtlanal.c (subreg_info): Moved to ...
12722 * rtl.h (subreg_info): Here. New.
12723 (subreg_get_info): New.
12724
12725 * rtlanal.c (subreg_get_info): Make it extern.
12726
51212b32
L
127272009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12728
12729 PR target/39472
12730 * config/i386/i386.c (ix86_abi): New.
12731 (override_options): Handle -mabi=.
ba20e309 12732 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12733 (ix86_call_abi_override): Likewise.
12734 (init_cumulative_args): Likewise.
12735 (function_arg_advance): Likewise.
12736 (function_arg_64): Likewise.
12737 (function_arg): Likewise.
12738 (ix86_pass_by_reference): Likewise.
12739 (ix86_function_value_regno_p): Likewise.
12740 (ix86_build_builtin_va_list_abi): Likewise.
12741 (setup_incoming_varargs_64): Likewise.
12742 (is_va_list_char_pointer): Likewise.
12743 (ix86_init_machine_status): Likewise.
ba20e309 12744 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12745 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12746 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12747 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12748 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12749 with ix86_abi.
12750 (ix86_fn_abi_va_list): Updated.
12751
12752 * config/i386/i386.h (ix86_abi): New.
12753 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12754 (CONDITIONAL_REGISTER_USAGE): Likewise.
12755 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12756 (machine_function): Likewise.
12757
12758 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12759 with ix86_abi.
12760 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12761 (STACK_BOUNDARY): Likewise.
12762 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12763
12764 * config/i386/i386.opt (mabi=): New.
12765
12766 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12767 return enum calling_abi.
12768 (ix86_function_type_abi): Likewise.
12769 (ix86_function_abi): Removed.
12770
12771 * doc/invoke.texi: Document -mabi= option for x86.
12772
7338ea63
KG
127732009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12774
12775 * builtins.c (real_dconstp): Delete.
12776 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12777
68599f33
DS
127782009-03-27 Dodji Seketeli <dodji@redhat.com>
12779 Jakub Jelinek <jakub@redhat.com>
12780
12781 PR debug/37959
12782 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12783 (gen_subprogram_die): When a function is explicit, generate the
12784 DW_AT_explicit attribute.
12785 * langhooks.h (struct lang_hooks_for_decls): Add
12786 function_decl_explicit_p langhook.
12787 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12788 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12789
9f5e9983
JJ
127902009-03-27 Jakub Jelinek <jakub@redhat.com>
12791
64d7685c
JJ
12792 * builtins.c (fold_builtin_memory_op): Optimize memmove
12793 into memcpy if we can prove source and destination don't overlap.
12794
9f5e9983
JJ
12795 * tree-inline.c: Include gt-tree-inline.h.
12796 (clone_fn_id_num): New variable.
12797 (clone_function_name): New function.
12798 (tree_function_versioning): Use it.
12799 * Makefile.in (GTFILES): Add tree-inline.c.
12800
e54d52a8
MM
128012009-03-27 Mark Mitchell <mark@codesourcery.com>
12802
12803 * BASE-VER: Change to 4.5.0.
12804
e9d51dc6
XDL
128052009-03-27 Xinliang David Li <davidxl@google.com>
12806
12807 PR tree-optimization/39557
12808 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12809
4577cea1
XDL
128102009-03-27 Xinliang David Li <davidxl@google.com>
12811
12812 PR tree-optimization/39548
2ba9daa7 12813 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12814 candidate check.
12815
0f7464f4
L
128162009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12817
12818 * c-common.c (pointer_int_sum): Use %wd on return from
12819 tree_low_cst.
12820
a8847a7f
L
128212009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12822
12823 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12824 on return from tree_low_cst.
12825
b0957daf
AP
128262009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12827
12828 PR c++/36799
ba20e309
UB
12829 * ginclude/stdarg.h (va_copy): Define also for
12830 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12831
a5f805df
MLI
128322009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12833
12834 PR c++/35652
12835 * builtins.h (c_strlen): Do not warn here.
12836 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12837 * c-common.c (pointer_int_sum): Take an explicit location.
12838 Warn about offsets out of bounds.
12839 * c-common.h (pointer_int_sum): Adjust declaration.
12840
6f401211
RW
128412009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12842
a5f805df
MLI
12843 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12844 markup glitch.
6f401211 12845
5a59b39e
JJ
128462009-03-26 Jakub Jelinek <jakub@redhat.com>
12847
12848 PR c++/39554
12849 * opts.c (warn_if_disallowed_function_p): Don't assume
12850 get_callee_fndecl must return non-NULL.
12851
d5f89b53
VM
128522009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12853
12854 PR rtl-optimization/39522
12855 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12856 when reg_reloaded_valid is set.
12857
61238a79
UW
128582009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12859
12860 * config/spu/divv2df3.c: New file.
12861 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12862 (DPBIT_FUNCS): Filter out _div_df.
12863
03f8829b
BS
128642009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12865
12866 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12867 a jump insn, count that jump in the distance to the loop start.
12868
9fdcdc74
KK
128692009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12870
12871 PR target/39523
12872 * config/sh/sh.c (calc_live_regs): Fix condition for global
12873 registers except PIC_OFFSET_TABLE_REGNUM.
12874
46994828
KT
128752009-03-25 Kai Tietz <kai.tietz@onevision.com>
12876
12877 PR/39518
12878 * doc/invoke.texi (-mconsole): New.
12879 (-mcygwin): New.
12880 (-mno-cygwin): New.
12881 (-mdll): New.
12882 (-mnop-fun-dllimport): New.
12883 (-mthread): New.
12884 (-mwin32): New.
12885 (-mwindows): New.
12886 (sub section "i386 and x86-64 Windows Options"): New.
12887
60839f5d 128882009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12889
12890 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12891 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12892
ae560440
RG
128932009-03-25 Richard Guenther <rguenther@suse.de>
12894
12895 PR middle-end/39497
12896 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12897 of -Wno-error.
12898
cd510f15
AM
128992009-03-25 Andrey Belevantsev <abel@ispras.ru>
12900
12901 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12902 neither of haifa/selective schedulers are working.
12903
44ab0f0e
RW
129042009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12905
12906 * doc/invoke.texi (Debugging Options): Fix description of
12907 -fno-merge-debug-strings.
12908
ad9646c7
HPN
129092009-03-24 Hans-Peter Nilsson <hp@axis.com>
12910
e6142656
HPN
12911 * config/cris/libgcc.ver: New version-script.
12912 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12913
ad9646c7
HPN
12914 * configure.ac <GAS features, nop mnemonic>: Add pattern
12915 crisv32-*-* for "nop".
ba20e309 12916 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12917 * configure: Regenerate.
12918
09ac4473
IR
129192009-03-24 Ira Rosen <irar@il.ibm.com>
12920
12921 PR tree-optimization/39529
12922 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12923 mark_sym_for_renaming for the tag copied to the new vector
12924 pointer.
12925
d94a427e
AL
129262009-03-24 Arthur Loiret <aloiret@debian.org>
12927
ba20e309 12928 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12929 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12930 EXTRA_SPEC_FUNCTIONS.
12931 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12932 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12933 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12934 -march and -mtune options.
12935
60839f5d 129362009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12937
12938 * config/m68k/t-rtems: Add m5329 multilib.
12939
603f5959
DS
129402009-03-24 Dodji Seketeli <dodji@redhat.com>
12941 Jakub Jelinek <jakub@redhat.com>
12942
12943 PR debug/39524
12944 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12945 nodes.
12946
c5cdb03f
JJ
129472009-03-23 Jakub Jelinek <jakub@redhat.com>
12948
12949 PR c/39495
12950 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12951 instead of c_parser_expression_conv, if original_code isn't one of the
12952 4 allowed comparison codes, fail.
12953
3691626c
RG
129542009-03-23 Richard Guenther <rguenther@suse.de>
12955
12956 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12957 * tree.h (struct tree_type): Likewise.
12958 * reload.h (struct insn_chain): Likewise.
12959 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12960 * function.h (struct function): Likewise.
12961 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12962
88ccb72a
JJ
129632009-03-23 Jakub Jelinek <jakub@redhat.com>
12964
12965 PR tree-optimization/39516
12966 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12967
60839f5d 129682009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12969
2ba9daa7 12970 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12971 should be set true if BITS_PER_WORD of target is bigger than 32
12972
f82162f8
HPN
129732009-03-22 Hans-Peter Nilsson <hp@axis.com>
12974
12975 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12976 Translate -B-options to -rpath-link. Correct existing
12977 rpath-link and conditionalize on !nostdlib.
12978
048fd785
RW
129792009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12980
12981 * doc/extend.texi (Function Attributes, Variable Attributes):
12982 Fix typos.
12983 * doc/invoke.texi (Debugging Options, Optimize Options)
12984 (i386 and x86-64 Options, MCore Options): Likewise.
12985
6e75c1a9
JJ
129862009-03-20 Jakub Jelinek <jakub@redhat.com>
12987
12988 PR debug/37890
12989 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12990 it for block local namespace aliases.
12991 (gen_decl_die): Pass context_die to gen_namespace_die.
12992
ea1199ee
JJ
129932009-03-19 Jakub Jelinek <jakub@redhat.com>
12994
12995 PR c/39495
12996 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12997 minimum or maximum value.
12998
58929c10
AO
129992009-03-19 Alexandre Oliva <aoliva@redhat.com>
13000
13001 * reginfo.c (globalize_reg): Recompute derived reg sets.
13002
60839f5d 130032009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
13004
13005 PR target/39063
13006 * libgcc2.c (mprotect): Do not use signed arguments for
13007 VirtualProtect, use DWORD arguments. Also fix the 'may
13008 be used uninitialized' warning for the np variable.
13009
f57c2f04
JJ
130102009-03-19 Jakub Jelinek <jakub@redhat.com>
13011
13012 PR target/39496
13013 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13014 functions using regparm calling conventions when not optimizing.
13015 (ix86_function_sseregparm): Similarly for sseregparm calling
13016 conventions.
13017
9e517d61
LF
130182009-03-19 Li Feng <nemokingdom@gmail.com>
13019
13020 PR middle-end/39500
13021 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13022 dependence if the first conflict is after niter iterations.
13023
8ef20026
HPN
130242009-03-19 Hans-Peter Nilsson <hp@axis.com>
13025
13026 PR middle-end/38609
13027 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13028 functions with dynamic stack-pointer adjustments.
13029
64e4a1a6
BE
130302009-03-19 Ben Elliston <bje@au.ibm.com>
13031
13032 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13033 option; change to -msdata=data.
13034
9a0f3e86
RW
130352009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13036
13037 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13038 and -fopenmp.
13039
09bc5979
EB
130402009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13041
13042 PR target/35180
13043 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13044
332459cd
SL
130452009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13046
13047 * doc/invoke.texi (Code Gen Options): Expand discussion of
13048 -fno-common.
13049
8f5929e1
JJ
130502009-03-18 Jakub Jelinek <jakub@redhat.com>
13051
13052 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13053 * matrix-reorg.c (struct matrix_info): Likewise.
13054 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13055 * rtl.h (struct mem_attrs): Likewise.
13056 * df.h (struct df): Likewise.
13057 * tree-data-ref.h (struct data_dependence_relation): Likewise.
13058 * ira-int.h (struct ira_allocno): Likewise.
13059 * df-scan.c (struct df_collection_rec): Likewise.
13060 * ira.c (struct equivalence): Likewise.
13061 * function.c (struct temp_slot): Likewise.
13062 * cfgloop.h (struct loop): Likewise.
13063
d130d647
JJ
13064 PR debug/39485
13065 * function.c (use_register_for_decl): When not optimizing, disregard
13066 register keyword for variables with types containing methods.
13067
9968d233
SP
130682009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13069
13070 PR middle-end/39447
13071 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13072 (is_simple_operand): Call contains_component_ref_p before calling data
13073 reference analysis that would fail on COMPONENT_REFs.
13074
13075 * tree-vrp.c (search_for_addr_array): Fix formatting.
13076
69484bfd
RG
130772009-03-18 Richard Guenther <rguenther@suse.de>
13078
13079 * tree-vect-transform.c (vect_loop_versioning): Fold the
13080 generated comparisons.
13081 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13082 (slpeel_tree_peel_loop_to_edge): Likewise.
13083
66811228
RW
130842009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13085
0631b69f
RW
13086 PR middle-end/37805
13087 * opts.c (print_specific_help): In addition to `undocumented',
13088 accept `separate' and `joined' flags if passed alone. Describe
13089 output by the first matched one of those.
13090 (common_handle_option): Skip over empty strings.
13091 * gcc.c (display_help): Fix help string for `--help='.
13092 * doc/invoke.texi (Option Summary, Overall Options): With
13093 `--help=', classes and qualifiers can both be repeated, but
13094 only the latter can be negated. One should not pass only
13095 negated qualifiers. Fix markup and examples.
13096
66811228
RW
13097 Revert
13098 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13099 PR middle-end/37805
13100 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13101 and -fhelp=separate.
13102
3c072c6b
JY
131032009-03-17 Jing Yu <jingyu@google.com>
13104
13105 PR middle-end/39378
80c65208
JY
13106 * function.h (struct rtl_data): Move is_thunk from here...
13107 (struct function): ...to here.
13108 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13109 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13110 cfun.
80c65208
JY
13111 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13112 cfun.
13113 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13114 (alpha_output_function_end_prologue): Likewise.
13115 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13116 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13117 (rs6000_output_function_epilogue): Likewise.
13118 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13119
9ade279b
UB
131202009-03-17 Uros Bizjak <ubizjak@gmail.com>
13121
13122 PR target/39482
13123 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13124 from different units in a single alternative.
13125 (*truncdfsf_i387): Ditto.
13126 (*truncxfsf2_mixed): Ditto.
13127 (*truncxfdf2_mixed): Ditto.
13128
16e60c17
JJ
131292009-03-17 Jakub Jelinek <jakub@redhat.com>
13130
98381eb4
JJ
13131 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13132 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13133
df5deb18
JJ
13134 PR debug/39474
13135 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13136 unused non-artificial variables when not optimizing.
13137
a3f596ba
JJ
13138 PR debug/39471
13139 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13140 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13141 NAMESPACE_DECL in its DECL_INITIAL.
13142
6b2b8871
JJ
13143 PR middle-end/39443
13144 * optabs.c (set_user_assembler_libfunc): New function.
13145 * expr.h (set_user_assembler_libfunc): New prototype.
13146 * c-common.c: Include libfuncs.h.
13147 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13148 for memcmp, memset, memcpy, memmove and abort.
13149 * Makefile.in (c-common.o): Depend on libfuncs.h.
13150
16e60c17
JJ
13151 PR debug/39412
13152 * dwarf2out.c (gen_inlined_enumeration_type_die,
13153 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13154 gen_tagged_type_instantiation_die): Removed.
13155 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13156 do nothing.
13157
4d936aca
JJ
131582009-03-17 Janis Johnson <janis187@us.ibm.com>
13159
13160 PR testsuite/38526
13161 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13162 its use.
13163 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13164 (check-parallel-%): Ditto.
13165 (check-consistency): Ditto.
13166
4e9b2e50
KT
131672009-03-17 Kai Tietz <kai.tietz@onevision.com>
13168
13169 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13170 local variable rhs by NULL_TREE.
13171
21440b2d
L
131722009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13173
13174 PR target/39477
9ade279b 13175 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13176
d8905c6a
L
131772009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13178
13179 PR target/39476
9ade279b 13180 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13181
131822009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13183
13184 PR target/39473
13185 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13186 for ms->sysv ABI calls only in 64bit mode.
13187
13188 * config/i386/i386.md (untyped_call): Support 32bit.
13189
cdcabece
L
131902009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13191
13192 * doc/extend.texi: Replace x86_65 with x86_64.
13193
97b4ba9f
JJ
131942009-03-16 Jakub Jelinek <jakub@redhat.com>
13195
13196 PR tree-optimization/39455
13197 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13198 mismatches for POINTER_TYPE_P (type).
13199 (number_of_iterations_le): Likewise.
13200
60839f5d 132012009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13202
13203 * config/picochip/picochip.c: Removed profiling support.
13204 * config/picochip/picochip.md: Removed profiling instruction.
13205 * config/picochip/picochip.h: Removed profiling builtin.
13206
f38095f3
JM
132072009-03-16 Joseph Myers <joseph@codesourcery.com>
13208
13209 * doc/install.texi (--with-host-libstdcxx): Document.
13210
2cb4817b
AS
132112009-03-14 Anatoly Sokolov <aesok@post.ru>
13212
13213 PR target/34299
13214 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13215 generate a warning if the function name does not begin with
13216 "__vector" and the function has either the 'signal' or 'interrupt'
13217 attribute, from here to ...
13218 (avr_declare_function_name): ...here. New function.
13219 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13220 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13221
39b2ac74
JJ
132222009-03-14 Jakub Jelinek <jakub@redhat.com>
13223
13224 PR bootstrap/39454
13225 * cse.c (fold_rtx): Don't modify original const_arg1 when
13226 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13227 separate variable instead.
13228 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13229 from out of range shift counts.
13230 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13231
ad41bd84 132322009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13233
60839f5d 13234 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13235 diagnostic.h with $(DIAGNOSTIC_H).
13236
ad41bd84 132372009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13238
13239 PR target/39431
13240 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13241 predicate.
13242 * config/i386/sync.md (sync_compare_and_swap<mode>,
13243 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13244 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13245 into a register.
13246 (sync_double_compare_and_swapdi_pic,
13247 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13248 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13249
122c59c7
L
132502009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13251
13252 PR target/39445
9ade279b 13253 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13254
cec8874f
L
132552009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13256
13257 PR target/39327
13258 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13259 (avx_addsubv4df3): Likewise.
13260 (*avx_addsubv4sf3): Likewise.
13261 (sse3_addsubv4sf3): Likewise.
13262
bbb52802
L
132632009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13264
13265 PR target/38824
9ade279b 13266 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13267
a812fb07
VM
132682009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13269
13270 PR debug/39432
13271 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13272 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13273 registers for allocnos created from user-defined variables.
13274
4caab5ba
UW
132752009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13276
13277 PR target/39181
13278 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13279 of non-integer mode as well.
13280
498e51ca
AN
132812009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13282
13283 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13284 for functions for which the parameter types are unknown.
13285
9bfaf89d
JJ
132862009-03-11 Jakub Jelinek <jakub@redhat.com>
13287
13288 PR target/39137
9ade279b 13289 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13290 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13291 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13292 * config/i386/i386.c (ix86_local_alignment): For
13293 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13294 long long variables on the stack to avoid dynamic realignment.
13295 Allow the first argument to be a decl rather than type.
13296 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13297
18a3bdcb
NC
132982009-03-11 Nick Clifton <nickc@redhat.com>
13299
13300 PR target/5362
40190a76
NC
13301 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13302 options.
13303 Add description to mno-lsim option.
13304 * config/mcore/mcore.h: Remove comment about deprecated m4align
13305 option.
13306 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13307 * doc/invoke.texi: Add description of mno-lsim and
13308 mstack-increment options.
13309
18a3bdcb
NC
13310 * config/fr30/fr30.opt: Document the -mno-lsim option.
13311 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13312 and -mno-lsim options.
13313
dc215785
UW
133142009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13315
13316 * fold-const.c (fold_comparison): Only call fold_inf_compare
13317 if the mode supports infinities.
13318
7716876b
JM
133192009-03-11 Jason Merrill <jason@redhat.com>
13320
13321 PR debug/39086
13322 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13323 end already did. Notice GIMPLE_CALL modifications of the result.
13324 Don't copy debug information from an ignored decl or a decl from
13325 another function.
13326
ddef83d2
RG
133272009-03-10 Richard Guenther <rguenther@suse.de>
13328 Nathan Froyd <froydnj@codesourcery.com>
13329
13330 PR middle-end/37850
9ade279b 13331 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13332 (__divMODE3): Likewise.
13333
9a9ba8d9
JJ
133342009-03-09 Jakub Jelinek <jakub@redhat.com>
13335
13336 PR tree-optimization/39394
13337 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13338 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13339
929b7fc3
AK
133402009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13341
13342 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13343 inline asms for register asm ("") declarations.
13344
1803581d
EB
133452009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13346
13347 * fold-const.c (fold_unary): Fix comment.
13348
8454d27e
JH
133492009-03-07 Jan Hubicka <jh@suse.cz>
13350
13351 PR target/39361
969a5433
JJ
13352 * tree-inline.c (setup_one_parameter): Do replacement of const
13353 argument by constant in SSA form.
8454d27e 13354
3a695389
UW
133552009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13356
13357 PR middle-end/38028
13358 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13359 determine alignment passed to assign_stack_local.
13360 (assign_parms_unsplit_complex): Likewise.
13361 * except.c (sjlj_build_landing_pads): Likewise.
13362
9f0e7885
JJ
133632009-03-06 Jakub Jelinek <jakub@redhat.com>
13364
65401a0b
JJ
13365 PR middle-end/39360
13366 * tree-flow.h (add_referenced_var): Return bool instead of void.
13367 * tree-dfa.c (add_referenced_var): Return result of
13368 referenced_var_check_and_insert call.
13369 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13370 of referenced_var_check_and_insert.
13371
9f0e7885 13372 PR debug/39372
9ade279b 13373 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13374 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13375 DIE, don't emit it if abstract origin already has it.
13376 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13377 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13378
3b664bd1
JBG
133792009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13380
ba20e309 13381 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13382 detection.
13383 (write_tm_constrs_h): Indent generated code.
13384
d8f8ca80
RR
133852009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13386
13387 * doc/extend.texi (Function Attributes): Add documentation
13388 for isr attributes.
13389
6c3d550c
JJ
133902009-03-06 Jakub Jelinek <jakub@redhat.com>
13391
13392 PR debug/39387
13393 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13394 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13395
f9e96751
BS
133962009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13397
13398 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13399 the loop as bad.
13400
ee0ee7e2
JJ
134012009-03-05 Jakub Jelinek <jakub@redhat.com>
13402
13403 PR debug/39379
13404 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13405 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13406
6c6094f1
UB
134072009-03-05 Uros Bizjak <ubizjak@gmail.com>
13408
13409 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13410 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13411 constants instead of magic numbers.
13412 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13413 (QI_REG_P): Ditto.
13414 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13415 (x86_64_ms_abi_int_parameter_registers): Ditto.
13416 (x86_64_int_return_registers): Ditto.
09f8a8d3 13417 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13418 (ix86_expand_call): Ditto for clobbered_registers array.
13419 (ix86_hard_regno_mode_ok): Ditto.
13420 (x86_extended_QIreg_mentioned_p): Ditto.
13421
b267bd41
R
134222009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13423
6c6094f1 13424 PR tree-optimization/39349
1f3ad3f0
R
13425 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13426
b267bd41
R
13427 * combine.c (gen_lowpart_for_combine): Use omode when generating
13428 clobber.
13429
1242bc9d
R
134302009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13431
6c6094f1 13432 PR rtl-optimization/39235
1242bc9d
R
13433 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13434
48f03606
ZD
134352009-03-04 Zdenek Dvorak <ook@ucw.cz>
13436
13437 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13438
b505e785
RG
134392009-03-04 Richard Guenther <rguenther@suse.de>
13440
13441 PR tree-optimization/39362
13442 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13443 that occur in abnormal PHIs should be varying.
13444
f017bf5e
ZD
134452009-03-04 Zdenek Dvorak <ook@ucw.cz>
13446
13447 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13448 Extend comments.
13449 (simple_iv): Take loop as an argument instead of statement.
13450 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13451 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13452 to simple_iv.
13453 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13454 Ditto.
13455 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13456 * matrix-reorg.c (analyze_transpose): Ditto.
13457 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13458 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13459 * tree-predcom.c (ref_at_iteration): Ditto.
13460 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13461
6a66f28e
RG
134622009-03-04 Richard Guenther <rguenther@suse.de>
13463
13464 PR tree-optimization/39358
13465 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13466 escaped_id and callused_id.
13467 (solve_graph): Likewise.
13468
57e454ee
RG
134692009-03-04 Richard Guenther <rguenther@suse.de>
13470
13471 PR tree-optimization/39339
13472 * tree-sra.c (try_instantiate_multiple_fields): Make it
13473 no longer ICE on the above.
13474
a6fe9ed4
JM
134752009-03-03 Joseph Myers <joseph@codesourcery.com>
13476
13477 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13478 that fits within Pmode.
13479
dc672951
SE
134802009-03-03 Steve Ellcey <sje@cup.hp.com>
13481
13482 PR middle-end/10109
13483 * tm.texi (LIBCALL_VALUE): Update description.
13484
8b9d598f
SE
134852009-03-03 Steve Ellcey <sje@cup.hp.com>
13486
13487 PR middle-end/34443
13488 * doc/extend.texi (section): Update description.
13489
13e4e36e
L
134902009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13491
13492 PR middle-end/39345
13493 * tree-inline.c (remapped_type): New.
13494 (can_be_nonlocal): Call remapped_type instead of remap_type.
13495
067dd3c9
JJ
134962009-03-03 Jakub Jelinek <jakub@redhat.com>
13497
13498 PR fortran/39354
13499 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13500 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13501
9bd9f738
RG
135022009-03-03 Richard Guenther <rguenther@suse.de>
13503
13504 PR middle-end/39272
13505 * tree.c (tree_nonartificial_location): New function.
13506 * tree.h (tree_nonartificial_location): Declare.
13507 * builtins.c (expand_builtin_memory_chk): Provide location
13508 of the call location for artificial function pieces.
13509 (maybe_emit_chk_warning): Likewise.
13510 (maybe_emit_sprintf_chk_warning): Likewise.
13511 (maybe_emit_free_warning): Likewise.
13512 * expr.c (expand_expr_real_1): Likewise.
13513
f07049c8
JJ
135142009-03-03 Jakub Jelinek <jakub@redhat.com>
13515
13516 PR tree-optimization/39343
13517 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13518 COMPONENT_REF t has ARRAY_TYPE.
13519
7d4fba4a
SP
135202009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13521
13522 PR middle-end/39335
13523 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13524 when the type precision of the induction variable should be
13525 larger than the type precision of nit.
13526 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13527 * graphite.c (graphite_loop_normal_form): Same.
13528 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13529
78168632
UB
135302009-03-02 Uros Bizjak <ubizjak@gmail.com>
13531
13532 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13533 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13534 numbers to describe clobbered registers.
78168632 13535 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13536 * config/i386/mmx.md (mmx_emms): Ditto.
13537 (mmx_femms): Ditto.
78168632 13538
63553059
RS
135392009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13540
13541 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13542 of ABI_64.
13543
500a1f85
UW
135442009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13545
13546 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13547 (spu_section_type_flags): New function.
13548
962aae34
UB
135492009-03-02 Uros Bizjak <ubizjak@gmail.com>
13550
13551 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13552 reg_class_contents of FLOAT_REGS into a temporary.
13553
6dfb529c 135542009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13555 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13556
13557 PR tree-optimization/39318
13558 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13559 information to the vectorized statement.
13560
6b5629db
UB
135612009-03-01 Uros Bizjak <ubizjak@gmail.com>
13562
434426d2
UB
13563 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13564 variable. Use defined names instead of magic constants for REX SSE
13565 registers.
6b5629db 13566
14e5b285
RG
135672009-03-01 Richard Guenther <rguenther@suse.de>
13568
13569 PR tree-optimization/39331
13570 * omp-low.c (lower_send_shared_vars): Do not receive new
13571 values for the reference of DECL_BY_REFERENCE parms or results.
13572
526d73ab
JH
135732009-03-01 Jan Hubicka <jh@suse.cz>
13574
13575 PR debug/39267
13576 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13577 BLOCK_NONLOCALIZED_VAR): New macros.
13578 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13579 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13580 gen_decl_die): Add origin argument. Allow generation of die with
13581 origin at hand only.
526d73ab 13582 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13583 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13584 of gen_*.
526d73ab
JH
13585 (gen_block_die): Fix checking for unused blocks.
13586 (process_scope_var): Break out from .... ; work with origins only.
13587 (decls_for_scope) ... here; process nonlocalized list.
13588 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13589 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13590 vars.
526d73ab
JH
13591 (dump_scope_block): Dump them.
13592 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13593 (remap_block): Likewise.
13594 (can_be_nonlocal): New predicate.
13595 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13596
7a9d3fe8
RW
135972009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13598
13599 * configure: Regenerate.
13600
b3cdf3cb
RW
136012009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13602
a16d1645 13603 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13604 Reuse help texts for duplicate options which do not have any.
a16d1645 13605
1156c176
RW
13606 * gcc.c (display_help): Document --version.
13607
033505fc
RW
13608 * gcc.c (main): If print_help_list and verbose_flag, ensure
13609 driver output comes before subprocess output.
13610
4d077054
RW
13611 * optc-gen.awk: Assign all remaining fields to help string,
13612 space-separated, for multi-line help in *.opt.
13613
a072f1cf
RW
13614 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13615 -Wno-pedantic-ms-format is for MinGW targets only.
13616
b3cdf3cb
RW
13617 * doc/options.texi (Option file format): Fix bad indentation,
13618 restoring dropped sentence.
13619
a3aadcc5
JH
136202009-02-28 Jan Hubicka <jh@suse.cz>
13621
13622 * tree-inline.c (tree_function_versioning): Output debug info.
13623
1cf5abb3
JH
136242009-02-28 Jan Hubicka <jh@suse.cz>
13625
13626 PR debug/39267
13627 * tree-inline.c (setup_one_parameter): Do not copy propagate
13628 arguments when not optimizing.
13629
c4d3f42f
L
136302009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13631
13632 PR target/39327
13633 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13634 (avx_addsubv4df3): Likewise.
13635 (*avx_addsubv4sf3): Likewise.
13636 (sse3_addsubv4sf3): Likewise.
13637 (*avx_addsubv2df3): Likewise.
13638 (sse3_addsubv2df3): Likewise.
13639 (avx_unpckhps256): Correct item selectors.
13640 (avx_unpcklps256): Likewise.
13641 (avx_unpckhpd256): Likewise.
13642 (avx_unpcklpd256): Likewise.
13643
eb50f5f4
JH
136442009-02-28 Jan Hubicka <jh@suse.cz>
13645
13646 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13647 static vars.
13648 (copy_arguments_for_versioning): If var is declared don't declare it.
13649 (tree_function_versioning): First setup substitutions and then copy
13650 args.
13651
26140130
JH
136522009-02-27 Jan Hubicka <jh@suse.cz>
13653
13654 PR debug/39267
13655 * cgraph.h (varpool_output_debug_info): Remove.
13656 * cgraphunit.c (varpool_output_debug_info): Remove.
13657 * dwarf2out.c (deferred_locations_struct): New struct
13658 (deferred_locations): New type.
13659 (deferred_locations_list): New static var.
13660 (deffer_location): New function.
13661 (gen_variable_die): Use it.
13662 (decls_for_scope): Output info on local static vars.
13663 (dwarf2out_finish): Process deferred locations.
13664 * varpool.c (varpool_output_debug_info): Remove.
13665
cff7525f
JH
136662009-02-27 Jan Hubicka <jh@suse.cz>
13667
13668 PR debug/39267
13669 * tree.h (TREE_PROTECTED): Fix comment.
13670 (BLOCK_HANDLER_BLOCK): Remove.
13671 (struct tree_block): Remove handler_block add body_block.
13672 (inlined_function_outer_scope_p): New.
13673 (is_body_block): Remove.
13674 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13675 * dwarf2out.c (is_inlined_entry_point): Remove.
13676 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13677 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13678 code.
cff7525f
JH
13679 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13680 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13681 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13682 block with multiple subblocks.
cff7525f
JH
13683 (dump_scope_block): Prettier output; dump more flags and info.
13684 (dump_scope_blocks): New.
13685 (remove_unused_locals): Use dump_scope_blocks.
13686 * tree-flow.h (dump_scope_blocks): Declare.
13687 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13688 * stmt.c (is_body_block): Remove.
13689 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13690 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13691
c20993b9
SP
136922009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13693
13694 PR middle-end/39308
2ba9daa7 13695 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13696 number_of_iterations_exit from a gcc_assert.
13697
e3cba5e5
AK
136982009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13699
60839f5d 13700 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13701 jumps if COND is NULL.
13702 (find_cond_jump): New function.
13703 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13704 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13705
9dadeeb8
UB
137062009-02-26 Uros Bizjak <ubizjak@gmail.com>
13707
13708 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13709 force_const_mem returns NULL_RTX.
13710
625d3251
EB
137112009-02-26 Jan Hubicka <jh@suse.cz>
13712
13713 PR debug/39267
13714 * cgraph.h (varpool_output_debug_info): Remove.
13715 * cgraphunit.c (varpool_output_debug_info): Remove.
13716 * dwarf2out.c (deferred_locations_struct): New struct
13717 (deferred_locations): New type.
13718 (deferred_locations_list): New static var.
13719 (deffer_location): New function.
13720 (gen_variable_die): Use it.
13721 (decls_for_scope): Output info on local static vars.
13722 (dwarf2out_finish): Process deferred locations.
13723 * varpool.c (varpool_output_debug_info): Remove.
13724
38432148 137252009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13726
13727 PR rtl-optimization/39241
13728 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13729 to subreg_offset_representable_p.
13730
62d049cf
PB
137312009-02-25 Paolo Bonzini <bonzini@gnu.org>
13732
13733 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13734 execute function prototype. Get f and nregs from max_reg_num
13735 and get_insns. Remove the first backward pass as it's dead,
13736 guard the forward pass by flag_expensive_optimizations.
13737 (rest_of_handle_regmove): Delete.
13738 (pass_regmove): Replace it with regmove_optimize.
13739
f618d33e
MJ
137402009-02-25 Martin Jambor <mjambor@suse.cz>
13741
13742 PR tree-optimization/39259
13743 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13744 calls_alloca function flags.
f618d33e
MJ
13745 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13746 calls are detected.
13747
c8a05f7c
PB
137482009-02-25 Paolo Bonzini <bonzini@gnu.org>
13749
13750 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13751 flags_set_1_rtx, flags_set_1_set): Delete.
13752 (regmove_optimize): Do not call mark_flags_life_zones.
13753
6d2538f5
JB
137542009-02-24 Julian Brown <julian@codesourcery.com>
13755
13756 PR target/35965
13757 * config/arm/arm.c (require_pic_register): Only set
13758 cfun->machine->pic_reg once per function.
13759
a2fa6772
SL
137602009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13761
13762 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13763 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13764
5472de36
SE
137652009-02-24 Steve Ellcey <sje@cup.hp.com>
13766
13767 PR target/33785
13768 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13769
844216f3
RG
137702009-02-24 Richard Guenther <rguenther@suse.de>
13771
13772 PR debug/39285
13773 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13774
71adbef3 137752009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13776 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13777
13778 PR tree-optimization/39233
13779 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13780 from converting them to a generic type.
13781
f1a558e0
SP
137822009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13783
13784 PR tree-optimization/39260
13785 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13786 contains a condition with a real type.
13787 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13788
d8028f2c
JM
137892009-02-23 Jason Merrill <jason@redhat.com>
13790
13791 PR c++/38880
13792 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13793 narrowing_initializer_constant_valid_p.
2ba9daa7 13794 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13795 null_pointer_node for adding a pointer to itself.
13796
9283b513
JH
137972009-02-23 Jan Hubicka <jh@suse.cz>
13798
13799 PR c/12245
9dadeeb8
UB
13800 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13801 resizing.
9283b513 13802
61e04322
JH
138032009-02-23 Jan Hubicka <jh@suse.cz>
13804
9dadeeb8
UB
13805 PR tree-optimization/37709
13806 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13807 * tree.h (block_ultimate_origin): Declare.
13808 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13809 * tree-ssa-live.c (remove_unused_scope_block_p):
13810 Eliminate blocks containig no instructions nor live variables nor
13811 nested blocks.
13812 (dump_scope_block): New function.
13813 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13814 enable dumping at TDF_DETAILS.
61e04322 13815
38432148 138162009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13817
13818 * config/i386/i386.c (classify_argument): Don't allow COImode
13819 and OImode.
13820 (function_arg_advance_32): Don't allow OImode.
13821 (function_arg_32): Likewise.
13822 (function_value_32): Likewise.
13823 (return_in_memory_32): Likewise.
13824 (function_arg_64): Remove OImode comment.
13825
38432148 138262009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13827
13828 PR target/39261
13829 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13830 ix86_expand_vector_set for V4DImode in 64bit mode only.
13831 (ix86_expand_vector_init_one_var): Likewise.
13832
dcd739a6
SP
138332009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13834
13835 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13836
6c3b938d
RS
138372009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13838
8e361f23 13839 PR bootstrap/39257
6c3b938d
RS
13840 * loop-iv.c: Revert last change.
13841 * emit-rtl.c: Likewise.
13842
38432148 138432009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13844
13845 PR target/39256
13846 * config/i386/i386.c (type_natural_mode): Remove an extra
13847 space in the warning message.
13848 (function_value_32): Handle 32-byte vector modes.
13849 (return_in_memory_32): Likewise.
13850
2ec62529
RS
138512009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13852
13853 * loop-iv.c (truncate_value): New function.
13854 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13855 of lowpart_subreg.
13856 (lowpart_subreg): Move to...
13857 * emit-rtl.c: ...here.
13858
ecb8c3cc 138592009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13860
ecb8c3cc
DS
13861 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13862 accidental and undocumented change at revision 140860.
13863
ae46a823
JM
138642009-02-21 Joseph Myers <joseph@codesourcery.com>
13865
13866 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13867 take gimple_seq * arguments.
13868 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13869 types_compatible_p langhook.
13870
07d8efe3 138712009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13872 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13873
13874 * config/arm/arm.c (arm_builtin_va_list): New function.
13875 (arm_expand_builtin_va_start): Likewise.
13876 (arm_gimplify_va_arg_expr): Likewise.
13877 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13878 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13879 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13880 (va_list_type): New variable.
13881 (arm_mangle_type): Mangle va_list_type appropriately.
13882
b1fb9f56
JJ
138832009-02-20 Jakub Jelinek <jakub@redhat.com>
13884
13885 PR middle-end/39157
13886 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13887 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13888 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13889 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13890 parameter to 1000 for -O1 by default.
13891 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13892 parameter.
13893 * loop-invariant.c: Include params.h.
13894 (move_loop_invariants): Don't call move_single_loop_invariants on
13895 very large loops.
13896
5bc0807c
JM
138972009-02-20 Jaka Mocnik <jaka@xlab.si>
13898
13899 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13900 offset when calculating bounds for indexing stack_usage_map. Fixes
13901 a buffer overflow with certain target setups.
13902
c69cd1f5
JJ
139032009-02-20 Jakub Jelinek <jakub@redhat.com>
13904
13905 PR target/39240
13906 * calls.c (expand_call): Clear try_tail_call if caller and callee
13907 disagree in promotion of function return value.
13908
09812622
JJ
139092009-02-19 Jakub Jelinek <jakub@redhat.com>
13910
13911 PR target/39175
13912 * c-common.c (c_determine_visibility): If visibility changed and
13913 DECL_RTL has been already set, call make_decl_rtl to update symbol
13914 flags.
13915
68017cb4
L
139162009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13917
13918 PR c++/39188
13919 * varasm.c (assemble_variable): Don't check DECL_NAME when
13920 globalizing a variable.
13921
ab4194da
JM
139222009-02-19 Joseph Myers <joseph@codesourcery.com>
13923
13924 PR c/38483
13925 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13926 expression before any __builtin_trap call.
13927 * c-typeck.c (build_function_call): Convert and check function
13928 arguments before generating a call to a trap. Evaluate the
13929 function arguments before the trap.
13930
6b67572e
UB
139312009-02-19 Uros Bizjak <ubizjak@gmail.com>
13932
13933 PR target/39228
13934 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13935 (UNSPEC_FXAM_MEM): New unspec.
13936 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13937 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13938 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13939
9e39dba6
RG
139402009-02-19 Richard Guenther <rguenther@suse.de>
13941
13942 PR tree-optimization/39207
13943 PR tree-optimization/39074
13944 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13945 storedanything_tree): New.
13946 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13947 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13948 (build_succ_graph): Add edges from STOREDANYTHING to all
13949 non-direct nodes.
13950 (init_base_vars): Initialize STOREDANYTHING.
13951 (compute_points_to_sets): Free substitution info after
13952 building the succ graph.
13953 (ipa_pta_execute): Likewise.
13954
13955 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13956 field.
13957 (do_ds_constraint): Do not add to special var or non-pointer
13958 field solutions.
13959 (type_could_have_pointers): Split out from ...
13960 (could_have_pointers): ... here. For arrays use the element type.
13961 (create_variable_info_for): Initialize may_have_pointers.
13962 (new_var_info): Likewise.
13963 (handle_lhs_call): Make the HEAP variable unknown-sized.
13964 (intra_create_variable_infos): Use a type with pointers for
13965 PARM_NOALIAS, make it unknown-sized.
13966
fd7b2603
L
139672009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13968
13969 PR target/39224
6b67572e 13970 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13971
98b80692
JM
139722009-02-18 Jason Merrill <jason@redhat.com>
13973
13974 PR target/39179
13975 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13976 value if DECL_EXTERNAL.
13977 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13978 * target.h (gcc_target::binds_local_p): Clarify "module".
13979 * tree.h (TREE_PUBLIC): Clarify "module".
13980
0705d3f4
L
139812009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13982
13983 PR target/38891
13984 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13985 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13986
bce08d50
L
139872009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13988
13989 PR target/39082
13990 * c.opt (Wabi): Support C and ObjC.
13991 (Wpsabi): New.
13992
13993 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13994
13995 * config/i386/i386.c (classify_argument): Warn once about the ABI
13996 change when passing union with long double.
13997
13998 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13999
5600f233
JM
140002009-02-18 Joseph Myers <joseph@codesourcery.com>
14001
14002 PR c/35447
14003 * c-parser.c (c_parser_compound_statement): Always enter and leave
14004 a scope.
14005
8cd01fe6
JDA
140062009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14007
14008 PR target/34587
14009 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14010
418df9d7
JJ
140112009-02-18 Jakub Jelinek <jakub@redhat.com>
14012
14013 PR tree-optimization/36922
14014 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14015 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14016 Likewise.
14017
082d2ebb
RS
140182009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14019
14020 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14021 to 0 for EABI64.
14022
17de576c
RS
140232009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14024
14025 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14026
6d8d5435
RS
140272009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14028
14029 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14030 tree sharing.
14031
e69ff910
RB
140322009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14033 Richard Sandiford <rdsandiford@googlemail.com>
14034
14035 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14036 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14037 (loongson_biadd): ...this.
14038
6b24ee26
RG
140392009-02-17 Richard Guenther <rguenther@suse.de>
14040
14041 PR tree-optimization/39202
14042 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14043 a var make sure to follow existing collapses.
14044
91ab2c86
RG
140452009-02-17 Richard Guenther <rguenther@suse.de>
14046
14047 PR middle-end/39214
14048 * langhooks.c (lhd_print_error_function): Check for NULL block.
14049
73a63870
RG
140502009-02-17 Richard Guenther <rguenther@suse.de>
14051
14052 PR tree-optimization/39204
14053 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14054 of the PHI arg.
14055
0e08f686
UB
140562009-02-17 Uros Bizjak <ubizjak@gmail.com>
14057
14058 * config/soft-fp/double.h: Update from glibc CVS.
14059
a60b7ddb
RG
140602009-02-17 Richard Guenther <rguenther@suse.de>
14061
14062 PR tree-optimization/39207
14063 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14064 strict-aliasing warnings for pointers pointing to NULL.
14065
a47e20fd
JM
140662009-02-16 Joseph Myers <joseph@codesourcery.com>
14067
14068 PR c/35446
14069 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14070 skipping until next close brace.
14071
50aab7dc
L
140722009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14073
14074 PR target/37049
14075 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14076 to function argument boundary.
14077
68e53db0
HS
140782009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14079
14080 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14081 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14082 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14083 "b", since it is not needed anymore.
14084
09e361bb
JJ
140852009-02-16 Jakub Jelinek <jakub@redhat.com>
14086
14087 * gthr-dce.h: Uglify function parameter and local variable names.
14088 * gthr-gnat.h: Likewise.
14089 * gthr-mipssde.h: Likewise.
14090 * gthr-nks.h: Likewise.
14091 * gthr-posix95.h: Likewise.
14092 * gthr-posix.h: Likewise.
14093 * gthr-rtems.h: Likewise.
14094 * gthr-single.h: Likewise.
14095 * gthr-solaris.h: Likewise.
14096 * gthr-tpf.h: Likewise.
14097 * gthr-vxworks.h: Likewise.
14098 * gthr-win32.h: Likewise.
14099
47f5a48f
L
141002009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14101
14102 PR target/39196
14103 * config/i386/i386.md: Restrict the new peephole2 to move
14104 between MMX/SSE registers.
14105
68c9ab45
RG
141062009-02-15 Richard Guenther <rguenther@suse.de>
14107
14108 Revert
14109 2009-02-13 Richard Guenther <rguenther@suse.de>
14110
14111 * configure.ac: Enable LFS.
14112 * configure: Re-generate.
14113 * config.in: Likewise.
14114
d7815554
UW
141152009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14116
14117 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14118 spu_srqwbyte, spu_srqwbytebc): Define.
14119 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14120 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14121 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14122 "shrqby_<mode>"): New insn-and-split patterns.
14123 * config/spu/spu.c (expand_builtin_args): Determine and return
14124 number of operands using spu_builtin_description data.
14125 (spu_expand_builtin_1): Use it.
14126
c208436c
SE
141272009-02-13 Steve Ellcey <sje@cup.hp.com>
14128
14129 PR target/38056
14130 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14131 TARGET_CONST_GP.
14132
c2e7ba7e
L
141332009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14134
14135 PR target/39149
14136 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14137 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14138
72f4e3a7
L
141392009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14140
14141 PR target/39152
14142 * config/i386/i386.md: Restrict the new peephole2 to move
14143 between the general purpose registers.
14144
53f648e2
L
141452009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14146
14147 PR target/39162
14148 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14149 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14150 (function_arg_advance): Updated.
14151 (function_arg): Likewise.
14152 (ix86_function_value): Likewise.
14153 (ix86_return_in_memory): Likewise.
14154 (ix86_sol10_return_in_memory): Likewise.
14155 (ix86_gimplify_va_arg): Likewise.
14156 (function_arg_32): Don't warn ABX ABI change here.
14157 (function_arg_64): Likewise.
14158
38432148 141592009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14160
14161 * loop-iv.c (implies_p): In the final case, test that operands 0
14162 of the two comparisons match.
14163
dd2139e7
BS
14164 * config/bfin/bfin.c (find_prev_insn_start): New function.
14165 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14166 (find_next_insn_start): Move.
14167
601b3e1a
RG
141682009-02-13 Richard Guenther <rguenther@suse.de>
14169
14170 * configure.ac: Enable LFS.
14171 * configure: Re-generate.
14172 * config.in: Likewise.
14173
f007042e
JM
141742009-02-13 Joseph Myers <joseph@codesourcery.com>
14175
14176 PR c/35444
14177 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14178 sizes on syntax error after some arguments have been parsed.
14179
3f238e8b
JJ
141802009-02-12 Jakub Jelinek <jakub@redhat.com>
14181
14182 * doc/invoke.texi (-fira): Remove.
14183
328e13b7
L
141842009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14185
14186 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14187 * recog.c: Likewise.
14188 * rtl.h: Likewise.
14189
c252db20
L
141902009-02-12 Uros Bizjak <ubizjak@gmail.com>
14191
14192 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14193 (umul_ppmm): Likewise.
14194 (count_leading_zeros): Likewise.
14195 (count_trailing_zeros): Likewise.
14196 (UMUL_TIME): Likewise.
14197
141982009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14199
ba181049
UB
14200 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14201 soft-fp/t-softfp to tmake_file.
c252db20
L
14202
14203 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14204 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14205 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14206 IA64_BUILTIN_INFQ]: New.
c252db20
L
14207 (ia64_init_builtins): Initialize __builtin_infq,
14208 __builtin_fabsq and __builtin_copysignq if not HPUX.
14209 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14210 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14211
14212 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14213 SHARED is defined.
14214 (__fixtfti): Likewise.
14215 (__fixunstfti): Likewise.
14216 (__floattitf): Likewise.
14217
14218 * config/ia64/libgcc-glibc.ver: New.
14219 * config/ia64/t-fprules-softfp: Likewise.
14220 * config/ia64/sfp-machine.h: Likewise.
14221
14222 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14223 (LIBGCC2_TF_CEXT): Likewise.
14224 (TF_SIZE): Likewise.
14225 (TARGET_INIT_LIBFUNCS): Likewise.
14226
ba181049 14227 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14228 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14229
f13eae6a
L
142302009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14231
14232 * config/i386/i386.c (construct_container): Rewrite processing
14233 BLKmode with X86_64_SSE_CLASS.
14234
12019aec
L
142352009-02-12 Paolo Bonzini <bonzini@gnu.org>
14236
14237 PR target/39152
14238 * config/i386/i386.md: Replace simplify_replace_rtx with
14239 replace_rtx in the new peephole2.
14240
28c11eb3
NS
142412009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14242
14243 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14244 loop unrolling do not happen at -O2.
14245
c7b94907
MM
142462009-02-12 Michael Matz <matz@suse.de>
14247
14248 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14249
61e98967
JJ
142502009-02-12 Jakub Jelinek <jakub@redhat.com>
14251
14252 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14253 for -g3.
14254
a2a237b5
BE
142552009-02-12 Ben Elliston <bje@au.ibm.com>
14256
14257 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14258 patterns when updating the back chain. Missed in the 2009-02-10
14259 change.
14260
853eda8d
JJ
142612009-02-11 Janis Johnson <janis187@us.ibm.com>
14262
14263 * doc/extend.texi (Decimal Floating Types): Update identifier of
14264 draft TR and list of missing support.
14265
3ad6b266
JJ
142662009-02-11 Jakub Jelinek <jakub@redhat.com>
14267
14268 PR middle-end/39154
14269 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14270 bit to variable length decl's flags, add it also to its
14271 pointer replacement variable.
14272
b058b753
UB
142732009-02-11 Uros Bizjak <ubizjak@gmail.com>
14274 Jakub Jelinek <jakub@redhat.com>
14275
14276 PR target/39118
14277 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14278 (memory_blockage): New expander.
14279 (*memory_blockage): New insn pattern.
14280 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14281 instead of general blockage at the end of function prologue when
14282 frame pointer is used to access red zone area. Do not emit blockage
14283 when profiling, it is emitted in generic code.
14284 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14285 function epilogue when frame pointer is used to access red zone area.
14286
bab64f23
PB
142872009-02-11 Paolo Bonzini <bonzini@gnu.org>
14288
0ce6dcfa 14289 PR target/38824
bab64f23
PB
14290 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14291 by arithmetic with memory operands.
14292 * config/i386/predicates.md (commutative_operator): New.
14293
8fd94bda
JJ
142942009-02-10 Janis Johnson <janis187@us.ibm.com>
14295
14296 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14297 bulleted lists.
14298
794511d2
EB
142992009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14300
14301 * alias.h (record_alias_subset): Declare.
14302 * alias.c (record_alias_subset): Make global.
14303
6da7fc87
NC
143042009-02-10 Nick Clifton <nickc@redhat.com>
14305
14306 * tree-parloops.c: Change license to GPLv3.
14307 * ipa-struct-reorg.c: Change license to GPLv3.
14308 * ipa-struct-reorg.h: Change license to GPLv3.
14309
a03813c8
SE
143102009-02-10 Steve Ellcey <sje@cup.hp.com>
14311
14312 PR c/39084
14313 * c-decl.c (start_struct): Return NULL on error.
14314
fc3103e7
JJ
143152009-02-10 Jakub Jelinek <jakub@redhat.com>
14316
9b43d37b
JJ
14317 PR middle-end/39124
14318 * cfgloopmanip.c (remove_path): Call remove_bbs after
14319 cancel_loop_tree, not before it.
14320
fc3103e7 14321 PR target/39139
b058b753 14322 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14323 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14324 VAR_DECLs were seen.
14325 * tree-ssa-live.c (remove_unused_locals): Recompute
14326 cfun->has_local_explicit_reg_vars.
14327 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14328 copies or clearings if cfun->has_local_explicit_reg_vars.
14329
dbf9ee15
UB
143302009-02-10 Uros Bizjak <ubizjak@gmail.com>
14331
14332 PR target/39118
14333 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14334 of function prologue when frame pointer is used to access
14335 red zone area.
14336
bdec4dc7
RG
143372009-02-10 Richard Guenther <rguenther@suse.de>
14338
14339 PR middle-end/39127
14340 * gimplify.c (gimple_regimplify_operands): Always look if
14341 we need to create a temporary.
14342
7cae94fc
RG
143432009-02-10 Richard Guenther <rguenther@suse.de>
14344
14345 PR tree-optimization/39132
14346 * tree-loop-distribution.c (todo): New global var.
14347 (generate_memset_zero): Trigger TODO_rebuild_alias.
14348 (tree_loop_distribution): Return todo.
14349
a8800687
L
143502009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14351
14352 PR target/39119
14353 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14354 (x86_64_reg_class_name): Removed.
14355 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14356 first one isn't X86_64_SSE_CLASS or any other ones aren't
14357 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14358 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14359 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14360 and 3 X86_64_SSEUP_CLASS.
14361 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14362 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14363
d4bacef0
BE
143642009-02-10 Ben Elliston <bje@au.ibm.com>
14365
14366 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14367 form instruction to update the stack back chain word, even if the
14368 user has disabled the generation of update instructions.
14369 (movdi_<mode>_update_stack): New.
14370 (movsi_update_stack): Likewise.
14371 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14372 always use an update form instruction to update the stack back
14373 chain word.
14374
01d7d2f3
SP
143752009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14376
14377 PR middle-end/38953
b058b753
UB
14378 * graphite.c (if_region_set_false_region): After moving a region in
14379 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14380 (gloog): Remove wrong fix for PR38953.
14381
e41e2ab4
UW
143822009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14383
14384 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14385 generation due to implicit sign extension.
14386
4bb07c5d
EB
143872009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14388
14389 PR middle-end/38981
14390 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14391 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14392
f060a261
RG
143932009-02-09 Richard Guenther <rguenther@suse.de>
14394
14395 PR middle-end/35202
14396 * convert.c (convert_to_real): Disable (float)fn((double)x)
14397 to fnf(x) conversion if errno differences may occur and
14398 -fmath-errno is set.
14399
5a7e237c
AS
144002009-02-07 Anatoly Sokolov <aesok@post.ru>
14401
14402 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14403 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14404 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14405
feab5a67
JM
144062009-02-06 Joseph Myers <joseph@codesourcery.com>
14407
14408 PR c/35434
14409 * c-common.c (handle_alias_attribute): Disallow attribute for
14410 anything not a FUNCTION_DECL or VAR_DECL.
14411
90ef2296
JJ
144122009-02-06 Janis Johnson <janis187@us.ibm.com>
14413
14414 PR c/39035
14415 * real.c (do_compare): Special-case compare of zero against
14416 decimal float value.
14417
1de2c900
JM
144182009-02-06 Joseph Myers <joseph@codesourcery.com>
14419
14420 PR c/36432
14421 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14422 as indicating flexible array members unless the field itself is
14423 being declarared as the incomplete array.
14424
e901811a
JH
144252009-02-06 Jan Hubicka <jh@suse.cz>
14426
14427 PR tree-optimization/38844
14428 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14429 is already inlined.
14430
3cfa762b
RG
144312009-02-06 Richard Guenther <rguenther@suse.de>
14432
14433 PR middle-end/38977
14434 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14435 fork because we may expand it as __gcov_fork.
14436
8506528c
NC
144372009-02-06 Nick Clifton <nickc@redhat.com>
14438
dbf9ee15 14439 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14440
85169114
PB
144412009-02-06 Paolo Bonzini <bonzini@gnu.org>
14442
14443 PR tree-optimization/35659
14444 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14445 vn_phi_eq): Shortcut if hashcode does not match.
14446 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14447 NULL operands.
14448 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14449 and avoid iterative_hash_expr.
14450 (FOR_EACH_VALUE_ID_IN_SET): New.
14451 (value_id_compare): Remove.
14452 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14453 sort expressions by value id.
14454
6d39673d
KK
144552009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14456
14457 PR target/38991
14458 * config/sh/predicates.md (general_movsrc_operand): Don't check
14459 the subreg of system registers here.
14460
e6e1c050
JJ
144612009-02-05 Jakub Jelinek <jakub@redhat.com>
14462
14463 PR c++/39106
14464 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14465 on the copied decl.
14466
65a74b5d
PB
144672009-02-05 Paolo Bonzini <bonzini@gnu.org>
14468
14469 PR rtl-optimization/39110
14470 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14471 addresses, not aligned ones.
14472
08e14b2a
DB
144732009-02-05 Daniel Berlin <dberlin@dberlin.org>
14474 Richard Guenther <rguenther@suse.de>
14475
14476 PR tree-optimization/39100
14477 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14478 comment says and add edges.
14479
5006381c
JM
144802009-02-05 Joseph Myers <joseph@codesourcery.com>
14481
14482 PR c/35435
14483 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14484 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14485
2ba9daa7 144862009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14487
14488 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14489 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14490 register_bb_in_sese, new_sese, free_sese): Moved.
14491 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14492 outermost_loop_in_scop, build_scop_iteration_domain,
14493 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14494 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14495 Use loop_in_sese_p instead of loop_in_scop_p.
14496 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14497 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14498 (scopdet_basic_block_info): Fix bug in scop detection.
14499 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14500 eq_loop_to_cloog_loop): Remove.
14501 (nb_loops_around_loop_in_scop, nb_loop
14502 ref_nb_loops): Moved here...
14503 * graphite.h (ref_nb_loops): ... from here.
14504 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14505 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14506 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14507 * testsuite/gcc.dg/graphite/scop-19.c: New
14508
48e8382e
PB
145092009-02-04 Paolo Bonzini <bonzini@gnu.org>
14510 Hans-Peter Nilsson <hp@axis.com>
14511
14512 PR rtl-optimization/37889
14513 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14514 Move offset handling from PLUS to before the switch. Use new
14515 arguments when considering SYMBOL_REFs too.
14516 (rtx_addr_can_trap_p): Pass dummy offset and size.
14517 (enum may_trap_p_flags): Remove.
14518 (may_trap_p_1): Pass size from MEM_SIZE.
14519
14520 PR rtl-optimization/38921
14521 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14522 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14523 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14524 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14525
69349ea5
L
145262009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14527
14528 AVX Programming Reference (January, 2009)
14529 * config/i386/sse.md (*vpclmulqdq): New.
14530
b545e411
JJ
145312009-02-04 Jakub Jelinek <jakub@redhat.com>
14532
14533 PR tree-optimization/38977
14534 PR gcov-profile/38292
bf9b2cc9 14535 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14536
5b43bf05
HS
145372009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14538
14539 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14540 non-indexable addresses even before reload.
14541
062c4bb3
JM
145422009-02-03 Joseph Myers <joseph@codesourcery.com>
14543
14544 PR c/29129
14545 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14546 as having variable size. Do not give an error for unnamed
14547 parameters with [*] declarators. Give a warning for type names
14548 with [*] declarators and mark them as variable size.
14549 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14550 for sizeof applied to [*] type names.
14551
6175f578
AP
145522009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14553
14554 PR C++/36607
14555 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14556
d4f4bc84
JJ
145572009-02-03 Jakub Jelinek <jakub@redhat.com>
14558
14559 * gcc.c (process_command): Update copyright notice dates.
14560 * gcov.c (print_version): Likewise.
14561 * gcov-dump.c (print_version): Likewise.
14562 * mips-tfile.c (main): Likewise.
14563 * mips-tdump.c (main): Likewise.
14564
f6294de7
JM
145652009-02-03 Joseph Myers <joseph@codesourcery.com>
14566
14567 PR c/35433
14568 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14569 for composite type involving a zero-length array type.
14570
754ccf7c
JJ
145712009-02-03 Jakub Jelinek <jakub@redhat.com>
14572
70f16287
JJ
14573 PR target/35318
14574 * function.c (match_asm_constraints_1): Skip over
14575 initial optional % in the constraint.
14576
754ccf7c
JJ
14577 PR inline-asm/39059
14578 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14579 supported, don't accept FIXED_CSTs.
14580 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14581 and _Sat is used without _Fract/_Accum. Set specs->type to
14582 integer_type_node for cts_fract/cts_accum if fixed point is not
14583 supported.
14584
965fdadf
CM
145852009-02-02 Catherine Moore <clm@codesourcery.com>
14586
dbf9ee15 14587 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14588
2e8a796f
RS
145892009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14590
14591 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14592 (ABI_HAS_64BIT_SYMBOLS): Use it.
14593 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14594
e0079468
PB
145952009-02-02 Paul Brook <paul@codesourcery.com>
14596
14597 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14598
eca72963
JJ
145992009-02-02 Jakub Jelinek <jakub@redhat.com>
14600
14601 PR inline-asm/39058
14602 * recog.h (asm_operand_ok): Add constraints argument.
14603 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14604 recurse on matching constraint.
14605 (check_asm_operands): Pass constraints as 3rd argument to
14606 asm_operand_ok. Don't look up matching constraint here.
14607 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14608 to asm_operand_ok.
14609
b5bde9ff
BE
146102009-02-02 Ben Elliston <bje@au.ibm.com>
14611
14612 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14613 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14614
30f3e427
JDA
146152009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14616
be7659ba
JDA
14617 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14618 information. Remove some obsolete information. Reorganize.
14619
30f3e427
JDA
14620 * config/pa/fptr.c: Revert license to GPL 2.
14621 * config/pa/milli64.S: Likewise.
14622
3cbfaf98
DK
146232009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14624
14625 PR target/38904
14626 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14627 LIBRARY name in, instead of hard-coding it.
14628 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14629 extra target make frag to tmake_files according to EH model.
14630 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14631 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14632 frags that define makefile variable EH_MODEL appropriately.
14633 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14634 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14635 to "-sjlj" according to type of EH configured.
14636 (LIBGCC_SONAME): Concatenate it to shared library base name.
14637 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14638 to "_sjlj" according to type of EH configured.
14639 (LIBGCC_SONAME): Concatenate it to shared library base name.
14640 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14641 (SHLIB_LINK): Add missing semicolon to if-else construct.
14642 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14643 string value of "pe_dll" command-line option.
14644 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14645 (SHLIB_SONAME): Use it when overriding t-cygming default.
14646 (SHLIB_IMPLIB): Override t-cygming default.
14647 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14648 string value of "pe_dll" command-line option.
14649
8d0b6068
DK
146502009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14651
14652 PR target/38952
14653 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14654 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14655
14c28276
RG
146562009-01-31 Richard Guenther <rguenther@suse.de>
14657
14658 PR tree-optimization/38937
14659 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14660 computing the transitive closure.
14661
5f4d82c2
RG
146622009-01-30 Richard Guenther <rguenther@suse.de>
14663
14664 PR tree-optimization/39041
14665 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14666 Propagate variable indices only if the types match for this stmt.
14667
d0728ae0
JJ
146682009-01-30 Jakub Jelinek <jakub@redhat.com>
14669
14670 PR target/39013
14671 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14672 inline but never defined.
14673
6b67572e 146742009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14675
14676 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14677 (*insv_h_di_reg_extimm): New insn.
14678 (*insv_l<mode>_reg_extimm): New insn.
14679
146802009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14681
14682 * config/picochip/picochip.c (flag_conserve_stack): set
14683 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14684 fconserve-stack. Reduce call-overhead used by inliner.
14685
9fec758d 146862009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14687
14688 PR/38157
14689 * common.opt (flag_conserve_stack): Initialised to zero.
14690
7f1c539c
KT
146912009-01-30 Kai Tietz <kai.tietz@onevision.com>
14692
14693 PR/39002
14694 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14695 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14696 method.
14697
3631be48
L
146982009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14699
14700 * ira-color.c (allocno_reload_assign): Update comments.
14701 * regmove.c (regmove_optimize): Likewise.
14702
14703 * ra.h: Removed.
14704
416ac4d4
RM
147052009-01-29 Robert Millan <rmh@aybabtu.com>
14706
60839f5d
EB
14707 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14708 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14709 `MD_UNWIND_SUPPORT'.
60839f5d 14710 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14711
d5e54bc1
KH
147122009-01-29 Kazu Hirata <kazu@codesourcery.com>
14713
14714 PR tree-optimization/39007
14715 * tree-loop-distribution.c (generate_builtin): Use
14716 recompute_dominator to compute the immediate dominator of the
14717 basic block just after the loop.
14718
38432148 147192009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14720
14721 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14722 (ASM_OUTPUT_DWARF_PCREL): Define.
14723
38432148 147242009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14725
14726 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14727 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14728 global. Modify entries about regmove and IRA.
14729
14730 * ra-conflict.c: Remove the file.
14731
14732 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14733
14734 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14735 (pass_regclass_init): Rename to pass_reginfo_init.
14736
14737 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14738
14739 * toplev.h (flag_ira): Remove.
14740
14741 * caller-save.c (setup_save_areas): Remove flag_ira.
14742
bf9b2cc9 14743 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14744
14745 * global.c: Remove the file.
14746
ba20e309 14747 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14748
14749 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14750
14751 * regmove.c: Modify file description.
14752 (find_use_as_address, try_auto_increment): Define them only if
14753 AUTO_INC_DEC is defined.
14754 (replacement_quality, replace_in_call_usage, fixup_match_1,
14755 stable_and_no_regs_but_for_p): Remove.
14756 (reg_set_in_bb): Make it static.
14757 (regmove_optimize): Remove flag_ira and code which worked for
14758 !flag_ira.
14759
14760 * local-alloc.c: Remove the file.
14761
14762 * common.opt (fira): Remove.
14763
14764 * ira.c: Include except.h.
14765 (eliminable_regset): Move from global.c.
14766 (mark_elimination): Ditto. Remove flag_ira.
14767 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14768 equiv_mem_modified, validate_equiv_mem_from_store,
14769 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14770 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14771 no_equiv, recorded_label_ref): Move from local-alloc.c.
14772 (update_equiv_regs): Ditto. Make it static.
14773 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14774 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14775 (build_insn_chain): Ditto. Make it static.
14776 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14777 Rename to init_live_subregs.
14778 (gate_ira): Remove flag_ira.
14779
14780 * regclass.c: Rename reginfo.c. Change file description.
14781 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14782 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14783 (init_reg_sets_1): Remove code for evaluation of
14784 reg_class_superclasses and losing_caller_save_reg_set.
14785 (init_regs): Remove init_reg_autoinc.
14786 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14787 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14788 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14789 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14790 corresponding entries.
14791 (dump_regclass, record_operand_costs, scan_one_insn,
14792 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14793 record_address_regs, auto_inc_dec_reg_p): Remove.
14794 (gt-regclass.h): Rename to gt-reginfo.h.
14795
14796 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14797 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14798
14799 * Makefile.in (RA_H): Remove.
14800 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14801 Rename regclass.o to reginfo.o.
14802 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14803 gt-reginfo.h.
14804 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14805 (GTFILES): Rename regclass.c to reginfo.c.
14806
14807 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14808 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14809
14810 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14811 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14812 Remove flag_ira.
6b67572e 14813 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14814
c95b2534 148152009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14816
14817 PR middle-end/35854
14818 * doc/invoke.texi (rtl debug options): Complete rewrite.
14819 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14820 to auto_inc_dec".
14821 * mode-switching.c (pass_mode_switching): Rename pass from
14822 "mode-sw" to "mode_sw".
14823 * except.c (pass_convert_to_eh_ranges): Rename pass from
14824 "eh-ranges" to "eh_ranges".
14825 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14826 to "subreg1".
2ba9daa7
AS
14827
14828
72a54528
AM
148292009-01-29 Andrey Belevantsev <abel@ispras.ru>
14830 Alexander Monakov <amonakov@ispras.ru>
14831
14832 PR middle-end/38857
14833 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14834 register.
14835 (move_exprs_to_boundary): Change return type and pass through
14836 should_move from move_op. Relax assert. Update usage ...
14837 (schedule_expr_on_boundary): ... here. Use should_move instead of
14838 cant_move.
14839 (move_op_orig_expr_found): Indicate that insn was disconnected from
14840 stream.
14841 (code_motion_process_successors): Do not call after_merge_succs
14842 callback if original expression was not found when traversing any of
14843 the branches.
14844 (code_motion_path_driver): Change return type. Update prototype.
14845 (move_op): Update comment. Add a new parameter (should_move). Update
14846 prototype. Set *should_move based on indication provided by
14847 move_op_orig_expr_found.
14848
001b9eb6
PH
148492009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14850
14851 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14852 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14853 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14854 * config/rs6000/rs6000.c (rs6000_override_options): Default
14855 avoid-indexed-addresses on for Power6, off for everything else.
14856 (avoiding_indexed_address_p): New function.
14857 (rs6000_legitimize_address): Use it.
14858 (rs6000_legitimate_address): Likewise.
14859 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14860
59dc4898
KH
148612009-01-28 Kazu Hirata <kazu@codesourcery.com>
14862
14863 PR tree-optimization/38997
14864 * tree-loop-distribution.c (generate_memset_zero): Use
14865 POINTER_PLUS_EXPR for a pointer addition.
14866
07da44ab
AK
148672009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14868
14869 * config/s390/s390.md (bswap<mode>2): New pattern added.
14870
cdc15d23
WG
148712009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14872
14873 * config/s390/s390.md (*tls_load_31): Added type attribute.
14874
d46f24b6
WG
148752009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14876
14877 * config/s390/s390.md: Fix a few comments.
14878
729e750f
WG
148792009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14880
14881 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14882 (*tm<mode>_full): Fixed z10prop attribute.
14883 (*tst<mode>_extimm): Fixed z10prop attribute.
14884 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14885 (*tstqiCCT_cconly): Fixed z10prop attribute.
14886 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14887 (*movsi_larl): Fixed z10prop attribute.
14888 (*movsi_zarch): Fixed z10prop attribute.
14889 (*movsi_eas): Fixed z10prop attribute.
14890 (*movhi): Fixed z10prop attribute.
14891 (*movqi): Fixed z10prop attribute.
14892 (*movstrictqi): Fixed z10prop attribute.
14893 (*mov<mode>): Fixed z10prop attribute.
14894 (*movcc): Fixed z10prop attribute.
14895 (*sethighpartdi_64): Fixed z10prop attribute.
14896 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14897 (*negdi2_sign_cc): Fixed z10prop attribute.
14898 (*negdi2_sign): Fixed z10prop attribute.
14899 (*absdi2_sign_cc): Fixed z10prop attribute.
14900 (*absdi2_sign): Fixed z10prop attribute.
14901 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14902 (*negabsdi2_sign): Fixed z10prop attribute.
14903 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14904 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14905 (doloop_si64): Fixed z10prop attribute.
14906 (doloop_si31): Fixed z10prop attribute.
14907 (doloop_long): Fixed z10prop attribute.
14908 (indirect_jump): Fixed z10prop attribute.
14909 (nop): Fixed z10prop attribute.
14910 (main_base_64): Fixed z10prop attribute.
14911 (reload_base_64): Fixed z10prop attribute.
14912
c7789bfb
JJ
149132009-01-28 Jakub Jelinek <jakub@redhat.com>
14914
14915 PR rtl-optimization/38740
6b67572e
UB
14916 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14917 if !optimize.
c7789bfb
JJ
14918 * config/mips/mips.c (mips_reorg): Likewise.
14919
de081cfd
RG
149202009-01-28 Richard Guenther <rguenther@suse.de>
14921
14922 PR tree-optimization/38926
14923 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14924 with the correct value id to a value.
14925 (do_regular_insertion): Use the value number of edoubleprime
14926 for the value number of the expr.
14927
14928 Revert
14929 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14930
d748c406
UB
14931 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14932 a PHI ask VN if it is already available.
14933 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14934 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14935
a9d386a1
JJ
149362009-01-28 Jakub Jelinek <jakub@redhat.com>
14937
14938 PR middle-end/38934
14939 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14940 set to varying whenever max has TREE_OVERFLOW set, similarly
14941 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14942
97a170cd
RG
149432009-01-28 Richard Guenther <rguenther@suse.de>
14944
14945 PR middle-end/38908
14946 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14947 uninitialized aggregate uses in call arguments.
14948
89ebafc6
PB
149492009-01-28 Paolo Bonzini <bonzini@gnu.org>
14950
14951 PR tree-optimization/38984
14952 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14953 the nothing_id variable if -fno-delete-null-pointer-checks.
14954
bef3c57b
UB
149552009-01-28 Uros Bizjak <ubizjak@gmail.com>
14956
14957 PR target/38988
14958 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14959 (set_got_offset_rex64): Ditto.
14960
0c6390fa
L
149612009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14962
14963 PR target/38941
14964 * doc/extend.texi: Improve local variable with asm reg.
14965
bee6fa6d
AN
149662009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14967
14968 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14969 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14970 was not supplied then set warn_packed_bitfield_compat to the
14971 default value of 1.
14972 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14973 against 1.
14974
b5c3dfbb
RG
149752009-01-27 Richard Guenther <rguenther@suse.de>
14976
14977 PR tree-optimization/38503
14978 * cfgexpand.c (expand_gimple_basic_block): Ignore
14979 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14980 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14981 variables that cannot have TBAA applied.
14982 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14983 statements.
14984
d748c406 149852009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14986
14987 PR middle-end/38969
14988 * calls.c (initialize_argument_information): Do not wrap complex
14989 arguments in SAVE_EXPR.
14990
9112bb38
AT
149912009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14992
14993 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14994 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14995
4757704f
RG
149962009-01-26 Richard Guenther <rguenther@suse.de>
14997
14998 PR tree-optimization/38745
14999 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15000 from special handling.
15001
e3e6cff4
RG
150022009-01-26 Richard Guenther <rguenther@suse.de>
15003
15004 PR tree-optimization/38745
15005 * tree-ssa.c (execute_update_addresses_taken): Do not include
15006 variables that cannot possibly be a register in not_reg_needs.
15007 Do not clear TREE_ADDRESSABLE on vars that may not become
15008 registers.
15009 * tree-ssa.c (update_alias_info_1): Include those in the set
15010 of addressable vars.
15011
dc874b53
RG
150122009-01-26 Richard Guenther <rguenther@suse.de>
15013
15014 PR middle-end/38851
15015 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15016 * tree-ssa-dse.c: Include langhooks.h
15017 (execute_simple_dse): Remove stores with zero size.
15018
849421a3
JJ
150192009-01-24 Jakub Jelinek <jakub@redhat.com>
15020
15021 PR c/38957
15022 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15023 as PLUS_EXPR.
15024
82f70421
JB
150252009-01-24 Julian Brown <julian@codesourcery.com>
15026
15027 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15028 config/arm/linux-atomic.c.
15029 * config/arm/linux-atomic.c: New.
15030
863412d6
EB
150312009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15032
15033 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15034 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15035 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15036
8c684300
L
150372009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15038
15039 PR c/38938
93f1527a 15040 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
15041 properly.
15042
b840fb02
SP
150432009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15044
15045 PR tree-optimization/38953
15046 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15047 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15048 (gloog): Split the exit of the scop when the scop exit is a loop exit.
15049 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15050 changed the CFG.
15051
ecee559f
PB
150522009-01-24 Paul Brook <paul@codesourcery.com>
15053
15054 * config/arm/neon.md (neon_type): Move to arm.md.
15055 (neon_mov<VSTRUCT>): Add neon_type attribute.
15056 * config/arm/arm.md (neon_type): Move to here.
15057 (conds): Add "unconditioal" and use as default for NEON insns.
15058
61ad0914
BE
150592009-01-24 Ben Elliston <bje@au.ibm.com>
15060
15061 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15062 void *' warning from -Wc++-compat.
15063 * Makefile.in (dominance.o-warn): Remove.
15064
38432148 150652009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15066
15067 PR tree-optimization/38932
15068 * fold-const.c (fold_unary_ignore_overflow): New.
15069 * tree.h (fold_unary_ignore_overflow): Declare.
15070 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15071 * tree-ssa-sccvn.c (visit_reference_op_load,
15072 simplify_unary_expression): Likewise.
15073
2cd36c22
AN
150742009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15075
15076 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15077 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15078 regardless of their type.
15079 * c-common.c (handle_packed_attribute): Don't ignore packed on
15080 bitfields.
15081 * c.opt (Wpacked-bitfield-compat): New warning option.
15082 * stor-layout.c (place_field): Warn if offset of a field changed.
15083 * doc/extend.texi (packed): Mention the ABI change.
15084 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15085 (Warning Options): Add it to the list.
15086
e4e624ab
L
150872009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15088
15089 * c-opts.c (c_common_post_options): Fix a typo in comments.
15090
d0ea0759
SE
150912009-01-22 Steve Ellcey <sje@cup.hp.com>
15092
15093 PR middle-end/38615
15094 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15095 variables to static.
15096 * doc/invoke.texi (-fmerge-all-constants): Update description.
15097
87673f84
UB
150982009-01-22 Uros Bizjak <ubizjak@gmail.com>
15099
15100 PR target/38931
15101 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15102 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15103
96339268
RE
151042009-01-22 Richard Earnshaw <rearnsha@arm.com>
15105
15106 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15107 a word boundary.
15108 (LOCAL_ALIGNMENT): Similarly.
15109
442dc742 151102009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15111 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15112
15113 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15114 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15115 * config/arm/arm-tune.md: Regenerate.
15116 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15117 -march=iwmmxt2.
15118
9b34732e
MS
151192009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15120
15121 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15122 version number to five.
15123
03c2a308
DS
151242009-01-22 Dodji Seketeli <dodji@redhat.com>
15125
15126 PR c++/38930
ba20e309 15127 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15128 * c-common.c (set_underlying_type): Likewise.
15129 (is_typedef_decl ): Likewise
15130 * tree.h: Likewise
15131 (set_underlying_type): Likewise.
15132 (is_typedef_type): Likewise.
15133
1240d76e
VM
151342009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15135
15136 PR middle-end/38587
15137 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15138 crossing setjmps.
15139
b8a1087d
DK
151402009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15141
15142 PR bootstrap/37660
15143 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15144 (LIBGCC_SPEC): Don't define.
15145 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15146
435da628
UB
151472009-01-21 Uros Bizjak <ubizjak@gmail.com>
15148
15149 PR rtl-optimization/38879
15150 * alias.c (base_alias_check): Unaligned access via AND address can
15151 alias all surrounding object types except those with sizes equal
15152 or wider than the size of unaligned access.
15153
d597b3ce
DS
151542009-01-21 Dodji Seketeli <dodji@redhat.com>
15155
15156 PR c++/26693
ba20e309 15157 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15158 * c-common.c (set_underlying_type): ... here.
435da628 15159 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15160 the newly created typedef variant type.
15161 (is_typedef_decl ): New entry point.
15162 * tree.h: Added a new member member_types_needing_access_check to
15163 struct tree_decl_non_common.
15164 (set_underlying_type): New entry point.
15165 (is_typedef_type): Likewise.
15166
71a6fe66
BM
151672009-01-21 Bingfeng Mei <bmei@broadcom.com>
15168
15169 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15170 Check whether two instructions have memory references that
15171 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15172 are helper functions for traversing.
15173 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15174 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15175 not to draw dependency edge for instructions with non-conflicting
15176 alias sets.
15177
5a248274
JM
151782009-01-20 Joseph Myers <joseph@codesourcery.com>
15179
15180 PR other/38758
6b67572e
UB
15181 * longlong.h: Update copyright years. Use soft-fp license notice.
15182 Sync __clz_tab declaration with glibc.
5a248274 15183
4b84f3de
SE
151842009-01-20 Steve Ellcey <sje@cup.hp.com>
15185
15186 PR target/30687
15187 * doc/extend.texi (syscall_linkage): New.
15188 (version_id): Modify.
15189
37348bf1 151902009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15191 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15192
15193 PR tree-optimization/38747
15194 PR tree-optimization/38748
15195 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15196 conversion if the base address is an indirect reference and the
15197 aliasing sets could cause issues.
15198
d0a58904
SP
151992009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15200
2ba9daa7 15201 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15202 explaining why these options are not documented.
15203
71e7afb2
SP
152042009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15205
15206 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15207 gimple_call_lhs is NULL.
15208
38432148 152092009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15210
15211 PR target/38868
15212 * emit-rtl.c (adjust_address_1): Make sure memref is never
15213 overwritten.
15214
cbb8dee3
BE
152152009-01-20 Ben Elliston <bje@au.ibm.com>
15216
15217 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15218 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15219 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15220 const qualifier from arg 2.
15221
72c66596
IS
152222009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15223
435da628 15224 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15225
f68211cd
VM
152262009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15227
15228 PR c/38869
15229 * rtl.h (reinit_regs): New prototype.
15230 * regclass.c: Include ira.h.
15231 (reinit_regs): New.
15232 * Makefile.in (regclass.o): Add ira.h.
15233 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15234
6e4f1168
L
152352009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15236
15237 PR target/38736
15238 * c-common.c (handle_aligned_attribute): Use
15239 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15240 default alignment value.
15241
15242 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15243
15244 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15245 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15246
15247 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15248 __BIGGEST_ALIGNMENT__.
15249
15250 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15251
890065bf
RG
152522009-01-18 Richard Guenther <rguenther@suse.de>
15253
15254 PR tree-optimization/38819
15255 * tree-flow.h (operation_could_trap_helper_p): Declare.
15256 * tree-eh.c (operation_could_trap_helper_p): Export.
15257 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15258 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15259 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15260 are about to insert a possibly trapping instruction and fail
15261 in this case.
15262
a729d731
AS
152632009-01-18 Andreas Schwab <schwab@suse.de>
15264
15265 * doc/install.texi (Configuration): Remove obsolete paragraph
15266 about use of --with-gnu-ld with --with-gnu-as.
15267
a640c13b
KH
152682009-01-18 Kazu Hirata <kazu@codesourcery.com>
15269
15270 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15271 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15272 Follow spelling conventions.
15273
dba2cc0c
BE
152742009-01-18 Ben Elliston <bje@au.ibm.com>
15275
15276 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15277 C++ warning about implicit conversion from void * to struct
15278 bitmap_head_def *.
15279 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15280 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15281
2207a498
DK
152822009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15283
15284 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15285
8137e465
SP
152862009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15287 Tobias Grosser <tobi.grosser@amd.com>
15288
15289 * graphite.c (graphite_trans_scop_block): Do not block single
15290 nested loops.
15291
5be1c58c
AO
152922009-01-16 Alexandre Oliva <aoliva@redhat.com>
15293
15294 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15295 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15296 test with assertion.
15297
786ce82d
RG
152982009-01-16 Richard Guenther <rguenther@suse.de>
15299
15300 PR tree-optimization/38835
15301 PR middle-end/36227
15302 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15303 and INT + PTR -> (INT)(PTR p+ INT) folding.
15304 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15305
c1cb09ad
AN
153062009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15307
15308 PR target/38554
15309 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15310 the subreg from a lowpart subreg if it is also casting the value.
15311
bcab4e19
SP
153122009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15313 Tobias Grosser <tobi.grosser@amd.com>
15314
15315 * graphite.c (compare_prefix_loops): New.
15316 (build_scop_canonical_schedules): Rewritten.
15317 (graphite_transform_loops): Move build_scop_canonical_schedules
15318 after build_scop_iteration_domain.
15319
0b040072
SP
153202009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15321 Tobias Grosser <tobi.grosser@amd.com>
15322
2ba9daa7 15323 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15324 the dimension of the iteration domain. Do copy the domain
15325 only when it exists.
15326 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15327 (add_conditions_to_constraints): New.
15328 (can_generate_code_stmt, can_generate_code): Removed.
15329 (gloog): Do not call can_generate_code.
15330 (graphite_transform_loops): Call add_conditions_to_constraints
15331 after building the iteration domain.
15332
56c6a499
JJ
153332009-01-16 Jakub Jelinek <jakub@redhat.com>
15334
15335 PR tree-optimization/38789
15336 * tree-ssa-threadedge.c
15337 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15338 __builtin_constant_p.
15339
c95b2534 153402009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15341
15342 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15343 examined before deleting them.
2ba9daa7 15344
c433cb14
RE
153452009-01-16 Richard Earnshaw <rearnsha@arm.com>
15346
15347 * function.c (aggregate_value_p): Correctly extract the function
15348 type from CALL_EXPR_FN lookup.
15349
c95b2534 153502009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15351
15352 * config/picochip/picochip.c (picochip_override_options): Revert
15353 CFI asm flag disable commited previously.
15354
c77bb78f
SP
153552009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15356 Tobias Grosser <tobi.grosser@amd.com>
15357 Jan Sjodin <jan.sjodin@amd.com>
15358
15359 * graphite.c (scan_tree_for_params): On substractions negate
15360 all the coefficients of the term.
15361 (clast_to_gcc_expression_red): New. Handle reduction expressions
15362 of more than two operands.
15363 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15364 (get_vdef_before_scop): Handle also the case of default definitions.
15365
574af2d6
RS
153662009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15367
15368 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15369 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15370 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15371
e939805b
L
153722009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15373 Joey Ye <joey.ye@intel.com>
15374
15375 PR middle-end/37843
15376 * cfgexpand.c (expand_stack_alignment): Don't update stack
15377 boundary nor check incoming stack boundary here.
15378 (gimple_expand_cfg): Update stack boundary and check incoming
15379 stack boundary here.
15380
c95b2534 153812009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15382
435da628 15383 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15384
0196c95e
JJ
153852009-01-14 Jakub Jelinek <jakub@redhat.com>
15386
15387 PR rtl-optimization/38245
15388 * calls.c (expand_call): Add stack arguments to
15389 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15390 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15391 in regs and partially in memory or BLKmode arguments.
15392 (emit_library_call_value_1): Add stack arguments to
15393 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15394 ACCUMULATE_OUTGOING_ARGS).
15395 * dce.c: Include tm_p.h.
15396 (find_call_stack_args): New function.
15397 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15398 argument.
15399 (mark_insn): Call find_call_stack_args for CALL_Ps.
15400 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15401 forwards. Allocate and free arg_stores bitmap if needed, pass it
15402 down to deletable_insn_p, don't mark stores set in arg_stores
15403 bitmap, clear the bitmap at the beginning of each bb.
15404 * Makefile.in (dce.o): Depend on $(TM_P_H).
15405
6df6bcfa
MM
154062009-01-14 Michael Meissner <gnu@the-meissners.org>
15407
15408 PR target/22599
435da628
UB
15409 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15410 to make sure the insn is a conditional test (bug 22599). Reformat a
15411 few long lines.
6df6bcfa 15412
765ec70c
SP
154132009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15414
15415 PR middle-end/38431
15416 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15417 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15418 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15419 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15420 scops have been code generated.
15421
7de2b688
BS
154222009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15423 * doc/gty.texi (Invoking the garbage collector): Added new node
15424 and section documenting ggc_collect.
15425
10bd6c5c
RG
154262009-01-14 Richard Guenther <rguenther@suse.de>
15427
15428 PR tree-optimization/38826
15429 PR middle-end/38477
15430 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15431 initialization notes only if we actually emitted a warning.
15432 (intra_create_variable_infos): Add constraints for a result decl
15433 that is passed by hidden reference.
15434 (build_pred_graph): Mark all related variables non-direct on
15435 address-taking.
15436
9c7c70ee
NC
154372009-01-14 Nick Clifton <nickc@redhat.com>
15438
15439 * ira-conflicts.c: Include addresses.h for the definition of
15440 base_reg_class.
435da628
UB
15441 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15442 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15443
cf0c2a60
VM
154442009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15445
15446 PR target/38811
15447 * Makefile.in (ira-lives.o): Add except.h.
15448
15449 * ira-lives.c: Include except.h.
15450 (process_bb_node_lives): Process can_throw_internal.
15451
d3302fd3
JJ
154522009-01-13 Jakub Jelinek <jakub@redhat.com>
15453
15454 PR rtl-optimization/38774
15455 * combine.c (simplify_set): When undoing cc_use change, don't do
15456 PUT_CODE on the newly created comparison, but instead put back the
15457 old comparison.
15458
7ab23fd0
JM
154592009-01-13 Joseph Myers <joseph@codesourcery.com>
15460
15461 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15462 values. Remove duplicate arm8 entry.
15463
f9344488
SP
154642009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15465
15466 PR tree-optimization/38786
15467 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15468 the SSA_NAME case of expand_scalar_variables_expr.
15469 Set the type of an expression to the type of its assign statement.
15470 (expand_scalar_variables_expr): Also gather the scalar computation
15471 used to index the memory access. Do not pass loop_p.
15472 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15473 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15474 the gimple_stmt_iterator where it inserts new code.
15475 Do not pass loop_p.
f9344488
SP
15476 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15477 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15478
2d8bb84d
SP
154792009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15480
15481 * graphite.h (debug_value): Removed.
15482 * graphite.c (debug_value): Removed.
15483
ff128632
RE
154842009-01-13 Richard Earnshaw <rearnsha@arm.com>
15485
435da628
UB
15486 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15487 ldrd/strd with two 32-bit instructions.
ff128632 15488
d5a0a47b
RE
154892009-01-13 Richard Earnshaw <rearnsha@arm.com>
15490
435da628
UB
15491 * config/arm/arm.c (struct processors): Pass for speed down into
15492 cost helper functions.
d5a0a47b
RE
15493 (const_ok_for_op): Handle COMPARE and inequality nodes.
15494 (arm_rtx_costs_1): Rewrite.
15495 (arm_size_rtx_costs): Update prototype.
15496 (arm_rtx_costs): Pass speed down to helper functions.
15497 (arm_slowmul_rtx_costs): Rework cost calculations.
15498 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15499 (arm_9e_rtx_costs): Likewise.
15500
26d5bf5b
UB
155012009-01-13 Uros Bizjak <ubizjak@gmail.com>
15502
15503 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15504 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15505 (alpha_legitimize_address): Do not split local symbols wider than
15506 UNITS_PER_WORD into HIGH/LO_SUM parts.
15507
5d14e3d5
DS
155082009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15509
15510 PR bootstrap/38580
15511 * gcc.c (process_command): Replace call to execvp with calls
15512 to pex_one and exit.
15513
33faafca
AS
155142009-01-03 Anatoly Sokolov <aesok@post.ru>
15515
15516 PR target/29141
15517 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15518 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15519 variant for devices with 3-byte PC.
ba20e309 15520 (__tablejump_elpm__): New.
33faafca 15521
634b5df5
JJ
155222009-01-12 Jakub Jelinek <jakub@redhat.com>
15523
15524 PR c/32041
15525 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15526 offsetof member-designator, handle it as `[0].'.
15527
2842bb86
JDA
155282009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15529
15530 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15531 function when not using named sections on targets with named sections
15532 if branch distance is less than 262132.
15533
76ee70f6
RE
155342009-01-12 Richard Earnshaw <rearnsha@arm.com>
15535
15536 * combine.c (combine_instructions): Recompute
15537 optimize_this_for_speed_p for each BB in the main combine loop.
15538
f56e675d
TB
155392009-01-12 Tomas Bily <tbily@suse.cz>
15540
15541 PR middlend/38385
26d5bf5b
UB
15542 * tree-loop-distribution.c (prop_phis): New function.
15543 (generate_builtin): Call prop_phis.
15544 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15545
c2152239
JJ
155462009-01-12 Jakub Jelinek <jakub@redhat.com>
15547
15548 PR tree-optimization/38807
15549 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15550 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15551
0e510b3e
AN
155522009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15553
15554 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15555 subreg of op0 to the original op0.
15556
c95b2534 155572009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15558
15559 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15560
53a7ff9a
MS
155612009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15562
15563 PR debug/7055
60839f5d 15564 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15565 starting with digits.
15566
b3a796bc
JJ
155672009-01-10 Jakub Jelinek <jakub@redhat.com>
15568
15569 PR target/38695
15570 * config/arm/arm.c (arm_is_long_call_p): Don't call
15571 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15572
b21b850e
SB
155732009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15574
15575 * regrename.c (regrename_optimize): Fix dumping.
15576 (find_oldest_value_reg): Preserve REG_POINTER.
15577 (copy_hardreg_forward_1): Likewise.
15578
e0e10d3a
DN
155792009-01-09 Diego Novillo <dnovillo@google.com>
15580
bf9b2cc9 15581 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15582 the restrictions on its use.
15583 (gimple_uid): Tidy.
15584 (gimple_set_uid): Tidy.
15585
c9da2ae8
JJ
155862009-01-09 Jakub Jelinek <jakub@redhat.com>
15587
15588 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15589 zero guard even if align_bytes != 0 and count is smaller than
15590 size_needed.
15591
38432148 155922009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15593
15594 PR rtl-optimization/38495
26d5bf5b 15595 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15596 (add_range_and_copies_from_move_list): Print all added ranges.
15597 Add ranges to memory optimized destination.
15598
260fda3d
JJ
155992009-01-09 Jakub Jelinek <jakub@redhat.com>
15600
6f6278ad
JJ
15601 PR target/38686
15602 PR target/38708
15603 * config/i386/i386.c (override_options): Reject
15604 -mstringop-strategy=rep_8byte with -m32.
15605 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15606 to 1. Do count comparison against epilogue_size_needed at compile
15607 time even when count_exp was constant forced into register. For
15608 size_needed don't jump to epilogue, instead just avoid aligning
15609 and invoke the body algorithm. If need_zero_guard, add zero guard
15610 even if count is non-zero, but smaller than size_needed + number of
15611 bytes that could be stored for alignment.
15612 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15613 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15614 but smaller than size_needed + number of bytes that could be stored
15615 for alignment. Compare size_needed with epilogue_size_needed instead
15616 of desired_align - align, don't adjust size_needed, pass
15617 epilogue_size_needed to the epilogue expanders.
15618
260fda3d 15619 PR c/35742
26d5bf5b 15620 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15621
67b846fa
JDA
156222009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15623
15624 * pa.c (last_address): Change to unsigned.
15625 (update_total_code_bytes): Change argument to unsigned. Don't
15626 check if insn addresses are set.
15627 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15628 addresses are not set.
15629 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15630
91c82473
NC
156312009-01-09 Nick Clifton <nickc@redhat.com>
15632
15633 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15634 DECL_DECLARED_INLINE_P.
15635
4017e262
JJ
156362009-01-09 Jakub Jelinek <jakub@redhat.com>
15637
0a49e5c2
JJ
15638 PR middle-end/38347
15639 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15640 GET_MODE (op0) in operand_subword_force calls.
15641
4017e262
JJ
15642 PR middle-end/38771
15643 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15644 fold_convert arg0 operands to TREE_TYPE (op0) first.
15645
7cd06356
VM
156462009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15647
15648 * params.def (ira-max-conflict-table-size): Decrease default value
15649 to 1000.
15650
96867bbd
JJ
156512009-01-08 Jakub Jelinek <jakub@redhat.com>
15652
15653 PR tree-optimization/37031
15654 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15655 on parameter_set.
15656 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15657 allocate it using gc instead of heap, use VEC_quick_push instead of
15658 VEC_safe_push.
15659 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15660 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15661 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15662 allocated vector from heap allocated.
15663 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15664 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15665 vector only after perfect_loop_nest_depth call.
15666
68f61c3d
SP
156672009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15668 Jan Sjodin <jan.sjodin@amd.com>
15669
15670 PR tree-optimization/38559
15671 * graphite.c (debug_value, copy_constraint,
15672 swap_constraint_variables, scale_constraint_variable, ): New.
15673 (get_lower_bound, get_upper_bound): Removed.
15674 (graphite_trans_bb_strip_mine): Clean up this code that works
15675 only for constant number of iterations. Fully copy upper and
15676 lower bound constraints, not only the constant part of them.
15677 * graphite.h (debug_value): Declared.
15678
82567e33
IR
156792009-01-08 Ira Rosen <irar@il.ibm.com>
15680
15681 PR tree-optimization/37194
15682 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15683 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15684 outside cost in case of known number of iterations.
15685
7da13f1d
NF
156862009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15687 Alan Modra <amodra@bigpond.net.au>
15688
15689 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15690 non-word-aligned REG+CONST addressing.
15691
c0f64575
UB
156922009-01-07 Uros Bizjak <ubizjak@gmail.com>
15693
15694 PR target/38706
15695 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15696 free_after_compilation when outputting a thunk.
15697 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15698 Do not call free_after_compilation here.
15699
301b6a4e
UB
157002009-01-07 Uros Bizjak <ubizjak@gmail.com>
15701
15702 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15703 (ix86_valid_target_attribute_inner_p): Ditto.
15704
6a114766
JS
157052009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15706
15707 PR tree-optimization/38492
15708 PR tree-optimization/38498
15709 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15710 * tree-chrec.h (scev_is_linear_expression): Declared.
15711 * graphite.c (graphite_cannot_represent_loop_niter): New.
15712 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15713 (graphite_loop_normal_form): Use gcc_assert.
15714 (scan_tree_for_params): Use CASE_CONVERT.
15715 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15716 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15717 Use gcc_assert. Discard scops that contain unhandled cases.
15718 (build_scop_conditions): Return a boolean status for unhandled cases.
15719 (strip_mine_profitable_p): Print the loop number, not its depth.
15720 (is_interchange_valid): Pass the depth of the loop nest, don't
15721 recompute it wrongly.
15722 (graphite_trans_bb_block): Same.
15723 (graphite_trans_bb_block): Print tentative of loop blocking.
15724 (graphite_trans_scop_block): Do not print that the loop has been
15725 blocked.
15726 (graphite_transform_loops): Do not handle scops that contain condition
15727 scalar phi nodes.
15728
65b82caa
L
157292009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15730
15731 AVX Programming Reference (December, 2008)
15732 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15733 (_mm256_stream_pd): Likewise.
15734 (_mm256_stream_ps): Likewise.
15735
15736 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15737 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15738 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15739 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15740 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15741 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15742 (ix86_expand_special_args_builtin): Likewise.
15743
15744 * config/i386/sse.md (AVXMODEDI): New.
15745 (avx_movnt<mode>): Likewise.
15746 (avx_movnt<mode>): Likewise.
15747 (<sse>_movnt<mode>): Remove AVX support.
15748 (sse2_movntv2di): Likewise.
15749
cef158f9
RG
157502009-01-07 Richard Guenther <rguenther@suse.de>
15751
15752 PR middle-end/38751
15753 * fold-const.c (extract_muldiv): Remove obsolete comment.
15754 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15755 to PLUS_EXPR canonicalization for the canonicalization.
15756
246cb5be
GP
157572009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15758
15759 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15760 hosted cross-compilers generating less efficient code.
15761
84b9b872
RS
157622009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15763
15764 * function.h (rtl_data): Add a dbr_scheduled_p field.
15765 * reorg.c (dbr_schedule): Set it.
15766 (gate_handle_delay_slots): Check it.
15767 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15768 (mips_reorg): Check flag_delayed_branch instead of
15769 mips_base_delayed_branch.
15770 (mips_override_options): Don't set mips_base_delayed_branch
15771 or flag_delayed_branch.
15772
ace984c8
RS
157732009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15774
15775 PR rtl-optimization/38426.
15776 * ira.c (ira): Set current_function_is_leaf earlier.
15777
7ad7809b
JJ
157782009-01-06 Jakub Jelinek <jakub@redhat.com>
15779
15780 PR rtl-optimization/38722
15781 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15782 too early, only set a flag and modify after last possible
15783 undo_all point.
15784
c52ec948
JJ
157852009-01-06 Janis Johnson <janis187@us.ibm.com>
15786
15787 PR c/34252
15788 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15789 * real.c (decimal_single_format): Correct values of emin and emax.
15790 (decimal_double_format): Ditto.
15791 (decimal_quad_format): Ditto.
15792 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15793 computation of DECnn_MIN and DECnn_MAX for corrected values of
15794 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15795 __DECnn_MIN__, and adjust its computation for the corrected value
15796 of emin.
15797
300240e1
JH
157982009-01-06 Jan Hubicka <jh@suse.cz>
15799
15800 PR target/38744
435da628 15801 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15802
271c069e
GP
158032009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15804
15805 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15806 Add Robert Clark to the list of testers.
15807
64e4c301 158082009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15809 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15810
435da628
UB
15811 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15812 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15813
7650b83e 158142009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15815 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15816
435da628
UB
15817 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15818 for w64 ABI.
15819 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15820 (ix86_nsaved_regs): Count only general purpose regs.
15821 (ix86_nsaved_sseregs): New.
15822 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15823 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15824 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15825 general purpose regs.
7650b83e
JH
15826 (ix86_emit_save_sse_regs_using_mov): New.
15827 (ix86_expand_prologue): Save SSE regs if needed.
15828 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15829 (ix86_emit_restore_sse_regs_using_mov): New.
15830 (ix86_expand_epilogue): Save SSE regs if needed.
15831
9aa5c1b2 158322009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15833 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15834
435da628
UB
15835 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15836 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15837 functions when accumulate outgoing args is off.
9aa5c1b2 15838
f7556aae
L
158392009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15840
15841 PR bootstrap/38742
15842 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15843 before using pseudos_have_intersected_live_ranges_p.
15844
15845 * ira-int.h (ira_assert): Always define.
15846
e47b7d04
L
158472009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15848
15849 AVX Programming Reference (December, 2008)
15850 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15851 (_mm256_permute2_pd): Likewise.
15852 (_mm_permute2_ps): Likewise.
15853 (_mm256_permute2_ps): Likewise.
15854 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15855 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15856
15857 * config/i386/i386.c (ix86_builtins): Remove
15858 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15859 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15860 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15861 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15862 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15863 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15864 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15865 __builtin_ia32_vpermil2ps256.
15866 (ix86_init_mmx_sse_builtins): Updated.
15867 (ix86_expand_args_builtin): Likewise.
15868
44b86471
JDA
158692009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15870
e47b7d04
L
15871 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15872 long absolute calls when generating PA 2.0 code.
44b86471 15873
311aab06
VM
158742009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15875
15876 PR rtl-optimization/38583
15877 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15878
15879 * params.def (ira-max-conflict-table-size): New.
15880
15881 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15882
311aab06 15883 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15884
311aab06
VM
15885 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15886 table. Report this. Return result of building.
15887 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15888 building conflict table.
15889
301b6a4e 15890 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15891 (ira_color): Use ira_conflicts_p.
2ba9daa7 15892
311aab06
VM
15893 * global.c: Include ira.h.
15894 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15895 ira_conflicts_p.
15896
15897 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15898
311aab06
VM
15899 * ira-build.c (mark_all_loops_for_removal,
15900 propagate_some_info_from_allocno): New.
15901 (remove_unnecessary_allocnos): Call
15902 propagate_some_info_from_allocno.
15903 (remove_low_level_allocnos): New.
15904 (remove_unnecessary_regions): Add parameter. Call
15905 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15906 parameter to remove_unnecessary_regions.
15907 (ira_build): Remove all regions but root if the conflict table was
15908 not built. Update conflict hard regs for allocnos crossing calls.
15909
15910 * ira.c (ira_conflicts_p): New global.
15911 (ira): Define and use ira_conflicts_p.
15912
15913 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15914 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15915 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15916
5641785f
BE
159172009-01-06 Ben Elliston <bje@au.ibm.com>
15918
15919 * gengtype-lex.l (YY_NO_INPUT): Define.
15920
e4e5261f
AP
159212009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15922
15923 PR c/34911
5641785f
BE
15924 * c-common.c (handle_vector_size_attribute): Also reject
15925 BOOLEAN_TYPE types.
e4e5261f 15926
7b10257f
SP
159272009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15928
15929 PR tree-optimization/38492
15930 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15931 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15932 rename_map_elt_info, eq_rename_map_elts,
15933 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15934 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15935 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15936 (sese_build_livein_liveouts): New.
15937 (new_sese, free_sese): New.
15938 (new_scop): Call new_sese.
15939 (free_scop): Call free_sese.
15940 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15941 (register_old_new_names): Renamed register_old_and_new_names.
15942 (register_scop_liveout_renames, add_loop_exit_phis,
15943 insert_loop_close_phis, struct igp,
15944 default_liveout_before_guard, add_guard_exit_phis,
15945 insert_guard_phis, copy_renames): New.
15946 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15947 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15948 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15949 (scop_adjust_phis_for_liveouts): New.
15950 (gloog): Call scop_adjust_phis_for_liveouts.
15951
15952 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15953 num_ver and livein.
7b10257f
SP
15954 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15955 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15956 (struct scop): Added field liveout_renames.
15957 (SCOP_LIVEOUT_RENAMES): New.
15958
9761fcc7
HJ
159592009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15960
15961 PR tree-optimization/38510
15962 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15963 (translate_clast): Call recompute_all_dominators before
15964 graphite_verify.
15965 (gloog): Call recompute_all_dominators before graphite_verify.
15966
159672009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15968 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15969
15970 PR tree-optimization/38500
15971 * graphite.c (create_sese_edges): Call fix_loop_structure after
15972 splitting blocks.
15973
c95b2534 159742009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15975
15976 * config.gcc: Add m32r*-*-rtems*.
15977 * config/m32r/rtems.h: New file.
15978
fc0cd180
BE
159792009-01-05 Ben Elliston <bje@au.ibm.com>
15980
15981 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15982 (.po.pox): Likewise.
15983 (po/gcc.pot): Likewise.
15984
3106d8e5
DM
159852009-01-04 David S. Miller <davem@davemloft.net>
15986
15987 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15988 (STARTING_FRAME_OFFSET): Always set to zero.
15989
0009b473
RS
159902009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15991
15992 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15993 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15994 fixed-point types, and vectors of the same.
15995
4f24c6d6
RS
159962009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15997
15998 * config/mips/sync.md (*mb_barrier): Rename to...
15999 (*memory_barrier): ...this.
16000
1df48f5c
JW
160012009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
16002
16003 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 16004 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
16005 and put in alphabetical order. Fix 'target' name and put in order.
16006 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16007 typos.
16008
1a8c13b3
UB
160092009-01-04 Uros Bizjak <ubizjak@gmail.com>
16010
16011 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16012 (memory_barrier): Expand as unspec instead of unspec_volatile.
16013 Remove mem:BLK from insn operands. Use Pmode scratch register.
16014 (*memory_barrier): Define as unspec instead of unspec_volatile.
16015 Use (match_dup 0) as input operand.
16016
16017 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16018 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16019 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16020 scratch register. Remove operand 1.
16021 (*stbar): Define as unspec instead of unspec_volatile.
16022 Use (match_dup 0) as input operand, remove (const_int 8).
16023 (*membar): Define as unspec instead of unspec_volatile.
16024 Use (match_dup 0) as input operand, remove input operand 2.
16025
16026 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16027 (memory_barrier): Expand as unspec instead of unspec_volatile.
16028 Remove mem:BLK from insn operands. Use Pmode scratch register.
16029 (*memory_barrier): Define as unspec instead of unspec_volatile.
16030 Use (match_dup 0) as input operand.
16031
16032 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16033 Remove mem:BLK from insn operands. Use Pmode scratch register.
16034 Set volatile flag on operand 0.
16035 (*memory_barrier): New insn pattern.
16036
16037 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16038 insn operands.
16039 (*memory_barrier): Use (match_dup 0) as input operand.
16040
16041 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16042 Remove mem:BLK from insn operands. Use Pmode scratch register.
16043 Set volatile flag on operand 0.
301b6a4e 16044 (*mb_internal): New insn pattern.
1a8c13b3
UB
16045
16046 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16047
fb0703f7
SB
160482009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16049
16050 PR middle-end/38586
16051 * function.c (struct temp_slot): Move to the section of the file
16052 that deals with temp slots. Remove field 'address'.
16053 (temp_slot_address_table): New hash table of address -> temp slot.
16054 (struct temp_slot_address_entry): New struct, items for the table.
16055 (temp_slot_address_compute_hash, temp_slot_address_hash,
16056 temp_slot_address_eq, insert_temp_slot_address): Support functions
16057 for the new table.
16058 (find_temp_slot_from_address): Rewrite to use the new hash table.
16059 (remove_unused_temp_slot_addresses): Remove addresses of temp
16060 slots that have been made available.
16061 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16062 worker function for remove_unused_temp_slot_addresses.
16063 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16064 Add the temp slot address to the address -> temp slot map.
16065 (update_temp_slot_address): Update via insert_temp_slot_address.
16066 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16067 (pop_temp_slots): Likewise.
16068 (init_temp_slots): Allocate the address -> temp slot map, or empty
16069 the map if it is already allocated.
16070 (prepare_function_start): Initialize temp slot processing.
16071
b5a430f3
SB
160722009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16073
16074 PR middle-end/38584
16075 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16076 Calculate the size of all stack vars assuming no packing of stack
16077 vars will happen, replacing a quadratic algorithm with a linear one.
16078
5d560619
JJ
160792009-01-03 Jakub Jelinek <jakub@redhat.com>
16080
16081 PR target/38707
16082 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16083 can't be used.
16084
953a7caa
DN
160852009-01-03 Diego Novillo <dnovillo@google.com>
16086
16087 * doc/contrib.texi: Update contributions.
16088
5f26a230
JJ
160892009-01-03 Jakub Jelinek <jakub@redhat.com>
16090
493aa551
JJ
16091 PR c++/38705
16092 * builtins.c (fold_builtin_memory_op): Give up if either operand
16093 is volatile. Set srctype or desttype to non-qualified version
16094 of the other type.
16095
5f26a230
JJ
16096 PR c/38700
16097 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16098 and FUNCTION_DECLs.
16099
c95b2534 161002009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16101
16102 PR rtl-optimization/35805
16103 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16104 problem if fast dce is able to remove any instructions.
16105 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16106
0b355794
MM
161072009-01-02 Mark Mitchell <mark@codesourcery.com>
16108
16109 PR 33649
16110 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16111
0cf0d02b
JJ
161122009-01-02 Jakub Jelinek <jakub@redhat.com>
16113
16114 PR middle-end/38690
16115 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16116 * tree-pretty-print.c (op_code_prio): New function.
16117 (op_prio): No longer static. Use op_code_prio.
16118 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16119 Use op_prio and op_code_prio to determine if () should be
16120 printed around operand(s) or not.
16121
16122 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16123 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16124 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16125 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16126 pp_character instead of pp_string for single letter printing.
16127
e3606f3b
RS
161282009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16129
16130 * doc/extend.texi: Fix '#pragma GCC option' typo.
16131
c95b2534 161322009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16133
a5f061dc
RG
16134 * doc/install.texi (--enable-checking): Mention different
16135 default for stage1.
16136 (--enable-stage1-checking): Document.
00f39bd5 16137
26de0bcb
AP
161382009-01-01 Andrew Pinski <pinskia@gmail.com>
16139
16140 PR middle-end/30142
16141 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16142 case to be an error.
16143
7a7d8fab
BE
161442009-01-02 Ben Elliston <bje@au.ibm.com>
16145
16146 * config/fp-bit.h (pack_d): Constify argument.
16147 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16148 (isnan): Constify argument.
16149 (isinf): Likewise.
16150 (iszero): Likewise.
16151 (pack_d): Likewise.
16152 (_fpadd_parts): Constify return type.
16153 (_fpmul_parts): Likewise.
16154 (_fpdiv_parts): Likewise.
16155
b295aee2
JJ
161562009-01-01 Jakub Jelinek <jakub@redhat.com>
16157
16158 PR c/36489
16159 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16160 warn about overwriting initializer with side-effects or
16161 -Woverride-init if !IMPLICIT.
16162 (output_init_element): Likewise. Pass IMPLICIT down to
16163 add_pending_init.
16164 (process_init_element): Add IMPLICIT argument. Pass it down
16165 to output_init_element.
16166 (push_init_element, pop_init_level, set_designator): Adjust
16167 process_init_element callers.
16168 (set_nonincremental_init, set_nonincremental_init_from_string):
16169 Adjust add_pending_init callers.
16170 (output_pending_init_elements): Adjust output_init_element callers.
16171 * c-tree.h (process_init_element): Adjust prototype.
16172 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16173 process_init_element callers.
ad41bd84
JM
16174
16175\f
16176Copyright (C) 2009 Free Software Foundation, Inc.
16177
16178Copying and distribution of this file, with or without modification,
16179are permitted in any medium without royalty provided the copyright
16180notice and this notice are preserved.