]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
plugins.texi: Document plugin_is_GPL_compatible.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
fca5bb5c
DN
12009-06-18 Diego Novillo <dnovillo@google.com>
2
3 * doc/plugins.texi: Document plugin_is_GPL_compatible.
4 * plugin.c (str_license): Declare.
5 (try_init_one_plugin): Assert that the symbol
6 'plugin_is_GPL_compatible' exists.
7
b6680d72
SD
82009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
9
10 * see.c: Remove.
11 * Makefile.in (OBJS-common): Remove see.o.
12 (see.o): Remove.
13 * common.opt (fsee): Mark as preserved for backward compatibility.
14 * opts.c (common_handle_option): Add OPT_fsee to the backward
15 compatibility section.
16 * passes.c (init_optimization_passes, pass_see): Remove pass.
17 * timevar.def (TV_SEE): Remove.
18 * tree-pass.h (pass_see): Remove declaration.
19 * doc/invoke.texi (-fsee): Remove documentation.
20 * testsuite/gcc.dg/20080522-1.c: Remove testcase.
21 * testsuite/gcc.dg/20080528-1.c: Remove testcase.
22
2a45675f
MJ
232009-06-18 Martin Jambor <mjambor@suse.cz>
24
25 * tree-sra.c: Include statistics.h
26 (sra_stats): New variable.
27 (sra_initialize): Clear sra_stats.
28 (create_access_replacement): Increment sra_stats.replacements.
29 (get_access_replacement): Do not return twice.
30 (analyze_all_variable_accesses): Increment statistics counter by the
31 number of scalarized aggregates.
32 (generate_subtree_copies): Increment sra_stats.subtree_copies.
33 (sra_modify_expr): Increment sra_stats.exprs.
34 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
35 (sra_modify_assign): Increment sra_stats.exprs,
36 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
37 (perform_intra_sra): Update statistics counters.
38 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
39
bdc4827b
SL
402009-06-18 Sandra Loosemore <sandra@codesourcery.com>
41
42 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
43 (arm_scalar_mode_supported_p): New function.
44
d9dd51dc
PB
452009-06-18 Paul Brook <paul@codesourcery.com>
46 Sandra Loosemore <sandra@codesourcery.com>
47
48 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
49 (__extendhfsf2, __truncsfhf2): Define.
50 * config/arm/fp16.c: New file.
51 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
52 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
53
0fd8c3ad
SL
542009-06-18 Sandra Loosemore <sandra@codesourcery.com>
55
56 * doc/extend.texi (Half-Precision): New section.
57 * doc/invoke.texi (Option Summary): List -mfp16-format.
58 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
59 * config/arm/arm.opt (mfp16-format=): New.
60 * config/arm/arm.c: Include intl.h.
61 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
62 (TARGET_INVALID_RETURN_TYPE): Redefine.
63 (TARGET_PROMOTED_TYPE): Redefine.
64 (TARGET_CONVERT_TO_TYPE): Redefine.
65 (arm_fp16_format): Define.
66 (all_fpus): Add entry for neon-fp16.
67 (fp_model_for_fpu): Likewise.
68 (struct fp16_format): Declare.
69 (all_fp16_formats): Define.
70 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
71 functions.
72 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
73 and no ldrh.
74 (arm_legitimate_index_p): Treat HFmode like HImode.
75 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
76 (coproc_secondary_reload_class): Special-case HFmode.
77 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
78 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
79 (arm_init_fp16_builtins): New.
80 (arm_init_builtins): Call it.
81 (arm_invalid_parameter_type): New.
82 (arm_invalid_return_type): New.
83 (arm_promoted_type): New.
84 (arm_convert_to_type).
85 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
86 format.
87 (arm_emit_fp16_const): New function.
88 (arm_mangle_type): Mangle __fp16 as "Dh".
89 * config/arm/arm.h (TARGET_VFPD32): Make it know about
90 FPUTYPE_NEON_FP16.
91 (TARGET_NEON_FP16): New.
92 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
93 (enum fputype): Add FPUTYPE_NEON_FP16.
94 (enum arm_fp16_format_type): Declare.
95 (arm_fp16_format): Declare.
96 (LARGEST_EXPONENT_IS_NORMAL): Define.
97 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
98 * config/arm/arm-modes.def (HFmode): Define.
99 * config/arm/vfp.md: (*movhf_vfp): New.
100 (extendhfsf2): New.
101 (truncsfhf2): New.
102 * config/arm/arm.md: (fpu): Add neon_fp16.
103 (floatsihf2, floatdihf2): New.
104 (fix_trunchfsi2, fix_trunchfdi2): New.
105 (truncdfhf2): New.
106 (extendhfdf2): New.
107 (movhf): New.
108 (*arm32_movhf): New.
109 (*thumb1_movhf): New.
110 (consttable_2): Add check for HFmode constants.
111 (consttable_4): Handle HFmode constants.
112
2c2f70e1
UB
1132009-06-18 Uros Bizjak <ubizjak@gmail.com>
114
115 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
116
db4fa1c1
OH
1172009-06-17 Olivier Hainque <hainque@adacore.com>
118
119 * collect2.c (main): Use CONST_CAST2 to perform char ** to
120 const char ** conversion in AIX specific section.
121
6bec4135
L
1222009-06-17 H.J. Lu <hongjiu.lu@intel.com>
123
124 * config/i386/i386.c (ix86_special_builtin_type): Remove
125 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
126 (bdesc_special_args): Updated.
127 (ix86_init_mmx_sse_builtins): Likewise.
128 (ix86_expand_special_args_builtin): Likewise.
129
958d6d58
RH
1302009-06-17 Richard Henderson <rth@redhat.com>
131
132 * tree-pretty-print.c (maybe_dump_asm_name): New.
133 (dump_decl_name): Use it.
134 (PRINT_FUNCTION_NAME): Merge into...
135 (dump_function_name): ... here. Use maybe_dump_asm_name.
136
ed5ef2e4
CC
1372009-06-17 Cary Coutant <ccoutant@google.com>
138
139 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
140 Change caller.
141 * debug.c (struct gcc_debug_hooks): Change placeholder for
142 source_line hook.
143 (debug_nothing_int_charstar_int): Replaced by...
144 (debug_nothing_int_charstar_int_bool): ...this.
145 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
146 source_line prototype.
147 (debug_nothing_int_charstar_int): Replaced by...
148 (debug_nothing_int_charstar_int_bool): ...this.
149 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
150 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
151 Output is_stmt operand when necessary.
01a0acb7 152 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
153 (notice_source_line): Add is_stmt parameter.
154 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
155 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
156 Change callers.
157 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
158 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
159
b0f43ca0
ILT
1602009-06-17 Ian Lance Taylor <iant@google.com>
161
162 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
163 Change all uses.
164 (struct store_by_pieces_d): Rename from store_by_pieces. Change
165 call uses.
166
23314e77
AN
1672009-06-17 Adam Nemet <anemet@caviumnetworks.com>
168
169 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
170 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
171 tree_strip_sign_nop_conversions and
172 tree_ssa_strip_useless_type_conversions rather than stripping
173 the operations here.
174 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
175 Declare them.
176 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
177 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
178 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
179 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
180 functions.
181
799dbb0f
ME
1822009-06-17 Michael Eager <eager@eagercon.com>
183
c637b0fa
UB
184 * config/rs6000/constraints.md (register_constraint "d"): New.
185 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
186 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
187 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
188 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
189 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
190 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
191 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
192 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
193 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
194 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
195 __fctiwz): Same.
196 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
197 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
198 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
199 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
200 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
201 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
202 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
203 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
204 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
205 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
206 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
207 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
208 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
209 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
210
1469de3c
ILT
2112009-06-16 Ian Lance Taylor <iant@google.com>
212
213 * profile.c (total_num_never_executed): Don't define.
214 (compute_branch_probabilities): Don't count or print
215 num_never_executed.
216 (init_branch_prob): Don't set total_num_never_executed.
217 (end_branch_prob): Don't print total_num_never_executed.
218
2cb0a60d
DD
2192009-06-17 David Daney <ddaney@caviumnetworks.com>
220
c637b0fa 221 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 222
82882240
DE
2232009-06-17 David Edelsohn <edelsohn@gnu.org>
224
225 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
226 (nabstd2_fpr): Same.
227
a1a65f89
SE
2282009-06-17 Steve Ellcey <sje@cup.hp.com>
229
230 * expr.c (expand_assignment): Change complex type check.
231
07ae5620
BS
2322009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
233
234 * doc/plugins.texi (Building GCC plugins): Added new section.
235
5eb4df45
ILT
2362009-06-17 Ian Lance Taylor <iant@google.com>
237
238 * c-pch.c (get_ident): Don't set size of templ array.
239 (pch_init): Don't set size of partial_pch array.
240
241 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
242 string constant to intialize an array whose size is the length of
243 the string.
244
4d61856d
RG
2452009-06-17 Richard Guenther <rguenther@suse.de>
246
247 PR tree-optimization/40389
248 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
249 to addressable types.
250 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
251
3cb8677c
RG
2522009-06-17 Richard Guenther <rguenther@suse.de>
253
254 PR middle-end/40460
255 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
256 if there is no evolution of left in the loop bail out.
257 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
258 chrec_fold_multiply.
259
a4d99c86
R
2602009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
261 Janis Johnson <janis187@us.ibm.com>
262
263 PR target/39254
264 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
265 for the symbol ref of a constant that is the source of a move
266 - nor for any other not-obvious-label-ref constants.
267
8dd1bca0
OR
2682009-06-16 Olatunji Ruwase <tjruwase@google.com>
269
1469de3c 270 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
271 traversal to avoid repeated insertion.
272
8019538f
ILT
2732009-06-16 Ian Lance Taylor <iant@google.com>
274
275 * vec.h (VEC_stack_alloc): Define different version if
276 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
277 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
278 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
279 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
280
7c45393e
L
2812009-06-16 H.J. Lu <hongjiu.lu@intel.com>
282
283 * config.gcc (extra_headers): Add ia32intrin.h for x86.
284
285 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
286 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
287 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
288 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
289 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
290 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 291 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
292 (bdesc_special_args): Add __builtin_ia32_rdtsc and
293 __builtin_ia32_rdtscp.
294 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
295 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 296 and __builtin_ia32_rorhi.
7c45393e
L
297 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
298 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 299 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
300 (ix86_expand_args_builtin): Likewise.
301 (ix86_expand_special_args_builtin): Likewise.
302
303 * config/i386/i386.md (UNSPECV_RDTSCP): New.
304 (UNSPECV_RDTSC): Likewise.
305 (UNSPECV_RDPMC): Likewise.
c637b0fa 306 (*bsr): Renamed to ...
7c45393e 307 (bsr): This
c637b0fa 308 (*bsr_rex64): Renamed to ...
7c45393e
L
309 (bsr_rex64): This.
310 (rdpmc): New.
311 (*rdpmc): Likewise.
312 (*rdpmc_rex64): Likewise.
313 (rdtsc): Likewise.
314 (*rdtsc): Likewise.
315 (*rdtsc_rex64): Likewise.
316 (rdtscp): Likewise.
317 (*rdtscp): Likewise.
318 (*rdtscp_rex64): Likewise.
319
320 * config/i386/ia32intrin.h: New.
321
322 * config/i386/x86intrin.h: Include <ia32intrin.h>.
323
504b33d8
ILT
3242009-06-16 Ian Lance Taylor <iant@google.com>
325
326 * ira-build.c (copy_info_to_removed_store_destinations):
327 Initialize parent_a.
328
f9551830
ILT
3292009-06-16 Ian Lance Taylor <iant@google.com>
330
331 * c-decl.c (grokdeclarator): Change size_varies to bool.
332
c32e2175
ILT
3332009-06-16 Ian Lance Taylor <iant@google.com>
334
335 * sel-sched.c: Make forward declarations of move_op_hooks and
336 fur_hooks explicitly extern.
337
415a06c2
ILT
3382009-06-16 Ian Lance Taylor <iant@google.com>
339
c637b0fa 340 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
341 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
342
675f99c9
ILT
3432009-06-16 Ian Lance Taylor <iant@google.com>
344
345 * resource.c (mark_referenced_resources): Change
346 include_delayed_effects parameter to bool. Change all callers.
347 (mark_end_of_function_resources): Likewise.
348 * reorg.c (insn_references_resource_p): Likewise.
349 (insn_sets_resource_p): Likewise.
350 * resource.h (mark_referenced_resources): Update declaration.
351 (mark_end_of_function_resources): Update declaration.
352
a322799d
DE
3532009-06-16 David Edelsohn <edelsohn@gnu.org>
354
355 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
356
c58c92f5
DE
3572009-06-16 David Edelsohn <edelsohn@gnu.org>
358
359 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
360 GCC can bootstrap on AIX with GNU Binutils 2.20.
361
95228603
ILT
3622009-06-16 Ian Lance Taylor <iant@google.com>
363
364 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
365
9c727c9a
ILT
3662009-06-16 Ian Lance Taylor <iant@google.com>
367
368 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
369 inline, not extern inline.
370 (exact_log2): Likewise.
371 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
372 test CLZ_HWI.
373 (exact_log2): Likewise, but don't test CTZ_HWI.
374
5fd8300b
ILT
3752009-06-16 Ian Lance Taylor <iant@google.com>
376
377 * bitmap.c (bitmap_clear): Don't declare as inline.
378 * gimple.c (gimplify_assign): Likewise.
379 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
380 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
381 (sched_scan_info): Remove duplicate definition.
382
7d882b83
ILT
3832009-06-16 Ian Lance Taylor <iant@google.com>
384
385 * c-common.c (skip_evaluation): Don't define.
386 (c_inhibit_evaluation_warnings): Define global variable.
387 (overflow_warning): Check c_inhibit_evaluation_warnings rather
388 than skip_evaluation.
389 (convert_and_check, warn_for_div_by_zero): Likewise.
390 * c-common.h (skip_evaluation): Don't declare.
391 (c_inhibit_evaluation_warnings): Declare.
392 * c-parser.c (c_parser_typeof_specifier): Set
393 c_inhibit_evaluation_warnings rather than skip_evaluation.
394 (c_parser_conditional_expression): Likewise.
395 (c_parser_binary_expression): Likewise.
396 (c_parser_sizeof_expression): Likewise.
397 (c_parser_alignof_expression): Likewise.
398 * c-typeck.c (build_indirect_ref): Check
399 c_inhibit_evaluation_warnings rather than skip_evaluation.
400 (build_conditional_expr, build_binary_op): Likewise.
401
2e407842
RG
4022009-06-16 Richard Guenther <rguenther@suse.de>
403
404 * tree-ssa-alias.c (is_escape_site): Remove.
405 * tree-ssa-alias.h (enum escape_type): Remove.
406 (is_escape_site): Likewise.
407 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
408 via casts and asms without deferring to is_escape_site.
409
f2ff8872
JJ
4102009-06-16 Jakub Jelinek <jakub@redhat.com>
411
412 PR middle-end/40446
413 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
414 use gen_lowpart if op0 has complex mode.
415
de70bb20
RG
4162009-06-16 Richard Guenther <rguenther@suse.de>
417
418 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
419 variables add them to ESCAPED.
c637b0fa 420 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 421
daa0eeb8
RAE
4222009-06-16 Rafael Avila de Espindola <espindola@google.com>
423
424 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
425 make_decl_one_only.
426
0ec19b8c
MJ
4272009-06-16 Martin Jambor <mjambor@suse.cz>
428
429 PR tree-optimization/40432
430 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
431 check whether we need to force gimple register operand.
432
2b26b801
MJ
4332009-06-16 Martin Jambor <mjambor@suse.cz>
434
435 PR tree-optimization/40413
436 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
437 build_ref_for_offset.
438 (propagate_subacesses_accross_link): Fix a typo in a comment.
439
7c5222ff
IR
4402009-06-16 Ira Rosen <irar@il.ibm.com>
441
442 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
443 with additional parameter.
c637b0fa 444 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
445 vect_nested_cycle.
446 (enum vect_relevant): Add comments.
447 (vect_is_simple_reduction): Add new argument.
448 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
449 Detect nested cycles.
450 (vect_is_simple_reduction): Update documentation, add an argument to
451 distinguish inner-loop reduction from nested cycle, detect nested
452 cycles, fix printings and indentation, don't swap operands in case
453 of nested cycle.
454 (get_initial_def_for_reduction): Handle subtraction.
455 (vect_create_epilog_for_reduction): Add new argument to specify
456 reduction variable.
457 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
458 (vectorizable_reduction): Handle nested cycles. In case of nested
459 cycle keep track of the reduction variable position. Call
7c5222ff
IR
460 vect_is_simple_reduction with additional parameter. Use original
461 statement code in reduction epilogue for nested cycle. Call
462 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
463 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
464 inner-loop vectorization.
7c5222ff
IR
465 (vect_recog_widen_sum_pattern): Likewise.
466 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
467 and reductions.
468 (vect_mark_stmts_to_be_vectorized): Likewise.
469 (vect_get_vec_def_for_operand): Handle nested cycles.
470
d376d545
RW
4712009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
472
473 * doc/invoke.texi (Debugging Options): Fix option index entries
474 for -fdump-statistics, -frandom-seed add entries for
475 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
476 (FRV Options): Fix entries for -mTLS, -mtls.
477 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
478 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
479 (M68hc1x Options): Fix @itemx for -mnominmax.
480 (MCore Options): Fix entry for -mno-lsim.
481 (MMIX Options): Fix entry for -mabi=mmixware.
482 (PDP-11 Options): Fix entry for -mbcopy-builtin.
483
bd117bb6
BS
4842009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
485
486 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
487 Mention the plugin mode of gengtype.
c637b0fa 488 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
489 * gengtype.c: Updated copyright.
490 (plugin_files, nb_plugin_files) Added new static variables.
491 (measure_input_list) Care about plugin_files.
492 (write_rtx_next): Added early return in plugin mode.
493 (create_file): Updated copyright year in generated file. Added
494 asserts.
495 (oprintf): Added early return if NULL outf.
496 (get_output_file_with_visibility): Care of plugin_files.
497 (get_output_file_name): May return null.
498 (write_local): Added early return.
499 (put_mangled_filename): Ditto.
500 (finish_root_table): Added check for base_files.
501 (write_roots): Care about null when plugins.
502 (main): Added plugin mode.
503
e1b7793c
ILT
5042009-06-15 Ian Lance Taylor <iant@google.com>
505
c637b0fa 506 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
507 * gcov.c (read_count_file): Add braces around variables declared
508 before label.
509
510 * c.opt (Wjump-misses-init): New warning.
511 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
512 -Wall and -Wc++-compat if not already set.
513 (c_common_post_options): Clear warn_jump_misses_init if it was not
514 set.
515 * c-decl.c (struct c_binding): Change type field to a union with
516 new label field. Make it the first field in the struct. Update
517 references to type to use u.type instead.
518 (struct c_spot_bindings): Define.
519 (struct c_goto_bindings): Define.
520 (c_goto_bindings_p): Define, along with VECs.
521 (struct c_label_vars): Define.
522 (struct c_scope): Add has_label_bindings field.
523 (bind_label, set_spot_bindings): New static functions.
524 (decl_jump_unsafe, update_spot_bindings): New static functions.
525 (update_label_decls): New static function.
526 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
527 Update binding u.label field to shadowed field.
528 (c_binding_start_stmt_expr): New function.
529 (c_binding_end_stmt_expr): New function.
530 (pushdecl): Don't call c_begin_vm_scope.
531 (make_label): Add defining and p_label_vars parameters. Change
532 all callers.
533 (lookup_label): Correct test for whether a label has not yet been
534 defined. Call bind_label rather than bind.
535 (warn_about_goto): New static function.
536 (lookup_label_for_goto): New function.
537 (declare_label): Call bind_label rather than bind.
538 (check_earlier_gotos): New static function.
539 (define_label): Don't give errors about jumping into statement
540 expressions or scopes of variably modified types. Call
541 set_spot_bindings and check_earlier_gotos. Call bind_label
542 instead of bind. Don't set label_context_stack_se or
543 label_context_stack_vm.
544 (c_get_switch_bindings): New function.
545 (c_release_switch_bindings): New function.
546 (c_check_switch_jump_warnings): New function.
547 (start_function): Don't set label_context_stack_se or
548 label_context_stack_vm.
549 (finish_function): Likewise.
550 * c-typeck.c (label_context_stack_se): Don't define.
551 (label_context_stack_vm): Don't define.
552 (c_finish_goto_label): Call lookup_label_for_goto rather than
553 lookup_label. Don't give errors about jumping into a statement
554 expression or the scope of a variably modified type. Don't set
555 label_context_stack_se or label_context_stack_vm.
556 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
557 fields. Add bindings field.
558 (c_start_case): Don't set deleted fields. Set bindings field.
559 (do_case): Rework order of tests. Don't check blocked_stmt_expr
560 or blocked_vm. Call c_check_switch_jump_warnings.
561 (c_finish_case): Don't test blocked_stmt_expr field. Call
562 c_release_switch_bindings.
563 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
564 c_switch_stack. Don't walk label_context_stack_se labels. Don't
565 set label_context_stack_se. Call c_bindings_start_stmt_expr.
566 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
567 c_switch_stack. Don't walk label_context_stack_se labels. Don't
568 set label_context_stack_se. Call c_bindings_end_stmt_expr.
569 (c_begin_vm_scope, c_end_vm_scope): Don't define.
570 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
571 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
572 (C_DECL_UNJUMPABLE_VM): Don't define.
573 (C_DECL_UNDEFINABLE_VM): Don't define.
574 (struct c_label_list): Don't define.
575 (struct c_label_context_se): Don't define.
576 (struct c_label_context_vm): Don't define.
577 (struct c_spot_bindings): Declare.
578 (c_bindings_start_stmt_expr): Declare.
579 (c_bindings_end_stmt_expr): Declare.
580 (lookup_label_for_goto): Declare.
581 (c_get_switch_bindings, c_release_switch_bindings): Declare.
582 (c_check_switch_jump_warnings): Declare.
583 (label_context_stack_se, label_context_stack_vm): Don't declare.
584 (c_finish_goto_label): Update declaration.
585 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
586 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
587 (Warning Options): Document -Wjump-misses-init.
588
98a129b9
JJ
5892009-06-15 Jakub Jelinek <jakub@redhat.com>
590
591 * tree-object-size.c (addr_object_size): Fix a pasto in the last
592 change.
593
19751f1f
RAE
5942009-06-15 Rafael Avila de Espindola <espindola@google.com>
595
596 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
597
d40eb158
AH
5982009-06-15 Aldy Hernandez <aldyh@redhat.com>
599
600 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
601
6022009-06-15 Aldy Hernandez <aldyh@redhat.com>
603
604 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
605
fc26fae3
RAE
6062009-06-15 Rafael Avila de Espindola <espindola@google.com>
607
608 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
609 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
610 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
611 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
612 * dwarf2asm.c (dw2_force_const_mem): Update call to
613 make_decl_one_only.
fc26fae3
RAE
614 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
615 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
616 * langhooks.c (lhd_comdat_group): Remove.
617 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
618 * tree.h (DECL_COMDAT_GROUP): New.
619 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
620 (tree_decl_with_vis): Add comdat_group. Remove one_only.
621 (make_decl_one_only): Change signature.
622 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
623 make_decl_one_only.
624 (make_decl_one_only): Change signature.
625 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
626
0eb92735
RG
6272009-06-15 Richard Guenther <rguenther@suse.de>
628
629 PR middle-end/40439
630 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
631
0ab352d5
AK
6322009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
633
634 * tree-ssa-math-opts.c: Remove extra divide.
635
677fbff4
AK
6362009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
637
638 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
639
03bd2f1a
AK
6402009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
641
642 * passes.c: Add bswap pass.
643 * tree-pass.h: Add pass_optimize_bswap declaration.
644 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
645 Include rtl.h, expr.h and optabs.h for optab_handler check.
646 (struct symbolic_number, pass_optimize_bswap): New definition.
647 (do_shift_rotate, verify_symbolic_number_p): New functions.
648 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
649 (gate_optimize_bswap): New function.
650 * tree.c (widest_int_cst_value): New function.
651 * tree.h (widest_int_cst_value): Prototype added.
652
fb4c4640
SB
6532009-06-14 Steven Bosscher <steven@gcc.gnu.org>
654
655 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
656 REG_EQUAL/REG_EQUIV notes.
657
1d24fdd9
RG
6582009-06-14 Richard Guenther <rguenther@suse.de>
659
660 PR middle-end/40389
661 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
662 has its address taken if NRV was applied and it is addressable.
663 * tree-ssa-structalias.c (get_constraint_for_address_of): New
664 function split out from ...
665 (get_constraint_for_1): ... here.
666 (handle_rhs_call): Use it to mark the return slot escaped if
667 it is addressable and NRV was applied.
668
4b29c5e5
AH
6692009-06-13 Aldy Hernandez <aldyh@redhat.com>
670
671 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
672 Change first argument type to location_t.
673 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
674 Do not set input_location.
675 Use loc instead of input_location throughout.
676
e1e6dc73
RG
6772009-06-13 Richard Guenther <rguenther@suse.de>
678
1d24fdd9 679 PR tree-optimization/40421
e1e6dc73
RG
680 * tree-predcom.c (should_unroll_loop_p): Remove.
681 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
682
8012b923
MM
6832009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
684
685 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
686 Add location argument.
687
4c4bde29
AH
6882009-06-13 Aldy Hernandez <aldyh@redhat.com>
689
690 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
691 build_decl.
692 * config/s390/s390.c (s390_build_builtin_va_list): Same.
693 (s390_gimplify_va_arg): Pass location to create_artificial_label.
694 * config/spu/spu-protos.h: Add location to
695 spu_resolve_overloaded_builtin.
696 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
697 spu_build_builtin_va_list.
698 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
699 argument. Pass location to build_function_call_vec.
700 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
701 build_decl.
702 (emit_fpu_switch): Same.
703 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
704 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
705 to build_decl and create_artificial_label.
706 (xtensa_gimplify_va_arg_expr): Same.
707 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
708 (xstormy16_gimplify_va_arg_expr): Same.
709 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
710 * config/arm/arm.c (arm_build_builtin_va_list): Same.
711 * config/mips/mips.c (mips_build_builtin_va_list): Same.
712 (mips16_build_function_stub): Same.
713 (mips16_build_call_stub): Same.
714
81beb031
RE
7152009-06-13 Richard Earnshaw <rearnsha@arm.com>
716
717 PR target/40327
718 * arm/constraints.md (Pa, Pb): New constraints.
719 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
720 split pattern to deal with them.
721
98f6c600
JS
7222009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
723
724 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
725 fix index entry for -Xpreprocessor.
726
71856685
AH
7272009-06-12 Aldy Hernandez <aldyh@redhat.com>
728
729 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
730 Add location argument to build_decl call.
731 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
732 (rs6000_init_builtins): Same.
733 (spe_init_builtins): Same.
734 (rs6000_gimplify_va_arg): Add location argument to
735 create_artificial_label call.
736
756b65f5
SB
7372009-06-12 Steven Bosscher <steven@gcc.gnu.org>
738
739 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
740 * combine-stack-adj.c (pass_stack_adjustments): Use it.
741 * Makefile.in: Fix GGC dependency for gcse.o.
742
c2255bc4
AH
7432009-06-12 Aldy Hernandez <aldyh@redhat.com>
744
745 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
746 * gimple-pretty-print.c (dump_gimple_stmt): Same.
747 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
748 created.
749 * c-parser.c (c_parser_binary_expression): Use current column while
750 building binary operations.
751 * common.opt (fshow-column): Enable by default.
752 * tree-vrp.c (check_array_ref): Use warning_at.
753 (check_array_bounds): Use location from call back if expr has no
754 location.
755 * tree.h: Add location argument to maybe_fold_*.
756 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
757 (maybe_fold_offset_to_array_ref): Add location argument and use it.
758 (maybe_fold_offset_to_component_ref): Same.
759 (maybe_fold_offset_to_reference): Same.
760 (maybe_fold_offset_to_address): Same.
761 (maybe_fold_stmt_indirect): Same.
762 (maybe_fold_stmt_addition): Same.
763 (fold_stmt_r): Pass location to maybe_fold_*.
764 (fold_gimple_assign): Same.
765 * c-tree.h: Add location argument to finish_decl,
766 default_function_array_conversion, store_init_value.
767 * c-decl.c (define_label): Use error_at.
768 (c_make_fname_decl): Pass location to finish_decl.
769 (finish_decl): New location argument.
770 (build_compound_literal): Pass location to store_init_value.
771 (grokdeclarator): Pass location to finish_decl.
772 (grokfield): Same.
773 * c-typeck.c (array_to_pointer_conversion): New location argument.
774 (function_to_pointer_conversion): Same.
775 (default_function_array_conversion): Same.
776 (parser_build_unary_op): Pass location to overflow_warning.
777 (parser_build_binary_op): Same. Use warning_at.
778 (build_unary_op): Pass location to array_to_pointer_conversion.
779 (build_c_cast): Pass location to digest_init.
780 (build_modify_expr): New location argument.
781 (convert_for_assignment): Same.
782 (store_init_value): Same.
783 (digest_init): Same.
784 (output_init_element): Pass location to digest_init and
785 array_to_pointer_conversion.
786 (c_finish_return): Pass location to convert_for_assignment.
787 * gimplify.c (gimplify_conversion): Pass location to
788 maybe_fold_offset_to_address.
789 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
790 to maybe_fold_stmt_addition.
791 * c-omp.c (c_finish_omp_atomic): Pass new location to
792 build_modify_expr.
793 (c_finish_omp_for): Same.
794 * c-common.c (overflow_warning): New argument.
795 * c-common.h: New argument to build_modify_expr, overflow_warning.
796 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
797 finish_decl.
798 (c_parser_initializer): Pass location to
799 default_function_array_conversion.
800 (c_parser_initelt): Same.
801 (c_parser_initval): Same.
802 (c_parser_asm_operands): Same.
803 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
804 (c_parser_conditional_expression): Same.
805 (c_parser_binary_expression): Add location info to stack. Use it.
806 (c_parser_unary_expression): Pass location to
807 default_function_array_conversion, parser_build_unary_op,
808 build_indirect_ref, c_parser_postfix_expression_after_primary.
809 (c_parser_postfix_expression_after_primary): New location argument.
810 Use it.
811 (c_parser_expression_conv): Pass location to
812 default_function_array_conversion.
813 (c_parser_expr_list): Same.
814 (c_parser_omp_atomic): Same.
815 (c_parser_omp_for_loop): Same.
816 * c-tree.h: (struct c_declarator): Add comment to id_loc.
817 (build_array_declarator): New argument.
818 * c-decl.c (build_array_declarator): Add location argument.
819 (grokdeclarator): Set id_loc for cdk_array.
820 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
821 build_array_declarator.
822 * tree.c (build_omp_clause): Add location argument.
823 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
824 (OMP_CLAUSE_LOCATION): New macro.
825 (struct tree_omp_clause): Add location field.
826 (build_omp_clause): Add argument.
827 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
828 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
829 build_omp_clause.
830 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
831 (cp_parser_omp_clause_collapse): Same.
832 (cp_parser_omp_clause_default): Same.
833 (cp_parser_omp_clause_if): Same.
834 (cp_parser_omp_clause_nowait): Same.
835 (cp_parser_omp_clause_num_threads): Same.
836 (cp_parser_omp_clause_ordered): Same.
837 (cp_parser_omp_clause_schedule): Same.
838 (cp_parser_omp_clause_untied): Same.
839 (cp_parser_omp_for_loop): Same.
840 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
841 * c-tree.h (c_start_case): Add location argument.
842 (c_process_expr_stmt): Same.
843 (c_finish_goto_*): Same.
844 * tree-parloops.c (initialize_reductions): Pass location to
845 build_omp_clause.
846 (create_parallel_loop): Same.
847 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
848 (gfc_trans_omp_reduction_list): Same.
849 (gfc_trans_omp_clauses): Same.
850 (gfc_trans_omp_do): Same.
851 * c-typeck.c (c_finish_goto_label): Same.
852 (c_finish_goto_ptr): New location argument.
853 (c_start_case): Same.
854 (emit_side_effect_warnings): Same.
855 (c_process_expr_stmt): Same.
856 (c_finish_stmt_expr): Same.
857 (c_finish_omp_clauses): Use error_at instead of error.
858 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
859 build_omp_clause.
860 * c-omp.c (c_split_parallel_clauses): New location argument.
861 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
862 to build_omp_clause.
863 (convert_local_reference_stmt): Same.
864 (convert_gimple_call): Same.
865 * c-common.h (c_split_parallel_clauses): New argument.
866 * c-parser.c (c_parser_statement_after_labels): Pass location to
867 c_finish_goto_label.
868 (c_parser_switch_statement): Pass location to c_start_case.
869 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
870 and c_process_expr_stmt.
871 (c_parser_omp_variable_list): Add location argument.
c637b0fa 872 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
873 (c_parser_omp_clause_default): Same.
874 (c_parser_omp_clause_if): Same.
875 (c_parser_omp_clause_num_threads): Same.
876 (-c_parser_omp_clause_ordered): Same.
877 (c_parser_omp_clause_reduction): Pass location to
878 c_parser_omp_variable_list.
879 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
880 (c_parser_omp_clause_untied): Same.
881 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 882 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
883
884 * c-tree.h (check_for_loop_decls, undeclared_variable,
885 build_component_ref, build_array_ref, build_external_ref,
886 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
887 build_conditional_expr, build_compound_expr, c_cast_expr,
888 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
889 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
890 argument.
891 * c-semantics.c (build_stmt): Same.
892 (build_case_label): Same.
893 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
894 (undeclared_variable): New argument.
895 (make_label): Same.
896 (lookup_label): Pass location on down.
897 (define_label): Same.
898 (finish_decl): Same.
899 (build_compound_literal): Same.
900 (finish_struct): Same.
901 (finish_function): Do not set location here.
902 (check_for_loop_decls): New argument.
903 * tree.c (save_expr): Set location.
904 (build_empty_stmt): New argument.
905 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
906 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
907 * builtins.c (gimplify_va_arg_expr): Use locations.
908 (expand_builtin_sync_operation): Same.
909 * c-typeck.c (build_component_ref): New argument.
910 (build_array_ref): Same.
911 (build_external_ref): Same.
912 (c_expr_sizeof_expr): Same.
913 (c_expr_sizeof_type): Same.
914 (parser_build_unary_op): Same.
915 (build_conditional_expr): Same.
916 (build_compound_expr): Pass location on down.
917 (build_compound_expr): New argument.
918 (build_c_cast): Same.
919 (c_cast_expr): Same.
920 (build_asm_expr): Same.
921 (c_finish_return): Same.
922 (c_process_expr_stmt): Pass location on down.
923 (c_finish_stmt_expr): New argument.
924 (push_clenaup): Same.
925 (c_finish_omp_parallel): Same.
926 (c_finish_omp_task): Same.
927 * gimplify.c (gimplify_call_expr): Pass location on down.
928 * c-omp.c (c_finish_omp_master): New argument.
929 (c_finish_omp_critical): Same.
930 (c_finish_omp_ordered): Same.
931 (c_finish_omp_barrier): Same.
932 (-c_finish_omp_taskwait): Same.
933 (c_finish_omp_atomic): Same.
934 (c_finish_omp_flush): Same.
935 * tree-inline.c (copy_tree_body_r): Pass location on down.
936 (inline_forbidden_p): Remove use of input_location.
937 * c-gimplify.c (c_build_bind_expr): New argument.
938 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
939 (c_sizeof_or_alignof_type): New argument.
940 (c_alignof_expr): Same.
941 (build_va_arg): Same.
942 (c_add_case_label): Same.
943 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
944 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
945 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
946 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
947 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
948 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
949 New argument.
950 * stub-objc.c (objc_build_selector_expr): Same.
951 (objc_build_throw_stmt): Same.
952 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
953 (c_parser_initelt): Same.
954 (c_parser_compound_statement): Same.
955 (c_parser_compound_statement_nostart): Same.
956 (c_parser_label): Same.
957 (c_parser_statement_after_labels): Same.
958 (c_parser_if_body): Same.
959 (c_parser_else_body): Same.
960 (c_parser_if_statement): Same.
961 (c_parser_switch_statement): Same.
962 (c_parser_while_statement): Same.
963 (c_parser_do_statement): Same.
964 (c_parser_for_statement): Same.
965 (c_parser_asm_statement): Same.
966 (c_parser_conditional_expression): Same.
967 (c_parser_binary_expression): Same.
968 (c_parser_cast_expression): Same.
969 (c_parser_unary_expression): Same.
970 (c_parser_sizeof_expression): Same.
971 (c_parser_alignof_expression): Same.
972 (c_parser_postfix_expression): Same.
973 (c_parser_expression): Same.
974 (c_parser_objc_receiver): Same.
975 (c_parser_omp_variable_list): Same.
976 (c_parser_omp_structured_block): Same.
977 (c_parser_omp_atomic): New argument.
978 (c_parser_omp_barrier): Same.
979 (c_parser_omp_critical): Same.
980 (c_parser_omp_flush): Pass location on down.
981 (c_parser_omp_for_loop): New argument.
982 (c_parser_omp_for): Same.
983 (c_parser_omp_master): Same.
984 (c_parser_omp_ordered): Same.
985 (c_parser_omp_sections_scope): Same.
986 (c_parser_omp_sections): Same.
987 (c_parser_omp_parallel): Same.
988 (c_parser_omp_single): Same.
989 (c_parser_omp_task): Same.
990 (c_parser_omp_taskwait): Pass location on down.
991 (c_parser_omp_construct): Same.
992 (c_parser_omp_threadprivate): Same.
993 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
994 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
995 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
996 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
997 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
998 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
999 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1000 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1001 config/i386/i386.c, stmt.c:
1002 Add location argument to the following function definitions and/or
1003 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1004 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1005 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1006 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1007 do_case, c_finish_bc_stmt, build_compound_literal,
1008 build_function_call.
1009 * c-decl.c (build_compound_literal): Add location argument.
1010 Make all diagnostic calls use location.
1011 (start_struct): Same.
1012 (finish_struct): Same.
1013 (start_enum): Same.
1014 (build_enumerator): Same.
1015 (start_function): Same.
1016 (grokdeclarator): Make all diagnostic calls use location.
1017 (store_parm_decls_oldstyle): Same.
1018 * c-typeck.c (build_function_call): Add location argument.
1019 Make all diagnostic calls use location.
1020 (do_case): Same.
1021 (c_finish_bc_stmt): Same.
1022 * tree-nested.c (get_trampoline_type): Add argument.
1023 Pass location to build_decl.
1024 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1025 * rtl.h (RTL_LOCATION): New.
1026 * c-common.c (c_add_case_label): Add location argument.
1027 Make all diagnostic calls use location.
1028 * c-common.h: Add location argument to make_fname_decl, do_case,
1029 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1030 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1031 Set it appropriately for every case. Pass enum_loc to start_enum
1032 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1033 parser_xref_tag.
1034 (c_parser_struct_or_union_specifier): Save location. Use it for
1035 start_struct, finish_struct, and parser_xref_tag.
1036
3d8b2a98
ILT
10372009-06-12 Ian Lance Taylor <iant@google.com>
1038
c637b0fa 1039 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1040
1041 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1042 cpp_opts->warn_cxx_operator_names.
1043
737142ce
AP
10442009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1045
1046 PR tree-opt/38865
1047 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1048 is returns NULL and OP is a VCE, look through the VCE.
1049
d3a0d55d
ILT
10502009-06-12 Ian Lance Taylor <iant@google.com>
1051
1052 PR bootstrap/40430
1053 * collect2.c (main): Use CONST_CAST2 in code inside #if
1054 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1055
f85882d8
JY
10562009-06-12 Joey Ye <joey.ye@intel.com>
1057
1058 PR middle-end/39146
1059 * cfgexpand.c (get_decl_align_unit): Update
1060 max_used_stack_slot_alignment with align instead of
1061 stack_alignment_needed.
1062
1063 * function.c (assign_stack_local_1): Update
1064 max_used_stack_slot_alignment with alignment_in_bits instead
1065 of stack_alignment_needed.
1066 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1067 here.
1068
fc9f468b
JJ
10692009-06-12 Jakub Jelinek <jakub@redhat.com>
1070
1071 * dwarf2out.c (last_var_location_insn): New variable.
1072 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1073 (dwarf2out_var_location): Don't record anything after last real
1074 insn. Only change labels if there were any real instructions
1075 in between last note and this one, or if changed sections.
1076
7c1db202
RH
10772009-06-11 Richard Henderson <rth@redhat.com>
1078
f85882d8 1079 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1080 note when storing the frame pointer in a register.
1081 (FRP): Don't redefine to nothing for epilogue.
1082 (alpha_expand_epilogue): Mark register and sp restores.
1083 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1084
7c1db202
RH
1085 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1086 when gen_lowpart is needed.
1087
f2ae7631
RH
10882009-06-11 Richard Henderson <rth@redhat.com>
1089
42755c21
RH
1090 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1091
f2ae7631
RH
1092 * dwarf2out.c (need_data_align_sf_opcode): New.
1093 (div_data_align): Move earlier.
1094 (def_cfa_1, reg_save): Use it.
1095
8ed0ce99
L
10962009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1097
1098 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1099 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1100 (ix86_handle_option): Handle OPT_mcrc32.
1101 (ix86_target_string): Add -mcrc32.
1102 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1103
1104 * config/i386/i386.h (TARGET_CRC32): New.
1105
c637b0fa 1106 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1107 (sse4_2_crc32di): Likewise.
1108
c637b0fa 1109 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1110
1111 * doc/invoke.texi: Document -mcrc32.
1112
9fd68a1f
RH
11132009-06-11 Richard Henderson <rth@redhat.com>
1114
8ed0ce99 1115 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1116 * doc/invoke.texi (gdwarf-): Update docs.
1117 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1118 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1119 version level, and record it.
1120
1121 * dwarf2.h (DW_CIE_VERSION): Remove.
1122 * dwarf2out.c (DWARF_VERSION): Remove.
1123 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1124 (output_call_frame_info): Use CIE version 3 for dwarf3,
1125 or if the return register column is out of range for version 1.
1126 (dwarf_stack_op_name): Add all dwarf3 values.
1127 (DEBUG_PUBTYPES_SECTION): New.
1128 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1129 encoding change for dwarf3.
1130 (output_die) [dw_val_class_die_ref]: Likewise.
1131 (output_compilation_unit_header): Emit correct version for dwarf3.
1132 (output_line_info): Likewise.
1133 (output_pubnames): Update for DWARF_VERSION removal.
1134 (output_aranges): Likewise.
1135 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1136 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1137 (dwarf2out_finish): Likewise.
1138
4de8ce3b
DD
11392009-06-11 David Daney <ddaney@caviumnetworks.com>
1140
1141 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1142 in r148403.
1143
468059bc
DD
11442009-06-11 David Daney <ddaney@caviumnetworks.com>
1145
1146 PR c/39252
1147 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1148 * builtins.c (expand_builtin_unreachable): New function.
1149 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1150 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1151 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1152 successors.
1153 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1154 searching for missing barriers.
1155
b5a6e96f
FXC
11562009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1157
1158 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1159 when -fprofile-generate* was passed.
1160 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1161
6be6462e
AG
11622009-06-11 Anthony Green <green@moxielogic.com>
1163
c637b0fa 1164 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1165 (rCC): Define.
1166 (*b<cond:code>): Support limited branch ranges for new PC-relative
1167 branch instructions.
1168 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1169
caaabe0a
JJ
11702009-06-11 Jakub Jelinek <jakub@redhat.com>
1171
e5219642
JJ
1172 * config/i386/i386.c (min_insn_size): Use get_attr_length
1173 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1174 For __asm return 0.
1175
caaabe0a
JJ
1176 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1177 instead of emit_insn_before.
1178
a567fa6a
ILT
11792009-06-10 Ian Lance Taylor <iant@google.com>
1180
1181 PR bootstrap/40408
1182 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1183 GIMPLE_SWITCH.
1184
6a753d5f
RE
11852009-06-10 Revital Eres <eres@il.ibm.com>
1186
1187 * passes.c (init_optimization_passes): Reschedule
1188 predictive-commoning pass before complete unroll pass.
1189
a550d677
MJ
11902009-06-10 Martin Jambor <mjambor@suse.cz>
1191
1192 * cgraph.c (cgraph_node_can_be_local_p): New function.
1193 (cgraph_make_node_local): New function.
1194 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1195 (cgraph_make_node_local): Declare.
1196
d8259b07
NF
11972009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1198
1199 * tree.h (tree_base): Add packed_flag and user_align fields.
1200 Decrease size of spare field.
1201 (TYPE_USER_ALIGN): Use user_align from tree_base.
1202 (DECL_USER_ALIGN): Likewise.
1203 (TYPE_PACKED): Use packed_flag from tree_base.
1204 (DECL_PACKED): Likewise.
1205 (tree_type): Delete packed_flag and user_align fields. Widen
1206 precision field. Widen mode field and shuffle fields to align
1207 mode on an 8-bit boundary.
1208 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1209 Renumber decl_flag_* fields. Fix comments. Widen
1210 decl_common_unused field.
c637b0fa 1211 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1212 (DECL_EXTERNAL): Likewise.
1213 (DECL_BIT_FIELD): Likewise.
1214 (DECL_NONADDRESSABLE_P): Likewise.
1215 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1216 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1217
c2569604
ILT
12182009-06-10 Ian Lance Taylor <iant@google.com>
1219
1220 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1221 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1222 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1223 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1224 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1225 DEF_VEC_ALLOC_FUNC_P.
1226 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1227 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1228 DEF_VEC_ALLOC_FUNC_O.
1229 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1230 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1231 DEF_VEC_ALLOC_FUNC_I.
1232 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1233 (vec_stack_p_reserve_exact_1): Declare.
1234 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1235 (vec_stack_free): Declare.
1236 (VEC_stack_alloc): Define.
1237 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1238 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1239 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1240 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1241 for void_p.
1242 (stack_vecs): New static variable.
1243 (vec_stack_p_reserve_exact_1): New function.
1244 (vec_stack_o_reserve_1): New static function.
1245 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1246 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1247 (vec_stack_free): New function.
1248 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1249 (VEC_df_ref_stack_alloc): Define.
1250 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1251 DEF_VEC_ALLOC_P_STACK.
1252 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1253 (struct df_collection_rec): Change _vec fields to VEC. Remove
1254 _use fields.
1255 (df_free_collection_rec): Adjust for new fields.
1256 (df_insn_rescan): Use new df_collection_rec fields.
1257 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1258 (df_ref_create_structure, df_ref_record): Likewise.
1259 (df_get_conditional_uses, df_get_call_refs): Likewise.
1260 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1261 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1262 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 1263 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
1264 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1265 Remove count parameter. Change return type to void. Change all
1266 callers.
1267 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1268 Remove count parameter. Change return type to void. Change all
1269 callers.
1270 (df_install_refs): Change old_vec parameter to VEC. Remove count
1271 parameter. Change all callers.
1272 (df_install_mws): Change old_vec parameter to VEC. Remove count
1273 parameter. Change all callers.
1274 (df_refs_verify): Change new_rec parameter to VEC. Change call
1275 callers.
1276 (df_mws_verify): Likewise.
1277
e7aae3e8
AO
12782009-06-10 Alexandre Oliva <aoliva@redhat.com>
1279
1280 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1281
412ac8d5
L
12822009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1283
1284 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1285
cceb575c
AG
12862009-06-10 Anthony Green <green@moxielogic.com>
1287
1288 * config/moxie/crti.asm: New file.
1289 * config/moxie/crtn.asm: New file.
1290 * config/moxie/moxie.c: New file.
1291 * config/moxie/moxie.h: New file.
1292 * config/moxie/sfp-machine.h: New file.
1293 * config/moxie/moxie-protos.h: New file.
1294 * config/moxie/t-moxie: Created.
1295 * config/moxie/t-moxie-softfp: Created.
1296 * config/moxie/moxie.md: Created.
1297 * config/moxie/constraints.md: Created.
1298 * config.gcc: Add moxie support.
1299 * doc/md.texi (Machine Constraints): Add moxie constraints.
1300 * doc/contrib.texi (Contributors): Mention moxie port.
1301 * doc/install.texi (Specific): Mention the moxie port.
1302
bf406687
ILT
13032009-06-09 Ian Lance Taylor <iant@google.com>
1304
1305 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1306 compiling with C++.
1307 * optabs.c (optab_table): Only use designated initializers if
1308 HAVE_DESIGNATED_INITIALIZERS is defined.
1309 (convert_optab_table): Likewise.
1310 (init_optabs): Always call init_insn_codes if
1311 HAVE_DESIGNATED_INITIALIZERS is not defined.
1312
744aa42f
ILT
13132009-06-09 Ian Lance Taylor <iant@google.com>
1314
1315 * targhooks.c (default_builtin_vectorized_function): Change fn
1316 parameter to unsigned int.
1317 (default_builtin_vectorized_conversion): Change code parameter to
1318 unsigned int.
1319 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1320 * targhooks.h: Update declarations.
1321 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1322 parameter to unsigned int.
1323
1324 * c-typeck.c (comptypes_check_enum_int): New static function.
1325 (comptypes_internal): Add enum_and_int_p parameter. Change all
1326 callers.
1327 (comp_target_types): Add location parameter. Change all callers.
1328 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1329 Change all callers.
1330 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1331 (build_conditional_expr): Add colon_loc parameter. Change all
1332 callers.
c637b0fa 1333 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
1334 * c-parser.c (c_parser_conditional_expression): Pass location of
1335 colon to build_conditional_expr.
1336 * c-tree.h (build_conditional_expr): Update declaration.
1337
bcbe3b25
SP
13382009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1339
1340 * graphite.c: Revert previous patch.
1341
dc2a6925
SP
13422009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1343
1344 PR bootstrap/40103
1345 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1346
d81f5387
GS
13472009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1348
8ed0ce99
L
1349 * tree-ssa-loop-prefetch.c
1350 (loop_prefetch_arrays): Fixed a portability problem in printf format
1351 string.
d81f5387 1352
8056eb4f
MJ
13532009-06-09 Martin Jambor <mjambor@suse.cz>
1354
1355 PR tree-optimization/40351
c637b0fa
UB
1356 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1357 refrence to a potential artifical subaccess can be constructed.
8056eb4f 1358
bd9a3465
KK
13592009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1360
1361 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1362 (sh_override_options): Likewise.
1363 * config/sh/sh.c: Include params.h.
1364 (sh_optimization_options): New.
1365 (sh_override_options): Likewise.
1366 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1367 (OVERRIDE_OPTIONS): Use sh_override_options.
1368
8845deab
JJ
13692009-06-08 Jakub Jelinek <jakub@redhat.com>
1370
1371 * dwarf2out.c (emit_cfa_remember): New variable.
1372 (add_fde_cfi): If emit_cfa_remember, recurse to add
1373 DW_CFA_remember_state first.
1374 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1375 instead just set emit_cfa_remember.
1376
9ea81b0c
JH
13772009-06-08 Jan Hubicka <jh@suse.cz>
1378
1379 PR debug/40126
1380 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1381
21ecdec5
JH
13822009-06-08 Jan Hubicka <jh@suse.cz>
1383
1384 PR middle-end/39834
c637b0fa
UB
1385 * cgraphunit.c (save_inline_function_body): Do not copy transform
1386 hooks for saved inline bodies.
21ecdec5
JH
1387 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1388 for given function.
1389
72e48218
AN
13902009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1391
1392 * jump.c (returnjump_p): Handle delayed branches. Add missing
1393 function comment.
1394
6ce2002b
JH
13952009-06-08 Jan Hubicka <jh@suse.cz>
1396
1397 PR middle-end/40102
1398 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1399 original node might've been modified.
1400 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1401
eb9ed98a
JJ
14022009-06-08 Jakub Jelinek <jakub@redhat.com>
1403
1404 * tree-object-size.c (addr_object_size): Add OSI argument.
1405 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1406 (compute_builtin_object_size, expr_object_size): Adjust callers.
1407 (plus_stmt_object_size): Call addr_object_size instead of
1408 compute_builtin_object_size.
1409
db34470d 14102009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1411 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1412
1413 * tree-ssa-loop-prefetch.c
1414 (gather_memory_references): Introduced a counter for the number of
1415 memory references.
1416 (anything_to_prefetch_p): Introduced a counter for the number of
1417 prefetches.
1418 (is_loop_prefetching_profitable): New function with a cost model
1419 for prefetching.
1420 (loop_prefetch_arrays): Use the new cost model to determine if
1421 prefetching is profitable.
1422 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1423 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1424 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1425 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1426 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1427 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1428
eb7adebc
MM
14292009-06-08 Michael Matz <matz@suse.de>
1430
1431 PR debug/40012
eb7adebc
MM
1432 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1433 partitions use the same.
1434 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1435 for basevars of SSA_NAMEs.
1436 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1437 to not expand them twice.
1438 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1439 multiple places.
1440
2153915d
AO
14412009-06-08 Alexandre Oliva <aoliva@redhat.com>
1442
1443 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1444 (fdump-final-insns=, gtoggle): New.
1445 * doc/invoke.texi: Document them.
1446 * final.c (rest_of_clean_state): Dump final insn stream.
1447 * gcc.c (invoke_as): Hook in -fcompare-debug.
1448 (static_spec_functions): Add compare-debug-dump-opt,
1449 compare-debug-self-opt and compare-debug-auxbase-opt.
1450 (compare_debug, compare_debug_second, compare_debug_opt): New.
1451 (switches_debug_check, n_switches_debug_check): New.
1452 (debug_auxbase_opt, debug_check_temp_file): New.
1453 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1454 -fcompare-debug=*.
1455 (do_self_spec): Handle arguments after switches.
1456 (do_spec_1): Add .gk extension to temp file basenames for compare.
1457 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1458 (cc1_options): Use it instead of normal auxbase computation for
1459 the second compare-debug compilation.
1460 (compare_files): New.
1461 (main): Set up and implement compare debug mode.
1462 (compare_debug_dump_opt_spec_function): New.
1463 (compare_debug_self_opt_spec_function): New.
1464 (compare_debug_auxbase_opt_spec_function): New.
1465 * toplev.c (process_options): Handle flag_gtoggle,
1466 flag_dump_final_insns.
1467 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1468 during -fcompare-debug-second compilation.
1469
cdb88468
ILT
14702009-06-07 Ian Lance Taylor <iant@google.com>
1471
c637b0fa 1472 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
1473 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1474
1475 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1476 with no default node. Change warning with %H to warning_at.
1477 Don't clear warn_switch around case checking.
1478 * doc/invoke.texi (Warning Options): Clarify distinction between
1479 -Wswitch and -Wswitch-enum.
1480
4fe8e1a2
BRF
14812009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1482
1483 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1484
69952c1d
BRF
14852009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1486
1487 * gbl-ctors.h: Add header guard.
1488
b2ad0284
BRF
14892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1490
1491 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1492 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1493 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1494 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1495 prototypes for removed functions.
1496 (expressions_equal_p): Move to ...
1497 * tree-ssa-sccvn.h: ... here and ...
1498 * matrix-reorg.c: ... adjust includes.
1499
c3df55f9
BRF
15002009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1501
1502 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1503
b5a7159f
BRF
15042009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1505
1506 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1507 (finish_function): Remove erroneous whitespace.
1508
95bca6b0
BRF
15092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1510
2cd713a0
BRF
1511 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1512 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1513
15142009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1515
1516 * errors.c (internal_error): Commentary typo fix.
1517 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1518 * tree-ssa-pre.c: Ditto.
95bca6b0 1519
2cd713a0
BRF
15202009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1521
1522 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1523 them is supposed to hold actual statements.
1524
5bca4e80
ILT
15252009-06-06 Ian Lance Taylor <iant@google.com>
1526
1527 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1528 empty statements can now have attributes.
1529
47ac44d6
SZ
15302009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1531
1532 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1533 * config/mips/mips.md: Ditto.
1534
19b905ce
NF
15352009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1536
1537 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1538 _RELOCATABLE.
1539 (__eabi_uconvert): Likewise.
1540
16702e19
NF
15412009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1542
1543 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1544 CFI_* definitions with IN_GCC.
1545
a735afd1
DE
15462009-06-05 David Edelsohn <edelsohn@gnu.org>
1547
1548 * xcoffout.h (xcoffout_source_line): Update prototype.
1549
26a347c5
KG
15502009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1551
1552 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1553 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1554
9f706f23
JJ
15552009-06-05 Jakub Jelinek <jakub@redhat.com>
1556
1557 PR middle-end/40340
1558 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1559 inlined_function_outer_scope_p blocks for artificial inlines
1560 even at -g0/-g1.
1561 * tree.c (tree_nonartificial_location): Rewrite using
1562 block_nonartificial_location.
1563
8f439681
RE
15642009-06-05 Revital Eres <eres@il.ibm.com>
1565 Leehod Baruch <leehod@il.ibm.com>
1566
1567 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1568 (expand_expr_real_1): Remove comment.
1569 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1570 Vectorize misaligned access when the target supports it.
c637b0fa 1571 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
1572 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1573 and remove asset.
1574
b89f8e3c
JB
15752009-06-05 Julian Brown <julian@codesourcery.com>
1576
1577 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1578 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1579
47d1f191
RG
15802009-06-05 Richard Guenther <rguenther@suse.de>
1581
1582 PR bootstrap/40350
1583 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1584 as possibly unused.
1585
9f706f23 15862009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1587
1588 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1589 (save_gprs): Don't tell unwinder when a global register is saved.
1590 (s390_emit_epilogue): Emit needed epilogue unwind info.
1591
90f06248
AO
15922009-06-05 Alexandre Oliva <aoliva@redhat.com>
1593
1594 * dwarf2out.c (deferred_asm_name): New.
1595 (add_name_and_src_coords_attributes): Defer creation of
1596 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1597 computed yet.
1598 (move_linkage_attr): New.
1599 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1600 right place.
1601
c10348e5
AO
16022009-06-05 Alexandre Oliva <aoliva@redhat.com>
1603
1604 * tree-nested.c (finalize_nesting_tree_1): Declare the
1605 frame_decl in the binding tree.
1606
6c52e687
CC
16072009-06-04 Cary Coutant <ccoutant@google.com>
1608
1609 * basic-block.h (struct basic_block_def): Add discriminator field.
1610 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1611 callers.
1612 * debug.c (do_nothing_debug_hooks): Add additional entry.
1613 (debug_nothing_int_charstar_int): New function.
c637b0fa 1614 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
1615 (debug_nothing_int_charstar_int): New declaration.
1616 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1617 discriminator value in .loc directive.
1618 * final.c (last_discriminator): New variable.
1619 (discriminator): New variable.
1620 (final_start_function): Initialize above variables, pass current
1621 discriminator to debug hook.
1622 (notice_source_line): Check for discriminator change.
1623 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1624 * sdbout.c (sdbout_source_line): New parameter.
1625 * tree-cfg.c (struct locus_discrim_map): New structure type.
1626 (discriminator_per_locus): New hash table.
1627 (build_gimple_cfg): Allocate and free discriminator hash table.
1628 (make_edges): Call assign_discriminator.
1629 (locus_map_hash): New function.
1630 (locus_map_eq): New function.
1631 (next_discriminator_for_locus): New function.
1632 (same_line_p): New function.
1633 (assign_discriminator): New function.
1634 (make_cond_expr_edges): Call assign_discriminator.
1635 (make_gimple_switch_edges): Likewise.
1636 (first_non_label_stmt): New function.
1637 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1638 all callers.
1639 * xcoffout.c (xcoffout_source_line): Add new parameter.
1640
1641 * configure.ac (gcc_cv_as_discriminator): New configury check for
1642 gas support for discriminator.
1643 * configure: Regenerate.
1644 * config.in: Regenerate.
1645
e07e020b
RR
16462009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1647
1648 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1649 val after checking for integers.
1650
72fa3605
UB
16512009-06-04 Uros Bizjak <ubizjak@gmail.com>
1652
1653 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1654 X64_REGPARM_MAX.
1655 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1656 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1657 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1658 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1659 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1660 X64_SSE_REGPARM_MAX.
1661 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1662 X64_SSE_REGPARM_MAX.
1663
bdde878c
AO
16642009-06-04 Alexandre Oliva <aoliva@redhat.com>
1665
1666 * gcc.c (report_times_to_file): New.
1667 (execute): Implement it.
1668 (process_command): Support -time=.
1669 * doc/invoke.texi: Document it.
1670
2ce59df7
AO
16712009-06-04 Alexandre Oliva <aoliva@redhat.com>
1672
1673 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1674 that have value exprs.
1675
78bd9046
AO
16762009-06-04 Alexandre Oliva <aoliva@redhat.com>
1677
1678 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1679 declarations for constants until...
1680 (dw2_output_indirect_constant_1): ... this point.
1681
e63d4106
RE
16822009-06-04 Richard Earnshaw <rearnsha@arm.com>
1683
1684 PR target/10242
1685 * arm.md (arm_addsi3): Don't try to split an add with an
1686 eliminable register until after reload has completed.
1687
6bc7bc14
ILT
16882009-06-03 Ian Lance Taylor <iant@google.com>
1689
1690 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1691 * genattrtab.c (write_length_unit_log): Likewise.
1692 * genchecksum.c (dosum): Likewise.
1693 * gengtype.c (write_rtx_next): Likewise.
1694 (finish_root_table, write_roots): Likewise.
1695 * gimple.c (gimple_ops_offset_): Likewise.
1696 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1697 * config/arc/arc.c (arc_attribute_table): Likewise.
1698 * config/arm/arm.c (arm_attribute_table): Likewise.
1699 * config/avr/avr.c (avr_attribute_table): Likewise.
1700 * config/crx/crx.c (crx_attribute_table): Likewise.
1701 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1702 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1703 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1704 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1705 * config/sh/sh.c (sh_attribute_table): Likewise.
1706 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1707 * config/spu/spu.c (spu_attribute_table): Likewise.
1708 * config/v850/v850.c (v850_attribute_table): Likewise.
1709
1710 * config/alpha/alpha.c (vms_attribute_table): Make static.
1711 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1712 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1713 * config/mips/mips.c (mips_attribute_table): Likewise.
1714
1715 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1716 $(SYSTEM_H).
1717 (cc1-checksum.o): Likewise.
1718
19d892fd
SE
17192009-06-03 Steve Ellcey <sje@cup.hp.com>
1720
1721 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1722
679f3354
JJ
17232009-06-03 Jakub Jelinek <jakub@redhat.com>
1724
ff35822b
JJ
1725 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1726 insn if it is changing sp. Use gen_add3_insn instead of
1727 conditionally gen_addsi3 and gen_adddi3.
1728 (offset_below_red_zone_p): New static inline function.
1729 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1730 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1731 * config/rs6000/ppc-asm.h: Include auto-host.h.
1732 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1733 CFI_RESTORE): Define.
1734 * config/rs6000/crtresxgpr.asm: Add unwind info.
1735 * config/rs6000/crtresxfpr.asm: Likewise.
1736 * config/rs6000/crtresgpr.asm: Likewise.
1737 * config/rs6000/crtresfpr.asm: Likewise.
1738 * config/rs6000/crtsavgpr.asm: Likewise.
1739 * config/rs6000/crtsavfpr.asm: Likewise.
1740
679f3354
JJ
1741 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1742 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1743
2e94c12d
JB
17442009-06-03 Julian Brown <julian@codesourcery.com>
1745
1746 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1747 words or less (including TImode) in core registers.
1748
3111cce0
RG
17492009-06-03 Richard Guenther <rguenther@suse.de>
1750
1751 PR middle-end/40328
1752 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1753
5e1b50f6
AB
17542009-06-03 Andrey Belevantsev <abel@ispras.ru>
1755
1756 * statistics.c (statistics_counter_event): Do not record event
1757 in pass dump if its number == -1.
1758 (curr_statistics_hash): Add assert that we never get passes
1759 with static number == -1.
1760
6f11d690
RG
17612009-06-03 Richard Guenther <rguenther@suse.de>
1762 Andrey Belevantsev <abel@ispras.ru>
1763
1764 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1765 non-BLKmode arrays addressable.
1766
88961471
MK
17672009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1768
1769 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1770 * config/m68k/m68k.h: ... here.
1771 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1772 m68k and fido.
1773
9961eb45
MJ
17742009-06-03 Martin Jambor <mjambor@suse.cz>
1775
1776 PR tree-optimization/40323
1777 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1778 assignment.
1779
2f2c62a0
RG
17802009-06-03 Richard Guenther <rguenther@suse.de>
1781
1782 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1783 consistently.
1784
d6ced3b7
SZ
17852009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1786
1787 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1788 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1789 JUMP_TABLE_DATA_P where applicable.
1790 * config/sh/sh.c: Ditto.
1791 * config/sh/sh.h: Ditto.
1792 * config/sh/sh.md: Ditto.
1793 * config/sh/symbian.c: Ditto.
1794
f3afc8a7
UB
17952009-06-03 Uros Bizjak <ubizjak@gmail.com>
1796
1797 * config/i386/driver-i386.c (describe_cache): Optimize
1798 concatenation of strings. Use snprintf instead of sprintf.
1799 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1800 target when not compiling with GCC.
1801
1964788a
KK
18022009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1803
1804 * config/sh/sh.c: Revert last change.
1805 (sh_expand_epilogue): Emit a blockage insn before the frame
1806 pointer adjustment unconditionally.
1807
8633c315
RS
18082009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1809
1810 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1811 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1812 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1813 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1814 to COLLECT_GCC_OPTIONS.
1815
781a1758
RS
18162009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1817
1818 * collect2.c (target_system_root): New variable.
1819 (main): Handle --sysroot=.
1820 (ignore_library): Strip the sysroot from the library path.
1821
dfb636dc
RS
18222009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1823
1824 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1825 (collect2.o): Depend on collect2-aix.h.
1826 (collect2-aix.o): New rule.
1827 * collect2-aix.h: New file.
1828 * collect2-aix.c: Likewise.
1829 * collect2.c: Include collect2-aix.h. Don't undefine
1830 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1831 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1832 Use TARGET_AIX_VERSION instead of _AIX51.
1833 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1834 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1835 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1836 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1837 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1838
51136ae8
RS
18392009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1840
1841 * collect2.c (ignore_library): Avoid premature post-increment
1842 and null deference.
1843
7f142d33
RS
18442009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1845
1846 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1847 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1848 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1849 CROSS_DIRECTORY_STRUCTURE too.
1850 (LINK_LIBG_SPEC): Likewise.
1851 (LIB_SPEC): Add %R to sysroot paths.
1852 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1853 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1854 * config/rs6000/aix51.h: As for aix43.h.
1855 * config/rs6000/aix52.h: Likewise.
1856 * config/rs6000/aix53.h: Likewise.
1857 * config/rs6000/aix61.h: Likewise.
1858 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1859 to the beginning of sysroot paths.
1860
9e74b7d2
AO
18612009-06-02 Alexandre Oliva <aoliva@redhat.com>
1862
1863 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1864 INSN_LISTs that are out of the REG_NOTE range.
1865
a9f6ecee
AO
18662009-06-02 Alexandre Oliva <aoliva@redhat.com>
1867
1868 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1869 (struct var_to_expand): Likewise.
1870 (struct opt_info): Add head and tail for linked lists of the above.
1871 (analyze_insn_to_expand_var): Initialize next.
1872 (analyze_iv_to_split_insn): Likewise.
1873 (analyze_insns_in_loop): Create linked lists.
1874 (allocate_basic_variable): Simplify for use without hash table.
1875 (insert_var_expansion_initialization): Likewise, make it type-safer.
1876 (combine_var_copies_in_loop_exit): Likewise.
1877 (apply_opt_in_copies): Walk lists rather than hash tables.
1878 (release_var_copies): Simplified and inlined by hand into...
1879 (free_opt_info): ... this function.
1880
69596c69
RG
18812009-06-02 Richard Guenther <rguenther@suse.de>
1882
1883 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1884 for field decls.
1885
fe8a7779
AO
18862009-06-02 Alexandre Oliva <aoliva@redhat.com>
1887
1888 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1889 only for builtins that are not overridden.
1890
1bcca2c5
AO
18912009-06-02 Alexandre Oliva <aoliva@redhat.com>
1892
1893 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1894 label string.
1895
8588f797
AO
18962009-06-02 Alexandre Oliva <aoliva@redhat.com>
1897
1898 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1899
45f39d78
AO
19002009-06-02 Alexandre Oliva <aoliva@redhat.com>
1901
1902 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1903
2aa7c49b
AO
19042009-06-02 Alexandre Oliva <aoliva@redhat.com>
1905
1906 * common.opt (fdump-unnumbered-links): New.
1907 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1908 * print-rtl.c (flag_dump_unnumbered_links): New.
1909 (print_rtx): Test it.
1910
55b2829b
RE
19112009-06-02 Richard Earnshaw <rearnsha@arm.com>
1912
1913 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1914 push/pop multiple to 8-byte alignment.
e63d4106 1915
6c0d7021
JJ
19162009-06-01 Jakub Jelinek <jakub@redhat.com>
1917
0aa34d44
JJ
1918 * config/i386/i386.c (queued_cfa_restores): New static variable.
1919 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1920 functions.
1921 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1922 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1923 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1924 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1925 note unconditionally.
1926 (ix86_emit_restore_regs_using_mov): Likewise.
1927 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1928 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1929 it through to ix86_emit_restore_reg_using_pop.
1930 (ix86_emit_leave): Add RED_OFFSET argument. Call
1931 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1932 instead of adding REG_CFA_OFFSET note unconditionally.
1933 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1934 the above functions. Call ix86_add_queued_cfa_restore_notes when
1935 needed.
1936
1937 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1938 force output of the label even for dwarf2out_do_cfi_asm.
1939 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1940 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1941 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1942 caller.
1943 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1944 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1945 dwarf2out_cfi_label callers.
1946 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1947 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1948 Adjust dwarf2out_cfi_label callers.
1949 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1950
604a6be9
JJ
1951 * config/i386/i386.h (struct machine_cfa_state,
1952 struct machine_function): Guard with ifndef USED_FOR_TARGET
1953 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1954
df0026a7
JJ
1955 PR other/40024
1956 * emutls.c (__emutls_get_address): Change arr->size to mean number
1957 of allocated arr->data entries instead of # of slots + 1.
1958
6c0d7021
JJ
1959 PR middle-end/40316
1960 * recog.c (peep2_reinit_state): New function.
1961 (peephole2_init_state): Use it at the end of a basic block and also
1962 when seeing a RTX_FRAME_RELATED_P insn.
1963
49df2fb8
SE
19642009-06-01 Steve Ellcey <sje@cup.hp.com>
1965
1966 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1967 fixuns_truncrfdi2): New.
1968 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1969 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1970 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1971 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1972 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1973 *recip_approx): Remove.
1974 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1975 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1976 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1977 move to div.md.
1978 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1979 setf_exp_rf): New.
1980
67165eb3
ILT
19812009-06-01 Ian Lance Taylor <iant@google.com>
1982
1983 * attribs.c (register_attribute): Use CONST_CAST.
1984 * collect2.c (main): Use CONST_CAST2.
1985 (scan_prog_file): Likewise.
1986 * gcc.c (process_command, main): Likewise.
1987 * toplev.c (toplev_main): Likewise.
1988
1989 * c-typeck.c (handle_warn_cast_qual): New static function,
1990 partially broken out of build_c_cast.
1991 (build_c_cast): Call handle_warn_cast_qual.
1992 * doc/invoke.texi (Warning Options): Document new effect of
1993 -Wcast-qual.
1994
e74fe492
AH
19952009-06-01 Aldy Hernandez <aldyh@redhat.com>
1996
1997 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1998 (diagnostic_report_current_module): Print columns.
1999 * common.opt (flag_show_column): Enable by default.
2000
7eba2d1f
LM
20012009-06-01 Luis Machado <luisgpm@br.ibm.com>
2002
2003 * alias.c (find_base_term): Check for NULL term before returning.
2004
ee88d9aa
MK
20052009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2006
2007 Revert due to PR40320:
ee88d9aa
MK
2008 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2009 * calls.c (emit_library_call_value_1): Don't force_operand for move
2010 and push insns.
2011
324c9b02 20122009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 2013 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
2014
2015 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2016 to be processed as a bitfield for constructor output purposes.
2017 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2018 new function.
2019 * varasm.c (oc_local_state): New type, output_constructor
2020 local state to support communication with helpers.
2021 (oc_outer_state): New type, output_constructor outer state of
2022 relevance in recursive calls.
2023 (output_constructor_array_range): New output_constructor helper,
2024 extracted code for an array range element.
2025 (output_constructor_regular_field): New output_constructor helper,
2026 extracted code for an element that is not a bitfield.
2027 (output_constructor_bitfield): New output_constructor helper,
2028 extracted code for a bitfield element. Accept an OUTER state
2029 argument for recursive processing. Recurse on record or array
2030 CONSTRUCTOR values, possibly past noop conversions.
62295314 2031 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
2032 VALUE is a valid constant-valued expression for use in a static
2033 bit-field initializer.
62295314
OH
2034 (output_constructor): Rework to use helpers. Accept and honor an
2035 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
2036 prepared for nested constructors initializing bitfields.
2037 (output_constant): Feed OUTER in calls to output_constructor.
2038
0980d7fe
MK
20392009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2040
2041 * calls.c (emit_library_call_value_1): Don't force_operand for move
2042 and push insns.
2043
29661412
NC
20442009-06-01 Nick Clifton <nickc@redhat.com>
2045
2046 * doc/invoke.texi (IA-64 Options): Fix typo.
2047
e9dbe7bb
IR
20482009-06-01 Ira Rosen <irar@il.ibm.com>
2049
2050 PR tree-optimization/39129
2051 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2052 printed message.
2053 (vect_do_peeling_for_loop_bound): Use
2054 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2055 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2056 (vect_loop_versioning): Likewise.
2057 (vect_create_cond_for_alias_checks): Fix indentation.
2058 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2059 macros.
2060 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2061 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2062 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2063 "control flow in loop".
2064 (vect_estimate_min_profitable_iters): Use
2065 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2066 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2067 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2068 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2069 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2070 statement belongs to a group of strided accesses with the exact code
2071 check.
2072 (vectorizable_load): Likewise.
2073 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2074 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2075
5ac69a80
GP
20762009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2077
2078 * config/freebsd-stdint.h: New file.
2079 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2080 Add freebsd-stdint.h to tm_file.
2081
54b2b460
RE
20822009-06-01 Richard Earnshaw <rearnsha@arm.com>
2083
2084 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2085 (thumb2_extendhidi2): Likewise.
2086
a7ca77cf
ILT
20872009-05-31 Ian Lance Taylor <iant@google.com>
2088
f3afc8a7 2089 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2090
20912009-05-31 Ian Lance Taylor <iant@google.com>
2092
f3afc8a7 2093 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2094 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2095 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2096
1aec401e
JM
20972009-05-31 Jason Merrill <jason@redhat.com>
2098
2099 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2100 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2101 (dump_generic_node): Adjust.
2102 * diagnostic.h: Declare print_call_name.
2103 * gimple-pretty-print.c (dump_gimple_call): Use it.
2104
ed7910bb
KK
21052009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2106
2107 * config/sh/sh.md (ashldi3_std): New define_expand.
2108 (ashldi3): Use it.
2109
47ea8d4e
KK
21102009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2111
2112 PR target/40313
2113 * config/sh/sh.c: Include debug.h.
2114 (sh_expand_epilogue): Emit a blockage insn before the frame
2115 pointer adjustment also when dwarf2out_do_frame returns true.
2116
405e8b49
RE
21172009-05-31 Richard Earnshaw <rearnsha@arm.com>
2118
2119 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2120 (thumb2_extendqidi2): New pattern.
2121
71ece343
IR
21222009-05-31 Ira Rosen <irar@il.ibm.com>
2123
2124 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2125 mark phis for renaming.
2126 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2127 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2128 Call mark_sym_for_renaming.
2129 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2130 * tree-vect-loop.c (vect_transform_loop): Remove
2131 vect_memsyms_to_rename initialization and a call to
2132 mark_set_for_renaming.
71ece343 2133
b3041944
JJ
21342009-05-31 Jakub Jelinek <jakub@redhat.com>
2135
2136 PR middle-end/40304
2137 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2138 frame related even if !set_cfa && style < 0.
2139
a1bda0d7
KT
21402009-05-30 Kai Tietz <kai.tietz@onevision.com>
2141
2142 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2143 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2144 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2145 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2146
acd26225
KG
21472009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2148
2149 * configure.ac: Add MPC support.
2150
2151 * config.in, configure: Regenerate.
2152
cd9c1ca8
RH
21532009-05-29 Richard Henderson <rth@redhat.com>
2154
2155 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2156 NOTE_INSN_BASIC_BLOCK.
2157 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2158 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2159 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2160 to be deleted.
2161 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2162 add in_use field.
2163 (add_cfi): Disable check redefining cfa away from drap.
2164 (lookup_cfa_1): Add remember argument; handle remember/restore.
2165 (lookup_cfa): Pass remember argument.
2166 (cfa_remember): New.
2167 (compute_barrier_args_size_1): Remove sibcall check.
2168 (dwarf2out_frame_debug_def_cfa): New.
2169 (dwarf2out_frame_debug_adjust_cfa): New.
2170 (dwarf2out_frame_debug_cfa_offset): New.
2171 (dwarf2out_frame_debug_cfa_register): New.
2172 (dwarf2out_frame_debug_cfa_restore): New.
2173 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2174 (dwarf2out_begin_epilogue): New.
2175 (dwarf2out_frame_debug_restore_state): New.
2176 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2177 DW_CFA_restore_state.
2178 (output_cfi_directive): Likewise.
2179 (convert_cfa_to_fb_loc_list): Likewise.
2180 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2181 * dwarf2out.h: Update.
2182 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2183 (copy_insn_1): Early out for null.
2184 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2185 and dwarf2out_frame_debug_restore_state.
2186 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2187 (prologue_insn_hash, epilogue_insn_hash): New.
2188 (free_after_compilation): Adjust freeing accordingly.
2189 (record_insns): Create hash table if needed; push insns into
2190 hash instead of array.
2191 (maybe_copy_epilogue_insn): New.
2192 (contains): Search hash table instead of array.
2193 (sibcall_epilogue_contains): Remove.
2194 (thread_prologue_and_epilogue_insns): Split eh_return insns
2195 and mark them as epilogues.
2196 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2197 scanning in terms of basic blocks.
2198 * insn-notes.def (CFA_RESTORE_STATE): New.
2199 * jump.c (returnjump_p_1): Accept EH_RETURN.
2200 (eh_returnjump_p_1, eh_returnjump_p): New.
2201 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2202 CFA_REGISTER, CFA_RESTORE): New.
2203 * rtl.def (EH_RETURN): New.
2204 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2205
2206 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2207 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2208
2209 * config/i386/i386.c (gen_push): Update cfa state.
2210 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2211 add a CFA_ADJUST_CFA note.
2212 (ix86_dwarf_handle_frame_unspec): Remove.
2213 (ix86_expand_prologue): Update cfa state.
2214 (ix86_emit_restore_reg_using_pop): New.
2215 (ix86_emit_restore_regs_using_pop): New.
2216 (ix86_emit_leave): New.
2217 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2218 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2219 * config/i386/i386.h (struct machine_cfa_state): New.
2220 (ix86_cfa_state): New.
2221 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2222 (eh_return_internal): Merge from eh_return_<mode>,
2223 use eh_return rtx, split w/ epilogue.
2224
72b5577d
ILT
22252009-05-29 Ian Lance Taylor <iant@google.com>
2226
2227 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2228 enum type.
2229 * calls.c (emit_library_call_value_1): Likewise.
2230
2231 * c-typeck.c (c_build_va_arg): New function.
2232 * c-tree.h (c_build_va_arg): Declare.
2233 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2234 instead of build_va_arg.
2235
7a2faca1
EB
22362009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2237
2238 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2239 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2240 (ptr_difference_cost): Use affine combinations to compute it.
2241 (difference_cost): Likewise.
2242 (get_computation_cost_at): Compute more accurate cost for addresses
2243 if the ratio is a multiplier allowed in addresses.
2244 For non-addresses, consider that an additional offset or symbol is
2245 added only once.
2246
725fd454
JJ
22472009-05-29 Jakub Jelinek <jakub@redhat.com>
2248
a0987204
JJ
2249 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2250 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2251
725fd454
JJ
2252 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2253 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2254 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2255 if MODE_DI.
2256 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2257 to 1 for TYPE_SSE{IADD1,CVT1}.
2258 (prefix_vex_imm8): Removed.
2259 (length_vex): Only pass 1 as second argument to
2260 ix86_attr_length_vex_default if prefix_extra is 0.
2261 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2262 (length): For prefix vex computation use length_immediate
2263 attribute instead of prefix_vex_imm8.
2264 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2265 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2266 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2267 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2268 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2269 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2270 a space in between the operands.
2271 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2272 if one operand is 0xff and the other one si, di, bp or sp.
2273 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2274 other one si, di, bp or sp.
2275 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2276 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2277 type and mode attributes.
2278 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2279 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2280 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2281 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2282 prefix_data16 attribute iff MODE_DF.
2283 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2284 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2285 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2286 constm128_operand in length_immediate computation.
2287 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2288 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2289 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2290 length_immediate attribute to 1.
2291 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2292 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2293 for certain alternatives.
2294 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2295 prefix_data16 attribute if MODE_V1DF.
2296 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2297 length_immediate to 1.
2298 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2299 length_address to 4, set mode attribute to MODE_DI.
2300 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2301 (fxam<mode>2_i387): Set length attribute to 4.
2302 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2303 *prefetch_3dnow_rex): Override length_address attribute.
2304 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2305 attributes.
2306 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2307 (constm128_operand): Removed.
2308 * config/i386/i386.c (memory_address_length): For
2309 disp && !index && !base in 64-bit mode account for SIB byte if
2310 print_operand_address can't optimize disp32 into disp32(%rip)
2311 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2312 for fs: or gs: segment.
2313 (ix86_attr_length_immediate_default): When checking if shortform
2314 is possible, truncate immediate to the length of the non-shortened
2315 immediate.
2316 (ix86_attr_length_address_default): Ignore MEM_P operands
2317 with X constraint.
2318 (ix86_attr_length_vex_default): Only check for DImode on
2319 GENERAL_REG_P operands.
2320 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2321 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2322 (sse_cvttps2pi): Clear prefix_rep attribute.
2323 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2324 attribute.
2325 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2326 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2327 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2328 iff operand 2 is const_int_operand.
2329 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2330 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2331 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2332 instead of vex.
2333 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2334 prefix_data16.
2335 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2336 prefix_data16 attribute for movlpd and movhpd instructions.
2337 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2338 length_immediate for shufpd instruction.
2339 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2340 (avx_cmpp<avxmodesuffixf2c><mode>3,
2341 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2342 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2343 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2344 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2345 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2346 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2347 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2348 prefix_data16 attribute for the first alternative to 1.
2349 (*avx_loadlps): Override length_immediate for the first alternative.
2350 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2351 attributes for second alternative.
2352 (*vec_concatv2sf_sse4_1): Override length_immediate and
2353 prefix_data16 attributes for second alternative.
2354 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2355 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2356 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2357 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2358 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2359 prefix_data16 and length_immediate to 1.
2360 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2361 to 1.
2362 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2363 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2364 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2365 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2366 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2367 *sse4_1_pextrd): Set length_immediate to 1.
2368 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2369 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2370 to 1.
2371 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2372 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2373 length_immediate to 1 for second alternative.
2374 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2375 prefix_extra and length_immediate attributes for the first
2376 alternative.
2377 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2378 first alternative.
2379 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2380 to 1 for the first and third alternative.
2381 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2382 alternative.
2383 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2384 attribute.
2385 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2386 attribute to 0.
2387 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2388 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2389 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2390 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2391 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2392 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2393 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2394 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2395 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2396 (ssse3_palignrti): Override length_immediate to 1.
2397 (ssse3_palignrdi): Override length_immediate to 1, override
2398 prefix_rex attribute.
f3afc8a7 2399 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2400 (sse4a_extrqi): Override length_immediate to 2.
2401 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2402 (sse4a_insertq): Override prefix_data16 to 0.
2403 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2404 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2405 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2406 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2407 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2408 and length_immediate to 1.
2409 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2410 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2411 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2412 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2413 and length_immediate to 1.
2414 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2415 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2416 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2417 avx_ptest256): Override prefix_extra to 1.
2418 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2419 Override prefix_data16 and length_immediate to 1.
2420 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2421 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2422 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2423 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2424 prefix_data16 to 0 and prefix_extra to 2.
2425 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2426 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2427 attribute.
2428 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2429 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2430 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2431 and prefix_extra to 2.
2432 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2433 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2434 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2435 avx_vpermilvar<mode>3,
2436 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2437 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2438 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2439 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2440 Override prefix_extra to 1.
2441 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2442 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2443 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2444 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2445 prefix_extra and length_immediate to 1.
2446 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2447 modrm to 0.
2448 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2449 to 1 for the first alternative.
2450 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2451 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2452 cases.
2453 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2454 *movv2sf_internal_avx, *movv2sf_internal): Override
2455 prefix_rep attribute for certain alternatives.
2456 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2457 attributes for certain alternatives.
2458 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2459 attributes for certain alternatives.
2460 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2461 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2462 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2463 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2464 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2465 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2466 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2467 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2468 length_immediate to 1 if operand 2 is const_int_operand.
2469 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2470 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2471 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2472 using old 3DNOW insn rather than SSE/3DNOW_A.
2473 (mmx_emms, mmx_femms): Clear modrm attribute.
2474
0674b9d0
MJ
24752009-05-29 Martin Jambor <mjambor@suse.cz>
2476
2477 * tree-sra.c: New implementation of SRA.
2478
2479 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2480 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2481 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2482 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2483 (SRA_MAX_STRUCTURE_COUNT): Removed.
2484 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2485 * doc/invoke.texi (sra-max-structure-size): Removed.
2486 (sra-field-structure-ratio): Removed.
2487
616f21df
JJ
24882009-05-29 Jakub Jelinek <jakub@redhat.com>
2489
2490 PR middle-end/40291
2491 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2492 before expansion.
2493
da7ba240
AB
24942009-05-29 Andrey Belevantsev <abel@ispras.ru>
2495
2496 PR rtl-optimization/40101
2497 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2498 seqno. Adjust comment.
2499 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2500 inserting bookkeeping before a jump, the jump is not scheduled.
2501 When no positive seqno found, provide a value. Add comment.
2502
71dcd609
RG
25032009-05-29 Richard Guenther <rguenther@suse.de>
2504
2505 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2506 short-cutting on the first component.
2507
a900ae6b
JJ
25082009-05-29 Jakub Jelinek <jakub@redhat.com>
2509
2510 PR middle-end/39958
2511 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2512 for trees other than decls/types.
2513
821bb7f8
RG
25142009-05-29 Richard Guenther <rguenther@suse.de>
2515
2516 * tree-ssa-operands.c (get_expr_operands): Do not handle
2517 INDIRECT_REFs in the handled-component case. Remove
2518 unused get_ref_base_and_extent case.
2519 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2520 tree_low_cst and host_integerp where possible.
2521 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2522 codes for equivalence.
2523 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2524
e997fb9c
DB
25252009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2526
2527 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2528 to tmake_file for i[34567]86-*-cygwin*.
2529
58195b74
JJ
25302009-05-29 Jakub Jelinek <jakub@redhat.com>
2531
2532 PR target/40017
2533 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2534 (altivec_categorize_keyword, init_vector_keywords,
2535 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2536 similar to bool.
2537
055df276
KT
25382009-05-29 Kai Tietz <kai.tietz@onevision.com>
2539
2540 * tree.c (handle_dll_attribute): Check if node is
2541 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2542
f5939ef3
RE
25432009-05-29 Richard Earnshaw <rearnsha@arm.com>
2544
2545 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2546 component.
2547 (thumb2_zero_extendqidi2): Likewise.
2548
c185de40
KK
25492009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2550
2551 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2552 instead of gen_movrt.
2553 * config/sh/sh.md (movrt): Remove.
2554
bf3c6caf
SE
25552009-05-28 Steve Ellcey <sje@cup.hp.com>
2556
f3afc8a7 2557 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2558 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2559 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2560 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2561 -msched-prefer-non-control-spec-insns,
2562 -msched-stop-bits-after-every-cycle,
2563 -msched-count-spec-in-critical-path,
2564 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2565 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2566 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2567 and -msched-spec-verbose.
2568
8a66e987
JM
25692009-05-28 Joseph Myers <joseph@codesourcery.com>
2570
f3afc8a7 2571 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2572 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2573 error if used.
2574 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2575
b45d2719
RG
25762009-05-28 Richard Guenther <rguenther@suse.de>
2577
2578 * tree-ssa-alias.c (ao_ref_init): New function.
2579 (ao_ref_base): Likewise.
2580 (ao_ref_base_alias_set): Likewise.
2581 (ao_ref_alias_set): Likewise.
2582 (refs_may_alias_p_1): Change signature.
2583 (refs_may_alias_p): Adjust.
2584 (refs_anti_dependent_p): Likewise.
2585 (refs_output_dependent_p): Likewise.
2586 (call_may_clobber_ref_p_1): Change signature.
2587 (call_may_clobber_ref_p): Adjust.
2588 (stmt_may_clobber_ref_p_1): New function split out from ...
2589 (stmt_may_clobber_ref_p): ... here.
2590 (maybe_skip_until): Adjust signature.
2591 (get_continuation_for_phi): Likewise.
2592 (walk_non_aliased_vuses): Likewise.
2593 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2594 (ao_ref_init): Declare.
2595 (ao_ref_base): Likewise.
2596 (ao_ref_alias_set): Likewise.
2597 (stmt_may_clobber_ref_p_1): Likewise.
2598 (walk_non_aliased_vuses): Adjust.
2599 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2600 (get_ref_from_reference_ops): remove.
2601 (vn_reference_lookup_2): Adjust signature.
2602 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2603 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2604 (vn_reference_lookup): Adjust.
2605 (vn_reference_insert): Likewise.
2606 (vn_reference_insert_pieces): Adjust signature.
2607 (visit_reference_op_call): Adjust.
2608 * tree-ssa-pre.c (get_expr_type): Simplify.
2609 (phi_translate_1): Adjust.
2610 (compute_avail): Likewise.
2611 (translate_vuse_through_block): Do not re-build trees.
2612 (value_dies_in_block_x): Likewise.
2613 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2614 fields.
2615 (vn_reference_lookup_pieces): Adjust declaration.
2616 (vn_reference_insert_pieces): Likewise.
2617
554223b6
BK
26182009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2619
2620 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2621 with checking disabled.
2622
233215fe
DK
26232009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2624
2625 PR target/37216
2626
2627 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2628 macro definition for support of three-operand format aligned
2629 .comm directive in assembler on cygwin/pe/mingw target OS.
2630 * configure: Regenerate.
2631 * config.h: Regenerate.
2632
2633 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2634 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2635 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2636
2637 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2638 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2639
24adb18f
IR
26402009-05-28 Ira Rosen <irar@il.ibm.com>
2641
2642 PR tree-optimization/40254
2643 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2644 in analysis of basic blocks.
2645
2c5bfdf7
AN
26462009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2647
2648 PR middle-end/33699
f3afc8a7 2649 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2650 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2651 (TARGET_INITIALIZER): Use it.
2652 * cse.c (CHEAPER): Move it up to the other macros.
2653 (insert): Rename this ...
2654 (insert_with_costs): ... to this. Add cost parameters. Update
2655 function comment.
2656 (insert): New function. Call insert_with_costs.
2657 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2658 find_reg_offset_for_const, try_const_anchors): New functions.
2659 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2660 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2661 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2662 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2663
9e6aced0
AO
26642009-05-28 Alexandre Oliva <aoliva@redhat.com>
2665
2666 * tree-inline.c (remap_decls): Enable nonlocalized variables
2667 when not optimizing.
2668
89fbbe4e
AO
26692009-05-28 Alexandre Oliva <aoliva@redhat.com>
2670
2671 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2672 Simplify other tests involving optimize.
2673
e455776a
TT
26742009-05-27 Tom Tromey <tromey@redhat.com>
2675
2676 * unwind-dw2.c (_Unwind_DebugHook): New function.
2677 (uw_install_context): Call _Unwind_DebugHook.
2678
cea32bca
TT
26792009-05-27 Tom Tromey <tromey@redhat.com>
2680
2681 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2682
c607156f
ILT
26832009-05-27 Ian Lance Taylor <iant@google.com>
2684
2685 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2686 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2687 (ALL_LINKERFLAGS): Define.
2688 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2689 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2690 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2691 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2692 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2693 $(LINKER_FOR_BUILD).
2694 (build/gcov-iov$(build_exeext)): Likewise.
2695
ec0a1343
JB
26962009-05-27 Julian Brown <julian@codesourcery.com>
2697
2698 * gcse.c (target.h): Include.
2699 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2700 copy of argument to a pseudo register.
2701
ac80ba07
DN
27022009-05-27 Diego Novillo <dnovillo@google.com>
2703
2704 * tree-ssa-live.c (dump_scope_block): Document arguments.
2705 (dump_scope_blocks): Document.
2706 (debug_scope_blocks): New.
2707 * tree-flow.h (debug_scope_blocks): Declare.
2708
d1803a17
DC
27092009-05-21 Denis Chertykov <denisc@overta.ru>
2710
f3afc8a7 2711 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2712
51fb7760 27132009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2714
2715 * expr.c (target_align): New function. Alignment the TARGET of an
2716 assignment may be assume to have.
2717 (highest_pow2_factor_for_target): Use it instead of relying on
2718 immediate tree attributes of TARGET, not necessarily honored when
2719 intermediate bitfields are involved.
2720
634fa334
L
27212009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2722
2723 PR target/40266
2724 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2725 AVX, SSE4, AES, PCLMUL and POPCNT.
2726
65332587
DN
27272009-05-27 Diego Novillo <dnovillo@google.com>
2728
2729 * tree-pretty-print.c (dump_location): New.
2730 (dump_generic_node): Call it.
2731 Factor code to handle BLOCK nodes ...
2732 (dump_block_node): ... here.
2733
3e17e31d
RAE
27342009-05-27 Rafael Avila de Espindola <espindola@google.com>
2735
f3afc8a7
UB
2736 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2737 with it.
3e17e31d
RAE
2738 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2739 included.
2740 * gcc-plugin.h: Include config.h and system.h.
2741 (IN_GCC): Define if not defined.
2742
5e370570
HPN
27432009-05-27 Hans-Peter Nilsson <hp@axis.com>
2744
2745 PR middle-end/40249
2746 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2747 with -fno-inline.
2748
d000f0d9
SZ
27492009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2750
2751 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2752 applicable.
2753 * config/m32r/m32r.h: Ditto.
2754 * config/m32r/m32r.md: Ditto.
2755 * config/m32r/predicates.md: Ditto.
2756
82f331ff
AO
27572009-05-27 Alexandre Oliva <aoliva@redhat.com>
2758
2759 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2760
ae2392a9
BS
27612009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2762
2763 * doc/plugins.texi
2764 (Loading plugins): typo.
2765 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2766 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2767 (Interacting with the GCC Garbage Collector): Added new section.
2768 (Giving information about a plugin): Added new section for
2769 PLUGIN_INFO.
ae2392a9
BS
2770 * ggc.h (ggc_register_root_tab): Added declaration.
2771 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2772 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2773 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2774 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2775 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2776 (ggc_register_root_tab) Added new routine.
2777 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2778 PLUGIN_GGC_MARKING event.
2779 * ggc-zone.c: Include plugin.h.
2780 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2781 * ggc-page.c: Include plugin.h.
2782 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2783 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2784 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2785 (register_callback): check lack of callbacks for
2786 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2787 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2788 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2789 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2790 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2791 dependency on plugin.h.
2792 (plugin.o): Added dependency on ggc.h...
2793
f0cfd3a8
RG
27942009-05-26 Richard Guenther <rguenther@suse.de>
2795
2796 PR middle-end/40248
2797 Revert
2798 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2799 with mismatched comparison modes.
2800
2801 * expr.c (expand_expr_real_1): Expand the operand of a
2802 VIEW_CONVERT_EXPR in its natural mode.
2803
7980bfb8
ILT
28042009-05-26 Ian Lance Taylor <iant@google.com>
2805
2806 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2807 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2808 (ALL_COMPILERFLAGS): Define.
2809 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2810 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2811 (collect2$(exeext), collect2.o): Likewise.
2812 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2813 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2814 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2815 (libbackend.o, intl.o, cppdefault.o): Likewise.
2816 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2817 (build/%.o): Use $(COMPILER_FOR_BUILD).
2818 (build/gen%$(build_exeext)): Likewise.
2819 (build/gcov-iov$(build_exeext)): LIkewise.
2820 * config/t-darwin (darwin.o): Use $(COMPILER).
2821 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2822 * config/t-sol2 (sol2-c.o): Likewise.
2823 (sol2.o): Likewise.
2824 * config/t-vxworks (vxworks.o): Likewise.
2825 * config/x-darwin (host-darwin.o): Likewise.
2826 * config/x-hpux (host-hpux.o): Likewise.
2827 * config/x-linux (host-linux.o): Likewise.
2828 * config/x-solaris (host-solaris.o): Likewise.
2829 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2830 * config/arm/t-arm (arm-c.o): Likewise.
2831 * config/arm/t-pe (pe.o): Likewise.
2832 * config/arm/t-wince-pe (pe.o): Likewise.
2833 * config/i386/t-cygming (winnt.o): Likewise.
2834 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2835 * config/i386/t-cygwin (cygwin1.o): Likewise.
2836 (cygwin2.o): Likewise.
2837 * config/i386/t-i386 (i386-c.o): Likewise.
2838 * config/i386/t-interix (winnt.o): Likewise.
2839 * config/i386/t-netware (netware.o): Likewise.
2840 * config/i386/t-nwld (nwld.o): Likewise.
2841 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2842 * config/i386/x-i386 (driver-i386.o): Likewise.
2843 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2844 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2845 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2846 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2847 * config/mips/x-native (driver-native.o): Likewise.
2848 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2849 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2850 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2851 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2852 * config/score/t-score-elf (score7.o): Likewise.
2853 (score3.o): Likewise.
2854 * config/sh/t-sh (sh-c.o): Likewise.
2855 * config/sh/t-symbian (sh-c.o): Likewise.
2856 (symbian.o): Likewise.
2857 * config/spu/t-spu-elf (spu-c.o): Likewise.
2858 * config/v850/t-v850 (v850-c.o): Likewise.
2859 * config/v850/t-v850e (v850-c.o): Likewise.
2860
23977d3c
RG
28612009-05-26 Richard Guenther <rguenther@suse.de>
2862
2863 PR tree-optimization/40122
2864 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2865 VECTOR_CSTs if possible.
2866 (fold_gimple_assign): Likewise.
2867
3d62b895
RG
28682009-05-26 Richard Guenther <rguenther@suse.de>
2869
2870 PR middle-end/40252
2871 * fold-const.c (fold_binary): Use the correct types for building
2872 rotates.
2873
12346147
RG
28742009-05-26 Richard Guenther <rguenther@suse.de>
2875
2876 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2877 redundant calls to merge_alias_info.
2878 (bump_vector_ptr): Likewise.
2879 * tree-ssa-copy.c (merge_alias_info): Remove.
2880 (replace_exp_1): Remove call to merge_alias_info.
2881 (propagate_tree_value): Likewise.
2882 (fini_copy_prop): Propagate points-to info.
2883 * tree-flow.h (merge_alias_info): Remove.
2884
807d5e6f
HS
28852009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2886
2887 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2888
85057983
JH
28892009-05-25 Jan Hubicka <jh@suse.cz>
2890
2891 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2892 * cgraph.h (struct inline_summary): New filed self_wize,
2893 size_inlining_benefit, self_time and time_inlining_benefit.
2894 (struct cgraph_global_info): Replace insns by time ans size fields.
2895 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2896 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2897 (ipcp_update_callgraph): Do not touch function bodies.
2898 * ipa-inline.c: Include except.h
2899 (MAX_TIME): New constant.
2900 (overall_insns): Remove.
2901 (leaf_node_p): New.
2902 (overall_size, max_benefit): New static variables.
2903 (cgraph_estimate_time_after_inlining): New function.
2904 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2905 (cgraph_clone_inlined_nodes): Update size.
2906 (cgraph_mark_inline_edge): Update size.
2907 (cgraph_estimate_growth): Use size info.
2908 (cgraph_check_inline_limits): Check size.
2909 (cgraph_default_inline_p): Likewise.
2910 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2911 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2912 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2913 and times.
85057983
JH
2914 (cgraph_decide_inlining): Likewise.
2915 (cgraph_decide_inlining_incrementally): Likewise; honor
2916 PARAM_EARLY_INLINING_INSNS.
2917 (likely_eliminated_by_inlining_p): New predicate.
2918 (estimate_function_body_sizes): New function.
2919 (compute_inline_parameters): Use it.
2920 * except.c (must_not_throw_labels): New function.
2921 * except.h (must_not_throw_labels): Declare.
2922 * tree-inline.c (init_inline_once): Kill inlining_weigths
2923 * tree-ssa-structalias.c: Avoid uninitialized warning.
2924 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2925 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2926 (PARAM_INLINE_CALL_COST): Remove.
2927 (PARAM_EARLY_INLINING_INSNS): New.
2928
01df5c8a
RG
29292009-05-25 Richard Guenther <rguenther@suse.de>
2930
2931 PR tree-optimization/36327
2932 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2933 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2934 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2935 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2936 for union COMPONENT_REFs.
2937 (vn_reference_lookup_3): New callback. Lookup from memset
2938 and CONSTRUCTOR assignment, translate through struct copies.
2939 (vn_reference_lookup_pieces): Make sure to not free the
2940 passed operands array. Adjust walk_non_aliased_vuses call.
2941 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2942 make sure we do not leak memory.
2943
6b8ed145
RG
29442009-05-25 Richard Guenther <rguenther@suse.de>
2945
2946 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2947 * tree-inline.c (expand_call_inline): Reset the escaped and
2948 callused solutions.
2949 * tree-ssa-structalias.c (pass_build_ealias): New.
2950 * tree-pass.h (pass_build_ealias): Declare.
2951 * passes.c (init_optimization_passes): Add PTA during
2952 early optimizations.
2953 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2954 and CALLUSED solutions.
2955 (dump_points_to_solution): New function, split out from ...
2956 (dump_points_to_info_for): ... here.
2957 * tree-parloops.c (parallelize_loops): Reset the escaped and
2958 callused solutions.
2959
0adcf178
RO
29602009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2961
2962 PR bootstrap/40027
2963 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2964 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2965
12aaf609
IR
29662009-05-25 Ira Rosen <irar@il.ibm.com>
2967
2968 PR tree-optimization/40238
2969 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2970 statements after basic block's labels.
2971 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2972 to free the allocated memory.
2973
7f9a14e3
KK
29742009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2975
2976 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2977 return address with a USE.
2978
b842d478
RG
29792009-05-24 Richard Guenther <rguenther@suse.de>
2980
2981 PR middle-end/40233
2982 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2983 array type from the main variant of the inner type.
2984
8db7b33f
JBG
29852009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2986
2987 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2988 definition to bool (from int) to un-break build.
2989 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2990
cff4e50d
PB
29912009-05-24 Paolo Bonzini <bonzini@gnu.org>
2992
2993 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2994 discard_stmt_changes): Delete.
2995 * tree-ssa-operands.c (scb_stack): Delete.
2996 (init_ssa_operands): Do not initialize it.
2997 (fini_ssa_operands): Do not free it.
2998 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2999
3000 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3001 update_stmt, remove the others. Fix comments.
3002 * tree-dfa.c (optimize_stack_restore): Likewise.
3003 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3004 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3005 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3006 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3007 Likewise.
3008 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3009 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
3010 (dom_opt_finalize_block): Likewise, adjusting access to
3011 stmts_to_rescan.
cff4e50d
PB
3012 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3013 (stmts_to_rescan): Change item type to gimple.
3014 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3015
a70d6342
IR
30162009-05-24 Ira Rosen <irar@il.ibm.com>
3017
3018 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3019 * tree-pass.h (pass_slp_vectorize): New pass.
3020 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3021 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3022 * tree-vectorizer.c (timevar.h): Include.
3023 (user_vect_verbosity_level): Declare.
3024 (vect_location): Fix comment.
3025 (vect_set_verbosity_level): Update user_vect_verbosity_level
3026 instead of vect_verbosity_level.
3027 (vect_set_dump_settings): Add an argument. Ignore user defined
3028 verbosity if dump flags require higher level of verbosity. Print to
3029 stderr only for loop vectorization.
3030 (vectorize_loops): Update call to vect_set_dump_settings.
3031 (execute_vect_slp): New function.
3032 (gate_vect_slp): Likewise.
3033 (struct gimple_opt_pass pass_slp_vectorize): New.
3034 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3035 access its members.
3036 (vec_info_for_bb): New function.
3037 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3038 (VECTORIZATION_ENABLED): New macro.
3039 (SLP_ENABLED, SLP_DISABLED): Likewise.
3040 (vect_is_simple_use): Add bb_vec_info argument.
3041 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3042 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3043 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3044 vect_schedule_slp, vect_analyze_slp): Likewise.
3045 (vect_analyze_stmt): Add slp_tree argument.
3046 (find_bb_location): Declare.
3047 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3048 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3049 (vect_analyze_loop_operations, vect_analyze_loop,
3050 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3051 vect_finalize_reduction, vectorizable_reduction,
3052 vectorizable_live_operation, vect_transform_loop): Likewise.
3053 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3054 skip evolution analysis if analyzing a basic block.
3055 (dr_analyze_indices): Likewise.
3056 (initialize_data_dependence_relation): Skip the test whether the
3057 object is invariant for basic blocks.
3058 (compute_all_dependences): Skip dependence analysis for data
3059 references in basic blocks.
3060 (find_data_references_in_stmt): Don't fail in case of invariant
3061 access in basic block.
3062 (find_data_references_in_bb): New function.
3063 (find_data_references_in_loop): Move code to
782dc37a 3064 find_data_references_in_bb and add a call to it.
a70d6342
IR
3065 (compute_data_dependences_for_bb): New function.
3066 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3067 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3068 that STEP is 0.
3069 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3070 unknown dependence in basic block and fail in case of dependence in
3071 basic block.
3072 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3073 dependence instances from either loop or basic block vectorization
3074 info.
3075 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3076 before calling nested_in_vect_loop_p.
3077 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3078 dependence instances from either loop or basic block vectorization
3079 info.
3080 (vect_verify_datarefs_alignment): Likewise.
3081 (vect_enhance_data_refs_alignment): Adjust function calls.
3082 (vect_analyze_data_refs_alignment): Likewise.
3083 (vect_analyze_group_access): Fix printing. Skip different checks if
3084 DR_STEP is 0. Keep strided stores either in loop or basic block
3085 vectorization data structure. Fix indentation.
3086 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3087 basic blocks.
3088 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3089 dependence instances from either loop or basic block vectorization
3090 info.
3091 (vect_analyze_data_refs): Update comment. Call
3092 compute_data_dependences_for_bb to analyze basic blocks.
3093 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3094 case of loop vectorization. In case of basic block vectorization use
782dc37a 3095 data-ref itself as a base.
a70d6342
IR
3096 (vect_create_data_ref_ptr): In case of basic block vectorization:
3097 don't advance the pointer, add new statements before the current
3098 statement. Adjust function calls.
3099 (vect_supportable_dr_alignment): Support only aligned accesses in
3100 basic block vectorization.
3101 * common.opt (ftree-slp-vectorize): New flag.
3102 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3103 (vect_pattern_recog_1): Likewise.
3104 * tree-vect-stmts.c (process_use): Likewise.
3105 (vect_init_vector): Add new statements in the beginning of the basic
3106 block in case of basic block SLP.
3107 (vect_get_vec_def_for_operand): Adjust function calls.
3108 (vect_finish_stmt_generation): Likewise.
3109 (vectorizable_call): Add assert that it is loop vectorization, adjust
3110 function calls.
3111 (vectorizable_conversion, vectorizable_assignment): Likewise.
3112 (vectorizable_operation): In case of basic block SLP, take
3113 vectorization factor from statement's type and skip the relevance
3114 check. Adjust function calls.
3115 (vectorizable_type_demotion): Add assert that it is loop
3116 vectorization, adjust function calls.
3117 (vectorizable_type_promotion): Likewise.
3118 (vectorizable_store): Check for outer loop only in case of loop
3119 vectorization. Adjust function calls. For basic blocks, skip the
3120 relevance check and don't advance pointers.
3121 (vectorizable_load): Likewise.
3122 (vectorizable_condition): Add assert that it is loop vectorization,
3123 adjust function calls.
3124 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3125 that it is not reduction, get vector type, call only supported
782dc37a 3126 functions, skip loop specific parts.
a70d6342
IR
3127 (vect_transform_stmt): Check for outer loop only in case of loop
3128 vectorization.
3129 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3130 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3131 for external definition.
3132 * passes.c (pass_slp_vectorize): New pass.
3133 * tree-vect-slp.c (find_bb_location): New function.
3134 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3135 check for patterns only in loops.
3136 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3137 case of multiple types in basic block SLP.
3138 (vect_mark_slp_stmts_relevant): New function.
3139 (vect_supported_load_permutation_p): Fix comment.
3140 (vect_analyze_slp_instance): Add argument. In case of basic block
3141 SLP, take vectorization factor from statement's type, check that
3142 unrolling factor is 1. Adjust function call. Save SLP instance in
3143 either loop or basic block vectorization structure. Return FALSE,
3144 if SLP failed.
3145 (vect_analyze_slp): Add argument. Get strided stores groups from
3146 either loop or basic block vectorization structure. Return FALSE
3147 if basic block SLP failed.
3148 (new_bb_vec_info): New function.
3149 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3150 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3151 (vect_schedule_slp): Add argument. Get SLP instances from either
3152 loop or basic block vectorization structure. Set vectorization factor
3153 to be 1 for basic block SLP.
3154 (vect_slp_transform_bb): New function.
3155 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3156
0676c393
MM
31572009-05-23 Mark Mitchell <mark@codesourcery.com>
3158
3159 * final.c (shorten_branches): Do not align labels for jump tables.
3160 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3161
94324dae
EB
31622009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3163
3164 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3165 Remove outdated reference to flow.c and fix nits.
3166 * doc/gccint.texi: Tweak RTL description.
3167 * doc/rtl.texi: Likewise.
3168
92bffc14
DC
31692009-05-23 Denis Chertykov <chertykov@gmail.com>
3170
3171 * config/avr/avr.c: Change my email address.
3172 * config/avr/avr.h: Likewise.
3173 * config/avr/avr.md: Likewise.
3174 * config/avr/avr-protos.h: Likewise.
3175 * config/avr/libgcc.S: Likewise.
3176
eec9405e
TS
31772009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3178
3179 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3180 (spu_split_load, spu_split_store): Change return type to int.
3181 (spu_split_convert): Declare.
3182 * config/spu/predicates.md (spu_mem_operand): Remove.
3183 (spu_mov_operand): Update.
3184 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3185 * config/spu/spu.c (regno_aligned_for_load): Remove.
3186 (reg_aligned_for_addr, spu_expand_load): Define.
3187 (spu_expand_extv): Reimplement and handle MEM.
3188 (spu_expand_insv): Handle MEM.
3189 (spu_sched_reorder): Handle insn's with length 0.
3190 (spu_legitimate_address_p): Reimplement.
3191 (store_with_one_insn_p): Return TRUE for any mode with size
3192 larger than 16 bytes.
3193 (address_needs_split): Define.
3194 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3195 operands.
3196 (spu_convert_move): Define.
782dc37a 3197 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3198 (spu_split_store): Change all MEM's to TImode.
3199 (spu_init_expanders): Preallocate registers that correspond to
3200 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3201 mark_reg_pointer.
3202 (spu_split_convert): Define.
3203 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3204 (_move<mode>, _movdi, _movti): Update predicate and condition.
3205 (load, store): Change to define_split.
3206 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3207 extend<mode>ti2.
3208 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3209 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3210 define_insn_and_split of lshr<mode>3.
3211 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3212 (<v>ashr<mode>3_imm): Define.
3213 (extv, extzv, insv): Allow MEM operands.
3214 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3215 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3216 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3217 (_spu_convert2): Change to define_insn_and_split and remove the
3218 corresponding define_peephole2.
3219 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3220 Change predicates to memory_operand.
3221
7d31a807
MM
32222009-05-22 Mark Mitchell <mark@codesourcery.com>
3223
3224 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3225
d021d274
MM
32262009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3227
3228 PR tree-optimization/40219
3229 * tree.c (iterative_hash_expr): Make sure the builtin function is
3230 a normal builtin function and not a front end or back end builtin
3231 before indexing into the built_in_decls array.
3232
4d7a65ea
RG
32332009-05-22 Richard Guenther <rguenther@suse.de>
3234
3235 PR middle-end/38964
3236 * alias.c (write_dependence_p): Do not use TBAA for answering
3237 anti-dependence or output-dependence.
782dc37a 3238 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3239 (emit_pointer_definition): Remove.
3240 (emit_alias_warning): Likewise.
3241 (find_what_var_points_to): Remove TBAA pruning code.
3242 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3243 violations.
3244 (compute_points_to_sets): Remove code computing the set of
3245 dereferenced pointers.
3246 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3247 oracle for querying anti and output dependencies.
3248 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3249 if TBAA may be applied.
3250 (refs_anti_dependent_p): New function.
3251 (refs_output_dependent_p): Likewise.
3252 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3253 (refs_output_dependent_p): Likewise.
3254 * doc/tree-ssa.texi (Memory model): New section.
3255 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3256 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3257 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3258 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3259 * expr.c (expand_expr_real_1): Likewise.
3260 * gimple-low.c (lower_stmt): Likewise.
3261 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3262 (dump_gimple_cdt): Remove.
3263 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3264 (gimple_size): Likewise.
3265 (walk_gimple_op): Likewise.
3266 (is_gimple_stmt): Likewise.
3267 (walk_stmt_load_store_addr_ops): Likewise.
3268 (gimple_build_cdt): Remove.
3269 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3270 * gimple.h (gimple_cdt_new_type): Remove.
3271 (gimple_cdt_new_type_ptr): Likewise.
3272 (gimple_cdt_set_new_type): Likewise.
3273 (gimple_cdt_location): Likewise.
3274 (gimple_cdt_location_ptr): Likewise.
3275 (gimple_cdt_set_location): Likewise.
3276 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3277 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3278 GIMPLE_CHANGE_DYNAMIC_TYPE.
3279 (verify_types_in_gimple_stmt): Likewise.
3280 * tree-inline.c (estimate_num_insns): Likewise.
3281 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3282 (copy_decl_to_var): Likewise.
3283 (copy_result_decl_to_var): Likewise.
3284 * tree-pretty-print.c (dump_generic_node): Do not handle
3285 CHANGE_DYNAMIC_TYPE_EXPR.
3286 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3287 * tree-ssa-operands.c (get_expr_operands): Likewise.
3288 * tree-ssa-structalias.c (struct variable_info): Remove
3289 no_tbaa_pruning member.
3290 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3291 (unify_nodes): Do not copy it.
3292 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3293 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3294 (set_uids_in_ptset): Do not check it.
3295 (find_what_var_points_to): Likewise.
3296 (compute_tbaa_pruning): Remove.
3297 (compute_points_to_sets): Do not call it.
3298 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3299 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3300 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3301 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3302 (DECL_NO_TBAA_P): Likewise.
3303 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3304 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3305 (expand_omp_atomic_pipeline): Do not set it.
3306 * print-tree.c (print_node): Do not dump it.
3307 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3308 redundant check.
3309
83a6ac60
VM
33102009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3311
3312 PR target/39856
3313 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3314 for clobber.
3315
fe2978fb
MM
33162009-05-22 Mark Mitchell <mark@codesourcery.com>
3317
3318 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3319 non-external.
3320
134ef638
BE
33212009-05-22 Ben Elliston <bje@au.ibm.com>
3322
3323 * Makefile.in (bversion.h, s-bversion): New targets.
3324 (TOPLEV_H): Add bversion.h.
3325 * toplev.h: Include "bversion.h".
3326 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3327 the __format__ attribute only if compiling with the same version
3328 of GCC as the sources (the "build version").
3329
52fc669d
BE
33302009-05-22 Ben Elliston <bje@au.ibm.com>
3331
3332 * c-format.c (handle_format_attribute): Fix comment typo.
3333
583ca921
SE
33342009-05-21 Steve Ellcey <sje@cup.hp.com>
3335
3336 PR target/37846
3337 * config/ia64/ia64.opt (mfused-madd): New.
3338 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3339 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3340 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3341 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3342 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3343 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3344 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3345 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3346 instruction if !TARGET_FUSED_MADD.
3347 (fpma, fpms): Remove colon from name.
3348
150e3929
RG
33492009-05-22 Richard Guenther <rguenther@suse.de>
3350
3351 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3352 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3353 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3354 TARGET_MEM_REF.
3355 (create_expression_by_pieces): Only convert if necessary.
3356 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3357 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3358
9a2b090c
AN
33592009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3360
3361 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3362 regular pattern from a template and rename it ...
3363 (*extzv_truncsi_exts): ... to this.
3364
33b92c9d
RG
33652009-05-21 Richard Guenther <rguenther@suse.de>
3366
3367 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3368 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3369 (cgraph_default_inline_p): Likewise.
3370 (cgraph_decide_inlining_incrementally): Likewise.
3371
cabf85c3
L
33722009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3373 Uros Bizjak <ubizjak@gmail.com>
3374
3375 * config/i386/cpuid.h (bit_MOVBE): New.
3376
3377 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3378
3379 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3380 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3381 (ix86_handle_option): Handle OPT_mmovbe.
3382 (ix86_target_string): Add -mmovbe.
3383 (pta_flags): Add PTA_MOVBE.
3384 (processor_alias_table): Add PTA_MOVBE to "atom".
3385 (override_options): Handle PTA_MOVBE.
3386
3387 * config/i386/i386.h (TARGET_MOVBE): New.
3388
3389 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3390 (*bswapsi_movbe): New.
3391 (*bswapdi_movbe): Likewise.
3392 (bswapdi2): Renamed to ...
3393 (*bswapdi_1): This.
3394 (bswapdi2): New expander.
3395
3396 * config/i386/i386.opt (mmovbe): New.
3397
3398 * doc/invoke.texi: Document -mmovbe.
3399
9fefa0aa
TG
34002009-05-21 Taras Glek <tglek@mozilla.com>
3401
3402 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3403 * gcc-plugin.h (plugin_init): Updated signature.
3404 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3405 * doc/plugins.texi (plugin_init): Updated documention to reflect
3406 API change.
9fefa0aa
TG
3407 * doc/plugins.texi (plugin_name_args): Added to documention.
3408
1ea9fe56
MM
34092009-05-21 Mark Mitchell <mark@codesourcery.com>
3410
3411 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3412 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3413
52f84254
SZ
34142009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3415
3416 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3417 JUMP_TABLE_DATA_P predicates where applicable.
3418 * config/i386/predicates.md: Ditto.
3419 * config/i386/sse.md: Ditto.
3420
a952487c
JJ
34212009-05-21 Jakub Jelinek <jakub@redhat.com>
3422
93cac287
JJ
3423 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3424 operand2 -128 override length_immediate attribute to 1.
3425 * config/i386/predicates.md (constm128_operand): New predicate.
3426
a952487c
JJ
3427 * config/i386/i386.c (memory_address_length): Handle %r12
3428 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3429 also check REGNO.
3430 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3431 mode look through optional ZERO_EXTEND and SUBREG.
3432 * config/i386/i386.md (R12_REG): New define_constant.
3433 (prefix_data16): For sse unit set also for MODE_TI insns.
3434 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3435 insns set if operand 1 is ext_QIreg_operand.
3436 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3437 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3438 immediate.
3439 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3440 mode from MODE_DI to MODE_SI.
3441 (movdi_1_rex64): Override modrm and length_immediate attributes
3442 only for movabs (TYPE_IMOV, alternative 2).
3443 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3444 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3445 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3446 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3447 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3448 prefix_rex attribute if DImode.
3449 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3450 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3451 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3452 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3453 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3454 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3455 Likewise. For TYPE_IMOV clear length_immediate attribute.
3456 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3457 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3458 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3459 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3460 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3461 or one operand TYPE_ISHIFT.
3462 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3463 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3464 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3465 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3466 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3467 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3468 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3469 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3470 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3471 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3472 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3473 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3474 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3475 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3476 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3477 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3478 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3479 set mode attribute, don't override length attribute.
3480 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3481 to 1.
3482 (return_internal_long): Set length attribute to 2 instead of 1.
3483 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3484 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3485 prefix_rex attribute.
782dc37a
UB
3486 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3487 New predicates.
3488 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3489
64af62c2
RR
34902009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3491
3492 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3493
c166b898
ILT
34942009-05-20 Ian Lance Taylor <iant@google.com>
3495
3496 * tree.c (build_tree_list_vec_stat): New function.
3497 (ctor_to_vec): New function.
3498 (build_nt_call_vec): New function.
3499 (build_call_array): Change args to be a const pointer.
3500 (build_call_vec): New function.
3501 * tree.h (build_nt_call_vec): Declare.
3502 (build_tree_list_vec_stat): Declare.
3503 (build_tree_list_vec): Define.
3504 (build_call_array): Update declaration.
3505 (build_call_vec): Declare.
3506 (ctor_to_vec): Declare.
3507 * c-common.c (tree_vector_cache): New static variable.
3508 (make_tree_vector): New function.
3509 (release_tree_vector): New function.
3510 (make_tree_vector_single): New function.
3511 (make_tree_vector_copy): New function.
3512 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3513 (make_tree_vector_single, make_tree_vector_copy): Declare.
3514 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3515 (c_parser_expr_list): Don't manage cache here, instead call
3516 make_tree_vector.
3517 (c_parser_release_expr_list): Remove static function.
3518 (c_parser_vec_to_tree_list): Remove static function.
3519 (c_parser_attributes): Call build_tree_list_vec instead of
3520 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3521 c_parser_release_expr_list.
3522 (c_parser_postfix_expression_after_primary): Likewise.
3523 (c_parser_objc_keywordexpr): Likewise.
3524
40449a90
SL
35252009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3526
3527 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3528 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3529 TARGET_CONVERT_TO_TYPE.
3530 * hooks.c (hook_tree_const_tree_null): Define.
3531 * hooks.h (hook_tree_const_tree_null): Declare.
3532 * target.h (struct gcc_target): Add invalid_parameter_type,
3533 invalid_return_type, promoted_type, and convert_to_type fields.
3534 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3535 (TARGET_INVALID_RETURN_TYPE): Define.
3536 (TARGET_PROMOTED_TYPE): Define.
3537 (TARGET_CONVERT_TO_TYPE): Define.
3538 (TARGET_INITIALIZER): Update for new fields.
3539 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3540 (grokparms): Check targetm.invalid_parameter_type.
3541 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3542 * c-convert.c (convert): Check targetm.convert_to_type.
3543
642d97ff
AN
35442009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3545
3546 * config/mips/mips.md (*extenddi_truncate<mode>,
3547 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3548 defintions.
3549 (*extendhi_truncateqi): New define_insn_and_sptit.
3550
776248b8
JJ
35512009-05-20 Jakub Jelinek <jakub@redhat.com>
3552
3553 PR middle-end/40204
3554 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3555 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3556
d98e8686
EB
35572009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3558
3559 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3560 the operand of VIEW_CONVERT_EXPR.
3561
37c50435
L
35622009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3563
3564 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3565 extended family and model for Intel processors. Support Intel Atom.
37c50435 3566
dbb6088f
OH
35672009-05-20 Olivier Hainque <hainque@adacore.com>
3568
3569 * gstab.h (stab_code_type): Define, to be used instead of the
3570 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3571 notice.
3572 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3573 occurrences by stab_code_type.
3574 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3575
7ec49257
MJ
35762009-05-20 Martin Jambor <mjambor@suse.cz>
3577
3578 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3579 (sra_insert_before): Likewise.
3580 (sra_insert_after): Likewise.
3581 (sra_init_cache): Likewise.
3582 (sra_type_can_be_decomposed_p): Likewise.
3583 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3584 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3585 (sra_insert_before): Likewise.
3586 (sra_insert_after): Likewise.
3587 (sra_init_cache): Likewise.
3588 (insert_edge_copies_seq): Made static and moved upwards.
3589
3590 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3591 case.
3592
3593 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3594
3595 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3596 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3597 simple copies.
3598
0328ae4d
RG
35992009-05-20 Richard Guenther <rguenther@suse.de>
3600
3601 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3602 with mismatched comparison modes.
3603
a7994a57 36042009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3605
a7994a57 3606 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3607 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3608 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3609 with shifts for Thumb2.
3610 (orsi_notsi): New for orn.
3611 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3612 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3613 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3614 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3615 Don't invert remainder for IOR.
a7994a57 3616
e36dc339
ZD
36172009-05-19 Zdenek Dvorak <ook@ucw.cz>
3618
3619 PR tree-optimization/40087
3620 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3621 number_of_iterations_ne): Rename never_infinite argument.
3622 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3623 number_of_iterations_le): Handle pointer-type ivs when
3624 exit_must_be_taken is false.
3625 (number_of_iterations_cond): Do not always assume that
3626 exit_must_be_taken if the control variable is a pointer.
3627
5cfd5d9b
AP
36282009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3629
3630 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3631 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3632
2f1c7156
L
36332009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3634
3635 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3636 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3637
7bb27074
MLI
36382009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3639
3640 PR c/40172
3641 * c.opt (Wlogical-op): Disabled by default.
3642 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3643 Wextra.
3644 * doc/invoke.texi (Wlogical-op): Likewise.
3645
5aefc6a0
EB
36462009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3647
3648 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3649 into CASE_CONVERT.
3650 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3651 Propagate the type of the first operand.
3652 <ASSERT_EXPR>: Simplify.
3653 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3654 Rewrite using the RHS code as discriminant.
3655 <NOP_EXPR>: Turn into CASE_CONVERT.
3656 <PLUS_EXPR>: Propagate the type of the first operand.
3657
f3a83111
SE
36582009-05-19 Steve Ellcey <sje@cup.hp.com>
3659
3660 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3661 (ia64_dconst_0_375): New.
3662 * config/ia64/ia64.c (ia64_override_options): Remove
3663 -minline-sqrt-min-latency warning.
3664 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3665 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3666 * config/ia64/ia64.md (*sqrt_approx): Remove.
3667 (sqrtsf2): Remove #if 0.
3668 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3669 (sqrtdf): Remove assert.
3670 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3671 (sqrtxf2): Remove #if 0.
3672 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3673 * div.md (sqrt_approx_rf): New.
3674 (sqrtsf2_internal_thr): New implementation.
3675 (sqrtsf2_internal_lat): New.
3676 (sqrtdf2_internal_thr: New implementation.
3677 (sqrtxf2_internal): New implementation.
3678
1ffc7157
FXC
36792009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3680 Hans-Peter Nilsson <hp@axis.com>
3681
3682 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3683 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3684 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3685 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3686 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3687 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3688 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3689 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3690 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3691 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3692 * c-common.c: ...from here.
3693
db91d9ef
MLI
36942009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3695
f3afc8a7 3696 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3697
bbb9d91f
KG
36982009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3699
3700 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3701
ce883f54
BE
37022009-05-19 Ben Elliston <bje@au.ibm.com>
3703
3704 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3705 assignments with memcpy calls.
3706 (add_fdes): Likewise.
3707 (binary_search_unencoded_fdes): Likewise.
3708 (linear_search_fdes): Eliminate type puns.
3709
377f099a
RG
37102009-05-19 Richard Guenther <rguenther@suse.de>
3711
3712 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3713 not falsely claim to have propagated into all uses.
3714
848bc769
BE
37152009-05-19 Ben Elliston <bje@au.ibm.com>
3716
3717 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3718 version to v3.0.
3719
1bb99877
KK
37202009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3721
3722 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3723 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3724 (TARGET_LEGITIMATE_ADDRESS_P): New.
3725 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3726 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3727
82725547
DS
37282009-05-18 Dodji Seketeli <dodji@redhat.com>
3729
3730 PR debug/40109
3731 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3732 child of the containing namespace's DIE.
3733
f6a1e430
AN
37342009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3735
3736 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3737 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3738 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3739 extend patterns.
3740
6a90d232
L
37412009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3742
3743 PR target/39942
3744 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3745 gen_align with gen_pad.
3746 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3747 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3748
3749 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3750 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3751
3752 * config/i386/i386.md (align): Renamed to ...
3753 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3754 ASM_OUTPUT_MAX_SKIP_PAD.
3755
c4406f74
AS
37562009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3757
06555043
AS
3758 * config.gcc: Fix variable syntax.
3759
c4406f74
AS
3760 PR target/39531
3761 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3762 before calling exact_log2.
3763 (output_iorsi3): Likewise.
3764 (output_xorsi3): Likewise.
3765
99052692
KK
37662009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3767
3768 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3769 for the none zero constant operand except for EQ and NE
3770 comprisons even when the first operand is R0.
3771
f4aa3848
AK
37722009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3773
3774 * config/s390/2064.md: Remove trailing whitespaces.
3775 * config/s390/2084.md: Likewise.
3776 * config/s390/constraints.md: Likewise.
3777 * config/s390/fixdfdi.h: Likewise.
3778 * config/s390/libgcc-glibc.ver: Likewise.
3779 * config/s390/s390-modes.def: Likewise.
3780 * config/s390/s390-protos.h: Likewise.
3781 * config/s390/s390.c: Likewise.
3782 * config/s390/s390.h: Likewise.
3783 * config/s390/s390.md: Likewise.
3784 * config/s390/tpf-unwind.h: Likewise.
3785
ab7256e4
MK
37862009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3787
3788 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3789
75df395f
MK
37902009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3791
3792 M68K TLS support.
3793 * configure.ac (m68k-*-*): Check if binutils support TLS.
3794 * configure: Regenerate.
3795 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3796 * config/m68k/constraints.md (Cu): New constraint.
3797 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3798 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3799 (movsi): Handle TLS symbols.
3800 (addsi3_5200): Handle XTLS symbols, indent.
3801 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3802 (m68k_tls_reference_p): Declare.
3803 (m68k_legitimize_address): Declare.
3804 (m68k_unwrap_symbol): Declare.
3805 * config/m68k/m68k.opt (mxtls): New option.
3806 * config/m68k/m68k.c (ggc.h): Include.
3807 (m68k_output_dwarf_dtprel): Implement hook.
3808 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3809 (m68k_expand_prologue): Load GOT pointer when function needs it.
3810 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3811 (m68k_legitimate_constant_address_p): Same.
3812 (m68k_decompose_address): Handle TLS references.
3813 (m68k_get_gp): New static function.
3814 (enum m68k_reloc): New contants.
3815 (TLS_RELOC_P): New macro.
3816 (m68k_wrap_symbol): New static function.
3817 (m68k_unwrap_symbol): New function.
3818 (m68k_final_prescan_insn_1): New static function.
3819 (m68k_final_prescan_insn): New function.
3820 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3821 functions.
3822 (legitimize_pic_address): Handle TLS references..
3823 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3824 (m68k_libcall_value_in_a0_p)
3825 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3826 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3827 (m68k_legitimize_tls_address): Handle TLS references.
3828 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3829 New functions.
3830 (m68k_legitimize_address): Handle TLS symbols.
3831 (m68k_get_reloc_decoration): New static function.
3832 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3833 UNSPEC_RELOC32.
3834 (m68k_output_dwarf_dtprel): Implement hook.
3835 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3836 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3837 m68k_call_* routines.
3838 (sched_attr_op_type): Handle TLS symbols.
3839 (gt-m68k.h): Include.
3840 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3841 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3842
8b75fc9b
MJ
38432009-05-18 Martin Jambor <mjambor@suse.cz>
3844
3845 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3846 (visit_store_addr_for_mod_analysis): New function.
3847 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3848 (determine_cst_member_ptr): Use gimple_assign_single_p.
3849 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3850 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3851 operands. Don't check number of operands of a NOP_EXPR.
3852
f133d4a2
EF
38532009-05-18 Eric Fisher <joefoxreal@gmail.com>
3854
3855 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3856
ae8af500
L
38572009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3858
3859 PR c/40172
3860 * c-common.c (warn_logical_operator): Don't warn if one of
3861 expression isn't always true or false.
3862
25e8fde8
KT
38632009-05-17 Kai Tietz <kai.tietz@onevision.com>
3864
ae8af500
L
3865 * config/i386/biarch32.h: New file.
3866 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3867
ef67af22
AN
38682009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3869
3870 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3871 *zero_extend<mode>_truncqi): Merge these into ...
3872 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3873 Name the pattern following this as *zero_extendhi_truncqi.
3874
e2d87023
BL
38752009-05-16 Brad Lucier <lucier@math.purdue.edu>
3876
3877 PR middle-end/39301
3878 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3879 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3880 (output_info): Make field HOST_WIDEST_INT.
3881 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3882 (dump_bitmat_statistics): Same.
3883
428ddbf0
FXC
38842009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3885
3886 * config.gcc (use_gcc_stdint): Set to wrap.
3887 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3888 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3889 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3890 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3891 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3892 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3893 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3894 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3895
1ab8a8c2
JM
38962009-05-16 Joseph Myers <joseph@codesourcery.com>
3897
3898 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3899 tune_64.
3900 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3901 Move definitions earlier.
3902 (OPT_ARCH64, OPT_ARCH32): Define.
3903 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3904 and tune_64.
3905
70544f44
RE
39062009-05-16 Richard Earnshaw <rearnsha@arm.com>
3907
3908 PR target/40153
3909 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3910 implies.
3911
6241ded1
RE
39122009-05-16 Richard Earnshaw <rearnsha@arm.com>
3913
3914 * arm.md (movdi2): Copy non-reg values to DImode registers.
3915
a99c6711
JJ
39162009-05-16 Jakub Jelinek <jakub@redhat.com>
3917
40a8f07a
JJ
3918 PR target/39942
3919 * final.c (label_to_max_skip): New function.
3920 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3921 CODE_LABEL_NUMBER <= max_labelno.
3922 * output.h (label_to_max_skip): New prototype.
3923 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3924 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3925 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3926 Handle CODE_LABELs with >= 16 byte alignment or with
3927 max_skip == (1 << align) - 1.
3928 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3929 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3930
a99c6711
JJ
3931 PR target/39942
3932 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3933 .p2align 3 if MAX_SKIP is smaller than 7.
3934 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3935
7e5487a2
ILT
39362009-05-15 Ian Lance Taylor <iant@google.com>
3937
3938 * alias.c (struct alias_set_entry_d): Rename from struct
3939 alias_set_entry. Change all uses.
3940 * except.c (struct call_site_record_d): Rename from struct
3941 call_site_record. Change all uses.
3942 * except.h (struct eh_region_d): Rename from struct eh_region.
3943 Change all uses.
3944 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3945 Change all uses.
3946 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3947 ivtype_map_elt. Change all uses.
3948 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3949 Change all uses.
3950 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3951 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3952 Change all uses.
3953 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3954 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3955 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3956 * optabs.h (struct optab_d): Rename from struct optab. Change all
3957 uses.
3958 (struct convert_optab_d): Rename from struct convert_optab.
3959 Change all uses.
3960 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3961 ipa_opt_pass. Change all uses.
3962 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3963 all uses.
3964
3965 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3966 defined as a typedef.
3967 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3968 defined as a tag.
3969
a243fb4a
MLI
39702009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3971
3972 PR 16302
3973 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3974 declaration to...
3975 (merge_ranges): Returns bool.
3976 * tree.h (make_range): .. to here.
3977 (build_range_check): Likewise.
3978 (merge_ranges): Likewise. Renamed from merge_ranges.
3979 * c-typeck.c (parser_build_binary_op): Update calls to
3980 warn_logical_operator.
3981 * c-common.c (warn_logical_operator): Add new warning.
3982 * c-common.h (warn_logical_operator): Update declaration.
3983
1b53c5f3
MLI
39842009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3985
782dc37a 3986 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3987
c128599a
KG
39882009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3989
f9bab007
KG
3990 * doc/install.texi: Document MPC requirements, flags etc.
3991
c128599a
KG
3992 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3993 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3994 Evaluate constant arguments.
3995 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3996 (fold_builtin_1): Likewise, also evaluate constant arguments.
3997 Remove superfluous break.
3998 (do_mpc_ckconv): New.
3999 * real.h: Include mpc.h.
4000 * toplev.c (print_version): Output MPC version info if available.
4001
d33e4b70
SL
40022009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4003
782dc37a 4004 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 4005
a02ab464
L
40062009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4007
4008 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4009 only once.
4010
796bda22
JH
40112009-05-15 Jan Hubicka <jh@suse.cz>
4012
4013 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4014 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4015 (try_inline): Fix return value.
4016 (cgraph_decide_inlining_incrementally): Honor new value.
4017 (cgraph_early_inlining): Handle indirect inlining.
4018 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4019
d88e5c37
JH
40202009-05-15 Jan Hubicka <jh@suse.cz>
4021
4022 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4023 * cgraphunit.c (cgraph_finalize_function): Set it.
4024 (cgraph_expand_function): Use it.
4025
ae63687c
SL
40262009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4027
4028 * real.c (encode_ieee_half): Define.
4029 (decode_ieee_half): Define.
4030 (ieee_half_format): Define.
4031 (arm_half_format): Define.
4032 * real.h (ieee_half_format): Declare.
4033 (arm_half_format): Declare.
4034
1bd74ad9
SL
40352009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4036
4037 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
4038 swapped, and reversed optabs exist before trying to use them.
4039
dc34db56
PB
40402009-05-15 Paul Brook <paul@codesourcery.com>
4041 Sandra Loosemore <sandra@codesourcery.com>
4042
dc34db56
PB
4043 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4044 loads. Allow PRE_DEC.
4045 (output_move_neon): Handle PRE_DEC.
4046 (arm_print_operand): Add 'A' for neon structure loads.
4047 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4048 * config/arm/neon.md (neon_mov): Update comment.
4049 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4050 calls.
4051 (Um): New constraint.
4052
1d405d7b
JH
40532009-05-15 Jan Hubicka <jh@suse.cz>
4054
4055 Revert the following patch until testsuite fallout is fixed:
4056 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4057 * cgraph.h (struct inline_summary): New filed self_wize,
4058 size_inlining_benefit, self_time and time_inlining_benefit.
4059 (struct cgraph_global_info): Replace insns by time ans size fields.
4060 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4061 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4062 (ipcp_update_callgraph): Do not touch function bodies.
4063 * ipa-inline.c: Include except.h
782dc37a 4064 (MAX_TIME): New constant.
1d405d7b
JH
4065 (overall_insns): Remove
4066 (overall_size, max_benefit): New static variables.
4067 (cgraph_estimate_time_after_inlining): New function.
4068 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4069 (cgraph_clone_inlined_nodes): Update size.
4070 (cgraph_mark_inline_edge): Update size.
4071 (cgraph_estimate_growth): Use size info.
4072 (cgraph_check_inline_limits): Check size.
4073 (cgraph_default_inline_p): Likewise.
4074 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4075 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4076 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4077 and times.
1d405d7b 4078 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4079 (cgraph_decide_inlining_incrementally): Likewise; honor
4080 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4081 (likely_eliminated_by_inlining_p): New predicate.
4082 (estimate_function_body_sizes): New function.
4083 (compute_inline_parameters): Use it.
4084 * except.c (must_not_throw_labels): New function.
4085 * except.h (must_not_throw_labels): Declare.
4086 * tree-inline.c (init_inline_once): Kill inlining_weigths
4087 * tree-ssa-structalias.c: Avoid uninitialized warning.
4088 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4089 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4090 (PARAM_INLINE_CALL_COST): Remove.
4091 (PARAM_EARLY_INLINING_INSNS): New.
4092
7ffa47ca
RG
40932009-05-15 Richard Guenther <rguenther@suse.de>
4094
4095 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4096 not TODO_update_ssa.
4097
828552ed
RG
40982009-05-15 Richard Guenther <rguenther@suse.de>
4099
4100 PR tree-optimization/39999
4101 * gimple.h (gimple_expr_type): Use the expression type looking
4102 through useless conversions.
4103 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4104 (vn_nary_op_insert_stmt): Likewise.
4105 (simplify_binary_expression): Likewise.
4106
248fc9f3
RG
41072009-05-15 Richard Guenther <rguenther@suse.de>
4108
4109 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4110 New options, enabled by default.
4111 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4112 Document.
4113 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4114 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4115 * tree-ssa-structalias.c (gate_tree_pta): New function.
4116 (pass_build_alias): Use it.
4117
16b29cc4
JM
41182009-05-15 Joseph Myers <joseph@codesourcery.com>
4119
4120 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4121 recurse on an invariant address if a conversion from a pointer
4122 type to a wider integer type is involved.
4123
125cae84
JH
41242009-05-15 Jan Hubicka <jh@suse.cz>
4125
4126 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4127 * cgraph.h (struct inline_summary): New filed self_wize,
4128 size_inlining_benefit, self_time and time_inlining_benefit.
4129 (struct cgraph_global_info): Replace insns by time ans size fields.
4130 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4131 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4132 (ipcp_update_callgraph): Do not touch function bodies.
4133 * ipa-inline.c: Include except.h
782dc37a 4134 (MAX_TIME): New constant.
125cae84
JH
4135 (overall_insns): Remove
4136 (overall_size, max_benefit): New static variables.
4137 (cgraph_estimate_time_after_inlining): New function.
4138 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4139 (cgraph_clone_inlined_nodes): Update size.
4140 (cgraph_mark_inline_edge): Update size.
4141 (cgraph_estimate_growth): Use size info.
4142 (cgraph_check_inline_limits): Check size.
4143 (cgraph_default_inline_p): Likewise.
4144 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4145 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4146 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4147 and times.
125cae84 4148 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4149 (cgraph_decide_inlining_incrementally): Likewise; honor
4150 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4151 (likely_eliminated_by_inlining_p): New predicate.
4152 (estimate_function_body_sizes): New function.
4153 (compute_inline_parameters): Use it.
4154 * except.c (must_not_throw_labels): New function.
4155 * except.h (must_not_throw_labels): Declare.
4156 * tree-inline.c (init_inline_once): Kill inlining_weigths
4157 * tree-ssa-structalias.c: Avoid uninitialized warning.
4158 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4159 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4160 (PARAM_INLINE_CALL_COST): Remove.
4161 (PARAM_EARLY_INLINING_INSNS): New.
4162 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4163 (inline-call-cost): Remove.
4164 (early-inlining-insns): New.
4165
84fb43a1
EB
41662009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4167
4168 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4169 for bounds.
4170 (print_int_cst_bounds_in_octal_p): Likewise.
4171 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4172 with subtypes.
4173 * dwarf2out.c (base_type_die): Likewise.
4174 (is_subrange_type): Delete.
4175 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4176 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4177 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4178 if the destination type is boolean.
84fb43a1
EB
4179 (build_range_check): Do not special-case subtypes.
4180 (fold_sign_changed_comparison): Likewise.
4181 (fold_unary): Likewise.
4182 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4183 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4184 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4185 * tree.c (subrange_type_for_debug_p): New predicate based on the
4186 former is_subrange_type.
84fb43a1
EB
4187 * tree.h (subrange_type_for_debug_p): Declare.
4188 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4189 (convert_affine_scev): Remove call to above function.
4190 (chrec_convert_aggressive): Likewise.
4191 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4192 false for conversions involving subtypes.
4193 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4194 (vrp_val_min): Likewise.
4195 (needs_overflow_infinity): Likewise.
4196 (extract_range_from_unary_expr): Likewise.
4197
331d9186
PB
41982009-05-15 Paolo Bonzini <bonzini@gnu.org>
4199
e9351712
L
4200 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4201 * config/frv/frv.c: Likewise.
4202 * config/s390/s390.c: Likewise.
4203 * config/sparc/sparc.h: Likewise.
4204 * config/i386/i386.h: Likewise.
4205 * config/i386/i386.c: Likewise.
4206 * config/crx/crx.c: Likewise.
4207 * config/m68hc11/m68hc11.h: Likewise.
4208 * config/iq2000/iq2000.c: Likewise.
4209 * config/mn10300/mn10300.h: Likewise.
4210 * config/mn10300/mn10300.c: Likewise.
4211 * config/m68k/m68k.c: Likewise.
4212 * config/rs6000/rs6000.c: Likewise.
4213 * config/rs6000/xcoff.h: Likewise.
4214 * config/rs6000/linux64.h: Likewise.
4215 * config/rs6000/sysv4.h: Likewise.
4216 * config/score/score3.c: Likewise.
4217 * config/score/score7.c: Likewise.
4218 * config/score/score.c: Likewise.
4219 * config/arm/arm.md: Likewise.
4220 * config/mips/mips.c: Likewise.
4221 * config/mips/mips.md: Likewise.
4222 * config/bfin/bfin.h: Likewise.
4223 * config/pa/pa.c: Likewise.
4224 * config/pa/constraints.md: Likewise.
4225
4226 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4227 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4228 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4229
09639a83
ILT
42302009-05-14 Ian Lance Taylor <iant@google.com>
4231
4232 * passes.c (finish_optimization_passes): Change i to int.
4233 * plugin.c (plugins_active_p): Change event to int.
4234 (dump_active_plugins): Likewise.
4235 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4236 Add cast.
4237 * tree.c (tree_range_check_failed): Change c to unsigned int.
4238 (omp_clause_range_check_failed): Likewise.
4239 (build_common_builtin_nodes): Change mode to int. Add cast.
4240 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4241 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4242
4243 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4244 ++ or -- with a variable of enum type.
4245
c04a56bf
SB
42462009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4247
4248 PR driver/40144
4249 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4250
237ee620
SB
42512009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4252
4253 * store-motion.c: Do not include params.h
4254 * Makefile.in: Fix dependencies for various files.
4255
1154c4fa
SB
42562009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4257
4258 * auto-inc-dec.c: Fix pass description, remove apparent
4259 accidental duplication.
4260
61c27353
L
42612009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4262
4263 PR middle-end/40147
4264 * ipa-utils.h (memory_identifier_string): Moved to ...
4265 * tree.h (memory_identifier_string): Here. Add GTY(()).
4266
c6c3dba9
PB
42672009-05-14 Paolo Bonzini <bonzini@gnu.org>
4268
4269 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4270 in the former documentation of...
4271 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4272 * ira-conflicts.c (get_dup_num): Use address_operand.
4273 * targhooks.c (default_legitimate_address_p): New.
4274 * targhooks.h (default_legitimate_address_p): New.
4275 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4276 Call hook.
4277 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4278 * target.h (struct target): Add legitimate_address_p.
4279 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4280 (TARGET_INITIALIZER): Include it.
4281
4282 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4283 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4284 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4285 (TARGET_LEGITIMATE_ADDRESS_P): New.
4286
4287 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4288 (REG_OK_STRICT_P): Delete.
4289 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4290 (frv_legitimate_address_p_1): ... this.
4291 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4292 (frv_legitimate_address_p_1): ... the renamed old
4293 frv_legitimate_address_p.
4294 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4295 (TARGET_LEGITIMATE_ADDRESS_P): New.
4296
4297 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4298 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4299 * config/s390/s390.c (legitimate_address_p): Rename to...
4300 (s390_legitimate_address_p): ... this, make static.
4301 (legitimize_address): Adjust call.
4302 (TARGET_LEGITIMATE_ADDRESS_P): New.
4303 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4304
4305 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4306 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4307 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4308 (TARGET_LEGITIMATE_ADDRESS_P): New.
4309
4310 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4311 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4312 * config/spu/spu.c (spu_legitimate_address): Rename to...
4313 (spu_legitimate_address_p): ... this, make static.
4314 (TARGET_LEGITIMATE_ADDRESS_P): New.
4315
4316 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4317 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4318 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4319 (sparc_legitimate_address_p): ... this, make static and return bool.
4320 (legitimize_address): Adjust call.
4321 (TARGET_LEGITIMATE_ADDRESS_P): New.
4322
4323 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4324 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4325 * config/i386/i386.c (legitimate_address_p): Rename to...
4326 (ix86_legitimate_address_p): ... this, make static.
4327 (constant_address_p): Move after it, adjust call.
4328 (TARGET_LEGITIMATE_ADDRESS_P): New.
4329
4330 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4331 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4332 * config/avr/avr.c (legitimate_address_p): Rename to...
4333 (avr_legitimate_address_p): ... this, make static.
4334 (legitimize_address): Adjust call.
4335 (TARGET_LEGITIMATE_ADDRESS_P): New.
4336
4337 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4338 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4339 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4340 (TARGET_LEGITIMATE_ADDRESS_P): New.
4341
4342 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4343 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4344 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4345 (TARGET_LEGITIMATE_ADDRESS_P): New.
4346
4347 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4348 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4349 Remove.
4350 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4351 Make static.
4352 (TARGET_LEGITIMATE_ADDRESS_P): New.
4353
4354 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4355 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4356 Remove.
4357 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4358 Rename to...
4359 (m68hc11_legitimate_address_p): ... this, make static.
4360 (go_if_legitimate_address_internal): Rename to...
4361 (m68hc11_legitimate_address_p_1): ... this.
4362 (legitimize_address): Adjust call.
4363 (TARGET_LEGITIMATE_ADDRESS_P): New.
4364
4365 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4366 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4367 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4368 (TARGET_LEGITIMATE_ADDRESS_P): New.
4369
4370 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4371 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4372 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4373 (mn10300_legitimate_address_p): ... this, make static.
4374 (TARGET_LEGITIMATE_ADDRESS_P): New.
4375
4376 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4377 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4378 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4379 (TARGET_LEGITIMATE_ADDRESS_P): New.
4380
4381 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4382 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4383 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4384 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4385 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4386 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4387 (rs6000_legitimate_address_p): ... this, make static.
4388 (TARGET_LEGITIMATE_ADDRESS_P): New.
4389 (REG_MODE_OK_FOR_BASE_P): Delete.
4390 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4391
4392 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4393 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4394 Delete.
4395 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4396 static, adjust types.
4397 (TARGET_LEGITIMATE_ADDRESS_P): New.
4398
4399 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4400 * config/score/score.c (score_address_p): Rename to...
4401 (score_legitimate_address_p): ... this.
4402 (TARGET_LEGITIMATE_ADDRESS_P): New.
4403 * config/score/score3.c (score3_address_p): Rename to...
4404 (score3_legitimate_address_p): ... this.
4405 * config/score/score7.c (score7_address_p): Rename to...
4406 (score7_legitimate_address_p): ... this.
4407
4408 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4409 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4410 GO_IF_LEGITIMATE_ADDRESS): Delete.
4411 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4412 thumb2_legitimate_address_p): Delete.
4413 (arm_legitimate_address_p): Rename to...
4414 (arm_legitimate_address_outer_p): ... this.
4415 * config/arm/constraints.md ("Uq"): Adjust call.
4416 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4417 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4418 to...
c6c3dba9 4419 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4420 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4421 static.
c6c3dba9
PB
4422 (TARGET_LEGITIMATE_ADDRESS_P): New.
4423
4424 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4425 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4426 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4427 (TARGET_LEGITIMATE_ADDRESS_P): New.
4428
4429 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4430 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4431 * config/vax/vax.c (legitimate_address_p): Rename to...
4432 (vax_legitimate_address_p): ... this, make static.
4433 (TARGET_LEGITIMATE_ADDRESS_P): New.
4434
4435 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4436 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4437 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4438 (TARGET_LEGITIMATE_ADDRESS_P): New.
4439
4440 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4441 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4442 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4443 (mmix_legitimate_address_p): ... this, make static.
4444 (TARGET_LEGITIMATE_ADDRESS_P): New.
4445
4446 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4447 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4448 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4449 (TARGET_LEGITIMATE_ADDRESS_P): New.
4450
3bd0d9c8
PB
44512009-05-14 Paolo Bonzini <bonzini@gnu.org>
4452
4453 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4454 of MODE_COMPLEX_INT.
4455
fe049033
RO
44562009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4457
4458 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4459 LCT_NORMAL in function call.
4460 * mips-tdump.c (print_file_desc): Add cast to enum type.
4461 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4462 (mark_stabs): Add casts to enum types.
4463 (parse_stabs_common): Add casts to enum types.
16f7ad42 4464
b0907a6c
AN
44652009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4466
4467 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4468 Check for invalid values of LETTER.
4469
d1c8e08a
TG
44702009-05-13 Taras Glek <tglek@mozilla.com>
4471
f3afc8a7
UB
4472 * attribs.c (register_attribute): moved out attribute registration
4473 into register_attribute.
4474 * doc/plugins.texi: Documented register_attribute and
4475 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4476 * gcc-plugin.h: Added forward decl for register_attribute.
4477 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4478 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4479 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4480
4ed7f970
DK
44812009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4482
4483 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4484 values even in sentinel and empty entries.
4485 (ms_printf_flag_specs): Likewise.
4486 (ms_scanf_flag_specs): Likewise.
4487 (ms_strftime_flag_specs): Likewise.
4488 (ms_print_char_table): Likewise.
4489 (ms_scan_char_table): Likewise.
4490 (ms_time_char_table): Likewise.
4491
3d8fa148
DK
44922009-05-13 Doug Kwan <dougkwan@google.com>
4493
4494 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4495
f06257d3
AN
44962009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4497
4498 * config/mips/mips.md (store): Add attributes for QI and HI.
4499 Update comment.
4500 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4501 (truncdi<mode>2): ... this new pattern.
4502
fb201767
BH
45032009-05-13 Brad Hards <bradh@kde.org>
4504
4505 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4506
c7bda60e 45072009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4508 Ben Elliston <bje@au.ibm.com>
4509
4510 PR middle-end/40035
4511 * dse.c (check_mem_read_rtx): Guard against width == -1.
4512
ce985b43
MM
45132009-05-13 Michael Matz <matz@suse.de>
4514
4515 PR middle-end/39976
4516 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4517 (trivially_conflicts_p): New function.
4518 (insert_backedge_copies): Use it.
4519
7de1d221
JJ
45202009-05-13 Janis Johnson <janis187@us.ibm.com>
4521
4522 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4523 (handle_stdc_pragma): Use new enum constant names.
4524 (handle_pragma_float_const_decimal64): Ditto.
4525
bfefafc6
ILT
45262009-05-13 Ian Lance Taylor <iant@google.com>
4527
4528 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4529 tree.def.
4530
286c4fcb
NS
45312009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4532
4533 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4534 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4535 multilibs.
4536 * config/m68k/m68k.h (FL_UCLINUX): Define.
4537
ebaa6ea7
JH
45382009-05-13 Jan Hubicka <jh@suse.cz>
4539
4540 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4541
2b703e1a
KK
45422009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4543
4544 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4545 unless -fschedule-insns is specified.
4546
c3537723
KK
45472009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4548
4549 PR target/39561
4550 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4551 TARGET_EXPAND_CBRANCHDI4.
4552 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4553 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4554 (cmpeqdi): Fix comment.
4555
cdeed45a
KK
45562009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4557
4558 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4559 (sh_legitimate_address_p): Likewise.
4560 * config/sh/sh.c (sh_legitimate_index_p): New.
4561 (sh_legitimate_address_p): Likewise.
4562 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4563 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4564 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4565 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4566 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4567 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4568 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4569 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4570 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4571
02f0b13a
JH
45722009-05-12 Jan Hubicka <jh@suse.cz>
4573
4574 * tree-inline.c (estimate_operator_cost): Add operands;
4575 when division happens by constant, it is cheap.
4576 (estimate_num_insns): Loads and stores are not having cost of 0;
4577 EH magic stuff is cheap; when computing runtime cost of switch,
4578 use log2 base of amount of its cases; builtin_expect has cost of 0;
4579 compute cost for moving return value of call.
4580 (init_inline_once): Initialize time_based flags.
4581 * tree-inline.h (eni_weights_d): Add time_based flag.
4582
ecb7f6de
PB
45832009-05-12 Paolo Bonzini <bonzini@gnu.org>
4584
4585 * df-core.c: Update head documentation.
4586
c24151ce
MM
45872009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4588
4589 PR bootstrap/40118
4590 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4591 shadowing exisiting variable op1.
4592
fbdf817d
UB
45932009-05-12 Uros Bizjak <ubizjak@gmail.com>
4594
704bf7c8 4595 PR target/37179
fbdf817d
UB
4596 * config/i386/driver-i386.c (processor_signatures): New enum.
4597 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4598 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4599 processor signature to detect geode processor.
4600
5e8d1826
PB
46012009-05-12 Paolo Bonzini <bonzini@gnu.org>
4602
4603 Revert:
4604
4605 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4606
4607 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4608 causes spurious differences between trunk and cond-optab branch.
4609
f90b7a5a
PB
46102009-05-12 Paolo Bonzini <bonzini@gnu.org>
4611
fbdf817d
UB
4612 * dojump.c (compare_from_rtx): Delete.
4613 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4614 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4615 if the comparison does not satisfy the predicate; test predicates for
4616 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4617 further if one existing pattern fails.
fbdf817d 4618 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4619 (prepare_operand): Declare it.
fbdf817d 4620 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4621 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4622 HAVE_conditional_trap, emit_cmp_insn): Delete.
4623 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4624 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4625 Accept other parameters by value.
4626 (prepare_operand): Make non-static.
4627 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4628 other parameters by value. Try to widen operands here based on
4629 an optab_methods argument and looking at cbranch_optab.
4630 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4631 loop. Use cbranch_optab directly.
4632 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4633 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4634 assertion.
4635 (emit_conditional_move, emit_conditional_add): Inline what's needed
4636 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4637 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4638 with COMPARE. Move cmov_optab and cstore_optab above
4639 with cbranch_optab, move cmp_optab down with ucmp_optab,
4640 remove tst_otpab. Do not initialize trap_rtx.
4641 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4642 for trap code. Do not check HAVE_conditional_trap. Use
4643 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4644 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4645 (OTI_ctrap, ctrap_optab): New.
4646 (tst_optab): Delete.
4647 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4648 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4649 with lookup of ctrap_optab.
f3afc8a7
UB
4650 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4651 Delete.
fbdf817d
UB
4652 (ctrap_optab): New.
4653
4654 * combine.c (combine_simplify_rtx, simplify_set): Do not
4655 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4656 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4657 COMPARE on cc0 machines.
4658 (simplify_relational_operation): Return a new expression when
4659 a COMPARE could be removed.
fbdf817d
UB
4660 * final.c (final_scan_insn): Compare cc_status values
4661 against LHS of a (compare FOO (const_int 0)) cc0 source.
4662 Also check if cc_status.value is the full compare.
f90b7a5a 4663
fbdf817d
UB
4664 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4665 (cstoreMM4): Document.
f90b7a5a 4666 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4667 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4668 (Dependent Patterns): Eliminate obsolete information referring to
4669 the old jump optimization phase.
fbdf817d 4670 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4671 of compares with 0 on cc0 machines.
4672 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4673 avoiding references to cc0. Remove text about storing operands
4674 in cmpMM.
4675 * doc/tm.texi (Condition Codes): Include blurb on different
4676 condition code representations, separate into subsections for
4677 CC0, MODE_CC and conditional execution.
4678
fbdf817d
UB
4679 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4680 alpha_emit_setcc): Accept operands and a machine mode.
4681 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4682 Get code/op0/op1 from operands, use machine mode argument
4683 instead of alpha_compare.fp_p. Emit the branch here.
4684 (alpha_emit_setcc): Likewise, and return boolean.
4685 (alpha_emit_conditional_move): Likewise. Assert that
4686 cmp_op_mode == cmp_mode, and simplify accordingly.
4687 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4688 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4689 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4690 Delete.
4691 (stack probe test): Use cbranchdi4.
4692 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4693
4694 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4695 * config/arc/arc.h (movsicc, movsfcc): Use it.
4696 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4697 (cbranchsi4, cstoresi4): New.
4698 (cmpsi, bCC and sCC expanders): Remove.
4699
4700 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4701 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4702 * config/arm/predicates.md (arm_comparison_operator): Only include
4703 floating-point operators if there is a hardware floating-point unit.
4704 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4705 deferring to cbranch_cc and cstore_cc respectively.
4706 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4707 cbranch_cc, cstore_cc): New.
4708 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4709 arm_compare_op1.
fbdf817d
UB
4710 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4711
4712 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4713 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4714 as an argument.
4715 (adjust_insn_length): Adjust calls.
4716 (avr_reorg): Handle (compare (foo) (const_int 0)).
4717 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4718 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4719 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4720 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4721 (bCC): Remove.
4722 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4723 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4724
fbdf817d
UB
4725 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4726 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4727 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4728 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4729 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4730 (bfin_optimize_loop): Use cbranch expander.
4731 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4732 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4733 (bfin_bimode_comparison_operator): ... this.
4734 (bfin_direct_comparison_operator): New.
f90b7a5a 4735
fbdf817d
UB
4736 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4737 inside (compare FOO (const_int 0)).
4738 (cris_rtx_costs): Handle ZERO_EXTRACT.
4739 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4740 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4741 (*tstdi_v32): Delete.
4742 (*cmpdi_non_v32): Add M alternative for operand 1.
4743 (cmpsi, cmp<mode>): Make private.
4744 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4745 with COMPARE.
4746 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4747
4748 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4749 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4750 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4751 (cc_reg_operand): New.
4752 (any_cond): Delete.
fbdf817d
UB
4753 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4754 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4755 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4756 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4757 crx_expand_scond): Delete.
4758
4759 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4760 (cbranchsi4): New.
4761 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4762 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4763
4764 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4765 cstoresi4, cstoresf4, cstoredf4): New.
4766 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4767 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4768 Receive the entire operands array.
4769 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4770 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4771 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4772 Get test/op0/op1 from the operands array.
4773 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4774
4775 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4776 (h8300_expand_store): New.
4777 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4778 (const_int 0)).
4779 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4780 (h8300_expand_store): New.
4781 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4782 or do not try to produce (set (cc0) REG).
4783 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4784 change a compare into a move to a scratch register. Disable some
4785 peepholes when comparing with zero.
4786 (tstsi, tsthi, tstsi, cmpqi): Make private.
4787 (cmphi): Delete.
4788 (bCC, sCC): Delete.
4789 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4790 cstoresi4): New.
f90b7a5a
PB
4791
4792 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4793 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4794 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4795 (ix86_emit_i387_log1p): Use cbranchxf2.
4796 (ix86_expand_setcc): Return void.
4797 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4798 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4799 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4800 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4801 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4802 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4803 (sCC and bCC expanders): Remove.
4804 (stack_protect_test): Use cbranchcc4.
4805
fbdf817d
UB
4806 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4807 Delete.
4808 (ia64_expand_compare): Accept three rtx by reference and return void.
4809 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4810 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4811 from *expr. Update *expr with the BImode comparison to do.
4812 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4813 cmptf, bCC, sCC, conditional_trap): Delete.
4814 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4815 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4816 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4817 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4818 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4819
4820 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4821 type of last argument.
4822 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4823 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4824 use machine mode argument instead of branch_type. Remove dead
4825 code for floating-point comparisons.
4826 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4827 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4828 Remove.
4829 (cbranchsi4, cstoresi4): New.
4830 * config/iq2000/predicates.md (reg_or_const_operand): New.
4831
4832 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4833 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4834 (b<code>_op): Rewrite to...
4835 (bcc_op): ... this, using match_operator.
4836 (s<code>_op): Rewrite to...
4837 (scc_op): ... this, using match_operator.
4838 (s<code>_24_op): Rewrite to...
4839 (scc_op_24): ... this, using match_operator.
4840 (s<code>_<mode>): Rewrite to...
4841 (cstore<mode>4): ... this, using match_operator.
4842 (s<code>_<mode>_24): Rewrite to...
4843 (cstore<mode>4_24): ... this, using match_operator.
4844 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4845 m32c_unpend_compare, m32c_expand_scc): Delete.
4846 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4847 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4848 (m32c_expand_movcc): Change NE to EQ if necessary.
4849 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4850
4851 * config/m32r/m32r-protos.h (gen_cond_store): New.
4852 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4853 (gen_cond_store): New, from sCC patterns.
4854 (m32r_expand_block_move): Use cbranchsi4.
4855 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4856 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4857 (cbranchsi4, cstoresi4): New.
4858
4859 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4860 Delete.
4861 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4862 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4863 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4864 Delete.
4865 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4866 cmphi, cmpqi, bCC): Delete.
4867 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4868 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4869 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4870 sets with COMPARE.
4871
4872 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4873 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4874 * config/m68k/constraints.md (H): New.
4875 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4876 the define_insn below.
4877 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4878 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4879 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4880 patterns): Wrap RHS with COMPARE.
4881 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4882 (*cmpdi_internal): Name this pattern.
4883 (cmpdi): Change to define_insn.
4884 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4885 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4886 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4887 predicate.
4888 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4889 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4890 (conditional_trap): Change to...
4891 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4892 (*conditional_trap): Use the ordered_comparison_operator and
4893 const1_operand predicates.
4894 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4895 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4896 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4897 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4898
4899 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4900 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4901 (mcore_gen_compare): New.
4902 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4903 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4904 (mcore_gen_compare): ... this.
4905 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4906 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4907 (stack probe pattern): Use cbranchsi4.
4908
4909 * config/mips/predicates.md (mips_cstore_operator): New.
4910 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4911 * config/mips/mips.md (any_cond): Delete.
4912 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4913 always succeed.
4914 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4915 fixuns_truncsfdi2): Use cbranch patterns.
4916 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4917 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4918 Adjust call to mips_expand_conditional_branch.
4919 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4920 cstore<GPR:mode>4.
4921 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4922 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4923 * config/mips/mips.c (cmp_operands): Delete.
4924 (mips_emit_compare): Get comparison operands from *op0/*op1.
4925 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4926 that it succeeds. Use op0/op1 instead of cmp_operands.
4927 (mips_expand_conditional_branch, mips_expand_conditional_move,
4928 mips_expand_conditional_trap): Likewise.
4929 (mips_block_move_loop): Use cbranch patterns.
4930 * config/mips/mips.h (cmp_operands): Delete.
4931
4932 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4933 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4934 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4935 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4936 (*cmpcc_folded): Rename to...
4937 (*cmpdi_folded): this.
4938 (*cmpcc): Rename to...
4939 (*cmps): ... this.
4940 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4941 (bCC): Remove.
4942 (cbranchdi4): New.
4943 (cbranchdf4): New. Handle invalid comparisons here.
4944 * config/mmix/predicates.md (float_comparison_operator): New.
4945
4946 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4947 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4948 * config/mn10300/mn10300.md (tst): Delete.
4949 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4950 Name these patterns and wrap RHS in a compare.
4951 (*cmpsi): Make this pattern private. Include tst.
4952 (*cmpsf): Make this pattern private.
4953 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4954 (compare with zero peepholes): Likewise.
4955 (bCC): Remove.
4956 (cbranchsi4, cbranchsf4): New.
4957 (casesi): Use cbranchsi4.
4958
4959 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4960 hppa_branch_type): Delete.
4961 (return_addr_rtx): Use cbranchsi4.
4962 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4963 Emit CCFPmode comparison here.
4964 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4965 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4966 hppa_branch_type): Delete.
4967 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4968 (movsicc, movdicc): Remove references to hppa_compare_op0,
4969 hppa_compare_op1 and compare_from_rtx.
4970 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4971 (casesi): Use cbranchsi4.
4972
4973 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4974 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4975 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4976 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4977 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4978 (bCC): Delete.
4979 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4980 (*branch, *branch_inverted): New.
4981
4982 * config/picochip/picochip.md (cbranchhi4): Use
4983 ordered_comparison_operator.
4984 (cmphi, bCC): Remove.
4985
4986 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4987 (trap_comparison_operator): Delete.
4988 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4989 rs6000_emit_cbranch): Accept mode and operands.
4990 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4991 rs6000_compare_fp_p): Delete.
4992 (rs6000_generate_compare): Accept mode and comparison. Extract code
4993 and op0/op1 from there. Replace references to rs6000_compare_op0
4994 and rs6000_compare_op1.
4995 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4996 extract result from passed operands.
4997 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4998 extract loc from passed operands.
4999 (rs6000_emit_cmove): Likewise.
5000 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5001 rs6000_compare_fp_p): Delete.
5002 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5003 (cbranch<GPR>4, cbranch<FP>4): New.
5004 (cstore<mode>4): New. Consolidate here all choices about when to use
5005 portable or specialized sCC sequences.
5006 (stack_protect_test): Use cbranchsi4.
5007 (conditional_trap): Replace with ctrap<GPR>4.
5008 (conditional trap insn): Replace trap_comparison_operator with
5009 ordered_comparison_operator.
5010
5011 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5012 (s390_emit_prologue): Use ctrap.
5013 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5014 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5015 New predicates replacing...
5016 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5017 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5018 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5019 (add<mode>cc): Do not use s390_compare_op0/op1.
5020 (s<code>): Change to...
5021 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5022 (seq): Change to...
5023 (cstorecc4): ... this. Handle EQ or NE equally.
5024 (*sne): Un-privatize for use in cstorecc4.
5025 (b<code>): Change to...
5026 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5027 (conditional_trap): Replace with...
5028 (ctrap<GPR>4, ctrap<FP>4): ... these.
5029 (stack_protect): Use cbranchcc4.
5030
5031 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5032 * config/score/score-protos.h (score_gen_cmp): Delete.
5033 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5034 (score_block_move-loop): Use cbranchsi4.
5035 * config/score/score.md (cbranchsi4): New.
5036 (cmpsi, bCC): Delete.
5037 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5038 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5039 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5040 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5041 * config/score/score3.h (score3_gen_cmp): Delete.
5042 * config/score/score7.h (score7_gen_cmp): Delete.
5043
5044 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5045 (sh_emit_scc_to_t): ... this. Return void.
5046 (from_compare): Rename to...
5047 (sh_emit_compare_and_branch): ... this.
5048 (sh_emit_compare_and_set): New.
5049 (sh_expand_t_scc): Accept operands.
5050 * config/sh/predicates.md (sh_float_comparison_operator): New.
5051 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5052 (prepare_scc_operands): Rename to...
5053 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5054 arguments.
5055 (sh_emit_cheap_store_flag): New.
f90b7a5a 5056 (sh_emit_set_t_insn): New.
fbdf817d
UB
5057 (from_compare): Rename to...
5058 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5059 handling of TARGET_SH2E floating point to avoid recursive call.
5060 Generate branch here.
5061 (sh_emit_compare_and_set): New.
5062 (sh_expand_t_scc): Get op0/op1 from arguments.
5063 (sh_emit_cheap_store_flag): New.
5064 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5065 cases.
f90b7a5a 5066 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5067 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5068 (movsicc, movdicc): Do nothing when it recreated operands from
5069 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5070 prepare_scc_operands (now sh_emit_scc_to_t).
5071 (udivdi3): Use cstoresi4.
5072 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5073 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5074 (cbranchint4_media, cbranchfp4_media): New.
5075 (casesi): Use cbranchdi4.
5076 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5077 Delete.
5078 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5079 (movnegt): Remove second operand.
5080 (cbranchsf4, cbranchdf4): New.
5081 (stack_protect): Use cbranchdi4/cbranchsi4.
5082
5083 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5084 (gen_compare_reg): Accept comparison, extract part of it to...
5085 (gen_compare_reg_1): ... this.
5086 (gen_compare_operator): Delete.
5087 (gen_v9_scc): Accept separate destination, comparison code and arms.
5088 Do not use sparc_compare_op0/sparc_compare_op1.
5089 (emit_scc_insn, emit_conditional_branch_insn): New.
5090 (emit_v9_brxx): Make static. Remove useless assertion.
5091 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5092 emit_cmp_insn.
5093 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5094 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5095 sparc_emit_float_lib_cmp): Adjust prototype.
5096 (emit_scc_insn, emit_conditional_branch_insn): New.
5097 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5098 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5099 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5100 iterators to the top.
5101 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5102 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5103 snedi_special_trunc): Delete.
fbdf817d 5104 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5105 and snedi_special_trunc.
fbdf817d
UB
5106 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5107 cbranchdi4, cbranch<F:mode>4): New.
5108 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5109 here. Use gen_compare_reg instead of gen_compare_operator.
5110 (conditional_trap): Replace with...
5111 (ctrapsi4, ctrapdi4): ... this.
5112 (stack_protect_test): Use cbranchcc4.
5113
5114 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5115 argument to rtx.
5116 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5117 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5118 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5119 from operands[0] or operands[3] depending on is_set.
5120 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5121 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5122 cmpdf, bCC), sCC: Remove.
5123 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5124 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5125 cstoredf4): New.
5126 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5127 spu_emit_branch_or_set.
5128
5129 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5130 Add two arguments.
5131 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5132 xstormy16_compare_op1): Delete.
5133 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5134 xstormy16_compare_op1): Delete.
5135 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5136 Adjust calls.
5137 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5138 (cmphi, cmpsi, bCC): Remove.
5139
5140 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5141 (*cmpsi): ... this one.
5142 (cbranchsi4, cstoresi4): New.
5143 (bCC expanders): Delete.
5144 (sCC insns): Fold into...
5145 (*setcc): ... this one.
5146 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5147 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5148 (movsicc): Simplify.
5149 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5150
fbdf817d
UB
5151 * config/vax/vax-protos.h (cond_name): New.
5152 (vax_output_conditional_branch): Remove.
5153 * config/vax/vax.c (cond_name): New.
5154 (vax_output_conditional_branch): Remove.
5155 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5156 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5157 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5158 (bit<VAXint>): Wrap source with (compare).
5159 (b<code> and following unnamed pattern): Rename to *branch and
5160 *branch_reversed. Change macroization to match_operator.
5161 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5162
5163 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5164 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5165 Change last argument to machine_mode.
5166 (xtensa_expand_scc): Add machine_mode argument.
5167 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5168 (gen_conditional_move, xtensa_expand_conditional_branch,
5169 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5170 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5171 Adjust operand numbers.
5172 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5173 Delete.
5174 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5175 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5176 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5177
16670495
PB
51782009-05-12 Paolo Bonzini <bonzini@gnu.org>
5179
5180 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5181 causes spurious differences between trunk and cond-optab branch.
5182
4a4a4e99
AO
51832009-05-12 Alexandre Oliva <aoliva@redhat.com>
5184
5185 PR target/37137
5186 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5187
72b9acff
AO
51882009-05-12 Alexandre Oliva <aoliva@redhat.com>
5189
5190 * tree.c (iterative_hash_pointer): Delete.
5191 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5192 Hash UIDs and versions of SSA names. Don't special-case built-in
5193 function declarations.
5194
b7dd69ac
ILT
51952009-05-11 Ian Lance Taylor <iant@google.com>
5196
5197 PR bootstrap/40103
5198 * graphite.c: Force -Wc++-compat to only be a warning before
5199 #including "cloog/cloog.h".
5200
ed102b70
MJ
52012009-05-11 Martin Jambor <mjambor@suse.cz>
5202
5203 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5204
08f1af2e
JH
52052009-05-11 Jan Hubicka <jh@suse.cz>
5206
5207 * tree-ssa-loop-ivcanon.c: Include target.h
5208 (struct loop_size): new structure.
5209 (constant_after_peeling): New predicate.
5210 (tree_estimate_loop_size): New function.
5211 (estimated_unrolled_size): Rewrite for new estimates.
5212 (try_unroll_loop_completely): Use new estimates.
5213 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5214
a7d39bd3
AP
52152009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5216
5217 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5218 libcpp interface change.
5219 (spu_macro_to_expand): Likewise.
5220
f5a1f0d0
PB
52212009-05-11 Paolo Bonzini <bonzini@gnu.org>
5222
5223 PR tree-optimization/40026
5224 * gimplify.c (gimplify_init_constructor): Change initial conditional
5225 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5226 optimize_compound_literals_in_ctor.
5227
c260f01f
NS
52282009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5229
5230 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5231 New devices.
5232 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5233
df398a37
L
52342009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5235
5236 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5237 HOST_WIDE_INT for gap.
5238
4da39468
IR
52392009-05-11 Ira Rosen <irar@il.ibm.com>
5240
5241 PR tree-optimization/40074
5242 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5243 account in group size and step comparison.
5244
4effdf02
RG
52452009-05-11 Richard Guenther <rguenther@suse.de>
5246
5247 * passes.c (init_optimization_passes): Strip now incorrect comment.
5248 (execute_function_todo): Do not set PROP_alias.
5249 * tree-pass.h (PROP_alias): Remove.
5250 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5251 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5252 * tree-nrv.c (pass_return_slot): Likewise.
5253 * tree-object-size.c (pass_object_sizes): Likewise.
5254 * tree-ssa-dom.c (pass_dominator): Likewise.
5255 (pass_phi_only_cprop): Likewise.
5256 * tree-ssa-dse.c (pass_dse): Likewise.
5257 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5258 (pass_cselim): Likewise.
5259 * tree-ssa-pre.c (pass_pre): Likewise.
5260 (pass_fre): Likewise.
5261 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5262 * tree-ssa-sink.c (pass_sink_code): Likewise.
5263 * tree-stdarg.c (pass_stdarg): Likewise.
5264 * tree-tailcall.c (pass_tail_calls): Likewise.
5265 * tree-vrp.c (pass_vrp): Likewise.
5266
24b97832
ILT
52672009-05-10 Ian Lance Taylor <iant@google.com>
5268
5269 * basic-block.h (enum profile_status): Break out of struct
5270 control_flow_graph.
5271 * cgraph.h (struct inline_summary): Break out of struct
5272 cgraph_local_info.
5273 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5274 of struct cgraph_order_sort.
fbdf817d 5275 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5276 * cse.c (struct branch_path): Break out of struct
5277 cse_basic_block_data.
5278 * except.h (enum eh_region_type): Break out of struct eh_region.
5279 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5280 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5281 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5282 ggc_pch_data.
fbdf817d
UB
5283 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5284 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5285 * sched-int.h (enum post_call_group): New enum, broken out of
5286 struct deps.
5287 (struct deps_reg): Break out of struct deps.
5288 * target.h (struct asm_int_op): Break out of struct gcc_target.
5289 * tree-eh.c (struct goto_queue_node): Break out of struct
5290 leh_tf_state.
5291 * tree-inline.h (enum copy_body_cge_which): Break out of
5292 copy_body_data.
5293 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5294
5295 * c-decl.c (in_struct, struct_types): New static variables.
5296 (pushtag): Add loc parameter. Change all callers.
5297 (lookup_tag): Add ploc parameter. Change all callers.
5298 (check_compound_literal_type): New function.
5299 (parser_xref_tag): Add loc parameter. Change all callers. If
5300 -Wc++-compat, warn about struct/union/enum types defined within a
5301 struct or union.
5302 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5303 and loc parameters. Change all callers. Change error calls to
5304 error_at, using loc. For a redefinition, if the location of the
5305 original definition is known, report it. Set in_struct and
fbdf817d 5306 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5307 (finish_struct): Add new parameters enclosing_in_struct and
5308 enclosing_struct_types. Change all callers. Set
5309 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5310 in the struct. If in a struct, add this struct to struct_types.
5311 (start_enum): Add loc parameter. Change all callers. Use
5312 error_at for errors, using loc. For a redefinition, if the
5313 location of the original definition is known, report it. If in a
5314 struct, add this enum type to struct_types. If -Wc++-compat warn
5315 if in sizeof, typeof, or alignof.
fbdf817d
UB
5316 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5317 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5318 (c_parser_enum_specifier): Get enum location for start_enum.
5319 (c_parser_struct_or_union_specifier): Get struct location for
5320 start_struct. Save in_struct and struct_types status between
5321 start_struct and finish_struct.
5322 (c_parser_cast_expression): Get location of cast.
5323 (c_parser_alignof_expression): Get location of type.
5324 (c_parser_postfix_expression): Likewise.
5325 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5326 parameter. Change all callers. Call check_compound_literal_type.
5327 Use type_loc for error about variable size type.
5328 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5329 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5330 (c_cast_expr): Add loc parameter. Change all callers. If
5331 -Wc++-compat, warn about defining a type in a cast.
5332 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5333 (start_enum, start_struct, finish_struct): Update declarations.
5334 (parser_xref_tag, c_cast_expr): Update declarations.
5335 (check_compound_literal_type): Declare.
5336
7a2738fa
BE
53372009-05-11 Ben Elliston <bje@au.ibm.com>
5338
5339 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5340 for recent libcpp interface change.
5341 (rs6000_macro_to_expand): Likewise.
5342
af618949
MM
53432009-05-10 Michael Matz <matz@suse.de>
5344
5345 PR target/40031
5346 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5347 not at entry of function.
5348
b7d7a473
RG
53492009-05-10 Richard Guenther <rguenther@suse.de>
5350
5351 PR tree-optimization/40081
5352 Revert
5353 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5354 using the main variant of the element type. Do not fiddle with
5355 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5356
5357 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5358 structs with volatile fields.
5359
078c3644
JH
53602009-05-10 Jan Hubicka <jh@suse.cz>
5361
5362 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5363 (estimate_move_cost): Assert that it does not get called for
5364 VOID_TYPE_P.
078c3644
JH
5365 (estimate_num_insns): Skip VOID types in argument handling.
5366 (optimize_inline_calls): Delete unreachable blocks and verify that
5367 callgraph is valid.
5368
39ff5a96
JH
53692009-05-10 Jan Hubicka <jh@suse.cz>
5370
5371 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5372 * cgraph.c (cgraph_mark_address_taken_node): New function.
5373 (dump_cgraph_node): Dump new flag.
5374 * cgraph.h (struct cgraph_node): Add address_taken.
5375 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5376 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5377 since new direct calls can be born.
5378
9a0c6187
JM
53792009-05-10 Joseph Myers <joseph@codesourcery.com>
5380
5381 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5382 tok->val.node.node.
5383
4b685e14
JH
53842009-05-10 Jan Hubicka <jh@suse.cz>
5385
5386 PR middle-end/40084
fb0be169
EB
5387 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5388 argument; rewrite.
4b685e14
JH
5389 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5390 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5391 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5392 (fold_marked_statements): Update call to
5393 cgraph_update_edges_for_call_stmt.
4b685e14 5394
29d08eba
JM
53952009-05-10 Joseph Myers <joseph@codesourcery.com>
5396
5397 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5398 identifiers in diagnostics.
5399 * config/arm/arm.c (arm_handle_fndecl_attribute,
5400 arm_handle_isr_attribute): Likewise.
5401 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5402 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5403 * config/bfin/bfin.c (handle_int_attribute,
5404 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5405 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5406 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5407 Likewise.
5408 * config/darwin.c (darwin_handle_kext_attribute,
5409 darwin_handle_weak_import_attribute): Likewise.
5410 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5411 h8300_handle_eightbit_data_attribute,
5412 h8300_handle_tiny_data_attribute): Likewise.
5413 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5414 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5415 * config/i386/winnt.c (ix86_handle_shared_attribute,
5416 ix86_handle_selectany_attribute): Likewise.
5417 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5418 * config/m32c/m32c.c (function_vector_handler): Likewise.
5419 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5420 m68hc11_handle_fntype_attribute): Likewise.
5421 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5422 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5423 * config/mips/mips.c (mips_insert_attributes,
5424 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5425 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5426 rs6000_handle_struct_attribute): Likewise.
5427 * config/sh/sh.c (sh_insert_attributes,
5428 sh_handle_resbank_handler_attribute,
5429 sh_handle_interrupt_handler_attribute,
5430 sh2a_handle_function_vector_handler_attribute,
5431 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5432 Likewise.
5433 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5434 * config/spu/spu.c (spu_handle_fndecl_attribute,
5435 spu_handle_vector_attribute): Likewise.
5436 * config/stormy16/stormy16.c
5437 (xstormy16_handle_interrupt_attribute): Likewise.
5438 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5439 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5440
f41c4af3
JM
54412009-05-10 Joseph Myers <joseph@codesourcery.com>
5442
782dc37a 5443 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5444 (pp_translate_identifiers): New.
5445 (pp_identifier): Only conditionally translate identifier to locale
5446 character set.
5447 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5448 (pp_base_tree_identifier): Only conditionally translate identifier
5449 to locale character set.
5450 * c-pretty-print.c (M_): Define.
5451 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5452 fragments for conditional translation with M_.
5453 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5454 identifier translation.
5455
896d7dbd
RG
54562009-05-10 Richard Guenther <rguenther@suse.de>
5457
5458 PR tree-optimization/40081
5459 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5460 using the main variant of the element type. Do not fiddle with
5461 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5462
9a23acef
JH
54632009-05-09 Jan Hubicka <jh@suse.cz>
5464
5465 PR middle-end/40080
5466 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5467 indirect calls; verify cgraph afterwards.
5468
d563610d
JH
54692009-05-09 Jan Hubicka <jh@suse.cz>
5470
5471 PR bootstrap/40082
5472 * ipa.c (update_inlined_to_pointer): New function.
5473 (cgraph_remove_unreachable_nodes): Use it.
5474
f08a18d0
JH
54752009-05-09 Jan Hubicka <jh@suse.cz>
5476
5477 * tree-eh.c (struct leh_state): Remove prev_try.
5478 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5479 not track prev_try.
5480 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5481 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5482 remove_eh_handler_and_replace, foreach_reachable_handler,
5483 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5484 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5485 (gen_eh_region_cleanup): Update prototype.
5486
0afd7219
JH
54872009-05-09 Jan Hubicka <jh@suse.cz>
5488
5489 PR middle-end/40043
5490 * except.c (copy_eh_region): Always set prev_try.
5491 (redirect_eh_edge_to_label): Find outer try.
5492 (foreach_reachable_handler): When looking for prev try
5493 handle case where previous try is not going to be taken.
5494
ad6c0864
MM
54952009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5496
5497 PR tree-optimization/40049
5498 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5499 only vector/vector shifts, convert the type of the constant to the
5500 appropriate type to avoid building incorrect trees, which
5501 eventually have problems with garbage collection.
5502
c94f9067
JM
55032009-05-08 Joseph Myers <joseph@codesourcery.com>
5504
5505 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5506 -1 for complex floating-point types if honoring signed zeros.
5507
9187e02d
JH
55082009-05-08 Jan Hubicka <jh@suse.cz>
5509
20acb8a2
EB
5510 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5511 argument; handle correctly when profile is absent.
9187e02d
JH
5512 (build_cgraph_edges): Update.
5513 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5514 * cgraph.c: Do not include varray.h.
5515 (cgraph_set_call_stmt_including_clones): New function.
5516 (cgraph_create_edge_including_clones): Likewise
5517 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5518 (cgraph_update_edges_for_call_stmt): Handle clones.
5519 (cgraph_remove_node): Handle clone tree.
5520 (cgraph_remove_node_and_inline_clones): New function.
5521 (dump_cgraph_node): Dump clone tree.
5522 (cgraph_clone_node): Handle clone tree.
20acb8a2 5523 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5524 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5525 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5526 (cgraph_clone_info): New function.
9187e02d 5527 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5528 (cgraph_remove_node_and_inline_clones,
5529 cgraph_set_call_stmt_including_clones,
5530 cgraph_create_edge_including_clones,
5531 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5532 (cgraph_function_versioning): Use VEC argument.
5533 (compute_call_stmt_bb_frequency): Update prototype.
5534 (cgraph_materialize_all_clones): New function.
5535 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5536 (ipcp_create_replace_map): Update to VECtors.
5537 (ipcp_update_callgraph): Use virtual clones.
5538 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5539 (ipcp_update_profiling): Do not update local profiling.
5540 (ipcp_insert_stage): Use VECtors and virtual clones.
5541 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5542 (clone_of_p): New function.
5543 (cgraph_preserve_function_body_p): Use clone tree.
5544 (cgraph_optimize): Materialize clones.
5545 (cgraph_function_versioning): Update for VECtors.
5546 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5547 (cgraph_materialize_clone): New function.
5548 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5549 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5550 * ipa.c: Include gimple.h.
5551 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5552 * ipa-prop.c (ipa_note_param_call): Update call to
5553 compute_call_stmt_bb_frequencycall.
9187e02d 5554 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5555 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5556 (copy_bb): Handle updating of clone tree; add new edge when new call
5557 appears.
5558 (expand_call_inline): Be strict about every call having edge.
5559 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5560 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5561 (tree_function_versioning): Use VECtors; always remove unreachable
5562 blocks and fold conditionals.
5563 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5564 (tree_function_versioning): Remove.
5565 * Makefile.in (GTFILES): Remove tree-inline.c
5566 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5567 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5568 tree.
9187e02d 5569
9b86d6bb
L
55702009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5571 Andrew Morrow <acm@google.com>
5572
5573 PR c/36892
5574 * c-common.c (c_common_attribute_table): Permit deprecated
5575 attribute to take an optional argument.
5576 (handle_deprecated_attribute): If the optional argument to
5577 __attribute__((deprecated)) is not a string ignore the attribute
5578 and emit a warning.
5579
5580 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5581 * c-typeck.c (build_component_ref): Likewise.
5582 (build_external_ref): Likewise.
5583
5584 * toplev.c (warn_deprecated_use): Add an attribute argument.
5585 Emit the message associated with __attribute__((deprecated)).
5586
5587 * toplev.h (warn_deprecated_use): Updated.
5588
5589 * doc/extend.texi: Document new optional parameter to
5590 __attribute__((deprecated))
5591
82ad047f
ME
55922009-05-08 Michael Eager <eager@eagercon.com>
5593
5594 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5595 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5596
788d3075
RG
55972009-05-08 Richard Guenther <rguenther@suse.de>
5598
5599 PR tree-optimization/40062
5600 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5601 Avoid exponential behavior.
5602
00952e97
PB
56032009-05-08 Paolo Bonzini <bonzini@gnu.org>
5604
5605 PR rtl-optimization/33928
5606 PR 26854
5607 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5608 process_uses, build_single_def_use_links): New.
5609 (update_df): Update use_def_ref.
5610 (forward_propagate_into): Use get_def_for_use instead of use-def
5611 chains.
5612 (fwprop_init): Call build_single_def_use_links and let it initialize
5613 dataflow.
5614 (fwprop_done): Free use_def_ref.
5615 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5616 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5617 df_rd_simulate_one_insn): New.
5618 (df_rd_bb_local_compute_process_def): Update head comment.
5619 (df_chain_create_bb): Use the new RD simulation functions.
5620 * df.h (df_rd_simulate_artificial_defs_at_top,
5621 df_rd_simulate_one_insn): New.
5622 * opts.c (decode_options): Enable fwprop at -O1.
5623 * doc/invoke.texi (-fforward-propagate): Document this.
5624
2ca862e9
JM
56252009-05-08 Joseph Myers <joseph@codesourcery.com>
5626
5627 PR c/24581
5628 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5629 and one complex operand specially.
5630 * tree-complex.c (some_nonzerop): Do not identify a real value as
5631 zero if flag_signed_zeros.
5632
3e807ffc
PB
56332009-05-08 Paolo Bonzini <bonzini@gnu.org>
5634
5635 PR rtl-optimization/33928
7925c06c 5636 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5637
1bfdbb29
PB
56382009-05-08 Paolo Bonzini <bonzini@gnu.org>
5639
5640 PR rtl-optimization/33928
e913423f
EB
5641 * loop-invariant.c (struct use): Add addr_use_p.
5642 (struct def): Add n_addr_uses.
5643 (struct invariant): Add cheap_address.
5644 (create_new_invariant): Set cheap_address.
5645 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5646 (record_uses): Pass df_ref to record_use.
5647 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5648 used only as such.
1bfdbb29 5649
702cb2a0
KK
56502009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5651
5652 * config/sh/sh.c: Do not include c-pragma.h.
5653
5e8df753
AP
56542009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5655
5656 * config/spu/spu.c: Remove include of c-common.h.
5657
6ec637a4
JJ
56582009-05-07 Janis Johnson <janis187@us.ibm.com>
5659
5660 PR c/39037
5661 * c-common.h (mark_valid_location_for_stdc_pragma,
5662 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5663 clear_float_const_decimal64, float_const_decimal64_p): New.
5664 * c.opt (Wunsuffixed-float-constants): New.
5665 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5666 unsuffixed float constant, handle new warning.
5667 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5668 * c-decl.c (c_scope): New flag float_const_decimal64.
5669 (set_float_const_decimal64, clear_float_const_decimal64,
5670 float_const_decimal64_p): New.
5671 (push_scope): Set new flag.
5672 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5673 to use STDC pragmas.
5674 (c_parser_external_declaration): Ditto.
5675 (c_parser_compound_statement_nostart): Ditto.
5676 * c-pragma.c (valid_location_for_stdc_pragma,
5677 mark_valid_location_for_stdc_pragma,
5678 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5679 handle_pragma_float_const_decimal64): New.
5680 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5681 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5682 set_float_const_decimal64, clear_float_const_decimal64,
5683 float_const_decimal64_p): New dummy functions.
5684 * doc/extend.texi (Decimal Float): Remove statement that the
5685 pragma, and suffix for double constants, are not supported.
5686 * doc/invoke.texi (Warning Options): List new option.
5687 (-Wunsuffixed-float-constants): New.
5688
45b9b2e9
SB
56892009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5690
5691 * config/i386/i386.c: Do not include c-common.h.
5692
e71da632
MH
56932009-05-07 Mark Heffernan <meheff@google.com>
5694
5695 * doc/invoke.texi (Debugging Options): Document change of debugging
5696 dump location.
e913423f 5697 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5698 aux_base_name directory.
5699
fe4c7bc6
HS
57002009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5701
5702 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5703 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5704
3b3e44eb
RAE
57052009-05-07 Rafael Avila de Espindola <espindola@google.com>
5706
5707 * Makefile.in (install-plugin): Simplify a bit.
5708
fac41238
PB
57092009-05-07 Paolo Bonzini <bonzini@gnu.org>
5710
5711 * Makefile.in (OBJS-common): Add regcprop.o.
5712 (regcprop.o): New.
5713 * timevar.def (TV_CPROP_REGISTERS): New.
5714 * regrename.c (regrename_optimize): Return 0.
5715 (rest_of_handle_regrename): Delete.
5716 (pass_rename_registers): Point to regrename_optimize.
5717 (struct value_data_entry, struct value_data,
5718 kill_value_one_regno, kill_value_regno, kill_value,
5719 set_value_regno, init_value_data, kill_clobbered_value,
5720 kill_set_value, kill_autoinc_value, copy_value,
5721 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5722 replace_oldest_value_reg, replace_oldest_value_addr,
5723 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5724 debug_value_data, validate_value_data): Move...
5725 * regcprop.c: ... here.
5726 (rest_of_handle_cprop): Delete.
5727 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5728
472e0df9
JJ
57292009-05-07 Jakub Jelinek <jakub@redhat.com>
5730
5731 PR middle-end/40057
5732 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5733 GEN_INT for 1 << bitnum.
5734 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5735 build_int_cst_type.
5736
0d50d55a
UB
57372009-05-07 Uros Bizjak <ubizjak@gmail.com>
5738
5739 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5740 Remove wrong description of "nand" operation.
0d50d55a 5741
22f597f1
RG
57422009-05-06 Richard Guenther <rguenther@suse.de>
5743 Adam Nemet <anemet@caviumnetworks.com>
5744
5745 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5746 comment. Add that if LHS is not a gimple register, then RHS1 has
5747 to be a single object (GIMPLE_SINGLE_RHS).
5748
641cac0b
AN
57492009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5750
5751 * expr.c (get_def_for_expr): Move it up in the file.
5752 (store_field): When expanding a bit-field store, look at the
5753 defining gimple stmt for the masking conversion.
5754
5a5c6435
JJ
57552009-05-06 Janis Johnson <janis187@us.ibm.com>
5756
5757 PR middle-end/39986
5758 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5759 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5760 32-bit memcpy into long.
5761
96474f36
JJ
57622009-05-06 Jakub Jelinek <jakub@redhat.com>
5763
5764 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5765 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5766 new_reg_loc_descr.
5767 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5768 instead of appending DW_OP_deref*.
5769
529ff441
MM
57702009-05-06 Michael Matz <matz@suse.de>
5771
5772 PR middle-end/40021
5773 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5774 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5775
9419a9fd
RAE
57762009-05-06 Rafael Avila de Espindola <espindola@google.com>
5777
5778 * Makefile.in (install-plugin): Fix srcdir handling.
5779
fff1894c
AB
57802009-05-06 Andrey Belevantsev <abel@ispras.ru>
5781
5782 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5783 when processing for not_regs_needed bitmap.
5784 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5785 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5786 handling it for rhs.
5787
700ae70c
L
57882009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5789
ab3426a7 5790 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5791 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5792 * config/i386/predicates.md (incdec_operand): Likewise.
5793 (aligned_operand): Likewise.
5794 * config/i386/sse.md (divv8sf3): Likewise.
5795 (sqrtv8sf2): Likewise.
5796
67341fb5
L
57972009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5798
5799 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5800
5801 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5802
87946f42
L
58032009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5804
5805 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5806 ssemodesuffixf2c with avxmodesuffixf2c.
5807
1202aec1
JM
58082009-05-06 Joseph Myers <joseph@codesourcery.com>
5809
5810 PR c/40032
aa016ff7 5811 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5812
6e57a01d
JJ
58132009-05-05 Jakub Jelinek <jakub@redhat.com>
5814
5815 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5816 (struct tree_base): Adjust spacing for 8 bit boundaries.
5817 (struct tree_decl_common): Add decl_by_reference_flag bit.
5818 (DECL_BY_REFERENCE): Adjust.
5819 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5820 print DECL_BY_REFERENCE bit.
5821 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5822 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5823 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5824 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5825 unconditionally.
5826
32f579f6
JJ
5827 PR middle-end/39666
5828 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5829 range of the type, but default label is missing, add it with one
5830 of the existing labels instead of adding a new label for it.
5831
617ab743
JM
58322009-05-05 Joseph Myers <joseph@codesourcery.com>
5833
5834 * dwarf.h: Remove.
5835
bf016de8
RAE
58362009-05-05 Rafael Avila de Espindola <espindola@google.com>
5837
5838 * Makefile.in (enable_plugin, plugin_includedir): New.
5839 (install): Depend on install-plugin.
5840 (PLUGIN_HEADERS): New.
5841 (install-plugin): New.
5842 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5843
7f8fdb9f
RG
58442009-05-05 Richard Guenther <rguenther@suse.de>
5845
5846 PR tree-optimization/40022
5847 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5848 the only vuse.
5849 (phivn_valid_p): Fix tuplification error, simplify.
5850 (phiprop_insert_phi): Add dumps.
5851 (propagate_with_phi): Simplify.
5852
8d972839
RG
58532009-05-05 Richard Guenther <rguenther@suse.de>
5854
5855 PR middle-end/40023
aa016ff7 5856 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5857
66ba9b0b
SZ
58582009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5859
5860 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5861 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5862 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5863 block_ultimate_origin): Rearrange the declarations line to match the
5864 comment that indicates the .c file which the functions are defined.
5865 (dwarf2out_*, set_decl_rtl): Add comment.
5866 (get_base_address): Adjust comment.
5867 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5868 declarations line and add comment.
5869 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5870
4f1e4960
JM
58712009-05-04 Joseph Myers <joseph@codesourcery.com>
5872
5873 * attribs.c (decl_attributes): Use %qE for identifiers in
5874 diagnostics.
5875 * cgraphunit.c (verify_cgraph_node): Translate function names to
5876 locale character set in diagnostics.
5877 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5878 diagnostics.
5879 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5880 Document that functions are named in UTF-8.
5881 * expr.c (expand_expr_real_1): Translate function names to locale
5882 character set in diagnostics.
5883 * gimplify.c (omp_notice_variable, omp_is_private,
5884 gimplify_scan_omp_clauses): Use %qE for identifiers in
5885 diagnostics.
5886 * langhooks.c (lhd_print_error_function): Translate function names
5887 to locale character set.
5888 * langhooks.h (decl_printable_name): Document that return value is
5889 in internal character set.
5890 * stmt.c: Include pretty-print.h
5891 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5892 diagnostics.
5893 (resolve_operand_name_1): Translate named operand name to locale
5894 character set.
5895 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5896 diagnostics.
5897 * toplev.c (announce_function): Translate function names to locale
5898 character set.
5899 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5900 (default_tree_printer): Use pp_identifier or translate identifiers
5901 to locale character set. Mark "<anonymous>" for translation.
5902 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5903 for identifiers in diagnostics.
5904 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5905 diagnostics.
5906 * varasm.c (output_constructor): Use %qE for identifiers in
5907 diagnostics.
5908
40540e68
RAE
59092009-05-04 Rafael Avila de Espindola <espindola@google.com>
5910
5911 * configure.ac: use ` ` instead of $()
5912 * configure: Regenerate.
5913
33fc884c
BE
59142009-05-05 Ben Elliston <bje@au.ibm.com>
5915
5916 * config/pa/linux-atomic.c: Eliminate conditional include of
5917 errno.h on non-LP64 systems to simplify build requirements.
5918
88388a52
JM
59192009-05-04 Joseph Myers <joseph@codesourcery.com>
5920
5921 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5922 diagnostics.
5923 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5924 and pass value to identifier_to_locale.
5925 (warn_variable_length_array): Make name a tree.
5926 (grokdeclarator): Separate diagnostic texts for named and unnamed
5927 declarators. Use %qE for named declarators.
5928 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5929 diagnostics.
5930 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5931 identifiers in diagnostics.
5932 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5933 identifier_to_locale. Mark "anonymous" strings for translation.
5934
960c5c79
ME
59352009-05-04 Michael Eager <eager@eagercon.com>
5936
5937 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5938 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5939
d083fbba
ME
59402009-05-04 Michael Eager <eager@eagercon.com>
5941
5942 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5943 TARGET_SINGLE_FLOAT check.
5944
c3ba8d32
ME
59452009-05-04 Michael Eager <eager@eagercon.com>
5946
5947 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5948
edce9f18
ME
59492009-05-04 Michael Eager <eager@eagercon.com>
5950
5951 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5952 * config/rs6000/t-xilinx: New
5953
506d7b68
PB
59542009-05-04 Paolo Bonzini <bonzini@gnu.org>
5955
e913423f 5956 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5957 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5958 * gcc/explow.c (memory_address): Use target hook.
5959 * gcc/targhooks.c (default_legitimize_address): New.
5960 * gcc/targhooks.h (default_legitimize_address): New.
5961 * gcc/target.h (legitimize_address): New.
5962 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5963 (TARGET_INITIALIZER): Include it.
5964 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5965
5966 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5967 * config/bfin/bfin.c (legitimize_address): Remove.
5968 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5969 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5970 Remove.
506d7b68
PB
5971 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5972 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5973
5974 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5975 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5976 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5977 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5978 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5979 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5980 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5981 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5982 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5983 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5984 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5985 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5986 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5987 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5988 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5989 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5990 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5991 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5992 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5993 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5994 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5995 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5996 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5997
5998 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5999 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6000 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6001 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6002 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6003 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6004 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6005 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6006 (thumb_legitimize_address): Delete.
6007 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6008 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6009 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6010 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6011 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
6012 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6013 Delete.
6014 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6015 Delete.
506d7b68
PB
6016
6017 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6018 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6019 * config/m32r/m32r.c (m32r_legitimize_address): New.
6020 * config/m68k/m68k.c (m68k_legitimize_address): New.
6021 * config/score/score.c (score_legitimize_address): Standardize.
6022 * config/score/score3.c (score3_legitimize_address): Standardize.
6023 * config/score/score3.h (score3_legitimize_address): Adjust.
6024 * config/score/score7.c (score7_legitimize_address): Standardize.
6025 * config/score/score7.h (score7_legitimize_address): Adjust.
6026 * config/sh/sh.c (sh_legitimize_address): New.
6027 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6028
6029 * gcc/config/s390/s390.c (legitimize_address): Rename to...
6030 (s390_legitimize_address): ... this.
6031 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6032 (sparc_legitimize_address): ... this.
6033 * gcc/config/i386/i386.c (legitimize_address): Rename to...
6034 (ix86_legitimize_address): ... this.
6035 * gcc/config/avr/avr.c (legitimize_address): Rename to...
6036 (avr_legitimize_address): ... this.
6037 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6038 (mn10300_legitimize_address): ... this.
6039 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6040 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6041 (alpha_expand_mov): Adjust call.
6042
6043 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6044 * config/spu/spu.c (spu_legitimize_address): Likewise.
6045 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6046 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6047
a3af5087
JM
60482009-05-04 Joseph Myers <joseph@codesourcery.com>
6049
6050 * intl.c (locale_encoding, locale_utf8): New.
6051 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6052 * intl.h (locale_encoding, locale_utf8): Declare.
6053 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6054 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6055 New.
6056 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6057 argument.
6058 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6059 (pp_base_tree_identifier): Declare as function.
6060 (identifier_to_locale): Declare.
6061 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6062 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6063
ea5cd5f1
RG
60642009-05-04 Richard Guenther <rguenther@suse.de>
6065
6066 PR middle-end/40015
6067 * builtins.c (fold_builtin_memory_op): Do not decay to element
6068 type if the size matches the whole array.
6069
ddc2690a
KH
60702009-05-04 Kazu Hirata <kazu@codesourcery.com>
6071
6072 * expmed.c (synth_mult): When trying out a shift, pass the result
6073 of a signed shift.
6074
ef268d34
KH
60752009-05-04 Kazu Hirata <kazu@codesourcery.com>
6076
6077 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6078 (shiftsub1_cost): New.
6079 (init_expmed): Compute shiftsub1_cost.
6080 (synth_mult): Optimize multiplications by constants of the form
6081 -(2^^m-1) for some constant positive integer m.
6082
255d3827
RG
60832009-05-03 Richard Guenther <rguenther@suse.de>
6084
6085 PR c/39983
6086 * c-typeck.c (array_to_pointer_conversion): Do not built
6087 ADDR_EXPRs of arrays of pointer-to-element type.
6088 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6089 up wrong ADDR_EXPRs after-the-fact.
6090 * c-common.c (strict_aliasing_warning): Strip pointer
6091 conversions for obtaining the original type.
6092 * builtins.c (fold_builtin_memset): Handle array types.
6093 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6094 and array types
6095
16c33770
RG
60962009-05-03 Richard Guenther <rguenther@suse.de>
6097
6098 PR middle-end/23329
6099 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6100 Do not lose casts from array types with unknown extent to array
6101 types with known extent.
6102 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6103 alias set compatibility.
6104
62a67c94
MLI
61052009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6106
6107 * flags.h (extra_warnings): Delete.
6108 * toplev.c (process_options): Handle Wuninitialized here.
6109 * opts.c (extra_warnings): Delete.
6110 (set_Wextra): Delete.
6111 (common_handle_option): -Wextra can be handled automatically.
6112 * c-opts.c (c_common_handle_option): Delete obsolete code.
6113 (c_common_post_options): Simplify comment.
6114 * common.opt (W): Add Var.
6115 (Wextra): Add Var.
6116 (Wuninitialized): Initialize to -1.
6117
8c7926c4
AN
61182009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6119 Richard Guenther <rguenther@suse.de>
6120
6121 * expr.c (get_def_for_expr): New function.
6122 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6123 SSA rather than trees.
6124 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6125 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6126
fa5da7de
JM
61272009-05-03 Joseph Myers <joseph@codesourcery.com>
6128
6129 * c-common.c (reswords): Add _Imaginary.
6130 * c-common.c (enum rid): Add RID_IMAGINARY.
6131
2ddd5020
PB
61322009-05-03 Paolo Bonzini <bonzini@gnu.org>
6133
6134 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6135 Patch by Richard Guenther.
6136
aea88c05
AS
61372009-05-03 Anatoly Sokolov <aesok@post.ru>
6138
6139 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6140 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6141 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6142 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6143 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6144 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6145 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6146 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6147 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6148 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6149 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6150 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6151 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6152 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6153 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6154 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6155 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6156 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6157
85e59f3a
RG
61582009-05-02 Richard Guenther <rguenther@suse.de>
6159
6160 PR tree-optimization/39940
6161 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6162 doing so.
6163
4636b850
RG
61642009-05-02 Richard Guenther <rguenther@suse.de>
6165
6166 PR middle-end/40001
6167 * tree-ssa.c (execute_update_addresses_taken): Properly check
6168 if we can mark a variable DECL_GIMPLE_REG_P.
6169 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6170 back to the end of the function.
6171 (is_gimple_reg_type): Remove complex type special casing.
6172 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6173 if not optimizing.
6174
5e10cb5a
BE
61752009-05-02 Ben Elliston <bje@au.ibm.com>
6176
6177 * doc/collect2.texi (Collect2): Document search path behaviour
6178 when configured with --with-ld.
6179
048bf48b
JH
61802009-05-02 Jan Hubicka <jh@suse.cz>
6181
6182 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6183 parameter; update callers.
aa016ff7
UB
6184 (coalesce_cost_edge): EH edges are costier because they needs
6185 splitting even if not critical and even more costier when there are
6186 multiple EH predecestors.
048bf48b 6187
d5c5f9ab
JH
61882009-05-02 Jan Hubicka <jh@suse.cz>
6189
6190 * except.c (remove_eh_handler_and_replace): Handle updating after
6191 removing TRY blocks.
6192
2ed1959a
EB
61932009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6194
6195 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6196
d363a7e7
SB
61972009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6198
6199 * varasm.c: Do not include c-pragma.h.
6200 * attribs.c: Do not incude c-common.h.
6201
9c3d55b4
MM
62022009-05-01 Michael Matz <matz@suse.de>
6203
6204 * calls.c (initialize_argument_information): Handle SSA names like
6205 decls with a non MEM_P DECL_RTL.
6206
ea264ca5
SB
62072009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6208
6209 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6210 * ipa-utils.c: Likewise.
6211 * ipa-type-escape.c: Likewise.
6212 * cgraphunit.c Do not include c-common.h.
6213 * ipa-pure-const.c: Likewise.
6214 * tree-if-conv.c: Likewise.
6215 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6216 * ipa-struct-reorg.c: Likewise.
6217 * tree-nomudflap.c: Likewise.
6218 * tree-ssa-structalias.c: Likewise.
6219
6c5d4d1a
SB
62202009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6221
6222 * store-motion.c: Many cleanups to make this pass a first-class
6223 citizen instead of an appendix to gcse load motion. Add TODO list
6224 to make this pass faster/cleaner/better.
6225
6226 (struct ls_expr): Post gcse.c-split cleanups.
6227 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6228 "stores" field to "avail_stores".
6229 (pre_ldst_mems): Rename to store_motion_mems.
6230 (pre_ldst_table): Rename to store_motion_mems_table.
6231 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6232 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6233 (ldst_entry): Rename to st_expr_entry, update users.
6234 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6235 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6236 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6237 update caller.
6c5d4d1a
SB
6238 (first_ls_expr): Rename to first_st_expr, update users.
6239 (next_ls_expr): Rename to next_st_expr, update users.
6240 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6241 fields properly for store motion instead of names inherited from load
6242 motion in gcse.c.
6243 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6244 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6245 are done with it.
6246
6247 (ae_kill): Rename to st_kill, update users.
6248 (ae_gen): Rename to st_avloc, update users.
6249 (transp): Rename to st_transp, update users.
6250 (pre_insert_map): Rename to st_insert_map, update users.
6251 (pre_delete_map): Rename to st_delete_map, update users.
6252 (insert_store, build_store_vectors, free_store_memory,
6253 one_store_motion_pass): Update for abovementioned changes.
6254
6255 (gcse_subst_count, gcse_create_count): Remove.
6256 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6257 and "n_stores_created", local variables.
6258
6259 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6260 use for_each_rtx.
6261
6262 (regvec, compute_store_table_current_insn): Remove.
6263 (reg_set_info, reg_clear_last_set): Remove.
6264 (compute_store_table): Use DF caches instead of local dataflow
6265 solvers.
6266
b02cec6e
JM
62672009-05-01 Joseph Myers <joseph@codesourcery.com>
6268
6269 * c-objc-common.c (c_tree_printer): Print identifiers with
6270 pp_identifier, not pp_string. Mark "({anonymous})" for
6271 translation.
6272 * c-pretty-print.c (pp_c_ws_string): New.
6273 (pp_c_cv_qualifier, pp_c_type_specifier,
6274 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6275 pp_c_storage_class_specifier, pp_c_function_specifier,
6276 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6277 pp_c_primary_expression, pp_c_postfix_expression,
6278 pp_c_unary_expression, pp_c_shift_expression,
6279 pp_c_relational_expression, pp_c_equality_expression,
6280 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6281 use pp_string and pp_c_ws_string in place of pp_identifier and
6282 pp_c_identifier for non-identifiers. Mark English strings for
6283 translation.
6284 * c-pretty-print.h (pp_c_ws_string): Declare.
6285
cd533689
PP
62862009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6287 Roland McGrath <roland@redhat.com>
6288
aa016ff7 6289 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6290 (ENABLE_LD_BUILDID): New configuration option.
6291 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6292 (LINK_BUILDID_SPEC): New macro.
6293 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6294 link_spec.
6295 * doc/install.texi: Document --enable-linker-build-id option.
6296 * configure: Rebuild.
6297 * config.in: Rebuild.
6298
ba6adec4
AN
62992009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6300
6301 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6302 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6303 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6304 MIPS_GP_SAVE_AREA_SIZE.
6305 * config/mips/mips.c (struct mips_frame_info): Update comment
6306 before arg_pointer_offset and hard_frame_pointer_offset.
6307 (mips_compute_frame_info): Update diagram before function: to
6308 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6309 indicate the position of frame_pointer_rtx with -fstack-protector and
6310 to show args_size. Don't allocate cprestore area for leaf functions
6311 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6312 cprestore_size.
6313 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6314
48f5b722
MM
63152009-04-30 Michael Matz <matz@suse.de>
6316
ba6adec4
AN
6317 PR tree-optimization/39955
6318 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6319
b65d6744
DK
63202009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6321
6322 * ira.c (setup_cover_and_important_classes): Use safe macro
6323 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6324 directly.
6325 * genpreds.c (write_tm_preds_h): Output suitable definition of
6326 REG_CLASS_FOR_CONSTRAINT.
6327
f136c8ae
RAE
63282009-04-30 Rafael Avila de Espindola <espindola@google.com>
6329
6330 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6331 instead of an int.
6332 * bitmap.c (bitmap_descriptor): Likewise.
6333 * ggc-common.c (loc_descriptor): Likewise.
6334 * varray.c (varray_descriptor): Likewise.
6335 * vec.c (vec_descriptor): Likewise.
6336
43fcece8 63372009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6338
6339 * Makefile.in (dce.o): Add $(EXCEPT_H).
6340 * dce.c: Include except.h and delete redundant vector definitions.
6341 (deletable_insn_p): Return false for non-call insns that can throw
6342 if DF is running.
6343
df35c271
SB
63442009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6345
6346 * gcse.c (ae_gen): Remove.
6347 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6348 and make non-static function to make it available in store-motion.c.
6349 Update call sites with search-and-replace.
6350 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6351 extract_mentioned_regs, extract_mentioned_regs_helper,
6352 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6353 store_killed_in_insn, store_killed_after, store_killed_before,
6354 build_store_vectors, insert_insn_start_basic_block, insert-store,
6355 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6356 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6357 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6358 * store-motion.c: ...new file. Also copy data structures from gcse.c
6359 and clean up to remove parts not used by store motion.
6360 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6361 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6362
f711a87a
RR
63632009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6364
6365 PR target/38571
6366 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6367 when optimizing for size.
6368
fa5ed76e
HPN
63692009-04-30 Hans-Peter Nilsson <hp@axis.com>
6370
6371 * gcse.c (gcse_constant_p): Fix typo in last change.
6372
0acbbdb0
RAE
63732009-04-30 Rafael Avila de Espindola <espindola@google.com>
6374
6375 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6376
82f5c05d
AK
63772009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6378
6379 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6380
6d8f135b
JW
63812009-04-29 James E. Wilson <wilson@codesourcery.com>
6382
6383 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6384 CONST_HIGH_PART result.
6385
c21ca196
AS
63862009-04-29 Anatoly Sokolov <aesok@post.ru>
6387
6388 * config/avr/avr.c (initial_elimination_offset): Rename to
6389 avr_initial_elimination_offset.
6390 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6391 change return type to bool.
6392 (avr_can_eliminate): New function.
6393 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6394 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6395 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6396 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6397 avr_initial_elimination_offset.
6398 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6399 (avr_initial_elimination_offset): Define.
6400
2a34bece 64012009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6402 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6403
6404 PR rtl-optimization/39938
6405 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6406 * cfgrtl.c: Include insn-attr.h.
6407 (rest_of_pass_free_cfg): New function.
6408 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6409 * resource.c (init_resource_info): Remove call to df_analyze.
6410
5dc7911e
RG
64112009-04-29 Richard Guenther <rguenther@suse.de>
6412
6413 PR target/39943
6414 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6415 allow conversion to signed integers.
6416
1fe479fd
RG
64172009-04-29 Richard Guenther <rguenther@suse.de>
6418
6419 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6420 shifts of floating point vectors if the shift amount is
6421 a constant multiple of the element size.
6422
8e001680
AK
64232009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6424 Michael Matz <matz@suse.de>
6425
6426 PR middle-end/39927
6427 PR bootstrap/39929
6428 * tree-outof-ssa.c (emit_partition_copy): New function.
6429 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6430 insert_part_to_rtx_on_edge): Perform the partition base var
6431 copy using emit_partition_copy.
6432 (insert_value_copy_on_edge): Convert constants to the right mode.
6433 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6434 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6435
e50e3081
BS
64362009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6437
6438 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6439 scan backwards to try to find a constant to initialize it.
6440
4e5d521b
BS
6441 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6442 insn before the loop_end instruction, don't look past labels.
6443
7c90021d
RG
64442009-04-29 Richard Guenther <rguenther@suse.de>
6445
6446 PR middle-end/39937
6447 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6448 loose type conversions.
6449 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6450 stmts only if there are no uses of its definition.
6451
97a988bc
BS
64522009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6453
6454 * config/bfin/bfin.h (splitting_loops): Declare.
6455 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6456 Reorder bit definitions to be ascending.
6457 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6458 * config/bfin/bfin.c (splitting_loops): New variable.
6459 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6460 (struct loop_info): Remove members INIT and LOOP_INIT.
6461 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6462 the LSETUP sequence. Allow LC to be loaded from any register, but
6463 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6464 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6465 set to 1.
6466 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6467 of reload_completed.
aa016ff7 6468
97a988bc
BS
6469 From Jie Zhang:
6470 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6471
0c463e16
RAE
64722009-04-29 Rafael Avila de Espindola <espindola@google.com>
6473
6474 * Makefile.in (PLUGIN_VERSION_H): New.
6475 (OBJS-common): Remove plugin-version.o.
6476 (plugin.o): Depend on (PLUGIN_VERSION_H).
6477 (plugin-version.o): Remove.
6478 * configure: Regenerate
6479 * configure.ac: Create plugin-version.h.
6480 * gcc-plugin.h (plugin_gcc_version): Remove.
6481 (plugin_default_version_check): Change signature.
6482 * plugin-version.c: Remove.
6483 * plugin.c: Include plugin-version.h.
6484 (str_plugin_gcc_version_name): Remove.
6485 (try_init_one_plugin): Pass gcc version to plugin_init.
6486 (plugin_default_version_check): Both gcc and plugin versions are now
6487 arguments.
6488
307e7eab
BS
64892009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6490
6491 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6492 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6493 Remove special case testing for last insn of inner loops. Don't fail
6494 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6495
c5d96723
BS
6496 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6497 DREGS rather than comparing directly. Remove code that tries to
6498 account for latencies.
6499
de0b4ad5
RG
65002009-04-29 Richard Guenther <rguenther@suse.de>
6501
6502 PR tree-optimization/39941
6503 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6504 eliminating an indirect call.
6505
3a19701a
RG
65062009-04-29 Richard Guenther <rguenther@suse.de>
6507
6508 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6509 parameter. Allow invariants as base if !require_lvalue.
6510 (verify_gimple_assign_single): Adjust.
6511
a0a31d1e
BS
65122009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6513
6514 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6515 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6516 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6517 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6518 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6519 a VEC_SELECT.
aa016ff7
UB
6520 * config/bfin/bfin.c (bfin_expand_builtin,
6521 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6522
795bd26a
RG
65232009-04-28 Richard Guenther <rguenther@suse.de>
6524
6525 * tree-vect-loop.c (get_initial_def_for_induction): Use
6526 correct types for pointer increment.
6527
04be270f
KG
65282009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6529
6530 * toplev.c (print_version): Update GMP version string calculation.
6531
e1a3b85c
EB
65322009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6533
6534 PR rtl-optimization/39938
6535 * resource.c (init_resource_info): Add call to df_analyze.
6536
8224166e
UB
65372009-04-28 Uros Bizjak <ubizjak@gmail.com>
6538
6539 * config/alpha/alpha.md (usegp): Cast the result of
6540 alpha_find_lo_sum_using_gp to enum attr_usegp.
6541 * config/alpha/alpha.c (override_options): Remove end-of-structure
6542 marker element from cpu_table. Use array size of cpu_table to handle
6543 -mcpu and -mtune options.
6544 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6545
c5f0fe67
JM
65462009-04-28 Joseph Myers <joseph@codesourcery.com>
6547
6548 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6549 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6550 tune_32 and tune_64.
6551 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6552 support on PowerPC.
6553 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6554 * config/rs6000/option-defaults.h: ... here. New file.
6555 (OPT_64, OPT_32): Define.
6556 (MASK_64BIT): Define to 0 if not already defined.
6557 (OPT_ARCH64, OPT_ARCH32): Define.
6558 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6559 and tune_64.
6560
0c48a567
RR
65612009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6562
6563 * config/arm/arm.c (arm_override_options): Emit error on using
6564 fpa with AAPCS.
6565
f1028b9d
UB
65662009-04-28 Uros Bizjak <ubizjak@gmail.com>
6567
6568 PR rtl-optimization/39914
6569 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6570 registers for allocnos created from user-defined variables only
6571 when not optimizing.
6572
e0dd989a
RG
65732009-04-28 Richard Guenther <rguenther@suse.de>
6574
6575 PR middle-end/39937
6576 * fold-const.c (fold_binary): Use distribute_real_division only
6577 on float types.
6578
9a17c91d
SE
65792009-04-28 Steve Ellcey <sje@cup.hp.com>
6580
6581 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6582 add hpux-stdint.h to tm_file.
6583 (hppa[12]*-*-hpux11*): Ditto.
6584 (ia64*-*-hpux*): Ditto.
6585 * config/hpux-stdint.h: New.
60839f5d 6586 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6587 __STDC_EXT__ for all compiles.
60839f5d
EB
6588 * config/pa/pa-hpux.h: Ditto.
6589 * config/pa/pa-hpux10.h: Ditto.
6590 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6591
af04e659
CM
65922009-04-28 Catherine Moore <clm@codesourcery.com>
6593
6594 * debug.h (set_name): Add comment.
6595
04ef80ce
AP
65962009-04-28 Andrew Pinski <pinskia@gmail.com>
6597
6598 PR target/39929
6599 * config/darwin.c (machopic_gen_offset): Check
6600 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6601 * config/arm/arm.c (require_pic_register): Likewise.
6602
65ad77af
PB
66032009-04-28 Paolo Bonzini <bonzini@gnu.org>
6604
8224166e
UB
6605 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6606 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6607 m32c_promote_prototypes): Delete.
65ad77af 6608
1b15a008
MM
66092009-04-28 Michael Matz <matz@suse.de>
6610
6611 PR middle-end/39922
6612 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6613 constants.
6614
7569a6cc
RG
66152009-04-28 Richard Guenther <rguenther@suse.de>
6616
f1028b9d 6617 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6618
ead204d9
RR
66192009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6620
6621 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6622 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6623 * config/arm/arm-tune.md: Regenerate.
6624
f2c45f08 66252009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6626
f2c45f08
AM
6627 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6628 block if there are complex incoming edges.
6629 (sel_merge_blocks): Remove useless assert.
6630 (sel_redirect_edge_and_branch): Check that edge was redirected.
6631 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6632 (sel_find_rgns): Delete declaration.
6633 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6634 the region when it is not a preheader.
6635
7a00d767
UB
66362009-04-28 Uros Bizjak <ubizjak@gmail.com>
6637
6638 PR c/39323
6639 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6640
448ee662
RG
66412009-04-28 Richard Guenther <rguenther@suse.de>
6642
6643 * tree.h (SSA_NAME_VALUE): Remove.
6644 (struct tree_ssa_name): Remove value_handle member.
6645 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6646 array for jump threading.
6647 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6648 SSA_NAME_VALUEs.
6649 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6650 * tree-flow.h (threadedge_initialize_values): Declare.
6651 (threadedge_finalize_values): Likewise.
6652 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6653 (SSA_NAME_VALUE): Define.
6654 (threadedge_initialize_values): New function.
6655 (threadedge_finalize_values): Likewise.
6656 * tree-ssa-dom.c (ssa_name_values): New global variable.
6657 (SSA_NAME_VALUE): Define.
f1028b9d 6658 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6659
8644a673
IR
66602009-04-28 Ira Rosen <irar@il.ibm.com>
6661
6662 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6663 Use REPORT_VECTORIZED_LOCATIONS instead
6664 REPORT_VECTORIZED_LOOPS.
6665 * tree-vectorizer.c (vect_verbosity_level): Make static.
6666 (vect_loop_location): Rename to vect_location.
6667 (vect_set_verbosity_level): Update comment.
6668 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6669 and vect_location.
6670 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6671 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6672 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6673 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6674 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6675 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6676 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6677 REPORT_UNVECTORIZED_LOCATIONS.
6678 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6679 and vect_used_in_loop and to vect_unused_in_scope and
6680 vect_used_in_scope.
6681 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6682 (vect_verbosity_level): Remove declaration.
6683 (vect_analyze_operations): Likewise.
6684 (vect_analyze_stmt): Declare.
6685 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6686 REPORT_UNVECTORIZED_LOCATIONS.
6687 (vect_get_loop_niters): Fix indentation.
6688 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6689 (vect_analyze_loop_operations): New function.
6690 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6691 vect_analyze_operations.
6692 (vect_is_simple_reduction): Use new names.
6693 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6694 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6695 to specify whether the data references can be a part of interleaving
6696 chain.
8644a673
IR
6697 (vect_analyze_data_ref_dependence): Use new names.
6698 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6699 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6700 * tree-vect-patterns.c (widened_name_p): Use new names.
6701 (vect_recog_dot_prod_pattern): Likewise.
6702 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6703 (process_use, vect_mark_stmts_to_be_vectorized,
6704 vect_model_simple_cost, vect_model_store_cost,
6705 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6706 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6707 vectorizable_operation, vectorizable_type_demotion,
6708 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6709 vectorizable_condition): Likewise.
6710 (vect_analyze_operations): Split into vect_analyze_loop_operations
6711 and ...
6712 (vect_analyze_stmt): ... new function.
6713 (new_stmt_vec_info): Use new names.
6714 (vect_is_simple_use): Use new names and fix comment.
6715 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6716 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6717
b91322f2
UB
67182009-04-28 Uros Bizjak <ubizjak@gmail.com>
6719
6720 PR target/39911
6721 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6722 and integer modes for x87 operands. Do not ICE for unsupported size,
6723 generate error instead. Generate error for unsupported operand types.
6724 ['z']: Do not handle HImode memory operands specially. Warning
6725 for floating-point operands. Fallthru to 'Z' for unsupported operand
6726 types. Do not ICE for unsupported size, generate error instead.
6727 (output_387_binary_op): Use %Z to output operands.
6728 (output_fp_compare): Ditto.
6729 (output_387_reg_move): Ditto.
6730
b2ed71b6
BE
67312009-04-28 Ben Elliston <bje@au.ibm.com>
6732
6733 PR c++/35652
6734 Revert:
6735
6736 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6737
6738 * builtins.c (c_strlen): Do not warn here.
6739 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6740 * c-common.c (pointer_int_sum): Take an explicit location.
6741 Warn about offsets out of bounds.
6742 * c-common.h (pointer_int_sum): Adjust declaration.
6743
81f40b79
ILT
67442009-04-27 Ian Lance Taylor <iant@google.com>
6745
6746 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6747 names to symkind.
6748 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6749 * df-core.c (df_set_flags): Change return type to int. Change
6750 type of old_flags to int.
6751 (df_clear_flags): Likewise.
6752 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6753 (df_get_conditional_uses): Likewise.
6754 * df.h (df_set_flags, df_clear_flags): Update declarations.
6755 * dwarf2out.c (struct indirect_string_node): Change type of form
6756 field to enum dwarf_form.
6757 (AT_string_form): Change return type to enum dwarf_form.
6758 * fixed-value.c (fixed_compare): Add cast to enum type.
6759 * fwprop.c (update_df): Change 0 to VOIDmode.
6760 * gensupport.c: Change 0 to UNKNOWN.
6761 * gimple.h (gimple_cond_code): Add cast to enum type.
6762 * haifa-sched.c (reemit_notes): Add cast to enum type.
6763 * hooks.c (hook_int_void_no_regs): Remove function.
6764 * hooks.h (hook_int_void_no_regs): Remove declaration.
6765 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6766 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6767 * real.c (real_arithmetic): Add cast to enum type.
6768 (real_compare): Likewise.
6769 * target.h (struct gcc_target): Change return type of
6770 branch_target_register_class to enum reg_class.
6771 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6772 default_branch_target_register_class.
7a00d767 6773 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6774 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6775 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6776 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6777 cast to int.
6778 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6779 ERROR_MARK.
6780 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6781 vect_uninitialized_def. Change 0 to ERROR_MARK.
6782 * tree-vect-stmts.c (supportable_widening_operation): Don't
6783 initialize icode1 and icode2.
7a00d767 6784 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6785 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6786 and to STD_C89.
6787 (cmn_err_flag_specs): Change 0 to STD_C89.
6788 (cmn_err_char_table): Likewise.
6789 * config/arm/arm.c (get_arm_condition_code): Change type of code
6790 to enum arm_cond_code.
6791 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6792 (IWMMXT_BUILTIN2): Likewise.
6793 (neon_builtin_type_bits): Don't define typedef.
6794 (neon_builtin_datum): Change type of bits field to int.
6795 (arm_expand_neon_args): Add cast to enum type.
6796 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6797 TLS_MODEL_NONE.
6798 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6799 casts to enum type.
6800 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6801 MIPS_FP_COND_f.
6802 * config/mips/mips.md (jal_macro): Return enum constant.
6803 (single_insn): Likewise.
6804 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6805 CODE_FOR_nothing.
6806 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6807 casts to enum type.
6808 * config/s390/s390.c (s390_tune_flags): Change type to int.
6809 (s390_arch_flags): Likewise.
7a00d767 6810 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6811 * config/s390/s390.h (s390_tune_flags): Update declaration.
6812 (s390_arch_flags): Likewise.
6813 * config/sh/sh.c (prepare_move_operands): Compare
6814 tls_symbolic_operand result with enum constant.
6815 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6816 (sh_expand_prologue): Add cast to enum type.
6817 (sh_expand_epilogue): Likewise.
6818 (tls_symbolic_operand): Change return type to enum tls_model.
6819 (fpscr_set_from_mem): Add cast to enum type.
6820 (legitimize_pic_address): Compare tls_symbolic_operand result with
6821 enum constant.
6822 (sh_target_reg_class): Change return type to enum reg_class.
6823 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6824 PROCESSOR_xxx.
7a00d767
UB
6825 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6826 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6827 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6828 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6829 (delayed_branch, tls_call_delay): Likewise.
6830 (eligible_for_sibcall_delay): Likewise.
6831 (eligible_for_return_delay): Likewise.
6832 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6833 (spu_expand_builtin_1): Likewise.
6834
6835 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6836 for all types of conversions.
6837 (output_init_element): Issue -Wc++-compat warning if needed when
6838 initializing a bitfield with enum type.
6839 * c-parser.c (c_parser_expression): Set original_type to
6840 original_type of right hand operand of comman operator.
6841
e4ae5e77
RW
68422009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6843
6844 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6845 grammar nits.
7a00d767 6846 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6847 * doc/cpp.texi (Standard Predefined Macros)
6848 (Implementation-defined behavior): Likewise.
7a00d767 6849 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6850 * doc/gimple.texi (GIMPLE Exception Handling)
6851 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6852 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6853 * doc/invoke.texi (Warning Options, Optimize Options)
6854 (AVR Options, Darwin Options): Likewise.
6855 (Optimize Options): Reformulate -fwhole-program description.
6856 * doc/loop.texi (Lambda): Likewise.
6857 * doc/md.texi (Output Template, Define Constraints)
6858 (Standard Names, Insn Splitting): Likewise.
6859 * doc/options.texi (Option properties): Likewise.
6860 * doc/passes.texi (Tree-SSA passes): Likewise.
6861 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6862 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6863 (File Names and DBX): Likewise.
6864 * doc/trouble.texi (Incompatibilities): Likewise.
6865
1883802f 68662009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6867
6868 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6869 instruction is correct.
6870
1883802f 68712009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6872
6873 Allow non-constant arguments to conversion intrinsics.
6874 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6875 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6876 * spu.c (print_operand): Handle 'v' and 'w'.
6877 (exp2_immediate_p, spu_gen_exp2): Define.
6878 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6879 spu_convtf_1): Update parameter descriptions.
7a00d767 6880 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6881 * constraints.md ('v', 'w'): New.
6882 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6883 Remove.
6884 (i2f, I2F): New define_mode_attr.
6885 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6886 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6887 fixuns_truncv4sfv4si2): Update to use mode attribute.
6888 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6889 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6890 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6891 patterns for combine.
6892
5f39ad47
SB
68932009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6894
6895 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6896 (cprop, hoist, pre, store_motion): New debug counters.
6897 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6898 is not an RTL pass anymore.
6899 (pass_profiling): Remove extern decl for pass removed in 2005.
6900 (pass_gcse, pass_jump_bypass): Remove.
6901 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6902 to 0 for clean state.
6903 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6904 * cse.c (gate_handle_cse_after_global_opts,
6905 rest_of_handle_cse_after_global_opts): New functions.
6906 (pass_cse_after_global_opts): New pass, does local CSE.
6907 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6908 (TV_CPROP): New timevar.
6909 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6910 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6911 (gcse_main, recompute_all_luids): Remove.
6912 (compute_hash_table_work): Call max_reg_num instead of reading
6913 max_gcse_regno.
6914 (cprop_jump): Don't set run_jump_opt_after_gcse.
6915 (constprop_register): Always allow to alter jumps.
6916 (cprop_insn): Likewise.
6917 (do_local_cprop): Likewise.
6918 (local_cprop_pass): Likewise. Return non-zero if something changed.
6919 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6920 (find_implicit_sets): Add note about missed optimization opportunity.
6921 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6922 pass_rtl_cprop execute function.
6923 Don't bother tracking the pass number, each pass gets its own dumpfile
6924 now anyway.
6925 Always allow to alter jumpsand bypass jumps.
6926 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6927 will just find no suitable set.
6928 (pre_edge_insert): Fix dumping, this function is for PRE only.
6929 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6930 pass_rtl_pre execute function.
6931 (hoist_code): Return non-zero if something changed. Keep track of
6932 substitutions and insertions for statistics gathering similar to PRE.
6933 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6934 called from the pass_rtl_hoist execute function. Show pass statistics.
6935 (compute_store_table): Use max_reg_num directly instead of using the
6936 formerly global max_gcse_regno.
6937 (build_store_vectors): Likewise.
6938 (replace_store_insn): Fix dumping.
6939 (store_motion): Rename to ...
6940 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6941 pass, called from the pass_rtl_store_motion execute function. Keep
6942 track of substitutions and insertions for statistics gathering similar
6943 to PRE.
6944 (bypass_jumps): Remove, fold interesting bits into ...
6945 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6946 from the pass_rtl_cprop execute function.
6947 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6948 pass_jump_bypass): Remove.
6949 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6950 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6951 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6952 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6953 (gate_rtl_store_motion, execute_rtl_store_motion,
6954 pass_rtl_store_motion): New.
6955 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6956 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6957 * passes.c (init_optimization_passes): Remove pass_gcse and
6958 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6959 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6960 instead of pass_jump_bypass.
6961
c685de4a
RG
69622009-04-27 Richard Guenther <rguenther@suse.de>
6963
6964 PR middle-end/39928
6965 * gimplify.c (gimplify_expr): If we are required to create
6966 a temporary make sure it ends up as register.
6967
72d41f29
L
69682009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6969
6970 PR target/39903
6971 * config/i386/i386.c (construct_container): Don't call
6972 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6973 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6974
e97809c6
MM
69752009-04-27 Michael Matz <matz@suse.de>
6976
6977 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6978 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6979 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6980 (dump_replaceable_exprs): Take a bitmap.
6981 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6982 array.
6983 (expand_gimple_basic_block): Likewise.
6984 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6985 replaceable_expressions member a bitmap.
6986 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6987 (mark_replaceable): Likewise.
6988 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6989 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6990
211ca15c
RG
69912009-04-27 Richard Guenther <rguenther@suse.de>
6992
6993 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6994 (verify_stmts): Dispatch to gimple/type verification code.
6995 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6996 issue with call argument types.
6997
fca5f3d1
MM
69982009-04-27 Michael Matz <matz@suse.de>
6999
7000 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7001 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7002 to above.
7003
a1fa3e79 70042009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 7005 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
7006
7007 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7008 a label's basic block.
7009 (mark_target_live_regs): Tidy and rework obsolete comments.
7010 Change back DF problem to LIVE. If a label starts a basic block,
7011 assume that all registers that used to be live then still are.
7012 (init_resource_info): If a label starts a basic block, set its
7013 BLOCK_FOR_INSN accordingly.
7014 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7015
33b223c0
RG
70162009-04-27 Richard Guenther <rguenther@suse.de>
7017
7018 * tree-flow-inline.h (function_ann): Remove.
7019 (get_function_ann): Likewise.
7020 * tree-dfa.c (create_function_ann): Remove.
7021 * tree-flow.h (struct static_var_ann_d): Remove.
7022 (struct function_ann_d): Likewise.
7023 (union tree_ann_d): Remove fdecl member.
7024 (function_ann_t): Remove.
7025 (function_ann, get_function_ann, create_function_ann): Remove
7026 declarations.
7027
e3136fa2
UB
70282009-04-27 Uros Bizjak <ubizjak@gmail.com>
7029
7030 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7031
f87c9042
JH
70322009-04-27 Jan Hubicka <jh@suse.cz>
7033
7034 * ipa-pure-const.c (struct funct_state_d): New fields
7035 state_previously_known, looping_previously_known; remove
7036 state_set_in_source.
7037 (analyze_function): Use new fields.
7038 (propagate): Avoid assumption that state_set_in_source imply
7039 nonlooping.
7040
7041 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7042 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7043 * cfgloop.h (finite_loop_p): Declare.
7044
33abd718
MM
70452009-04-26 Michael Matz <matz@suse.de>
7046
e3136fa2 7047 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7048
ddc34084
MM
70492009-04-26 Michael Matz <matz@suse.de>
7050
7051 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7052 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7053 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7054 pass_mark_used_blocks): Remove.
7055 * tree-optimize.c (pass_free_datastructures,
7056 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7057 * passes.c (init_optimization_passes): Don't call
7058 pass_mark_used_blocks, remove dead code.
7059
1fec7ed4
L
70602009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7061
7062 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7063 * tree-ssa-live.h (register_ssa_partition): Likewise.
7064
4e3825db
MM
70652009-04-26 Michael Matz <matz@suse.de>
7066
7067 Expand from SSA.
7068 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7069 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7070 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7071 SSA names.
7072 (compare_pairs): Swap cost comparison.
7073 (coalesce_ssa_name): Don't use change_partition_var.
7074 * tree-nrv.c (struct nrv_data): Add modified member.
7075 (finalize_nrv_r): Set it.
7076 (tree_nrv): Use it to update statements.
7077 (pass_nrv): Require PROP_ssa.
7078 * tree-mudflap.c (mf_decl_cache_locals,
7079 mf_build_check_statement_for): Use make_rename_temp.
7080 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7081 * alias.c (find_base_decl): Handle SSA names.
7082 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7083 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7084 * rtl.h (set_reg_attrs_for_parm): Declare.
7085 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7086 to "optimized", remove unused locals at finish.
7087 (execute_free_datastructures): Make global, call
7088 delete_tree_cfg_annotations.
7089 (execute_free_cfg_annotations): Don't call
7090 delete_tree_cfg_annotations.
7091
7092 * ssaexpand.h: New file.
7093 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7094 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7095 (expand_expr_real_1): Expand SSA names.
7096 * cfgexpand.c (toplevel): Include ssaexpand.h.
7097 (SA): New global variable.
7098 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7099 (SSAVAR): New macro.
7100 (set_rtl): New helper function.
7101 (add_stack_var): Deal with SSA names, use set_rtl.
7102 (expand_one_stack_var_at): Likewise.
7103 (expand_one_stack_var): Deal with SSA names.
7104 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7105 before unique numbers.
7106 (expand_stack_vars): Use set_rtl.
7107 (expand_one_var): Accept SSA names, add asserts for them, feed them
7108 to above subroutines.
7109 (expand_used_vars): Expand all partitions (without default defs),
7110 then only the local decls (ignoring those expanded already).
7111 (expand_gimple_cond): Remove edges when jumpif() expands an
7112 unconditional jump.
7113 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7114 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7115 SSA name.
7116 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7117 members of SA; deal with PARM_DECL partitions here; expand
7118 all PHI nodes, free tree datastructures and SA. Commit instructions
7119 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7120 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7121 info and statements at start, collect garbage at finish.
7122 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7123 (VAR_ANN_PARTITION) Remove.
7124 (change_partition_var): Don't declare.
7125 (partition_to_var): Always return SSA names.
7126 (var_to_partition): Only accept SSA names.
7127 (register_ssa_partition): Only check argument.
7128 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7129 member.
7130 (delete_var_map): Don't free it.
7131 (var_union): Only accept SSA names, simplify.
7132 (partition_view_init): Mark only useful SSA names as used.
7133 (partition_view_fini): Only deal with SSA names.
7134 (change_partition_var): Remove.
7135 (dump_var_map): Use ssa_name instead of partition_to_var member.
7136 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7137 basic blocks.
7138 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7139 (struct _elim_graph): New member const_dests; nodes member vector of
7140 ints.
7141 (set_location_for_edge): New static helper.
7142 (create_temp): Remove.
7143 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7144 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7145 (new_elim_graph): Allocate const_dests member.
7146 (clean_elim_graph): Truncate const_dests member.
7147 (delete_elim_graph): Free const_dests member.
7148 (elim_graph_size): Adapt to new type of nodes member.
7149 (elim_graph_add_node): Likewise.
7150 (eliminate_name): Likewise.
7151 (eliminate_build): Don't take basic block argument, deal only with
7152 partition numbers, not variables.
7153 (get_temp_reg): New static helper.
7154 (elim_create): Use it, deal with RTL temporaries instead of trees.
7155 (eliminate_phi): Adjust all calls to new signature.
7156 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7157 (rewrite_trees): Only do checking.
7158 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7159 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7160 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7161 contains_tree_r, MAX_STMTS_IN_LATCH,
7162 process_single_block_loop_latch, analyze_edges_for_bb,
7163 perform_edge_inserts): Remove.
7164 (expand_phi_nodes): New global function.
7165 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7166 functions, initialize new parameter, remember partitions having a
7167 default def.
7168 (finish_out_of_ssa): New global function.
7169 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7170 don't reset in_ssa_p here, don't disable TER when mudflap.
7171 (pass_del_ssa): Remove.
7172 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7173 partition members.
7174 (execute_free_datastructures): Declare.
7175 * Makefile.in (SSAEXPAND_H): New variable.
7176 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7177 * basic-block.h (commit_one_edge_insertion): Declare.
7178 * passes.c (init_optimization_passes): Move pass_nrv and
7179 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7180 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7181 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7182 (redirect_branch_edge): Deal with super block when expanding, split
7183 out jump patching itself into ...
7184 (patch_jump_insn): ... here, new static helper.
7185
17c665a9
MM
71862009-04-26 Michael Matz <matz@suse.de>
7187
7188 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7189 beyond num_ssa_names.
7190 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7191 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7192
92061771
JJ
71932009-04-26 Jakub Jelinek <jakub@redhat.com>
7194
ce372372
JJ
7195 PR inline-asm/39543
7196 * fwprop.c (forward_propagate_asm): New function.
7197 (forward_propagate_and_simplify): Propagate also into __asm, if it
7198 doesn't increase the number of referenced registers.
7199
92061771
JJ
7200 PR c/39889
7201 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7202
72032009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7204
7205 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7206 note_nonlocal_vla_type for nonlocal VLAs.
7207 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7208 contains_remapped_vars, remap_vla_decls): New functions.
7209 (convert_nonlocal_reference_stmt): If not optimizing, call
7210 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7211 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7212 if it wasn't found in var_map.
7213 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7214 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7215 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7216 declare_vars.
7217 * gimplify.c (nonlocal_vlas): New variable.
7218 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7219 referenced VLAs.
7220 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7221
4561e242
JJ
7222 * dwarf2out.c (loc_descr_plus_const): New function.
7223 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7224 mem_loc_descriptor, loc_descriptor_from_tree_1,
7225 descr_info_loc, gen_variable_die): Use it.
7226
a9548ddf
JJ
7227 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7228 !TREE_STATIC VAR_DECLs.
7229 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7230 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7231 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7232 DECL_BY_REFERENCE is valid.
7233 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7234 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7235 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7236 Copy DECL_BY_REFERENCE.
7237 (struct nesting_copy_body_data): New type.
7238 (nesting_copy_decl): New function.
7239 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7240 if they have variable length.
7241
10555d08
MM
72422009-04-26 Michael Matz <matz@suse.de>
7243
7244 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7245 mark new temporaries for renaming.
7246
e11187cc
JM
72472009-04-26 Joseph Myers <joseph@codesourcery.com>
7248
7249 PR c/39581
7250 * c-decl.c (global_bindings_p): Return negative value.
7251 (c_variable_size): New. Based on variable_size from
7252 stor-layout.c.
7253 (grokdeclarator): Call c_variable_size not variable_size.
7254
f6a51d31
UB
72552009-04-26 Uros Bizjak <ubizjak@gmail.com>
7256
7257 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7258
4b97723d
KT
72592009-04-26 Kai Tietz <kai.tietz@onevision.com>
7260
7261 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7262 Redefine it to just use mingw/include.
7263 (ASM_SPEC): Rules for -m32 and -m64.
7264 (LINK_SPEC): Use Likewise.
7265 (SPEC_32): New define.
7266 (SPEC_64): Likewise.
7267 (SUB_LINK_SPEC): Likewise.
7268 (MULTILIB_DEFAULTS): New define.
7269 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7270 Add multilib options.
7271 (MULTILIB_DIRNAMES): Likewise.
7272 (MULTILIB_OSDIRNAMES): Likewise.
7273 (LIBGCC): Likewise.
7274 (INSTALL_LIBGCC): Likewise.
7275
991d6621
JM
72762009-04-26 Joseph Myers <joseph@codesourcery.com>
7277
7278 PR c/39556
7279 * c-tree.h (enum c_inline_static_type): New.
7280 (record_inline_static): Declare.
7281 * c-decl.c (struct c_inline_static, c_inline_statics,
7282 record_inline_static, check_inline_statics): New.
7283 (pop_file_scope): Call check_inline_statics.
7284 (start_decl): Call record_inline_static instead of pedwarning
7285 directly for static in inline function.
7286 * c-typeck.c (build_external_ref): Call record_inline_static
7287 instead of pedwarning directly for static referenced in inline
7288 function.
7289
4a81774c
SB
72902009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7291
7292 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7293 not new but only being rescanned.
7294 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7295 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7296 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7297 record_set_info, compute_set, grealloc): Remove.
7298 (recompute_all_luids): New function.
7299 (gcse_main): Don't compute sets, and don't do related memory
7300 allocations/free-ing. If something changed before the end of the
7301 pass, update LUIDs using recompute_all_luids.
7302 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7303 (free_gcse_mem): Don't free it either.
7304 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7305 Use the df insn LUIDs.
7306 (load_killed_in_block): Likewise.
7307 (compute_hash_table_work): Don't compute reg_set_in_block.
7308 (compute_transp): Use DF_REG_DEF_CHAINs.
7309 (local_cprop_pass): Don't use compute_sets and related functions.
7310 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7311 Use get_max_uid() instead of max_cuid.
7312 (insert_insn_end_basic_block, pre_insert_copy_insn,
7313 update_ld_motion_stores): Don't try to
7314 keep reg_set tables up to date.
7315 (pre_insert_copies): Use df insn LUIDs.
7316 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7317 (reg_set_info): Don't use extra bitmap argument.
7318 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7319 information to compute regs_set_in_block.
7320 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7321 (bypass_jumps): Don't use compute_sets and friends.
7322
e8f99a9d
RW
73232009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7324
7325 PR testsuite/39710
7326 * opts.c (undocumented_msg): Do not leave blank even with
7327 ENABLE_CHECKING.
7328
6895bac8
JM
73292009-04-25 Joseph Myers <joseph@codesourcery.com>
7330
7331 * c-decl.c (build_enumerator): Allow values folding to integer
7332 constants but not integer constant expressions with a pedwarn if
7333 pedantic.
7334
24070fcb
JM
73352009-04-25 Joseph Myers <joseph@codesourcery.com>
7336
7337 PR c/39582
7338 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7339 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7340 type is an integer constant.
7341
d6d89aa1
UB
73422009-04-25 Uros Bizjak <ubizjak@gmail.com>
7343
7344 PR target/39897
7345 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7346 HImode operands.
7347
92f6fd0b
JM
73482009-04-25 Joseph Myers <joseph@codesourcery.com>
7349
7350 PR c/39564
7351 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7352 with variably modified return type and no storage class
7353 specifiers, except for the case of nested functions. Distinguish
7354 extern declarations of functions with variably modified return
7355 types from those of objects with variably modified types.
7356
a3710436
JH
73572009-04-25 Jan Hubicka <jh@suse.cz>
7358
7359 * tree.c (list_equal_p): New function.
7360 * tree.h (list_equal_p): Declare.
7361 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7362 basic_block_def, basic_block, const_basic_block): New.
7363 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7364 (redirect_eh_edge): New function.
7365 (make_eh_edge_update_phi): EH edges are not abnormal.
7366 * except.c: Include tree-flow.h.
7367 (list_match): New function.
7368 (eh_region_replaceable_by_p): New function.
7369 (replace_region): New function.
7370 (hash_type_list): New function.
7371 (hash_eh_region): New function.
7372 (eh_regions_equal_p): New function.
7373 (merge_peers): New function.
7374 (remove_unreachable_regions): Verify EH tree when checking;
7375 merge peers.
7376 (copy_eh_region_1): New function.
7377 (copy_eh_region): New function.
7378 (push_reachable_handler): New function.
7379 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7380 regions without label but with live RESX.
7381 * except.h (redirect_eh_edge_to_label): New.
7382 * tree-flow.h (redirect_eh_edge): New.
7383 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7384 basic_block_def, basic_block, const_basic_block): Remove.
7385 * Makefile.in (except.o): Add dependency on tree-flow.h
7386 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7387 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7388 Remove.
7389
3764d512
EB
73902009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7391
7392 PR bootstrap/39645
7393 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7394 on the destination of memcpy.
7395
1c62e8f2
PB
73962009-04-25 Paolo Bonzini <bonzini@gnu.org>
7397
7398 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7399 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7400 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7401
496a4ef5
JH
74022009-04-25 Jan Hubicka <jh@suse.cz>
7403
7404 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7405 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7406 to be reached by different label than left.
7407 (update_eh_edges): Update comment; remove edge_to_remove if possible
7408 and return true if suceeded.
7409 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7410 (cleanup_eh): Compute sharing map.
7411 * except.c (remove_eh_handler_and_replace): Add argument if we should
7412 update regions.
7413 (remove_unreachable_regions): Update for label sharing.
7414 (label_to_region_map): Likewise.
7415 (get_next_region_sharing_label): New function.
7416 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7417 prev_try pointers.
7418 (remove_eh_handler): Update.
7419 (remove_eh_region_and_replace_by_outer_of): New function.
7420 * except.h (struct eh_region): Add next_region_sharing_label.
7421 (remove_eh_region_and_replace_by_outer_of,
7422 get_next_region_sharing_label): Declare.
7423 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7424
74252009-04-25 Jan Hubicka <jh@suse.cz>
7426
7427 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7428 insert code even if they are not critical.
7429
74302009-04-25 Jan Hubicka <jh@suse.cz>
7431
7432 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7433 (gimple_can_remove_branch_p): EH edges won't remove branch by
7434 redirection.
7435 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7436 updating of non-abnormal EH edges.
7437 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7438 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7439 (split_critical_edges): Split also edges where emitting code on them
7440 will lead to splitting later.
7441
a3a5e3d1
UB
74422009-04-25 Uros Bizjak <ubizjak@gmail.com>
7443 H.J. Lu <hongjiu.lu@intel.com>
7444
7445 PR target/39590
7446 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7447 the configured assembler supports fildq and fistpq mnemonics.
7448 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7449 * configure: Regenerated.
7450 * config.in: Ditto.
7451
7452 * config/i386/i386.c (print_operand): Handle 'Z'.
7453 ['z']: Remove handling of special fild/fist suffixes.
7454 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7455 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7456 suffix of fild insn.
7457 (*floatsi<mode>2_vector_mixed): Ditto.
7458 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7459 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7460 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7461 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7462 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7463
23750d7f
BE
74642009-04-25 Ben Elliston <bje@au.ibm.com>
7465
7466 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7467 the source of a set operation.
7468
e6ff3083
AS
74692009-04-25 Anatoly Sokolov <aesok@post.ru>
7470
7471 * target.h (struct gcc_target): Add case_values_threshold field.
7472 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7473 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7474 * targhooks.c (default_case_values_threshold): New function.
7475 * targhooks.h (default_case_values_threshold): Declare function.
7476 * stmt.c (expand_case): Use case_values_threshold target hook.
7477 * expr.h (case_values_threshold): Remove declartation.
7478 * expr.c (case_values_threshold): Remove function.
7479 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7480
7481 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7482 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7483 (avr_case_values_threshold): Declare as static.
7484 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7485
7486 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7487 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7488 (mn10300_case_values_threshold): New function.
7489
569c72fc
L
74902009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7491
7492 * ira.c (setup_cover_and_important_classes): Add enum cast.
7493
ff3cb468
VM
74942009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7495
7496 * genpreds.c (write_enum_constraint_num): Output definition of
7497 CONSTRAINT_NUM_DEFINED_P macro.
7498 * ira.c (setup_cover_and_important_classes): Use
7499 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7500
4f7be849
DD
75012009-04-24 DJ Delorie <dj@redhat.com>
7502
7503 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7504 __SH2A_SINGLE_ONLY__ also.
7505
735b94a7
SE
75062009-04-24 Steve Ellcey <sje@cup.hp.com>
7507
7508 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7509 (movdf_internal): Ditto.
7510 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7511 SFmode and DFmode constants.
7512 (ia64_print_operand): Add 'G' format for printing
7513 floating point constants.
7514
77a30264
RG
75152009-04-24 Richard Guenther <rguenther@suse.de>
7516
7517 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7518 from unsigned additions.
7519
2b6da65c
JM
75202009-04-24 Joseph Myers <joseph@codesourcery.com>
7521
7522 * c-typeck.c (set_init_index): Allow array designators that are
7523 not integer constant expressions with a pedwarn if pedantic.
7524
f5a17c43
BS
75252009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7526
7527 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7528 zero if no overlap in nonzero bits between the operands.
7529
32e8bb8e
ILT
75302009-04-24 Ian Lance Taylor <iant@google.com>
7531
7532 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7533 (record_dead_and_set_regs): Likewise.
7534 * df.h (struct df_mw_hardreg): Change flags field to int.
7535 (struct df_base_ref): Likewise.
7536 (struct df): Change changeable_flags field to int.
7537 * df-scan.c (df_defs_record): Change clobber_flags to int.
7538 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7539 constants rather than #define macros.
7540 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7541 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7542 (enum dwarf_calling_convention): Likewise.
7543 (enum dwarf_line_number_x_ops): Likewise.
7544 (enum dwarf_call_frame_info): Likewise.
7545 (enum dwarf_source_language): Likewise.
7546 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7547 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7548 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7549 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7550 * genrecog.c (maybe_both_true_2): Change c to int.
7551 (write_switch): Likewise. Add cast to enum type.
7552 * gimplify.c (gimplify_omp_for): Handle return values from
7553 gimplify_expr using MIN rather than bitwise or.
7554 (gimplify_expr): Add cast to enum type.
7555 * ipa-prop.c (update_jump_functions_after_inlining): Change
7556 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7557 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7558 Add casts to enum type.
32e8bb8e
ILT
7559 (setup_cover_and_important_classes): Change cl to int. Add casts
7560 to enum type.
7561 (setup_class_translate): Change cl and mode to int.
7562 (ira_init_once): Change mode to int.
7563 (free_register_move_costs): Likewise.
7564 (setup_prohibited_mode_move_regs): Add casts to enum type.
7565 * langhooks.c (add_builtin_function_common): Rework assertion that
7566 value fits bitfield.
7567 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7568 * omega.c (omega_do_elimination): Avoid math on enum types.
7569 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7570 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7571 int local to handle integral_argment value.
7572 * regmove.c (try_auto_increment): Change PUT_MODE to
7573 PUT_REG_NOTE_KIND.
7574 * reload.c (push_secondary_reload): Add casts to enum type.
7575 (secondary_reload_class, find_valid_class): Likewise.
7576 * reload1.c (emit_input_reload_insns): Likewise.
7577 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7578 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7579 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7580 constant.
7581 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7582 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7583 enum type.
7584 (expand_complex_libcall): Add casts to enum type.
7585 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7586 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7587 with ERROR_MARK, not NUM_TREE_CODES.
7588 (vect_create_epilog_for_reduction): Likewise.
7589 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7590 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7591 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7592 enum machine_mode.
7593 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7594 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7595 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7596 * var-tracking.c (get_init_value): Change return type to enum
7597 var_init_status.
7598 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7599 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7600 arm_fp_model.
7601 (arm_override_options): Add casts to enum type.
7602 (arm_emit_tls_decoration): Likewise.
7603 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7604 to enum type.
7605 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7606 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7607 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7608 enum type.
7609 * config/s390/s390.c (code_for_builtin_64): Change to array of
7610 enum insn_code.
7611 (code_for_builtin_31): Likewise.
7612 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7613 const *.
7614 * config/sparc/sparc.c (sparc_override_options): Change value
7615 field in struct code_model to enum cmodel. In initializer change
7616 0 to NULL and add cast to enum type.
7617
7618 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7619 Change all callers. Issue a -Wc++-compat warning using
7620 lhs_origtype if necessary.
7621 (convert_for_assignment): Issue -Wc++-compat warnings about
7622 invalid conversions to enum type on assignment.
7623 * c-common.h (build_modify_expr): Update declaration.
7624
ac4fc08a
NC
76252009-04-24 Nick Clifton <nickc@redhat.com>
7626
7627 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7628 (function_arg_advance): Likewise.
7629 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7630 5th alternative.
7631
f22e891a
AK
76322009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7633
7634 * config/s390/constraints.md ('I', 'J'): Fix condition.
7635
ad58aabe
DN
76362009-04-24 Diego Novillo <dnovillo@google.com>
7637
7638 * gengtype-parse.c (parse_error): Add newline after message.
7639
879a4a01
L
76402009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7641
7642 * config/i386/sse.md (avxmodesuffixs): Removed.
7643 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7644 (*avx_pinsr<ssevecsize>): This.
7645
f63426af
BS
76462009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7647
7648 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7649 follow chains of regs with a single definition, and allow expressions
7650 that are function_invariant_p.
ce72fe6c 7651 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7652
30349c74
PB
76532009-04-24 Paolo Bonzini <bonzini@gnu.org>
7654
7655 PR middle-end/39867
7656 * fold-const.c (fold_cond_expr_with_comparison): When folding
7657 > and >= to MAX, make sure the MAX uses the same type as the
7658 comparison's operands.
7659
8d8256c1
NC
76602009-04-24 Nick Clifton <nickc@redhat.com>
7661
7662 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7663 addressing for DImode accesses.
7664 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7665 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7666
6216f94e
JJ
76672009-04-24 Jakub Jelinek <jakub@redhat.com>
7668
7669 PR rtl-optimization/39794
7670 * alias.c (canon_true_dependence): Add x_addr argument.
7671 * rtl.h (canon_true_dependence): Adjust prototype.
7672 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7673 * cselib.c (cselib_invalidate_mem): Likewise.
7674 * gcse.c (compute_transp): Likewise.
7675 * dse.c (scan_reads_nospill): Likewise.
7676 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7677 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7678 canon_base_addr of the group, plus optional offset.
7679 (struct group_info): Rename canon_base_mem to
7680 canon_base_addr.
7681 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7682 canon_rtx of base_mem.
7683
6de7a512
PB
76842009-04-23 Paolo Bonzini <bonzini@gnu.org>
7685
7686 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7687 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7688
4a3a2376
UW
76892009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7690
7691 * config/spu/spu-builtins.h: Delete file.
7692
7693 * config/spu/spu.h (enum spu_builtin_type): Move here from
7694 spu-builtins.h.
7695 (struct spu_builtin_description): Likewise. Add GTY marker.
7696 Do not use enum spu_function_code or enum insn_code.
7697 (spu_builtins): Add extern declaration.
7698
7699 * config/spu/spu.c: Do not include "spu-builtins.h".
7700 (enum spu_function_code, enum spu_builtin_type_index,
7701 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7702 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7703 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7704 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7705 (spu_builtin_types): Make static. Add GTY marker.
7706 (spu_builtins): Add extern declaration with GTY marker.
7707 Include "gt-spu.h".
7708
7709 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7710 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7711 Check programmatically whether all parameters are scalar.
7712
7713 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7714
bbaba73f
EB
77152009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7716
7717 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7718 assignment from the constructor either if the target is volatile.
7719
ee93c1c6
DJ
77202009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7721
7722 * config/arm/arm.md (insv): Do not share operands[0].
7723
b2f21330
NS
77242009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7725
7726 * config/vxlib-tls.c (active_tls_threads): Delete.
7727 (delete_hook_installed): New.
7728 (tls_delete_hook): Don't delete the delete hook.
7729 (tls_destructor): Delete it here.
7730 (__gthread_set_specific): Adjust installing the delete hook.
7731 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7732 __gthread_leave_tsd_dtor_context.
7733
4782dfa7
RAE
77342009-04-23 Rafael Avila de Espindola <espindola@google.com>
7735
7736 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7737
bf758008
UB
77382009-04-23 Uros Bizjak <ubizjak@gmail.com>
7739
7740 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7741 enum type.
7742 (alpha_rtx_costs): Ditto.
7743 (emit_unlikely_jump): Use add_reg_note.
7744 (emit_frame_store_1): Ditto.
7745 (alpha_expand_prologue): Ditto.
7746 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7747 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7748
7323a100
NC
77492009-04-23 Nick Clifton <nickc@redhat.com>
7750
7751 * config/v850/v850.md (epilogue): Remove suppressed code.
7752 (return): Rename to return_simple and remove test of frame size.
7753 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7754 to gen_return_simple.
7755
360032ba
JY
77562009-04-22 Jing Yu <jingyu@google.com>
7757
7758 PR testsuite/39781
7759 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7760
53650abe
AP
77612009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7762
7763 PR C/31499
7764 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7765 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7766 value is a VECTOR_CST, the element type is the element type of the
7767 vector.
7768
89043e8a
DD
77692009-04-22 DJ Delorie <dj@redhat.com>
7770
7771 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7772
023f059b
JJ
77732009-04-22 Jakub Jelinek <jakub@redhat.com>
7774
7775 * alias.c (find_base_term): Move around LO_SUM case, so that
7776 CONST falls through into PLUS/MINUS handling.
7777
2c0eba5a
JJ
7778 PR c/39855
7779 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7780 into 0, use omit_one_operand.
7781
9a461028
BE
77822009-04-23 Ben Elliston <bje@au.ibm.com>
7783
7784 * config/rs6000/linux-unwind.h (get_regs): Remove type
7785 puns. Change the type of `pc' to an array of unsigned ints and
7786 update all users. Constify frame24.
7787
653e2568
DD
77882009-04-22 DJ Delorie <dj@redhat.com>
7789
7790 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7791 declarations before code.
7792 (current_function_special_page_vector): Likewise.
7793 (m32c_expand_insv): Silence a warning.
7794
60839f5d 77952009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7796
7797 * alias.c: Update GTY annotations to new syntax.
7798 * basic-block.h: Likewise.
7799 * bitmap.h: Likewise.
7800 * c-common.h: Likewise.
7801 * c-decl.c: Likewise.
7802 * c-parser.c: Likewise.
7803 * c-pragma.c: Likewise.
7804 * c-tree.h: Likewise.
7805 * cfgloop.h: Likewise.
7806 * cgraph.h: Likewise.
7807 * config/alpha/alpha.c: Likewise.
7808 * config/arm/arm.h: Likewise.
7809 * config/avr/avr.h: Likewise.
7810 * config/bfin/bfin.c: Likewise.
7811 * config/cris/cris.c: Likewise.
7812 * config/darwin.c: Likewise.
7813 * config/frv/frv.c: Likewise.
7814 * config/i386/i386.c: Likewise.
7815 * config/i386/i386.h: Likewise.
7816 * config/i386/winnt.c: Likewise.
7817 * config/ia64/ia64.h: Likewise.
7818 * config/iq2000/iq2000.c: Likewise.
7819 * config/mips/mips.c: Likewise.
7820 * config/mmix/mmix.h: Likewise.
7821 * config/pa/pa.c: Likewise.
7822 * config/pa/pa.h: Likewise.
7823 * config/rs6000/rs6000.c: Likewise.
7824 * config/s390/s390.c: Likewise.
7825 * config/sparc/sparc.c: Likewise.
7826 * config/xtensa/xtensa.c: Likewise.
7827 * cselib.h: Likewise.
7828 * dbxout.c: Likewise.
7829 * dwarf2out.c: Likewise.
7830 * except.c: Likewise.
7831 * except.h: Likewise.
7832 * fixed-value.h: Likewise.
7833 * function.c: Likewise.
7834 * function.h: Likewise.
7835 * gimple.h: Likewise.
7836 * integrate.c: Likewise.
7837 * optabs.c: Likewise.
7838 * output.h: Likewise.
7839 * real.h: Likewise.
7840 * rtl.h: Likewise.
7841 * stringpool.c: Likewise.
7842 * tree-data-ref.c: Likewise.
7843 * tree-flow.h: Likewise.
7844 * tree-scalar-evolution.c: Likewise.
7845 * tree-ssa-address.c: Likewise.
7846 * tree-ssa-alias.h: Likewise.
7847 * tree-ssa-operands.h: Likewise.
7848 * tree.c: Likewise.
7849 * tree.h: Likewise.
7850 * varasm.c: Likewise.
7851 * varray.h: Likewise.
7852 * vec.h: Likewise.
bf758008 7853 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7854 * doc/gty.texi: Update GTY documentation to new syntax.
7855 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7856 annotations on structs.
7857 * gengtype-parse.c: Likewise.
7858
a123d175
MH
78592009-04-22 Mark Heffernan <meheff@google.com>
7860
bf758008 7861 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7862
4c7c486a
KH
78632009-04-22 Kazu Hirata <kazu@codesourcery.com>
7864
7865 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7866 where appropriate.
7867
6e782a29
KH
78682009-04-22 Kazu Hirata <kazu@codesourcery.com>
7869
7870 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7871 the same as a PLUS without a shift. Increase the cost of a
7872 CONST_INT in MULT.
7873
38d2336a
MLI
78742009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7875
7876 * Makefile.in: Update dependencies.
bf758008 7877 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7878 * errors.h: Remove bogus comment about compatibility.
7879 (warning): Update declaration.
7880 * genautomata.c: Update all calls to warning.
7881 * gimple.c: Do not include errors.h. Include toplev.h.
7882 * tree-ssa-structalias.c: Do not include errors.h.
7883 * omega.c: Likewise.
7884 * tree-ssa-reassoc.c: Likewise.
7885 * config/spu/spu-c.c: Likewise.
7886 * config/spu/t-spu-elf: Update dependencies.
7887
aea4deba
RG
78882009-04-22 Richard Guenther <rguenther@suse.de>
7889
7890 PR tree-optimization/39824
7891 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7892 make sure the types are compatible.
7893
cfc93532
MLI
78942009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7895
7896 PR c++/14875
7897 * c-common.c (c_parse_error): Take a token_flags parameter.
7898 Use token_type for the token type instead.
7899 Pass token_flags to cpp_type2name.
7900 * c-common.h (c_parse_error): Update declaration.
7901 * c-parser.c (c_parser_error): Pass 0 as token flags.
7902
8632d02a
AB
79032009-04-22 Andrey Belevantsev <abel@ispras.ru>
7904
7905 PR rtl-optimization/39580
7906 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7907
4c33221c
UW
79082009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7909
7910 * function.c (expand_function_end): Do not emit a jump to the "naked"
7911 return label for fall-through returns.
7912 * except.c (sjlj_emit_function_exit): Always place the call to the
7913 unregister function at the location installed by expand_function_end.
7914
9925bce0
RG
79152009-04-22 Richard Guenther <rguenther@suse.de>
7916
7917 PR tree-optimization/39845
7918 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7919 (gen_inbound_check): Likewise.
7920
24a40b35
NS
79212009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7922
7923 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7924 padding for PPC.
7925 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7926 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7927
6c34a092
PB
79282009-04-22 Paolo Bonzini <bonzini@gnu.org>
7929
7930 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7931 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7932 shift counts to avoid out-of-bounds array accesses.
7933
baa48dfa
PB
79342009-04-22 Paolo Bonzini <bonzini@gnu.org>
7935
7936 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7937 (Pmode): Move above.
7938
7d83f4f5
UB
79392009-04-22 Uros Bizjak <ubizjak@gmail.com>
7940
7941 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7942 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7943 GET_CODE macro. Use IN_RANGE macro where appropriate.
7944 * config/alpha/alpha.h: Ditto.
7945 * config/alpha/alpha.md: Ditto.
7946 * config/alpha/constraints.md: Ditto.
7947 * config/alpha/predicates.md: Ditto.
7948
3ad606bc
PB
79492009-04-22 Paolo Bonzini <bonzini@gnu.org>
7950
7951 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7952 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7953 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7954 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7955 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7956 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7957 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7958 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7959 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7960 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7961 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7962 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7963 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7964 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7965 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7966 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7967 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7968 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7969 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7970 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7971 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7972 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7973 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7974 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7975 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7976 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7977 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7978
3cabd6d1
LB
79792009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7980
7981 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7982 references from comments.
7983 * cfgbuild.c: (count_basic_blocks): Delete.
7984 (find_basic_blocks_1): Delete.
7985 (find_basic_blocks): Delete.
7986 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7987 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7988 * except.h (finish_eh_generation): Delete.
7989 * basic-block.h (find_basic_blocks): Delete.
7990 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7991
270d1bcd
DK
79922009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7993
7994 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7995 (sdbout_parms): Likewise.
7996
b757d36f
KK
79972009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7998
7999 * config/sh/sh.c (prepare_cbranch_operands): Use
8000 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8001 (expand_cbranchdi4): Likewise.
8002 (from_compare): Add cast to enum type.
8003 (expand_cbranchsi4): Use add_reg_note.
8004 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8005 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8006 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8007 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8008 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8009 instead of CODE_FOR_nothing.
8010 (cbranchdi4): Likewise. Fix the order of arguments for
8011 gen_rtx_fmt_ee.
8012 (push_fpscr): Use add_reg_note.
8013 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8014 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8015
ad41bd84
JM
80162009-04-21 Joseph Myers <joseph@codesourcery.com>
8017
8018 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8019 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8020 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8021 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8022 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8023 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8024 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8025 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8026 config/alpha/x-vms, config/arc/t-arc,
8027 config/arm/README-interworking, config/arm/arm-c.c,
8028 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8029 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8030 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8031 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8032 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8033 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8034 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8035 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8036 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8037 config/cris/t-elfmulti, config/crx/t-crx,
8038 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8039 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8040 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8041 config/h8300/t-h8300, config/i386/athlon.md,
8042 config/i386/darwin-libgcc.10.4.ver,
8043 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8044 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8045 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8046 config/i386/t-linux64, config/i386/t-nwld,
8047 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8048 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8049 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8050 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8051 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8052 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8053 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8054 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8055 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8056 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8057 config/m68k/t-uclinux, config/mcore/t-mcore,
8058 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8059 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8060 config/mips/crtn.asm, config/mips/irix-crti.asm,
8061 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8062 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8063 config/mips/mips-fixed.md, config/mips/sb1.md,
8064 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8065 config/mips/t-iris6, config/mips/t-isa3264,
8066 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8067 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8068 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8069 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8070 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8071 config/mn10300/t-linux, config/mn10300/t-mn10300,
8072 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8073 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8074 config/picochip/libgccExtras/clzsi2.asm,
8075 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8076 config/rs6000/darwin-libgcc.10.4.ver,
8077 config/rs6000/darwin-libgcc.10.5.ver,
8078 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8079 config/rs6000/t-aix43, config/rs6000/t-aix52,
8080 config/rs6000/t-darwin, config/rs6000/t-fprules,
8081 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8082 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8083 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8084 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8085 config/rs6000/t-rtems, config/rs6000/t-spe,
8086 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8087 config/score/t-score-elf, config/sh/divcost-analysis,
8088 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8089 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8090 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8091 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8092 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8093 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8094 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8095 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8096 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8097 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8098 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8099 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8100 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8101 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8102 * config/h8300/genmova.sh: Include copyright and license notices
8103 in generated output.
8104 * config/h8300/mova.md: Regenerate.
8105 * doc/install.texi2html: Include word "Copyright" in copyright
8106 notice and use name "Free Software Foundation, Inc.".
8107 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8108 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8109 ChangeLog-2007, ChangeLog-2008: Correct dates.
8110
ca80e52b
EB
81112009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8112
8113 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8114 NE_EXPR operations as well.
8115 * c-parser.c (c_parser_condition): Do not set location information on
8116 the condition.
8117 (c_parser_conditional_expression): Likewise.
8118 (c_parser_binary_expression): Set location information on operators.
8119 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8120 TRUTH_NOT_EXPR has been folded.
8121 * fold-const.c (fold_truth_not_expr): Copy location information from
8122 the incoming expression to the outgoing one.
8123 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8124 recursive calls on the LHS of the operator but pass that of the
8125 operator to recursive calls on the RHS of the operator. Set it
8126 on the COND_EXPR.
8127 (shortcut_cond_expr): Set the locus of the operator on the second
8128 COND_EXPR and that of the expression on the first in degenerate cases.
8129 Pass the locus of the expression to calls to shortcut_cond_r.
8130 Set the locus of the 'then' block on the associated jump, if any.
8131 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8132 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8133 expression to call to gimplify_boolean_expr.
8134
35091630
KT
81352009-04-21 Kai Tietz <kai.tietz@onevision.com>
8136
8137 * config.gcc: Add additional configuration for
8138 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8139 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8140 (CPP_SPEC): Redefine for allowing -municode option.
8141 (STARTFILE_SPEC): Likewise.
8142 * config/i386/t-mingw-w64: New.
8143 * config/i386/mingw-w64.opt: New.
8144 (municode): Add new target option.
8145 * doc/invoke.texi (municode): Add documentation for new option.
8146
0267afc4
ILT
81472009-04-21 Ian Lance Taylor <iant@google.com>
8148
8149 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8150 Correct test for number of arguments.
8151 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8152
2ba9daa7
AS
81532009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8154
8155 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8156 argument of emit_library_call.
8157
ad8a1ac0
RG
81582009-04-21 Richard Guenther <rguenther@suse.de>
8159
8160 PR middle-end/39829
8161 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8162 inside VIEW_CONVERT_EXPRs.
8163
7156c8ab
MJ
81642009-04-21 Martin Jambor <mjambor@suse.cz>
8165
8166 * tree-switch-conversion.c (build_constructors): Split a long line.
8167 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8168 (build_one_array): Create assigns of constants if possible, do not
8169 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8170 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8171 make_rename_temp. Do not call mark_symbols_for_renaming, call
8172 update_stmt.
8173 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8174 find_new_referenced_vars, call update_stmt.
8175 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8176 instead of calling make_rename_temp. Do not call
8177 find_new_referenced_vars or mark_symbols_for_renaming, call
8178 update_stmt.
8179
2970ccb3
RG
81802009-04-21 Richard Guenther <rguenther@suse.de>
8181
8182 PR tree-optimization/39827
7d83f4f5 8183 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8184 (tree_ssa_phiprop): Pass the correct array size.
8185
47f402d1
UB
81862009-04-21 Uros Bizjak <ubizjak@gmail.com>
8187
8188 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8189
1e4ae551
MLI
81902009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8191
8192 PR 16202
8193 * c-typeck.c (lvalue_p): Move declaration ...
8194 * c-common.h (lvalue_p): ... to here.
8195 * c-common.c (candidate_equal_p): New.
8196 (add_tlist): Use it.
8197 (merge_tlist): Use it.
8198 (warn_for_collisions_1): Likewise.
8199 (warning_candidate_p): Accept more candidates.
8200 (verify_tree): A warning candidate can be an expression. Use
8201 candidate_equal_p.
8202
244609a6
BE
82032009-04-21 Ben Elliston <bje@au.ibm.com>
8204
8205 PR target/5267
8206 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8207 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8208 options. Remove -mcall-solaris documentation.
8209
9c650d90
MLI
82102009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8211
8212 PR c++/13358
8213 * doc/invoke.texi (-Wlong-long): Update description.
8214 * c-lex (interpret_integer): Only warn if there was no previous
8215 overflow and -Wlong-long is enabled.
8216 * c-decl.c (declspecs_add_type): Drop redundant flags.
8217 * c.opt (Wlong-long): Init to -1.
8218 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8219 and front-end warn_long_long. Wlong-long only depends on other
8220 flags if it is uninitialized.
8221 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8222 the same for CPP and FE.
8223 (restore_extension_diagnostics): Likewise.
8224
bbbbb16a
ILT
82252009-04-20 Ian Lance Taylor <iant@google.com>
8226
8227 Fix enum conversions which are invalid in C++:
47f402d1
UB
8228 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8229 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8230 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8231 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8232 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8233 (dbxout_parms): Likewise.
47f402d1 8234 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8235 (df_clear_flags): Likewise.
8236 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8237 top_flag parameter to int.
8238 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8239 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8240 Remove cast.
bbbbb16a
ILT
8241 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8242 (df_ref_create_structure, df_def_record_1): Likewise.
8243 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8244 (df_notes_rescan): Change 0 to VOIDmode in function call.
8245 (df_get_call_refs, df_insn_refs_collect): Likewise.
8246 (df_bb_regs_collect): Likewise.
8247 (df_entry_block_defs_collect): Likewise.
8248 (df_exit_block_uses_collect): Likewise.
8249 * df.h: Update declarations.
8250 * double-int.c (double_int_divmod): Add cast to enum type.
8251 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8252 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8253 (based_loc_descr): Likewise.
8254 (loc_descriptor_from_tree_1): Change first_op and second_op to
8255 enum dwarf_location_atom. Add cast to enum type.
8256 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8257 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8258 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8259 (do_store_flag): Likewise.
8260 * fixed-value.h (struct fixed_value): Change mode to enum
8261 machine_mode.
47f402d1 8262 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8263 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8264 function call.
8265 (insert_insn_decl, insert_decl, insert_state): Likewise.
8266 (automata_list_finish): Likewise.
8267 * genrecog.c (process_define_predicate): Add cast to enum type.
8268 * gensupport.c (init_predicate_table): Add cast to enum type.
8269 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8270 function call.
8271 (gimple_build_call_1, gimple_build_label): Likewise.
8272 (gimple_build_goto, gimple_build_asm_1): Likewise.
8273 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8274 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8275 (enum fallback): Rename from enum fallback_t.
8276 (fallback_t): Typedef as int.
8277 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8278 GSI_SAME_STMT in function call.
8279 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8280 enum type.
8281 (setup_reg_class_relations): Likewise.
47f402d1 8282 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8283 (setup_prohibited_class_mode_regs): Add cast to enum type.
8284 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8285 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8286 (record_address_regs): Change i to enum reg_class.
8287 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8288 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8289 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8290 (GET_MODE_2XWIDER_MODE): Likewise.
8291 (GET_CLASS_NARROWEST_MODE): Likewise.
8292 * omp-low.c (expand_omp_for): Add cast to enum type.
8293 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8294 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8295 * postreload.c (reload_cse_simplify_operands): Change rclass local
8296 to enum reg_class.
8297 * predict.c (combine_predictions_for_insn): Change best_predictor
8298 and predictor to enum br_predictor.
8299 (combine_predictions_for_bb): Likewise.
8300 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8301 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8302 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8303 * reginfo.c (init_move_cost): Add casts to enum type.
8304 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8305 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8306 enum reg_class.
8307 * reload.c (find_valid_class): Add casts to enum type.
8308 (push_reload): Change 0 to NO_REGS in function call.
8309 (find_reloads): Change this_alternative to array of enum
8310 reg_class. Remove some now-unnecessary casts.
8311 (make_memloc): Change 0 to VOIDmode in function call.
8312 * reload1.c (reload): Change 0 to VOIDmode in function call.
8313 (eliminate_regs_1, elimination_effects): Likewise.
8314 (eliminate_regs_in_insn): Likewise.
8315 (emit_input_reload_insns): Add cast to enum type.
8316 (delete_output_reload): Change 0 to VOIDmode in function call.
8317 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8318 to enum type in function call.
8319 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8320 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8321 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8322 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8323 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8324 (dump_function): Likewise.
8325 * tree-dump.h: Update declarations.
8326 * tree-pass.h: Update declarations.
8327 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8328 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8329 enum type.
8330 (arm_rtx_costs_1): Correct parenthesization.
8331 (arm_rtx_costs): Add casts to enum type.
8332 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8333 (vfp_emit_fstmd): Use add_rg_note.
8334 (emit_multi_reg_push, emit_sfm): Likewise.
8335 (thumb_set_frame_pointer): Likewise.
8336 (arm_expand_prologue): Likewise.
8337 (arm_regno_class): Change return type to enum reg_class.
8338 (thumb1_expand_prologue): Use add_reg_note.
8339 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8340 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8341 in function call.
8342 * config/arm/gentune.sh: Add cast to enum type.
8343 * config/arm/arm-tune.md: Rebuild.
8344 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8345 (ix86_split_fp_branch, predict_jump): Likewise.
8346 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8347 insn_code to enum rtx_code.
8348 (ix86_builtin_vectorized_function): Add cast to enum type.
8349 * config/i386/i386.md (truncdfsf2): Change slot to enum
8350 ix86_stack_slot.
8351 (truncxf<mode>2, isinf<mode>2): Likewise.
8352 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8353 enum type.
8354 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8355 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8356 (insert_bundle_state): Change 1 to INSERT in function call.
8357 (ia64_add_bundle_selector_before): Likewise.
8358 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8359 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8360 (restore_stack_nonlocal): Likewise.
8361 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8362 function call.
8363 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8364 function call.
8365 (mips_rtx_costs): Likewise.
8366 (mips_override_options): Add casts to enum type.
8367 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8368 in function call.
8369 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8370 (store_reg, set_reg_plus_d): Likewise.
8371 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8372 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8373 cast to enum type.
8374 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8375 function call.
8376 (emit_unlikely_jump): Use add_reg_note.
8377 (rs6000_emit_allocate_stack): Likewise.
8378 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8379 (output_toc): Change 1 to INSERT in function call.
8380 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8381 (rs6000_initialize_trampoline): Likewise.
8382 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8383 function call.
8384 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8385 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8386 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8387 (save_gprs): Use add_reg_note.
8388 (s390_emit_prologue): Likewise.
47f402d1 8389 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8390 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8391 (sparc_fold_builtin): Add cast to enum type.
8392 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8393 enum insn_code.
8394 (spu_expand_prologue): Use add_reg_note.
47f402d1 8395 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8396
83972009-04-20 Ian Lance Taylor <iant@google.com>
8398
8399 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8400 (c_parser_postfix_expression_after_primary): Get VEC for list of
8401 arguments. Get original types of arguments. Call
8402 build_function_call_vec.
8403 (cached_expr_list_1, cached_expr_list_2): New static variables.
8404 (c_parser_expr_list): Change return type to VEC *. Add
8405 p_orig_types parameter. Change all callers.
8406 (c_parser_release_expr): New static function.
8407 (c_parser_vec_to_tree_list): New static function.
8408 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8409 call build_function_call_vec.
8410 (build_function_call_vec): New function, based on old
8411 build_function_call.
8412 (convert_arguments): Remove nargs and argarray parameters. Change
8413 values to a VEC. Add origtypes parameter.
47f402d1 8414 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8415 (convert_for_assignment): Add origtype parameter. Change all
8416 callers. If warn_cxx_compat, check for conversion to an enum
8417 type when calling a function.
8418 (store_init_value): Add origtype parameter. Change all callers.
8419 (digest_init): Likewise.
8420 (struct init_node): Add origtype field.
8421 (add_pending_init): Add origtype parameter. Change all callers.
8422 (output_init_element): Likewise.
8423 (output_pending_init_elements): Pass origtype from init_node to
8424 output_init_element.
f28a61ab 8425 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8426 output_init_element.
8427 (c_finish_return): Add origtype parameter. Change all callers.
8428 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8429 caller.
8430 (sync_resolve_params): Likewise.
47f402d1 8431 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8432 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8433 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8434 * c-decl.c (finish_decl): Add origtype parameter. Change all
8435 callers. Call build_function_call_vec rather than
8436 build_function_call for cleanup.
8437 * c-tree.h: Update declarations.
8438 * c-common.h: Update declarations.
8439 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8440 params to first_param.
8441 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8442 params parameter from tree to void *.
8443 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8444 Change arglist parameter to have type void *, and to be a pointer
8445 to a VEC.
8446 * config/rs6000/rs6000-protos.h
8447 (altivec_resolve_overloaded_builtin): Update declaration.
8448 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8449 fnargs parameter to have type void *, and to be a pointer to a
8450 VEC. Call build_function_call_vec instead of
8451 build_function_call.
47f402d1 8452 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8453
6ff078d4 84542009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8455 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8456 H.J. Lu <hongjiu.lu@intel.com>
8457
8458 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8459
8460 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8461 (IX86_LEA_PRIORITY): Likewise.
8462 (distance_non_agu_define): New function.
8463 (distance_agu_use): Likewise.
8464 (ix86_lea_for_add_ok): Likewise.
8465 (ix86_dep_by_shift_count): Likewise.
8466
8467 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8468 should split for LEA.
8469
8470 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8471 function.
8472 (ix86_dep_by_shift_count): Likewise.
8473
87a5b4cc
RG
84742009-04-20 Richard Guenther <rguenther@suse.de>
8475
8476 * expr.c (handled_component_p): Move ...
8477 * tree.h (handled_component_p): ... here.
8478 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8479 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8480 and REALPART_EXPR to be in one group.
8481
438c239d
RG
84822009-04-20 Richard Guenther <rguenther@suse.de>
8483
8484 * basic-block.h (get_all_dominated_blocks): Declare.
8485 * dominance.c (get_all_dominated_blocks): New function.
8486 * tree-cfg.c (get_all_dominated_blocks): Remove.
8487 (remove_edge_and_dominated_blocks): Adjust.
8488 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8489 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8490 instead of recursing.
8491
fed5ae11
DK
84922009-04-20 Doug Kwan <dougkwan@google.com>
8493
8494 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8495 (struct cgraph_node_set_def): New type.
8496 (cgraph_node_set) New type. Also declare vector functions.
8497 (struct cgraph_node_set_element_def): New type.
8498 (cgraph_node_set_element): Ditto.
8499 (cgraph_node_set_iterator): New iterator type.
8500 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8501 cgraph_node_set_remove, dump_cgraph_node_set,
8502 debug_cgraph_node_set): New prototypes.
8503 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8504 cgraph_node_set_size): New inlines.
8505 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8506 including cgraph.h.
8507 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8508 argument to function 'write_summary'.
8509 * ipa.c: Include ggc.h.
8510 (hash_cgraph_node_set_element,
8511 eq_cgraph_node_set_element, cgraph_node_set_new,
8512 cgraph_node_set_add, cgraph_node_set_remove,
8513 cgraph_node_set_find, dump_cgraph_node_set,
8514 debug_cgraph_node_set): New functions.
8515 * Makefile.in (ipa.o): Add dependency on GGC_H.
8516
c4551b28
IR
85172009-04-20 Ira Rosen <irar@il.ibm.com>
8518
8519 PR tree-optimization/39675
2ba9daa7 8520 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8521 check of the return code of vect_schedule_slp. Check that
8522 stmt_vec_info still exists for the statement, before checking its
8523 vectorization type.
c4551b28 8524
21a495fb
MM
85252009-04-20 Michael Matz <matz@suse.de>
8526
8527 * Makefile.in (generated_files): Take out $(simple_generated_c).
8528
8e208874
DK
85292009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8530
8531 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8532 (UINTPTR_TYPE): Likewise.
8533
a45e580b
JM
85342009-04-19 Joseph Myers <joseph@codesourcery.com>
8535
8536 PR c/37481
8537 * c-typeck.c (digest_init): Check for initializing an array with a
8538 string literal.
8539
20845d35
JM
85402009-04-19 Joseph Myers <joseph@codesourcery.com>
8541
8542 PR c/19771
8543 * c-semantics.c (pop_stmt_list): Propagate
8544 STATEMENT_LIST_HAS_LABEL to parent statement list.
8545
28143fdd
AN
85462009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8547
8548 * config/mips/mips.h (mips_tune_attr): New macro.
8549 * config/mips/mips.md (cpu): Use it.
8550
da377db9
JM
85512009-04-19 Joseph Myers <joseph@codesourcery.com>
8552
8553 PR c/38243
8554 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8555 declaring a tag.
8556
3baf459d
DN
85572009-04-19 Diego Novillo <dnovillo@google.com>
8558
8559 * toplev.c (compile_file): Move call to coverage_finish ...
8560 * cgraphunit.c (ipa_passes): ... here.
8561 Call cgraph_process_new_functions.
8562 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8563 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8564
b6fa5b01
JH
85652009-04-19 Jan Hubicka <jh@suse.cz>
8566
47f402d1
UB
8567 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8568 cfun.
b6fa5b01
JH
8569 (dump_cgraph_node): Dump can throw external flag.
8570 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8571
ca409efd
MLI
85722009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8573
8574 PR c/32061
8575 PR c++/36954
8576 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8577 * common.opt (Wlogical-op): Move from here...
8578 * c.opt (Wlogical-op): ... to here.
8579 * c-typeck.c (parser_build_binary_op): Update call to
8580 warn_logical_operator.
8581 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8582 extra_warnings.
8583 * c-common.c (warn_logical_op): Update.
8584 * c-common.h (warn_logical_op): Update declaration.
8585
9db4cdd3
EB
85862009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8587
8588 * tree.c (protected_set_expr_location): Fix formatting.
8589
f37acdf9
JM
85902009-04-18 Joseph Myers <joseph@codesourcery.com>
8591
8592 PR c/27676
8593 * c-typeck.c (readonly_warning): new.
8594 (build_unary_op, build_modify_expr): Use readonly_warning for
8595 storing into something readonly but not const-qualified.
8596
2b4b7036
JM
85972009-04-18 Joseph Myers <joseph@codesourcery.com>
8598
8599 PR c/22367
8600 * c-typeck.c (build_unary_op): Check for taking address of
8601 expression of type void.
8602
3ce62965
JM
86032009-04-18 Joseph Myers <joseph@codesourcery.com>
8604
8605 PR c/35210
8606 * c-typeck.c (build_function_call): Check for calling a function
8607 with qualified void return types. Call require_complete_type when
8608 generating a trap.
8609
2505c5ed
JH
86102009-04-18 Jan Hubicka <jh@suse.cz>
8611
8612 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8613 Set nothrow flag.
8614 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8615 can_throw_external flag.
8616 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8617 * ipa-pure-const.c (ignore_edge): New function.
8618 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8619 only over can_throw_external edges.
8620 (local_pure_const): Add nothrow flag.
8621 * ipa-utils.c (searchc): Add ignore_edge callback.
8622 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8623 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8624 (set_nothrow_function_flags): Update cgraph.
8625 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8626
2586ba4b
RG
86272009-04-18 Richard Guenther <rguenther@suse.de>
8628
8629 PR middle-end/39804
8630 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8631 (fold_stmt): ... this and ...
8632 (fold_stmt_inplace): ... this.
8633 (fold_stmt_1): Fold references in calls and asms.
8634 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8635
1eefab17
KH
86362009-04-18 Kazu Hirata <kazu@codesourcery.com>
8637
8638 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8639 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8640
aa424b01
KH
86412009-04-18 Kazu Hirata <kazu@codesourcery.com>
8642
8643 * tree.c (function_args_count): Remove.
8644 * tree.h: Remove the prototype for function_args_count.
8645
613a896b
KH
86462009-04-18 Kazu Hirata <kazu@codesourcery.com>
8647
8648 * tree-iterator.c (expr_only): Remove.
8649 * tree.h: Remove the prototype for expr_only.
8650
579e694c
KH
86512009-04-18 Kazu Hirata <kazu@codesourcery.com>
8652
8653 * reginfo.c (cannot_change_mode_set_regs): Remove.
8654 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8655
ee7e3ad3
AS
86562009-04-08 Anatoly Sokolov <aesok@post.ru>
8657
8658 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8659 whether operands 0 and 1 overlaps.
8660
92ef7fb1
MLI
86612009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8662
8663 PR middle-end/36902
8664 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8665 pointer. Use warning_at instead of warning.
8666 (search_for_addr_array): Likewise.
8667 (check_array_bounds): Likewise.
8668 (check_all_array_refs): Check that the incoming edge is not in the
8669 list of edges to be removed.
8670 (check_all_array_refs): Avoid the temporal pointer.
8671 (vrp_visit_cond_stmt): Fix typo.
8672 (simplify_switch_using_ranges): Handle the case where the switch
8673 index is an integer constant.
8674
0e097268
AN
86752009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8676
8677 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8678
c782f1dd
KH
86792009-04-18 Kazu Hirata <kazu@codesourcery.com>
8680
8681 * doc/extend.texi, doc/invoke.texi: Fix typos.
8682
668fb0e8
CC
86832009-04-17 Cary Coutant <ccoutant@google.com>
8684
8685 * tree-flow-inline.h (get_lineno): Fix inverted test.
8686
4d4014c1
DN
86872009-04-17 Diego Novillo <dnovillo@google.com>
8688
8689 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8690 assertion for AVAIL_OUT.
8691
2984e1b6
MF
86922009-04-17 Mike Frysinger <vapier@gentoo.org>
8693
8694 PR target/38627
8695 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8696 * config/sh/linux-atomic.asm: Likewise.
8697
9994a182
DN
86982009-04-17 Diego Novillo <dnovillo@google.com>
8699
8700 * except.c (debug_eh_tree): New.
8701 (struct eh_region, struct eh_status): Move ...
8702 * except.h: ... here.
8703 (add_type_for_runtime): Declare extern.
8704 (lookup_type_for_runtime): Likewise.
8705 (debug_eh_tree): Declare.
8706 * Makefile.in (GTFILES): List except.h before except.c
8707
07485407
DN
87082009-04-17 Diego Novillo <dnovillo@google.com>
8709
47f402d1 8710 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8711 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8712 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8713 (find_vars_r): ... here.
8714 * tree-flow.h (find_referenced_vars_in): Declare.
8715 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8716 that AVAIL_OUT exists for BLOCK.
8717 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8718 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8719 (tree-parloops.o): Likewise.
8720
4e53d196
SB
87212009-04-17 Simon Baldwin <simonb@google.com>
8722
8723 * toplev.c (default_tree_printer): Add handling for %E format.
8724
413d3aa8
DN
87252009-04-17 Diego Novillo <dnovillo@google.com>
8726
47f402d1
UB
8727 * tree-pretty-print.c (dump_generic_node): Add break after
8728 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8729 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8730 FUNCTION_TYPE together. Call print_struct_decl when printing
8731 structures and TDF_SLIM is not given.
413d3aa8
DN
8732 (print_struct_decl): Fix logic for detecting recursion.
8733
5a691e98
RAE
87342009-04-17 Rafael Avila de Espindola <espindola@google.com>
8735
8736 PR 31567
8737 * gcc.c (create_at_file): New.
8738 (compile_input_file_p): New.
8739 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8740 * main.c (main): Update call to toplev_main.
8741 * toplev.c (toplev_main): Change signature. Call expandargv.
8742 * toplev.h (toplev_main): Change signature.
8743
9eacf7a6
EB
87442009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8745
8746 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8747 if the latter is not constant.
8748
58298177
DE
87492009-04-17 David Edelsohn <edelsohn@gnu.org>
8750
8751 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8752
5b4c43d7
EB
87532009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8754
8755 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8756 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8757
b51605c4
RG
87582009-04-17 Richard Guenther <rguenther@suse.de>
8759
8760 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8761 Handle component references view-converting an invariant address.
8762
9e3be889
AN
87632009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8764
8765 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8766 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8767 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8768 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8769 Use @deftypevr rather than @deftypevar.
8770
7c3e9dc3
RG
87712009-04-17 Richard Guenther <rguenther@suse.de>
8772
47f402d1 8773 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8774 (get_prop_source_stmt): Likewise.
8775 (can_propagate_from): Likewise.
8776
aca600aa
AS
87772009-04-17 Andrew Stubbs <ams@codesourcery.com>
8778
8779 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8780 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8781 (--with-multilib-list): Add default value.
8782 * configure: Regenerate.
8783 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8784 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8785 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8786 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8787 Don't add default cpu to multilib list unnecessarily, but do enable
8788 the relevant compiler option..
8789 Add support for --with-multilib-list=<blank> and
8790 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8791 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8792 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8793 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8794 TM_MULTILIB_CONFIG.
8795 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8796 (MULTILIB_OSDIRNAMES): New variable.
8797 * config/sh/t-1e: Delete file.
8798 * config/sh/t-mlib-sh1: Delete file.
8799 * config/sh/t-mlib-sh2: Delete file.
8800 * config/sh/t-mlib-sh2a: Delete file.
8801 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8802 * config/sh/t-mlib-sh2a-single: Delete file.
8803 * config/sh/t-mlib-sh2a-single-only: Delete file.
8804 * config/sh/t-mlib-sh2e: Delete file.
8805 * config/sh/t-mlib-sh3e: Delete file.
8806 * config/sh/t-mlib-sh4: Delete file.
8807 * config/sh/t-mlib-sh4-nofpu: Delete file.
8808 * config/sh/t-mlib-sh4-single: Delete file.
8809 * config/sh/t-mlib-sh4-single-only: Delete file.
8810 * config/sh/t-mlib-sh4a: Delete file.
8811 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8812 * config/sh/t-mlib-sh4a-single: Delete file.
8813 * config/sh/t-mlib-sh4a-single-only: Delete file.
8814 * config/sh/t-mlib-sh4al: Delete file.
8815 * config/sh/t-mlib-sh5-32media: Delete file.
8816 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8817 * config/sh/t-mlib-sh5-64media: Delete file.
8818 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8819 * config/sh/t-mlib-sh5-compact: Delete file.
8820 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8821 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8822 * doc/install.texi (Options specification): Add
8823 --with-multilib-list and --with-endian.
8824
cf8aba7f
RAE
88252009-04-17 Rafael Avila de Espindola <espindola@google.com>
8826
8827 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8828 REVISION_c.
8829 (OBJS-common): Add plugin-version.o.
8830 (plugin-version.o): New.
8831 * gcc-plugin.h (plugin_gcc_version): New.
8832 (plugin_default_version_check): New.
8833 (plugin_init_func, plugin_init): Add version argument.
8834 * plugin-version.c: New.
8835 * plugin.c (str_plugin_gcc_version_name): New.
8836 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8837 pass it to the init function.
8838 (plugin_default_version_check): New.
8839
61e20b90
RG
88402009-04-17 Richard Guenther <rguenther@suse.de>
8841
8842 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8843 for decl-vs-decl disambiguation.
8844
90c6fd8a
AK
88452009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8846
8847 * config/s390/s390.h (s390_tune_attr): New macro definition.
8848 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8849
9fe9fe04
RG
88502009-04-17 Richard Guenther <rguenther@suse.de>
8851
8852 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8853 (fold_stmt_r): Likewise.
8854 (maybe_fold_reference): New function.
8855 (fold_gimple_assign): Handle cases fold_stmt_r did.
8856 (fold_stmt): Do not use fold_stmt_r.
8857 (fold_stmt_inplace): Likewise.
8858
7e673273
RG
88592009-04-17 Richard Guenther <rguenther@suse.de>
8860
8861 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8862 (record_equivalences_from_stmt): Remove useless checks and
8863 simplifications.
8864 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8865 the type is already suitable.
8866
fabf2749
PB
88672009-04-17 Paolo Bonzini <bonzini@gnu.org>
8868
8869 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8870
68f7b061
UB
88712009-04-17 Uros Bizjak <ubizjak@gmail.com>
8872
8873 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8874 (CMPtype): Define as __gcc_CMPtype.
8875
532bfb0a
AJ
88762009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8877
8878 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8879 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8880
e3ac77ff
RG
88812009-04-17 Richard Guenther <rguenther@suse.de>
8882
8883 PR tree-optimization/39746
8884 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8885 special-casing for builtins and static variable use/def.
8886 (call_may_clobber_ref_p_1): Likewise.
8887
7072a650
ILT
88882009-04-16 Ian Lance Taylor <iant@google.com>
8889
8890 * df.h: Include "timevar.h".
8891 (struct df_problem): Change tv_id field to timevar_id_t.
8892 * tree-pass.h: Include "timevar.h".
8893 (struct opt_pass): Change tv_id field to timevar_id_t.
8894 * timevar.h (timevar_id_t): Define TV_NONE.
8895 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8896 TV_NONE rather than tv_id != 0.
8897 (execute_one_pass): Likewise.
8898 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8899 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8900 dependencies to $(TREE_PASS_H).
8901 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8902 to TV_NONE.
8903 (pass_branch_target_load_optimize2): Likewise.
8904 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8905 (pass_outof_cfg_layout_mode): Likewise.
8906 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8907 (pass_rebuild_cgraph_edges): Likewise.
8908 (pass_remove_cgraph_callee_edges): Likewise.
8909 * df-core.c (pass_df_initialize_opt): Likewise.
8910 (pass_df_initialize_no_opt): Likewise.
8911 (pass_df_finish): Likewise.
8912 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8913 * except.c (pass_set_nothrow_function_flags): Likewise.
8914 (pass_convert_to_eh_region_ranges): Likewise.
8915 * final.c (pass_compute_alignments): Likewise.
8916 * function.c (pass_instantiate_virtual_regs): Likewise.
8917 (pass_init_function): Likewise.
8918 (pass_leaf_regs): Likewise.
8919 (pass_match_asm_constraints): Likewise.
8920 * gimple-low.c (pass_lower_cf): Likewise.
8921 (pass_mark_used_blocks): Likewise.
8922 * init-regs.c (pass_initialize_regs): Likewise.
8923 * integrate.c (pass_initial_value_sets): Likewise.
8924 * ira.c (pass_ira): Likewise.
8925 * jump.c (pass_cleanup_barriers): Likewise.
8926 * omp-low.c (pass_expand_omp): Likewise.
8927 (pass_lower_omp): Likewise.
8928 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8929 * recog.c (pass_split_all_insns): Likewise.
8930 (pass_split_after_reload): Likewise.
8931 (pass_split_before_regstack): Likewise.
8932 (pass_split_before_sched2): Likewise.
8933 (pass_split_for_shorten_branches): Likewise.
8934 * reginfo.c (pass_reginfo_init): Likewise.
8935 (pass_subregs_of_mode_init): Likewise.
8936 (pass_subregs_of_mode_finish): Likewise.
8937 * passes.c (pass_postreload): Likewise.
8938 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8939 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8940 (pass_warn_function_return): Likewise.
8941 (pass_warn_function_noreturn): Likewise.
8942 * tree-complex.c (pass_lower_complex): Likewise.
8943 (pass_lower_complex_O0): Likewise.
8944 * tree-if-conv.c (pass_if_conversion): Likewise.
8945 * tree-into-ssa.c (pass_build_ssa): Likewise.
8946 * tree-mudflap.c (pass_mudflap_1): Likewise.
8947 (pass_mudflap_2): Likewise.
8948 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8949 (pass_mudflap_2): Likewise.
8950 * tree-nrv.c (pass_return_slot): Likewise.
8951 * tree-object-size.c (pass_object_sizes): Likewise.
8952 * tree-optimize.c (pass_all_optimizations): Likewise.
8953 (pass_early_local_passes): Likewise.
8954 (pass_all_early_optimizations): Likewise.
8955 (pass_cleanup_cfg): Likewise.
8956 (pass_cleanup_cfg_post_optimizing): Likewise.
8957 (pass_free_datastructures): Likewise.
8958 (pass_free_cfg_annotations): Likewise.
8959 (pass_fixup_cfg): Likewise.
8960 (pass_init_datastructures): Likewise.
8961 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8962 (pass_late_warn_uninitialized): Likewise.
8963 (pass_update_address_taken): Likewise.
8964 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8965 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8966 (pass_cse_sincos): Likewise.
8967 (pass_convert_to_rsqrt): Likewise.
8968 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8969 * tree-stdarg.c (pass_stdarg): Likewise.
8970 * tree-tailcall.c (pass_tail_recursion): Likewise.
8971 (pass_tail_calls): Likewise.
8972 * tree-vect-generic.c (pass_lower_vector): Likewise.
8973 (pass_lower_vector_ssa): Likewise.
8974 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8975
0051ef59
JM
89762009-04-16 Joseph Myers <joseph@codesourcery.com>
8977
8978 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8979 XLR entry.
8980 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8981 Handle -march=xlr.
8982 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8983 logical and signext.
8984
b3f8558a
KK
89852009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8986
8987 PR target/39767
8988 * config/sh/predicates.md (arith_operand): Check if the operand
8989 of TRUNCATE is a REG.
8990
f57597d9
KH
89912009-04-16 Kazu Hirata <kazu@codesourcery.com>
8992
8993 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8994 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8995
b172d063
KH
89962009-04-16 Kazu Hirata <kazu@codesourcery.com>
8997
8998 * tree-iterator.c (tsi_split_statement_list_after,
8999 tsi_split_statement_list_before): Remove.
9000 * tree-iterator.h: Remove the prototypes for
532bfb0a 9001 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 9002
78fe4f1f
KH
90032009-04-16 Kazu Hirata <kazu@codesourcery.com>
9004
9005 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9006 * tree-ssa-propagate.h: Remove the prototype for
9007 stmt_makes_single_load.
9008
43dd3201
KH
90092009-04-16 Kazu Hirata <kazu@codesourcery.com>
9010
9011 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9012 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9013
4252a4aa
KH
90142009-04-16 Kazu Hirata <kazu@codesourcery.com>
9015
9016 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9017
bfb69968
KH
90182009-04-16 Kazu Hirata <kazu@codesourcery.com>
9019
9020 * except.c (eh_region_outer_p): Remove.
9021 * except.h: Remove the prototype for eh_region_outer_p.
9022
c7db7fa5
KH
90232009-04-16 Kazu Hirata <kazu@codesourcery.com>
9024
9025 * function.c (current_function_assembler_name): Remove.
9026 * function.h: Remove the prototype for
9027 current_function_assembler_name.
9028
efc0b2bd
ILT
90292009-04-16 Ian Lance Taylor <iant@google.com>
9030
532bfb0a 9031 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
9032 (add_reg_note): Call alloc_reg_note.
9033 * rtl.h (alloc_reg_note): Declare.
9034 * combine.c (try_combine): Use alloc_reg_note.
9035 (recog_for_combine, move_deaths): Likewise.
9036 (distribute_notes): Use alloc_reg_note and add_reg_note.
9037 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9038 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9039 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9040
6080348f
VM
90412009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9042
9043 PR rtl-optimization/39762
9044 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9045 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9046 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9047
6080348f
VM
9048 * ira-conflicts.c (process_regs_for_copy): Use function
9049 ira_get_register_move_cost instead of global
9050 ira_register_move_cost.
9051
9052 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9053 color_pass, move_spill_restore, update_curr_costs): Ditto.
9054
9055 * ira-lives.c (process_single_reg_class_operands): Ditto.
9056
9057 * ira-emit.c (emit_move_list): Ditto.
9058
9059 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9060 (record_reg_classes): Ditto. Use functions
9061 ira_get_register_move_cost and ira_get_may_move_cost instead of
9062 global vars ira_register_move_cost, ira_may_move_out_cost and
9063 ira_may_move_in_cost.
9064 (record_address_regs): Don't call ira_init_register_move_cost.
9065 Use function ira_get_may_move_cost instead of global
9066 ira_may_move_in_cost.
9067 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9068 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9069 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9070
646bea10
RG
90712009-04-16 Richard Guenther <rguenther@suse.de>
9072
9073 * tree-cfg.c (verify_gimple_assign_binary):
9074 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9075 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9076 (create_general_new_stmt): Note that this function is broken.
9077
02e819ff
RAE
90782009-04-16 Rafael Avila de Espindola <espindola@google.com>
9079
9080 * common.opt (fhelp): Add Var(help_flag).
9081 * gcc-plugin.h (plugin_info): Add help.
9082 * plugin.c (plugin_name_args): Add help.
9083 (register_plugin_info): Set plugin->help.
9084 (print_help_one_plugin): New.
9085 (print_plugins_help): New.
9086 * plugin.h (print_plugins_help): New.
9087 * toplev.c (toplev_main): Call print_plugins_help if needed.
9088
ccacdf06
RG
90892009-04-16 Richard Guenther <rguenther@suse.de>
9090
9091 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9092 (gimple_ior_addresses_taken_1): New function.
9093 (gimple_ior_addresses_taken): Likewise.
9094 * gimple.h (struct gimple_statement_with_ops_base): Remove
9095 addresses_taken member.
9096 (gimple_ior_addresses_taken): Declare.
9097 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9098 gimple_set_addresses_taken): Remove.
9099 * ipa-reference.c (mark_address): New function.
9100 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9101 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9102 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9103 (gimple_add_to_addresses_taken): Remove.
9104 (get_tmr_operands): Call mark_address_taken.
9105 (get_asm_expr_operands): Likewise.
9106 (get_expr_operands): Likewise.
9107 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9108 (free_stmt_operands): Do not free it.
9109 * tree-ssa.c (delete_tree_ssa): Likewise.
9110 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9111
346ef3fa
RG
91122009-04-16 Richard Guenther <rguenther@suse.de>
9113
9114 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9115 (walk_stmt_load_store_ops): Likewise.
9116 * gimple.c (get_base_loadstore): New function.
9117 (walk_stmt_load_store_addr_ops): Likewise.
9118 (walk_stmt_load_store_ops): Likewise.
9119 * ipa-pure-const.c (check_op): Simplify.
9120 (check_load, check_store): New functions.
9121 (check_stmt): Use walk_stmt_load_store_ops.
9122 * ipa-reference.c (mark_load): Adjust signature.
9123 (mark_store): Likewise.
9124 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9125
44e9f006
RAE
91262009-04-16 Rafael Avila de Espindola <espindola@google.com>
9127
9128 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9129 (plugin_info): New.
9130 * opts.c (common_handle_option): Don't call print_version.
9131 * plugin.c (plugin_name_args): Add version.
9132 (register_plugin_info): New.
9133 (register_callback): Handle PLUGIN_INFO.
9134 (try_init_one_plugin): New.
9135 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9136 if failed to init.
9137 (finalize_one_plugin): New.
9138 (finalize_plugins): New.
9139 (print_one_plugin): New.
9140 (print_plugins_versions): New.
9141 * plugin.h (print_plugins_versions): New.
9142 (finalize_plugins): New.
9143 * toplev.c (compile_file): Don't call initialize_plugins.
9144 (print_version): Call print_plugins_versions.
9145 (toplev_main): Call initialize_plugins. Print version if needed.
9146 Call finalize_plugins.
9147
41fd0f9b
RAE
91482009-04-16 Rafael Avila de Espindola <espindola@google.com>
9149
9150 * common.opt (fversion): New.
9151 * gcc.c (print_version): New.
9152 (process_command): Don't print the version. Just set print_version.
9153 (main): Print version. Call subprocesses if print_version and
9154 verbose_flag are set.
9155 * opts.c (common_handle_option): Handle OPT_fversion.
9156
550918ca 91572009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9158 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9159
9160 PR tree-optimization/39698
9161 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9162 type of the reduction variable. Only generate the def if
9163 it is needed.
9164
9165 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9166 make sure to first convert to an integer of the same precision.
9167 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9168 the type of the evolution correctly in computing the new
9169 induction variable base.
9170
54634841
RG
91712009-04-16 Richard Guenther <rguenther@suse.de>
9172
9173 PR middle-end/39625
9174 * tree-cfg.c (make_blocks): Split statements with to-be
9175 abnormal SSA names on the lhs.
9176
b6fc2cdb
PB
91772009-04-16 Paolo Bonzini <bonzini@gnu.org>
9178
9179 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9180 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9181 * c-typeck.c (really_start_incremental_init): Likewise.
9182 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9183 (TARGET_INITIALIZER): Remove it.
9184 * target.h (struct target): Remove vector_opaque_p.
9185 * tree.c (build_opaque_vector_type): New.
9186 * tree.h (TYPE_VECTOR_OPAQUE): New.
9187 (build_opaque_vector_type): Declare.
9188 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9189 * config/rs6000/rs6000.c (build_opaque_vector_type,
9190 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9191 (rs6000_init_builtins): Use build_opaque_vector_type for
9192 opaque_V4SI_type_node.
9193
a417cdd9
CM
91942009-04-15 Catherine Moore <clm@codesourcery.com>
9195
532bfb0a
AJ
9196 * debug.h (set_name): Declare.
9197 * dwarf2out.c (dwarf2out_set_name): Declare.
9198 (dwarf2_debug_hooks): Add set_name.
9199 (find_AT_string): New.
9200 (add_AT_string): Call find_AT_string.
9201 (dwarf2out_set_name): New.
9202 * cp/decl.c (grokdeclarator): Call set_name.
9203 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9204 * debug.c (do_nothing_debug_hooks): Likewise.
9205 * dbxout.c (dbx_debug_hooks): Likewise.
9206 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9207
60839f5d 92082009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9209
532bfb0a
AJ
9210 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9211 reg for single-precision FPU.
9212 * config/rs6000/rs6000.md (movsi_internal1): Only for
9213 !TARGET_SINGLE_FPU.
9214 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9215 single-precision FP regs.
9216
ada39f0b
RG
92172009-04-15 Richard Guenther <rguenther@suse.de>
9218
9219 * omp-low.c (lower_rec_input_clauses): Build correct address
9220 expressions.
9221 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9222 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9223 (generate_memset_zero): Fix types.
9224 * tree-profile.c (prepare_instrumented_value): Correctly
9225 widen a pointer.
9226
6866c6e8
ILT
92272009-04-15 Ian Lance Taylor <iant@google.com>
9228
9229 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9230 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9231 for -Wall and for -Wc++-compat.
9232 (c_common_post_options): For C++, set warn_enum_compare if not
9233 already set.
9234 * c-tree.h (struct c_expr): Add field original_type.
9235 (build_external_ref): Update declaration.
9236 * c-parser.c (c_parser_braced_init): Set original_type.
9237 (c_parser_initelt): Likewise.
9238 (c_parser_expr_no_commas): Likewise.
9239 (c_parser_conditional_expression): Likewise.
9240 (c_parser_cast_expression): Likewise.
9241 (c_parser_unary_expression): Likewise. Pull setting of
9242 original_code to top of function.
9243 (c_parser_sizeof_expression): Set original_type.
9244 (c_parser_alignof_expression): Likewise.
9245 (c_parser_postfix_expression): Likewise. Pull setting of
9246 original_code to top of function.
532bfb0a 9247 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9248 (c_parser_postfix_expression_after_primary): Likewise.
9249 (c_parser_expression): Likewise.
9250 * c-typeck.c (build_external_ref): Add type parameter. Change all
9251 callers.
9252 (c_expr_sizeof_expr): Set original_type field.
9253 (parser_build_unary_op): Likewise.
9254 (parser_build_binary_op): Likewise. Optionally warn about
9255 comparisons of enums of different types.
9256 (digest_init): Set original_type field.
9257 (really_start_incremental_init): Likewise.
9258 (push_init_level, pop_init_level): Likewise.
9259 * doc/invoke.texi (Warning Options): -Wenum-compare now
9260 supported in C.
9261
f116fecf
RG
92622009-04-15 Richard Guenther <rguenther@suse.de>
9263
9264 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9265 out a necessary conversion.
9266 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9267 names we didn't value number.
9268 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9269
25e20805
RG
92702009-04-15 Richard Guenther <rguenther@suse.de>
9271
9272 PR tree-optimization/39764
9273 * tree-ssa-ccp.c (get_value): Canonicalize value with
9274 canonicalize_float_value.
9275
90cc3676
JH
92762009-04-15 Jan Hubicka <jh@suse.cz>
9277
9278 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9279 Wrong version of patch.
9280
6d14c006
JH
92812009-04-15 Jan Hubicka <jh@suse.cz>
9282
9283 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9284
5afaa917
NS
92852009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9286
9287 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9288 our distinct integral and vector types.
9289
3b482fca
RAE
92902009-04-15 Rafael Avila de Espindola <espindola@google.com>
9291
9292 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9293 * init.c (build_vtbl_address): Remove call to assemble_external.
9294
6cd1d2e2
DJ
92952009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9296
9297 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9298 output for other floating point modes.
9299
dab71827
DN
93002009-04-14 Diego Novillo <dnovillo@google.com>
9301
9302 * diagnostic.c (diagnostic_report_diagnostic): Do not
9303 warn about loaded plugins for DK_ERROR and DK_WARNING.
9304 * c-decl.c (declspecs_add_type): Move call to
9305 invoke_plugin_callbacks ...
9306 * c-parser.c (c_parser_declspecs): ... here.
9307 * plugin.c (dump_active_plugins): Tidy output.
9308
68a607d8
DN
93092009-04-14 Diego Novillo <dnovillo@google.com>
9310 Le-Chun Wu <lcwu@google.com>
9311
9312 * configure.ac: Add --enable-plugin support.
9313 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9314 * Makefile.in (PLUGIN_H): Define.
9315 Export ENABLE_PLUGIN and GMPINC to site.exp.
9316 Add PLUGINLIBS to link command.
9317 Add/modify dependencies for plugin.o and files including plugin.h.
9318 (plugin.o): New.
9319 * config.in: Regenerate.
2ba9daa7 9320
68a607d8
DN
9321 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9322 OPT_fplugin_arg_.
9323
93242009-04-14 Le-Chun Wu <lcwu@google.com>
9325
9326 * tree-pass.h (register_one_dump_file): Add a prototype for
9327 register_one_dump_file.
9328 * toplev.c (compile_file): Call initialize_plugins.
9329 (do_compile): Call invoke_plugin_callbacks.
9330 (toplev_main): Call invoke_plugin_callbacks.
9331 * common.opt: Add -fplugin= and -fplugin-arg-.
9332 * gcc-plugin.h: New public header file for plugins to include.
9333 * plugin.c: New source file.
9334 * plugin.h: New internal header file.
9335 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9336
68a607d8
DN
9337 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9338
93392009-04-14 Diego Novillo <dnovillo@google.com>
9340
9341 * doc/plugins.texi: New.
9342 * doc/gccint.texi: Add reference to Plugins chapter.
9343 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9344 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9345 loaded plugins, if any.
9346 * timevar.def (TV_PLUGIN_INIT): Define.
9347 (TV_PLUGIN_RUN): Define.
9348 * plugin.c: Include timevar.h
9349 (plugins_active_p): New.
9350 (dump_active_plugins): New.
9351 (debug_active_plugins): New.
9352
50617257
JM
93532009-04-14 Joseph Myers <joseph@codesourcery.com>
9354
9355 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9356 library paths.
9357 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9358
b32f6fff
KH
93592009-04-14 Kazu Hirata <kazu@codesourcery.com>
9360
9361 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9362 the same as a minus without a shift.
9363
85d04fa2
NC
93642009-04-14 Nick Clifton <nickc@redhat.com>
9365
9366 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9367 comparisons with small integers will always produce a short
9368 branch.
9369
e495a0c8
RAE
93702009-04-14 Rafael Avila de Espindola <espindola@google.com>
9371
9372 Merge:
e495a0c8
RAE
9373 2008-12-19 Diego Novillo <dnovillo@google.com>
9374
532bfb0a 9375 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9376
ad41bd84 93772009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9378
9379 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9380 verification.
9381 (verify_gimple_assign_binary): Likewise. Handle shifts and
9382 rotates correctly.
9383 (verify_gimple_phi): Print the mismatched argument position.
9384 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9385 Fix types.
9386 (vect_update_init_of_dr): Likewise.
9387 * matrix-reorg.c (transform_access_sites): Do what the
9388 comment suggests.
9389 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9390
60839f5d 93912009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9392
9393 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9394 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9395 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9396 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9397 remove duplicate config
9398
b0e2d008
DR
93992009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9400
9401 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9402 file_name:line_number type locator of the call site.
2ba9daa7 9403
1244a8b7
VM
94042009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9405
9406 * genautomata.c: Put blank after comma.
9407 (automaton_decls): New.
9408 (struct unit_usage): Add comments to member next.
9409 (store_alt_unit_usage): Keep the list ordered.
9410 (unit_present_on_list_p, equal_alternatives_p): New.
9411 (check_regexp_units_distribution): Check units distribution
9412 correctness correctly.
9413 (main): Don't write automata if error is found. Return correct
9414 exit code.
2ba9daa7 9415
1244a8b7
VM
9416 * config/m68k/cf.md (cfv4_ds): Remove.
9417 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9418 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9419
9420 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9421 power4-load-ext, power4-store, power4-store-update,
9422 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9423 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9424 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9425 power4-sqrt, power4-isync): Modify reservation to make correct
9426 unit distribution to automata.
9427
9428 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9429 power5-store-update, power5-two, power5-three, power5-lmul,
9430 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9431
f7dd1864
AN
94322009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9433
9434 * except.c (pass_set_nothrow_function_flags): Set name and add
9435 TODO_dump_func.
9436 (set_nothrow_function_flags): Mention in the dump file when
9437 changing a function to nothrow.
9438
59a1171f
OS
94392009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9440
9441 PR/39066
9442 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9443 instead of unsigned long.
9444
934c2060
RR
94452009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9446
f7dd1864
AN
9447 * config/arm/arm.c (return_used_this_function): Remove.
9448 (arm_output_function_prologue): Remove use of
934c2060 9449 return_used_this_function.
f7dd1864 9450 (output_return_instruction): Replace use of
934c2060
RR
9451 return_used_this_function
9452 by cfun->machine->return_used_this_function.
f7dd1864
AN
9453 (arm_output_epilogue): Likewise.
9454 (arm_output_function_epilogue): Likewise.
9455 (thumb_unexpanded_epilogue): Likewise.
9456 * config/arm/arm.h (struct machine_function):
934c2060 9457 New member return_used_this_function.
f7dd1864 9458
ae5cc016
MM
94592009-04-12 Mark Mitchell <mark@codesourcery.com>
9460
9461 * doc/install.texi: Correct description of default directory for
9462 --with-gxx-include-dir.
9463
a0ce68df 94642009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9465
9466 * fold-const.c (build_range_check): Properly deal with enumeral and
9467 boolean base types.
9468
3906a4a1
SB
94692009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9470
9471 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9472 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9473 * params.h (MAX_GCSE_PASSES): Remove.
9474 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9475 in sequence. Remove ability to run multiple passes.
9476 (bypass_jumps): Report run as third CPROP pass.
9477
efaadb93
AN
94782009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9479
9480 PR middle-end/39651
9481 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9482 when deciding whether the whole SEQUENCE can throw.
9483
4c48007b
UB
94842009-04-12 Uros Bizjak <ubizjak@gmail.com>
9485
9486 PR target/39740
9487 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9488 offseted label references.
9489
b4104018
JH
94902009-04-11 Jan Hubicka <jh@suse.cz>
9491
9492 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9493
32848948
RG
94942009-04-11 Richard Guenther <rguenther@suse.de>
9495
9496 PR middle-end/39732
9497 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9498 return variables as TREE_ADDRESSABLE.
9499
8810712e
RG
95002009-04-11 Richard Guenther <rguenther@suse.de>
9501
9502 PR tree-optimization/39713
9503 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9504 reference trees have SSA_NAME operands.
9505
fa78c0c1
RG
95062009-04-11 Richard Guenther <rguenther@suse.de>
9507
9508 PR c/39712
9509 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9510 address expressions.
9511
4d722130
DK
95122009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9513
9514 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9515 match changes in Cygwin 1.7
9516 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9517 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9518
567a90f5
PB
95192009-04-10 Paolo Bonzini <bonzini@gnu.org>
9520
9521 PR tree-optimization/39701
9522 * doc/invoke.texi (Optimization Options): Document change in
9523 meaning and initialization of -fdelete-null-pointer-checks.
9524
1ad2f450
L
95252009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9526
9527 PR middle-end/39701
9528 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9529
9530 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9531 here.
9532
9533 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9534
1afc5373
CF
95352009-04-10 Chao-ying Fu <fu@mips.com>
9536
9537 * doc/tm.texi (Instruction Output): Document
9538 TARGET_ASM_FINAL_POSTSCAN_INSN.
9539 * target.h (final_postscan_insn): New field in asm_out.
9540 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9541 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9542 * final.c (final_scan_insn): Call
9543 targetm.asm_out.final_postscan_insn after outputting
9544 an asm macro and a normal instruction.
9545
9546 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9547 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9548 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9549 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9550 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9551
4d35e75c
PB
95522009-04-10 Paolo Bonzini <bonzini@gnu.org>
9553
9554 PR middle-end/39701
1ad2f450
L
9555 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9556 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9557
62c49b83
L
95582009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9559
9560 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9561
80558628
L
95622009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9563
9564 PR target/39678
9565 * config/i386/i386.c (classify_argument): Handle SCmode with
9566 (bit_offset % 64) != 0.
9567
8c70d28b
SL
95682009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9569
9570 * doc/invoke.texi (Optimize Options): Add cross-reference to
9571 -Q --help=optimizers examples.
9572
e1ff19bf
BE
95732009-04-10 Ben Elliston <bje@au.ibm.com>
9574
9575 PR target/36800
9576 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9577 regalign for the reg == fpr and TDmode case.
9578
52daca75
DA
95792009-04-09 David Ayers <ayers@fsfe.org>
9580
9581 PR objc/29200
9582 * objc/objc-act.c (warn_with_method): Remove helper function.
9583 (check_duplicates): Call warning and inform directly.
9584 (really_start_method): Likewise.
9585
b45f0e58
PB
95862009-04-09 Paolo Bonzini <bonzini@gnu.org>
9587
9588 * expmed.c (expand_divmod): Always use a comparison for a division
9589 by a large unsigned integer.
9590
1ad2f450
L
9591 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9592 for things others than variables or functions as nonzero.
b45f0e58 9593
748086b7
JJ
95942009-04-09 Nick Clifton <nickc@redhat.com>
9595
9596 * unwind-compat.c: Change copyright header to refer to version
9597 3 of the GNU General Public License with version 3.1 of the
9598 GCC Runtime Library Exception and to point readers at the
7a715bba 9599 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9600 * config/alpha/crtfastmath.c: Likewise.
9601 * config/alpha/linux-unwind.h: Likewise.
9602 * config/alpha/qrnnd.asm: Likewise.
9603 * config/alpha/vms-crt0-64.c: Likewise.
9604 * config/alpha/vms-crt0.c: Likewise.
9605 * config/alpha/vms-dwarf2.asm: Likewise.
9606 * config/alpha/vms-dwarf2eh.asm: Likewise.
9607 * config/alpha/vms-psxcrt0-64.c: Likewise.
9608 * config/alpha/vms-psxcrt0.c: Likewise.
9609 * config/alpha/vms_tramp.asm: Likewise.
9610 * config/arc/initfini.c: Likewise.
9611 * config/arc/lib1funcs.asm: Likewise.
9612 * config/arm/bpabi-v6m.S: Likewise.
9613 * config/arm/bpabi.S: Likewise.
9614 * config/arm/bpabi.c: Likewise.
9615 * config/arm/crti.asm: Likewise.
9616 * config/arm/crtn.asm: Likewise.
9617 * config/arm/ieee754-df.S: Likewise.
9618 * config/arm/ieee754-sf.S: Likewise.
9619 * config/arm/lib1funcs.asm: Likewise.
9620 * config/arm/libunwind.S: Likewise.
9621 * config/arm/linux-atomic.c: Likewise.
9622 * config/arm/mmintrin.h: Likewise.
9623 * config/arm/pr-support.c: Likewise.
9624 * config/arm/unaligned-funcs.c: Likewise.
9625 * config/arm/unwind-arm.c: Likewise.
9626 * config/arm/unwind-arm.h: Likewise.
9627 * config/avr/libgcc.S: Likewise.
9628 * config/bfin/crti.s: Likewise.
9629 * config/bfin/crtlibid.s: Likewise.
9630 * config/bfin/crtn.s: Likewise.
9631 * config/bfin/lib1funcs.asm: Likewise.
9632 * config/bfin/linux-unwind.h: Likewise.
9633 * config/cris/arit.c: Likewise.
9634 * config/cris/cris_abi_symbol.c: Likewise.
9635 * config/darwin-64.c: Likewise.
9636 * config/darwin-crt2.c: Likewise.
9637 * config/darwin-crt3.c: Likewise.
9638 * config/darwin.h: Likewise.
9639 * config/dbxelf.h: Likewise.
9640 * config/dfp-bit.c: Likewise.
9641 * config/dfp-bit.h: Likewise.
9642 * config/elfos.h: Likewise.
9643 * config/fixed-bit.c: Likewise.
9644 * config/fixed-bit.h: Likewise.
9645 * config/fp-bit.c: Likewise.
9646 * config/fp-bit.h: Likewise.
9647 * config/fr30/crti.asm: Likewise.
9648 * config/fr30/crtn.asm: Likewise.
9649 * config/fr30/lib1funcs.asm: Likewise.
9650 * config/freebsd-spec.h: Likewise.
9651 * config/frv/cmovd.c: Likewise.
9652 * config/frv/cmovh.c: Likewise.
9653 * config/frv/cmovw.c: Likewise.
9654 * config/frv/frvbegin.c: Likewise.
9655 * config/frv/frvend.c: Likewise.
9656 * config/frv/lib1funcs.asm: Likewise.
9657 * config/glibc-stdint.h: Likewise.
9658 * config/h8300/clzhi2.c: Likewise.
9659 * config/h8300/crti.asm: Likewise.
9660 * config/h8300/crtn.asm: Likewise.
9661 * config/h8300/ctzhi2.c: Likewise.
9662 * config/h8300/fixunssfsi.c: Likewise.
9663 * config/h8300/lib1funcs.asm: Likewise.
9664 * config/h8300/parityhi2.c: Likewise.
9665 * config/h8300/popcounthi2.c: Likewise.
9666 * config/i386/ammintrin.h: Likewise.
9667 * config/i386/att.h: Likewise.
9668 * config/i386/avxintrin.h: Likewise.
9669 * config/i386/biarch64.h: Likewise.
9670 * config/i386/bmmintrin.h: Likewise.
9671 * config/i386/cpuid.h: Likewise.
9672 * config/i386/cross-stdarg.h: Likewise.
9673 * config/i386/crtfastmath.c: Likewise.
9674 * config/i386/crtprec.c: Likewise.
9675 * config/i386/cygming-crtbegin.c: Likewise.
9676 * config/i386/cygming-crtend.c: Likewise.
9677 * config/i386/cygwin.asm: Likewise.
9678 * config/i386/emmintrin.h: Likewise.
9679 * config/i386/gmm_malloc.h: Likewise.
9680 * config/i386/gthr-win32.c: Likewise.
9681 * config/i386/i386.h: Likewise.
9682 * config/i386/immintrin.h: Likewise.
9683 * config/i386/linux-unwind.h: Likewise.
9684 * config/i386/linux64.h: Likewise.
9685 * config/i386/mm3dnow.h: Likewise.
9686 * config/i386/mmintrin-common.h: Likewise.
9687 * config/i386/mmintrin.h: Likewise.
9688 * config/i386/nmmintrin.h: Likewise.
9689 * config/i386/pmm_malloc.h: Likewise.
9690 * config/i386/pmmintrin.h: Likewise.
9691 * config/i386/smmintrin.h: Likewise.
9692 * config/i386/sol2-c1.asm: Likewise.
9693 * config/i386/sol2-ci.asm: Likewise.
9694 * config/i386/sol2-cn.asm: Likewise.
9695 * config/i386/sol2-gc1.asm: Likewise.
9696 * config/i386/tmmintrin.h: Likewise.
9697 * config/i386/unix.h: Likewise.
9698 * config/i386/w32-unwind.h: Likewise.
9699 * config/i386/wmmintrin.h: Likewise.
9700 * config/i386/x86-64.h: Likewise.
9701 * config/i386/x86intrin.h: Likewise.
9702 * config/i386/xmmintrin.h: Likewise.
9703 * config/ia64/crtbegin.asm: Likewise.
9704 * config/ia64/crtend.asm: Likewise.
9705 * config/ia64/crtfastmath.c: Likewise.
9706 * config/ia64/crti.asm: Likewise.
9707 * config/ia64/crtn.asm: Likewise.
9708 * config/ia64/fde-glibc.c: Likewise.
9709 * config/ia64/lib1funcs.asm: Likewise.
9710 * config/ia64/linux-unwind.h: Likewise.
9711 * config/ia64/quadlib.c: Likewise.
9712 * config/ia64/unwind-ia64.c: Likewise.
9713 * config/linux.h: Likewise.
9714 * config/m32c/m32c-lib1.S: Likewise.
9715 * config/m32c/m32c-lib2-trapv.c: Likewise.
9716 * config/m32c/m32c-lib2.c: Likewise.
9717 * config/m32r/initfini.c: Likewise.
9718 * config/m68hc11/larith.asm: Likewise.
9719 * config/m68hc11/m68hc11-crt0.S: Likewise.
9720 * config/m68k/cf.md: Likewise.
9721 * config/m68k/crti.s: Likewise.
9722 * config/m68k/crtn.s: Likewise.
9723 * config/m68k/lb1sf68.asm: Likewise.
9724 * config/m68k/linux-unwind.h: Likewise.
9725 * config/mcore/crti.asm: Likewise.
9726 * config/mcore/crtn.asm: Likewise.
9727 * config/mcore/lib1.asm: Likewise.
9728 * config/mips/linux-unwind.h: Likewise.
9729 * config/mips/loongson.h: Likewise.
9730 * config/mips/mips16.S: Likewise.
9731 * config/mmix/crti.asm: Likewise.
9732 * config/mmix/crtn.asm: Likewise.
9733 * config/pa/fptr.c: Likewise.
9734 * config/pa/hpux-unwind.h: Likewise.
9735 * config/pa/lib2funcs.asm: Likewise.
9736 * config/pa/linux-atomic.c: Likewise.
9737 * config/pa/linux-unwind.h: Likewise.
9738 * config/pa/milli64.S: Likewise.
9739 * config/pa/quadlib.c: Likewise.
9740 * config/pa/stublib.c: Likewise.
9741 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9742 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9743 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9744 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9745 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9746 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9747 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9748 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9749 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9750 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9751 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9752 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9753 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9754 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9755 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9756 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9757 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9758 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9759 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9760 * config/rs6000/750cl.h: Likewise.
9761 * config/rs6000/altivec.h: Likewise.
9762 * config/rs6000/biarch64.h: Likewise.
9763 * config/rs6000/crtresfpr.asm: Likewise.
9764 * config/rs6000/crtresgpr.asm: Likewise.
9765 * config/rs6000/crtresxfpr.asm: Likewise.
9766 * config/rs6000/crtresxgpr.asm: Likewise.
9767 * config/rs6000/crtsavfpr.asm: Likewise.
9768 * config/rs6000/crtsavgpr.asm: Likewise.
9769 * config/rs6000/darwin-asm.h: Likewise.
9770 * config/rs6000/darwin-fallback.c: Likewise.
9771 * config/rs6000/darwin-fpsave.asm: Likewise.
9772 * config/rs6000/darwin-ldouble.c: Likewise.
9773 * config/rs6000/darwin-tramp.asm: Likewise.
9774 * config/rs6000/darwin-unwind.h: Likewise.
9775 * config/rs6000/darwin-vecsave.asm: Likewise.
9776 * config/rs6000/darwin-world.asm: Likewise.
9777 * config/rs6000/e500crtres32gpr.asm: Likewise.
9778 * config/rs6000/e500crtres64gpr.asm: Likewise.
9779 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9780 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9781 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9782 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9783 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9784 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9785 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9786 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9787 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9788 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9789 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9790 * config/rs6000/eabi-ci.asm: Likewise.
9791 * config/rs6000/eabi-cn.asm: Likewise.
9792 * config/rs6000/eabi.asm: Likewise.
9793 * config/rs6000/linux-unwind.h: Likewise.
9794 * config/rs6000/linux64.h: Likewise.
9795 * config/rs6000/paired.h: Likewise.
9796 * config/rs6000/paired.md: Likewise.
9797 * config/rs6000/ppc64-fp.c: Likewise.
9798 * config/rs6000/ppu_intrinsics.h: Likewise.
9799 * config/rs6000/rs6000.h: Likewise.
9800 * config/rs6000/si2vmx.h: Likewise.
9801 * config/rs6000/sol-ci.asm: Likewise.
9802 * config/rs6000/sol-cn.asm: Likewise.
9803 * config/rs6000/spe.h: Likewise.
9804 * config/rs6000/spu2vmx.h: Likewise.
9805 * config/rs6000/sysv4.h: Likewise.
9806 * config/rs6000/tramp.asm: Likewise.
9807 * config/rs6000/vec_types.h: Likewise.
9808 * config/s390/linux-unwind.h: Likewise.
9809 * config/s390/tpf-unwind.h: Likewise.
9810 * config/score/crti.asm: Likewise.
9811 * config/score/crtn.asm: Likewise.
9812 * config/sh/crt1.asm: Likewise.
9813 * config/sh/crti.asm: Likewise.
9814 * config/sh/crtn.asm: Likewise.
9815 * config/sh/divtab-sh4-300.c: Likewise.
9816 * config/sh/divtab-sh4.c: Likewise.
9817 * config/sh/divtab.c: Likewise.
9818 * config/sh/lib1funcs-4-300.asm: Likewise.
9819 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9820 * config/sh/lib1funcs.asm: Likewise.
9821 * config/sh/lib1funcs.h: Likewise.
9822 * config/sh/linux-atomic.asm: Likewise.
9823 * config/sh/linux-unwind.h: Likewise.
9824 * config/sh/shmedia.h: Likewise.
9825 * config/sh/sshmedia.h: Likewise.
9826 * config/sh/ushmedia.h: Likewise.
9827 * config/sparc/crtfastmath.c: Likewise.
9828 * config/sparc/linux-unwind.h: Likewise.
9829 * config/sparc/sol2-c1.asm: Likewise.
9830 * config/sparc/sol2-ci.asm: Likewise.
9831 * config/sparc/sol2-cn.asm: Likewise.
9832 * config/spu/divmodti4.c: Likewise.
9833 * config/spu/divv2df3.c: Likewise.
9834 * config/spu/float_disf.c: Likewise.
9835 * config/spu/float_unsdidf.c: Likewise.
9836 * config/spu/float_unsdisf.c: Likewise.
9837 * config/spu/float_unssidf.c: Likewise.
9838 * config/spu/mfc_multi_tag_release.c: Likewise.
9839 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9840 * config/spu/mfc_tag_release.c: Likewise.
9841 * config/spu/mfc_tag_reserve.c: Likewise.
9842 * config/spu/mfc_tag_table.c: Likewise.
9843 * config/spu/multi3.c: Likewise.
9844 * config/spu/spu_internals.h: Likewise.
9845 * config/spu/spu_intrinsics.h: Likewise.
9846 * config/spu/spu_mfcio.h: Likewise.
9847 * config/spu/vec_types.h: Likewise.
9848 * config/spu/vmx2spu.h: Likewise.
9849 * config/stormy16/stormy16-lib2.c: Likewise.
9850 * config/svr4.h: Likewise.
9851 * config/sync.c: Likewise.
9852 * config/v850/lib1funcs.asm: Likewise.
9853 * config/vxlib-tls.c: Likewise.
9854 * config/vxlib.c: Likewise.
9855 * config/vxworks-dummy.h: Likewise.
9856 * config/xtensa/crti.asm: Likewise.
9857 * config/xtensa/crtn.asm: Likewise.
9858 * config/xtensa/ieee754-df.S: Likewise.
9859 * config/xtensa/ieee754-sf.S: Likewise.
9860 * config/xtensa/lib1funcs.asm: Likewise.
9861 * config/xtensa/lib2funcs.S: Likewise.
9862 * config/xtensa/linux-unwind.h: Likewise.
9863 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9864 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9865 * coretypes.h: Likewise.
9866 * crtstuff.c: Likewise.
9867 * defaults.h: Likewise.
9868 * dwarf2.h: Likewise.
9869 * emutls.c: Likewise.
9870 * gbl-ctors.h: Likewise.
9871 * gcov-io.h: Likewise.
9872 * ginclude/float.h: Likewise.
9873 * ginclude/iso646.h: Likewise.
9874 * ginclude/stdarg.h: Likewise.
9875 * ginclude/stdbool.h: Likewise.
9876 * ginclude/stddef.h: Likewise.
9877 * ginclude/stdfix.h: Likewise.
9878 * ginclude/stdint-gcc.h: Likewise.
9879 * ginclude/tgmath.h: Likewise.
9880 * gthr-aix.h: Likewise.
9881 * gthr-dce.h: Likewise.
9882 * gthr-gnat.c: Likewise.
9883 * gthr-gnat.h: Likewise.
9884 * gthr-lynx.h: Likewise.
9885 * gthr-mipssde.h: Likewise.
9886 * gthr-nks.h: Likewise.
9887 * gthr-posix.c: Likewise.
9888 * gthr-posix.h: Likewise.
9889 * gthr-posix95.h: Likewise.
9890 * gthr-rtems.h: Likewise.
9891 * gthr-single.h: Likewise.
9892 * gthr-solaris.h: Likewise.
9893 * gthr-tpf.h: Likewise.
9894 * gthr-vxworks.h: Likewise.
9895 * gthr-win32.h: Likewise.
9896 * gthr.h: Likewise.
9897 * libgcc2.c: Likewise.
9898 * libgcc2.h: Likewise.
9899 * libgcov.c: Likewise.
9900 * tsystem.h: Likewise.
9901 * typeclass.h: Likewise.
9902 * unwind-c.c: Likewise.
9903 * unwind-compat.h: Likewise.
9904 * unwind-dw2-fde-compat.c: Likewise.
9905 * unwind-dw2-fde-darwin.c: Likewise.
9906 * unwind-dw2-fde-glibc.c: Likewise.
9907 * unwind-dw2-fde.c: Likewise.
9908 * unwind-dw2-fde.h: Likewise.
9909 * unwind-dw2.c: Likewise.
9910 * unwind-dw2.h: Likewise.
9911 * unwind-generic.h: Likewise.
9912 * unwind-pe.h: Likewise.
9913 * unwind-sjlj.c: Likewise.
9914 * unwind.inc: Likewise.
9915 * config/arm/neon-gen.ml: Change generated copyright header to
9916 refer to version 3 of the GNU General Public License with
9917 version 3.1 of the GCC Runtime Library Exception and to point
9918 readers at the COPYING3 and COPYING3.RUNTIME files and the
9919 FSF's license web page.
9920 * config/arm/arm_neon.h: Regenerate.
9921
99222009-04-09 Jakub Jelinek <jakub@redhat.com>
9923
9924 * config/cris/cris.md: Change copyright header to refer to version
9925 3 of the GNU General Public License.
9926 * doc/install.texi2html: Change copyright header to refer to version
9927 3 of the GNU General Public License and to point readers at the
9928 COPYING3 file and the FSF's license web page.
9929 * config/vax/linux.h: Likewise.
9930
4a77c72b
PB
99312009-04-09 Paolo Bonzini <bonzini@gnu.org>
9932
1ad2f450
L
9933 * config/i386/i386.md (cmpcc): New.
9934 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9935 (sync_compare_and_swap_cc*): Delete.
9936
9937 * config/s390/s390.c (s390_compare_emitted): Remove.
9938 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9939 s390_compare_emitted used to be handled. Assert that modes match.
9940 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9941 refer to sync_compare_and_swap_ccsi.
9942 * config/s390/s390.h (s390_compare_emitted): Remove.
9943 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9944 instead of s390_compare_emitted.
9945 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9946 instead of s390_compare_emitted.
9947 * config/s390/s390.md (cmpcc): New.
9948 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9949 CC_REGNUM, do not pretend it's set.
9950 (sync_compare_and_swap_cc*): Delete.
9951 * config/s390/predicates.md (cc_reg_operand): New.
9952
9953 * expr.c (sync_compare_and_swap_cc): Delete.
9954 * optabs.h (sync_compare_and_swap_cc): Delete.
9955 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9956 is being used with can_compare_p.
9957 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9958 (find_cc_set): New.
9959 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9960 look for a MODE_CC set instead. Use emit_store_flag.
9961 (expand_compare_and_swap_loop): Likewise, with some additional
9962 complication to avoid a force_reg when useless. Use
9963 emit_cmp_and_jump_insns.
9964 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9965 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9966 sync_compare_and_swap documentation.
4a77c72b 9967
0c0efb33
JH
99682009-04-09 Jan Hubicka <jh@suse.cz>
9969
9970 * except.c (find_prev_try): Break out from ....
9971 (duplicate_eh_regions): ... here; properly update prev_try pointers
9972 when duplication part of tree.
9973 (dump_eh_tree): Improve dumping.
9974 (verify_eh_region): New.
9975 (verify_eh_tree): Use it.
9976
22a65a54
RG
99772009-04-06 Richard Guenther <rguenther@suse.de>
9978
9979 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9980 &ARRAY addresses by adjusting their types and prepending
9981 a conversion.
9982 * tree-cfg.c (verify_gimple_assign_single): Verify that
9983 addresses are correct.
9984
f76968e6
RG
99852009-04-09 Richard Guenther <rguenther@suse.de>
9986
9987 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9988 indices into an array reference if possible.
9989 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9990 Fold POINTER_PLUS_EXPR statements with invariant address.
9991
c90c5fb5
AM
99922009-04-09 Alan Modra <amodra@bigpond.net.au>
9993
9994 PR target/39634
9995 * config.gcc (powerpc64-*-linux*): Always build biarch.
9996
17cede2e
JM
99972009-04-09 Joseph Myers <joseph@codesourcery.com>
9998
9999 PR c/39613
10000 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10001 it and pedwarn if this results in an INTEGER_CST.
10002
a3337ea2
KG
100032009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10004
10005 * doc/install.texi: Update minimum GMP version. Remove obsolete
10006 text in MPFR section.
10007
ce9ba79b
JJ
100082009-04-08 Jakub Jelinek <jakub@redhat.com>
10009
10010 * dwarf2out.c (class_scope_p): New static inline.
10011 (class_or_namespace_scope_p): Use it.
10012 (gen_variable_die): Use DW_TAG_member tag for static data member
10013 declarations instead of DW_TAG_variable.
10014
4f0ae266
JJ
10015 PR middle-end/39573
10016 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10017 variables.
10018
d27f0ddc
RG
100192009-04-08 Richard Guenther <rguenther@suse.de>
10020
10021 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10022 valueize random data.
10023
557cc596
DE
100242009-04-08 David Edelsohn <edelsohn@gnu.org>
10025
10026 * config.gcc (aix tm_file): Add aix-stdint.h.
10027 (aix tm clause use_gcc_stdint): Set to wrap.
10028 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 10029
75ccc1e7
RG
100302009-04-08 Richard Guenther <rguenther@suse.de>
10031
10032 PR middle-end/36291
10033 * tree-dfa.c (add_referenced_var): Do not recurse into
10034 global initializers.
10035 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10036 exposed variables.
10037 (fold_const_aggregate_ref): Likewise.
10038
c6963675
PB
100392009-04-08 Paolo Bonzini <bonzini@gnu.org>
10040
6c44cf79
L
10041 * recog.c (ordered_comparison_operator): New.
10042 * gensupport.c (std_preds): Add it.
c6963675
PB
10043 * doc/md.texi (Machine-Independent Predicates): Document it.
10044
6d07ad98
JH
100452009-04-08 Jan Hubicka <jh@suse.cz>
10046
10047 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10048 * function.h (rtl_eh): Remove exception_handler_label_map.
10049 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10050 remove_exception_handler_label, for_each_eh_label_1): Remove.
10051 (rtl_remove_unreachable_regions): Remove.
10052 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10053 (find_exception_handler_labels): Don't build the hashtable.
10054 (maybe_remove_eh_handler): Remove.
10055 (for_each_eh_label): Rewrite to walk the tree.
10056 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10057 * except.h (maybe_remove_eh_handler): Remove.
10058 * passes.c (init_optimization_passes): Schedule second EH cleanup
10059 before out-of-ssa.
10060 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10061 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10062
7ddf71e3
PB
100632009-04-08 Paolo Bonzini <bonzini@gnu.org>
10064
10065 * genoutput.c (validate_optab_operands): New.
10066 (gen_insn, gen_expand): Call it.
10067
10068 * genflags.c (gen_insn): Detect misused iterators.
10069 (main): Pass line_no to gen_insn, exit with status 1 on error.
10070
10071 * genextract.c (line_no): Make global.
10072 (VEC_safe_set_locstr): Change assertion to error message.
10073 (main): Exit with status 1 on error.
10074
4d84fe7c
JM
100752009-04-08 Joseph Myers <joseph@codesourcery.com>
10076
10077 PR c/39614
10078 PR c/39673
10079 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10080 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10081 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10082 * c-convert.c (convert): Do not call fold on results of conversion
10083 functions when the result is a C_MAYBE_CONST_EXPR.
10084 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10085 of __builtin_choose_expr.
10086 * c-typeck.c (remove_c_maybe_const_expr): New.
10087 (build_unary_op, build_conditional_expr, build_compound_expr,
10088 build_binary_op, c_objc_common_truthvalue_conversion): Call
10089 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10090 integer operands.
10091
60839f5d 100922009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10093
2ba9daa7 10094 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10095 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10096
8e481a2c
DS
100972009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10098
10099 PR bootstrap/39660
10100 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10101 mix declarations and code.
10102
ee618c17
BE
101032009-04-08 Ben Elliston <bje@au.ibm.com>
10104
10105 * gcc.c: Replace `CC' with `GCC' throughout.
10106
f2a758a2
L
101072009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10108
10109 * doc/invoke.texi: Document Atom support.
10110
6ea2bd47
JM
101112009-04-07 Jason Merrill <jason@redhat.com>
10112
10113 PR c++/25185
10114 * c-common.h, c-common.c: Add flag_pretty_templates.
10115 * c-opts.c (c_common_handle_option): Set it.
10116 * c.opt: Add -fno-pretty-templates.
10117 * doc/invoke.texi (C++ Dialect Options): Likewise.
10118
fcb82ab0
UB
101192009-04-07 Uros Bizjak <ubizjak@gmail.com>
10120
10121 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10122 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10123 (ia64_expand_builtin): Likewise.
10124
dc5e7298
MJ
101252009-04-07 Martin Jambor <mjambor@suse.cz>
10126
10127 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10128 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10129 ADDR_EXPRS are include too.
10130
0609b355
RG
101312009-04-07 Richard Guenther <rguenther@suse.de>
10132
10133 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10134 decls are only used if passes as parameters or if they are
10135 local statics and the call is not to a builtin.
10136 (call_may_clobber_ref_p_1): Likewise.
10137
d8e535fa
PB
101382009-04-07 Paolo Bonzini <bonzini@gnu.org>
10139
10140 * expr.c (do_store_flag): Remove last argument. Simplify code
10141 to avoid duplication of tests already done by can_compare_p.
10142 (expand_expr_real_1): Adjust caller.
10143
c3c64f50
PB
101442009-04-07 Paolo Bonzini <bonzini@gnu.org>
10145
fcb82ab0
UB
10146 * optabs.c (can_compare_p): Test the predicate of a
10147 cbranch and cstore pattern.
c3c64f50 10148
9a53bc17
PB
101492009-04-07 Paolo Bonzini <bonzini@gnu.org>
10150
fcb82ab0
UB
10151 * expr.c (convert_move): Use emit_store_flag instead of
10152 "emulating" it.
9a53bc17 10153
67b8f1c1
PB
101542009-04-07 Paolo Bonzini <bonzini@gnu.org>
10155
fcb82ab0
UB
10156 * config/i386/i386.c (ix86_compare_emitted): Remove.
10157 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10158 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10159 * config/i386/i386.h (ix86_compare_emitted): Remove.
10160 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10161 instead of ix86_compare_emitted.
10162 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10163
44509946
AS
101642009-04-07 Andrew Stubbs <ams@codesourcery.com>
10165
10166 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10167 Add t-sysroot-suffix to tmake_file.
10168 * config/print-sysroot-suffix.sh: New file.
10169 * config/t-sysroot-suffix: New file.
10170
ca22d882
BE
101712009-04-07 Ben Elliston <bje@au.ibm.com>
10172
10173 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10174 as the latter produces a warning when the target does not support
10175 infinity.
10176
95aac11b
BE
101772009-04-07 Ben Elliston <bje@au.ibm.com>
10178
10179 * dfp.c: Replace type punning assignments with memcpy throughout.
10180 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10181
633dd061
AM
101822009-04-07 Alan Modra <amodra@bigpond.net.au>
10183
10184 PR target/39634
10185 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10186 Include soft-fp/t-softfp after rs6000/t-linux64.
10187
fe0a25ec
EB
101882009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10189
10190 * stor-layout.c (set_sizetype): Use the full precision of their
10191 machine mode for bitsize types.
10192
0c011bc3
L
101932009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10194
10195 * config/i386/i386.md: Revert 2 accidental checkins.
10196
b6837b94 101972009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10198 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10199 H.J. Lu <hongjiu.lu@intel.com>
10200
10201 Atom pipeline model, tuning and insn selection.
10202 * config.gcc (atom): Add atom config options and target.
10203
10204 * config/i386/atom.md: New.
10205
10206 * config/i386/i386.c (atom_cost): New cost.
10207 (m_ATOM): New macro flag.
10208 (initial_ix86_tune_features): Set m_ATOM.
10209 (x86_accumulate_outgoing_args): Likewise.
10210 (x86_arch_always_fancy_math_387): Likewise.
10211 (processor_target): Add Atom cost.
10212 (cpu_names): Add Atom cpu name.
10213 (override_options): Set Atom ISA.
10214 (ix86_issue_rate): New case PROCESSOR_ATOM.
10215 (ix86_adjust_cost): Likewise.
10216
10217 * config/i386/i386.h (TARGET_ATOM): New target macro.
10218 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10219 (TARGET_OPT_AGU): New target option.
10220 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10221 (processor_type): Add PROCESSOR_ATOM.
10222
10223 * config/i386/i386.md (cpu): Add new value "atom".
10224 (use_carry, movu): New attr.
10225 (atom.md): Include atom.md.
10226 (adddi3_carry_rex64): Set attr "use_carry".
10227 (addqi3_carry): Likewise.
10228 (addhi3_carry): Likewise.
10229 (addsi3_carry): Likewise.
10230 (*addsi3_carry_zext): Likewise.
10231 (subdi3_carry_rex64): Likewise.
10232 (subqi3_carry): Likewise.
10233 (subhi3_carry): Likewise.
10234 (subsi3_carry): Likewise.
10235 (x86_movdicc_0_m1_rex64): Likewise.
10236 (*x86_movdicc_0_m1_se): Likewise.
10237 (x86_movsicc_0_m1): Likewise.
10238 (*x86_movsicc_0_m1_se): Likewise.
10239 (*adddi_1_rex64): Emit add insn as much as possible.
10240 (*addsi_1): Likewise.
10241 (return_internal): Set atom_unit.
10242 (return_internal_long): Likewise.
10243 (return_pop_internal): Likewise.
10244 (*rcpsf2_sse): Set atom_sse_attr attr.
10245 (*qrt<mode>2_sse): Likewise.
10246 (*prefetch_sse): Likewise.
10247
10248 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10249 PROCESSOR_ATOM.
10250 (ix86_target_macros_internal): Likewise.
10251
10252 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10253 (*prefetch_sse_rex): Likewise.
10254 (sse_rcpv4sf2): Likewise.
10255 (sse_vmrcpv4sf2): Likewise.
10256 (sse_sqrtv4sf2): Likewise.
10257 (<sse>_vmsqrt<mode>2): Likewise.
10258 (sse_ldmxcsr): Likewise.
10259 (sse_stmxcsr): Likewise.
10260 (*sse_sfence): Likewise.
10261 (sse2_clflush): Likewise.
10262 (*sse2_mfence): Likewise.
10263 (*sse2_lfence): Likewise.
10264 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10265 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10266 (avx_movdqu<avxmodesuffix>): Likewise.
10267 (avx_lddqu<avxmodesuffix>): Likewise.
10268 (sse2_movntv2di): Change attr "type" to "ssemov".
10269 (sse2_movntsi): Likewise.
10270 (rsqrtv8sf2): Change attr "type" to "sseadd".
10271 (sse3_addsubv2df3): Set attr "atom_unit".
10272 (sse3_h<plusminus_insn>v4sf3): Likewise.
10273 (*sse2_pmaddwd): Likewise.
10274 (*vec_extractv2di_1_rex64): Likewise.
10275 (*vec_extractv2di_1_avx): Likewise.
10276 (sse2_psadbw): Likewise.
10277 (ssse3_phaddwv8hi3): Likewise.
10278 (ssse3_phaddwv4hi3): Likewise.
10279 (ssse3_phadddv4si3): Likewise.
10280 (ssse3_phadddv2si3): Likewise.
10281 (ssse3_phaddswv8hi3): Likewise.
10282 (ssse3_phaddswv4hi3): Likewise.
10283 (ssse3_phsubwv8hi3): Likewise.
10284 (ssse3_phsubwv4hi3): Likewise.
10285 (ssse3_phsubdv4si3): Likewise.
10286 (ssse3_phsubdv2si3): Likewise.
10287 (ssse3_phsubswv8hi3): Likewise.
10288 (ssse3_phsubswv4hi3): Likewise.
10289 (ssse3_pmaddubsw128): Likewise.
10290 (sse3_pmaddubsw: Likewise.
10291 (ssse3_palignrti): Likewise.
10292 (ssse3_palignrdi): Likewise.
10293
53e350d3
GP
102942009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10295
10296 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10297
439ef907
RG
102982009-04-06 Richard Guenther <rguenther@suse.de>
10299
10300 PR tree-optimization/28868
10301 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10302 of which PHI results we inserted.
10303 (insert_into_preds_of_block): Record inserted PHIs.
10304 (eliminate): Eliminate redundant PHI nodes.
10305 (init_pre): Init inserted_phi_names.
10306
4bad83f5
RG
103072009-04-06 Richard Guenther <rguenther@suse.de>
10308
10309 PR tree-optimization/39643
10310 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10311 IMAGPART_EXPRs of complex constants.
10312 (execute_fold_all_builtins): If we folded a call queue
10313 TODO_update_address_taken.
10314
570c4247
JH
103152009-04-06 Jan Hubicka <jh@suse.cz>
10316
10317 PR middle-end/39659
10318 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10319 flag.
10320
a460d7a1
AS
103212009-04-06 Andrew Stubbs <ams@codesourcery.com>
10322
10323 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10324 delay slot.
10325 (ic_invalidate_array): Likewise.
10326
60839f5d 103272009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10328
10329 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10330 alignment for library calls.
10331
7d253f6e
DS
103322009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10333
10334 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10335 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10336 * config/i386/mingw-stdint.h: New file.
10337
941c3614
RB
103382009-04-05 Richard Guenther <rguenther@suse.de>
10339
10340 PR tree-optimization/39648
10341 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10342 our &A vs. &A[0] IL deficiencies.
10343
12633413
JH
103442009-04-04 Jan Hubicka <jh@suse.cz>
10345
941c3614
RB
10346 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10347 removed toplevel regions.
12633413
JH
10348 (sjlj_mark_call_sites): Likewise.
10349
bb2aaded
DK
103502009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10351
10352 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10353 (cygwin tm clause use_gcc_stdint): Set to wrap.
10354 * config/i386/cygwin-stdint.h: New file.
10355
86290011
RG
103562009-04-04 Richard Guenther <rguenther@suse.de>
10357
10358 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10359 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10360 single-argument PHIs if we are in loop-closed SSA form.
10361 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10362 for the pre-condition.
10363 (slpeel_tree_peel_loop_to_edge): Likewise.
10364 (vect_build_loop_niters): Take an optional sequence to append stmts.
10365 (vect_generate_tmps_on_preheader): Likewise.
10366 (vect_do_peeling_for_loop_bound): Take extra guards for the
10367 pre-condition.
10368 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10369 the cost model check.
10370 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10371 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10372 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10373 (vect_do_peeling_for_loop_bound): Likewise.
10374 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10375 loop bound only record extra pre-conditions, do not apply loop
10376 versioning.
10377
5eeeac64
RG
103782009-04-04 Richard Guenther <rguenther@suse.de>
10379
10380 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10381 renaming code.
10382
1ff7d06b
JH
103832009-04-04 Jan Hubicka <jh@suse.cz>
10384
10385 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10386 last_basic_block for size of bb->index indexed array.
10387 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10388 compute_out, link_btr_uses, build_btr_def_use_webs,
10389 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10390
14925fcd
JH
103912009-04-04 Jan Hubicka <jh@suse.cz>
10392
10393 * except.c (remove_eh_handler_and_replace): Break out from ...
10394 (remove_eh_handler): ... here.
10395 (bring_to_root): New function.
10396 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10397 handled ones, bring others to root of tree.
10398
4e6d1743
JH
103992009-04-04 Jan Hubicka <jh@suse.cz>
10400
4cb735f7
JH
10401 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10402 (all_phis_safe_to_merge): New function.
10403 (update_info): New structure.
10404 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10405 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10406
c6803d43
RG
104072009-04-04 Richard Guenther <rguenther@suse.de>
10408
10409 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10410 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10411 (append_vuse): Likewise.
10412
54f5943c
JJ
104132009-04-04 Jakub Jelinek <jakub@redhat.com>
10414
10415 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10416 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10417 instead of REG_UNSAVED for DW_CFA_undefined.
10418 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10419 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10420 outermost frame.
10421
aad2bccb
RE
104222009-04-04 Richard Earnshaw <rearnsha@arm.com>
10423
10424 PR target/39501
10425 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10426 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10427 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10428
aa7069aa
RG
104292009-04-04 Richard Guenther <rguenther@suse.de>
10430
10431 PR tree-optimization/8781
10432 PR tree-optimization/37892
10433 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10434 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10435 (valueize_refs): Call it for *& valueizations.
10436 (shared_reference_ops_from_ref): Rename to ...
10437 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10438 (shared_reference_ops_from_call): Rename to ...
10439 (valueize_shared_reference_ops_from_call): ... this and valueize.
10440 (vn_reference_lookup): Update.
10441 (visit_reference_op_call): Likewise.
10442 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10443 (eliminate): Value-replace the call address in call statements.
10444
cd15ad3e
RG
104452009-04-04 Richard Guenther <rguenther@suse.de>
10446
10447 PR tree-optimization/39636
10448 * tree-ssa-forwprop.c
10449 (forward_propagate_addr_into_variable_array_index): Check for
10450 GIMPLE_ASSIGN before accessing the rhs code.
10451
462f3262
JM
104522009-04-03 Jason Merrill <jason@redhat.com>
10453
10454 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10455
6adb807e
SE
104562009-04-03 Steve Ellcey <sje@cup.hp.com>
10457
10458 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10459 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10460 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10461 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10462 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10463 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10464 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10465 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10466 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10467 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10468 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10469 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10470 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10471 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10472 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10473 Use fr_reg_or_fp01_operand instead of fr_register_operand
10474
10475 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10476 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10477 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10478
174b3107
VM
104792009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10480
b844e5d8
L
10481 PR rtl-optimization/39607
10482 PR rtl-optimization/39631
7a715bba
UB
10483
10484 Revert:
2ba9daa7 10485
174b3107
VM
10486 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10487 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10488 instead of DF_LR_OUT.
10489 * ira-lives.c (process_bb_node_lives): Ditto.
10490 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10491 instead of DF_LR_{OUT,IN}.
10492 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10493 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10494
535b544a
SB
104952009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10496
10497 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10498 (execute_lower_omp): Always run but take the short way out if -fopenmp
10499 is not given.
10500 (gate_lower_omp): Remove, forcing the pass manager to always run the
10501 pass and always set PROP_gimple_lomp.
10502 (pass_lower_omp): Remove gate function.
10503 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10504 PROP_trees. Instead, require it.
10505 * ipa-cp.c (pass_ipa_cp): Likewise.
10506 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10507 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10508 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10509 and PROP_gimple_leh.
10510
5006671f
RG
105112009-04-03 Richard Guenther <rguenther@suse.de>
10512
10513 PR middle-end/13146
10514 PR tree-optimization/23940
10515 PR tree-optimization/33237
10516 PR middle-end/33974
10517 PR middle-end/34093
10518 PR tree-optimization/36201
10519 PR tree-optimization/36230
10520 PR tree-optimization/38049
10521 PR tree-optimization/38207
10522 PR tree-optimization/38230
10523 PR tree-optimization/38301
10524 PR tree-optimization/38585
10525 PR middle-end/38895
10526 PR tree-optimization/38985
10527 PR tree-optimization/39299
10528 * tree-ssa-structalias.h: Remove.
10529 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10530 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10531 (struct vuse_element_d): Remove.
10532 (struct vuse_vec_d): Likewise.
10533 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10534 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10535 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10536 VUSE_ELEMENT_VAR): Likewise.
10537 (struct voptype_d): Likewise.
10538 (NUM_VOP_FREE_BUCKETS): Likewise.
10539 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10540 (struct stmt_operands_d): Remove.
10541 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10542 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10543 VDEF_NUM, VDEF_VECT): Likewise.
10544 (copy_virtual_operands): Remove.
10545 (operand_build_cmp): Likewise.
10546 (create_ssa_artificial_load_stmt): Likewise.
10547 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10548 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10549 vuse_index and mayuse_index members. Pack and move done and iter_type
10550 members to the front.
10551 (SSA_OP_VMAYUSE): Remove.
10552 (SSA_OP_VIRTUAL_USES): Adjust.
10553 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10554 (unlink_stmt_vdef): Declare.
10555 (add_to_addressable_set): Remove.
10556 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10557 (vrp_visit_stmt): Likewise.
10558 * doc/tree-ssa.texi (Alias analysis): Update.
10559 * doc/invoke.texi (max-aliased-vops): Remove docs.
10560 (avg-aliased-vops): Likewise.
10561 * tree-into-ssa.c (syms_to_rename): Remove.
10562 (need_to_update_vops_p): Likewise.
10563 (need_to_initialize_update_ssa_p): Rename to ...
10564 (update_ssa_initialized_fn): ... this. Track function we are
10565 initialized for.
10566 (symbol_marked_for_renaming): Simplify.
10567 (add_new_name_mapping): Do not set need_to_update_vops_p.
10568 (dump_currdefs): Use SYMS_TO_RENAME.
10569 (rewrite_update_stmt): Always walk all uses/defs.
10570 (dump_update_ssa): Adjust.
10571 (init_update_ssa): Take function argument. Track what we are
10572 initialized for.
10573 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10574 (create_new_def_for): Initialize for cfun, assert we are initialized
10575 for cfun.
10576 (mark_sym_for_renaming): Simplify.
10577 (mark_set_for_renaming): Do not initialize update-ssa.
10578 (need_ssa_update_p): Simplify. Take function argument.
10579 (name_mappings_registered_p): Assert we ask for the correct function.
10580 (name_registered_for_update_p): Likewise.
10581 (ssa_names_to_replace): Likewise.
10582 (release_ssa_name_after_update_ssa): Likewise.
10583 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10584 (dump_decl_set): Do not print a newline.
10585 (debug_decl_set): Do it here.
10586 (dump_update_ssa): And here.
10587 * tree-ssa-loop-im.c (move_computations): Adjust.
10588 (movement_possibility): Likewise.
10589 (determine_max_movement): Likewise.
10590 (gather_mem_refs_stmt): Likewise.
10591 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10592 or NAME_MEMORY_TAG.
10593 * tree-complex.c (update_all_vops): Remove.
10594 (expand_complex_move): Adjust.
10595 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10596 Simplify test for memory referencing statement. Exclude
10597 non-invariant ADDR_EXPRs.
10598 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10599 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10600 (rdg_flag_uses): Likewise.
10601 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10602 related code.
10603 (tree_optimize_tail_calls_1): Also split the
10604 edge from the entry block if we have degenerate PHI nodes in
10605 the first basic block.
10606 * tree.c (init_ttree): Remove memory-tag related code.
10607 (tree_code_size): Likewise.
10608 (tree_node_structure): Likewise.
10609 (build7_stat): Re-write to be build6_stat.
10610 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10611 (SSA_VAR_P): Adjust.
10612 (struct tree_memory_tag): Remove.
10613 (struct tree_memory_partition_tag): Likewise.
10614 (union tree_node): Adjust.
10615 (build7): Re-write to be build6.
10616 * tree-pass.h (pass_reset_cc_flags): Remove.
10617 (TODO_update_address_taken): New flag.
10618 (pass_simple_dse): Remove.
10619 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10620 * params.h (MAX_ALIASED_VOPS): Remove.
10621 (AVG_ALIASED_VOPS): Likewise.
10622 * omp-low.c (expand_omp_taskreg): Update SSA form.
10623 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10624 aliases the lhs in a copy stmt.
10625 * tree-ssa-dse.c (struct address_walk_data): Remove.
10626 (memory_ssa_name_same): Likewise.
10627 (memory_address_same): Likewise.
10628 (get_kill_of_stmt_lhs): Likewise.
10629 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10630 unused stores. Look through PHI nodes into post-dominated regions.
10631 (dse_optimize_stmt): Simplify. Properly remove stores.
10632 (tree_ssa_dse): Compute dominators.
10633 (execute_simple_dse): Remove.
10634 (pass_simple_dse): Likewise.
10635 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10636 gimple_loaded_syms and gimple_stored_syms computation.
10637 * toplev.c (dump_memory_report): Dump alias and pta stats.
10638 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10639 (vn_reference_eq): Likewise.
10640 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10641 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10642 valueize_vuses): Remove.
10643 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10644 (get_def_ref_stmt_vuse): ... this.
10645 (vn_reference_lookup_2): New function.
10646 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10647 walking equivalent vuses. Simplify.
10648 (vn_reference_lookup): Likewise.
10649 (vn_reference_insert): Likewise.
10650 (vn_reference_insert_pieces): Likewise.
10651 (visit_reference_op_call): Simplify.
10652 (visit_reference_op_load): Likewise.
10653 (visit_reference_op_store): Likewise.
10654 (init_scc_vn): Remove shared_lookup_vuses initialization.
10655 (free_scc_vn): Remove shared_lookup_vuses freeing.
10656 (sort_vuses, sort_vuses_heap): Remove.
10657 (get_ref_from_reference_ops): Export.
10658 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10659 vector with single vuse pointer.
10660 (vn_reference_lookup_pieces, vn_reference_lookup,
10661 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10662 (shared_vuses_from_stmt): Remove.
10663 (get_ref_from_reference_ops): Declare.
10664 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10665 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10666 memory-tag related code.
10667 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10668 (likely_value): Add comment, skip static-chain of call statements.
10669 (surely_varying_stmt_p): Adjust.
10670 (gimplify_and_update_call_from_tree): Likewise.
10671 (execute_fold_all_builtins): Do not rebuild alias info.
10672 (gimplify_and_update_call_from_tree): Properly update VOPs.
10673 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10674 (copy_ref_info): Remove memory-tag related code.
10675 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10676 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10677 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10678 computation.
10679 * tree-ssa-dom.c (gimple_p): Remove typedef.
10680 (eliminate_redundant_computations): Adjust.
10681 (record_equivalences_from_stmt): Likewise.
10682 (avail_expr_hash): Likewise.
10683 (avail_expr_eq): Likewise.
7a715bba 10684 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10685 (stmt_makes_single_load): Likewise.
10686 (stmt_makes_single_store): Likewise.
10687 * tree-ssa-alias.c: Rewrite completely.
10688 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10689 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10690 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10691 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10692 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10693 Remove public functions.
10694 (pass_reset_cc_flags): Remove.
10695 (pass_build_alias): Move ...
10696 * tree-ssa-structalias.c (pass_build_alias): ... here.
10697 * tree-ssa-alias.c (may_be_aliased): Move ...
10698 * tree-flow-inline.h (may_be_aliased): ... here.
10699 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10700 count_uses_and_derefs): Move ...
10701 * gimple.c: ... here.
10702 * gimple.h (count_uses_and_derefs): Declare.
10703 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10704 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10705 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10706 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10707 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10708 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10709 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10710 New functions.
10711 * tree-dfa.c (refs_may_alias_p): Move ...
10712 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10713 * tree-ssa-alias.h: New file.
10714 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10715 (statement_sink_location): Likewise.
10716 * opts.c (decode_options): Do not adjust max-aliased-vops or
10717 avg-aliased-vops values.
10718 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10719 (TV_CALL_CLOBBER): Likewise.
10720 (TV_FLOW_SENSITIVE): Likewise.
10721 (TV_FLOW_INSENSITIVE): Likewise.
10722 (TV_MEMORY_PARTITIONING): Likewise.
10723 (TV_ALIAS_STMT_WALK): New timevar.
10724 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10725 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10726 (get_address_description): Remove memory-tag related code.
10727 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10728 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10729 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10730 and immediate uses in statements. Document.
10731 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10732 (dump_symbols): Remove.
10733 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10734 * alias.c (get_deref_alias_set): New function split out from ...
10735 (get_alias_set): ... here.
10736 * alias.h (get_deref_alias_set): Declare.
10737 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10738 type parameter. Remove restrict pointer handling. Create a
10739 ref-all pointer in case type-based alias sets do not conflict.
10740 (vect_analyze_data_refs): Remove SMT related code.
10741 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10742 (vectorizable_load): Likewise.
10743 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10744 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10745 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10746 Ignore vops and SMTs.
10747 (dr_analyze_alias): Likewise..
10748 (free_data_ref): Likewise.
10749 (create_data_ref): Likewise.
10750 (analyze_all_data_dependences): Likewise.
10751 (get_references_in_stmt): Adjust.
10752 * tree-flow-inline.h (gimple_aliases_computed_p,
10753 gimple_addressable_vars, gimple_call_clobbered_vars,
10754 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10755 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10756 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10757 gimple_mem_ref_stats): Remove.
10758 (gimple_vop): New function.
10759 (op_iter_next_use): Remove vuses and mayuses cases.
10760 (op_iter_next_def): Remove vdefs case.
10761 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10762 (clear_and_done_ssa_iter): Do not set removed fields.
10763 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10764 Assert we are not iterating over vuses or vdefs if not also
10765 iterating over uses or defs.
10766 (op_iter_init_use): Likewise.
10767 (op_iter_init_def): Likewise.
10768 (op_iter_next_vdef): Remove.
10769 (op_iter_next_mustdef): Likewise.
10770 (op_iter_init_vdef): Likewise.
10771 (compare_ssa_operands_equal): Likewise.
10772 (link_use_stmts_after): Handle vuse operand.
10773 (is_call_used): Use is_call_clobbered.
10774 (is_call_clobbered): Global variables are always call clobbered,
10775 query the call-clobbers bitmap.
10776 (mark_call_clobbered): Ignore global variables.
10777 (clear_call_clobbered): Likewise.
10778 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10779 virtual operands sanity check.
10780 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10781 Remove.
10782 (TARGET_MEM_REF): Remove TMR_TAG operand.
10783 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10784 Remove call-clobber related code.
10785 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10786 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10787 partitions or escape reason.
10788 (get_single_def_stmt, get_single_def_stmt_from_phi,
10789 get_single_def_stmt_with_phi): Remove.
10790 (dump_referenced_vars): Tidy.
10791 (get_ref_base_and_extent): Allow bare decls.
10792 (collect_dfa_stats): Adjust.
10793 * graphite.c (rename_variables_in_stmt): Adjust.
10794 (graphite_copy_stmts_from_block): Likewise.
10795 (translate_clast): Likewise.
10796 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10797 (EXPR_DIES): New.
10798 (translate_vuse_through_block): Use the oracle.
10799 (phi_translate_1): Adjust.
10800 (value_dies_in_block_x): Use the oracle. Cache the outcome
10801 in EXPR_DIES.
10802 (valid_in_sets): Check if the VUSE for
10803 a REFERENCE is available.
10804 (eliminate): Do not remove stmts during elimination,
10805 instead queue and remove them afterwards.
10806 (do_pre): Do not rebuild alias info.
10807 (pass_pre): Run TODO_rebuild_alias before PRE.
10808 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10809 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10810 (mark_all_v_defs_stmt): Remove.
10811 (mark_all_v_defs_seq): Adjust.
10812 (sra_replace): Likewise.
10813 (scalarize_use): Likewise.
10814 (scalarize_copy): Likewise.
10815 (scalarize_init): Likewise.
10816 (scalarize_ldst): Likewise.
10817 (todoflags): Remove.
10818 (tree_sra): Do not rebuild alias info.
10819 (tree_sra_early): Adjust.
10820 (pass_sra): Run TODO_update_address_taken before SRA.
10821 * tree-predcom.c (set_alias_info): Remove.
10822 (prepare_initializers_chain): Do not call it.
10823 (mark_virtual_ops_for_renaming): Adjust.
10824 (mark_virtual_ops_for_renaming_list): Remove.
10825 (initialize_root_vars): Adjust.
10826 (initialize_root_vars_lm): Likewise.
10827 (prepare_initializers_chain): Likewise.
10828 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10829 (may_propagate_copy_into_stmt): Likewise.
10830 (merge_alias_info): Do nothing for now.
10831 (propagate_tree_value_into_stmt): Adjust.
10832 (stmt_may_generate_copy): Likewise.
10833 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10834 not mark symbols for renaming.
10835 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10836 with the same statement, make sure to update the new pointed-to one.
10837 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10838 call statements, do not mark symbols for renaming.
10839 (mark_operand_necessary): Dump something.
10840 (ref_may_be_aliased): New function.
10841 (mark_aliased_reaching_defs_necessary_1): New helper function.
10842 (mark_aliased_reaching_defs_necessary): Likewise.
10843 (mark_all_reaching_defs_necessary_1): Likewise.
10844 (mark_all_reaching_defs_necessary): Likewise.
10845 (propagate_necessity): Do not process virtual PHIs. For
10846 non-aliased loads mark all reaching definitions as necessary.
10847 For aliased loads and stores mark the immediate dominating
10848 aliased clobbers as necessary.
10849 (visited): New global static.
10850 (perform_tree_ssa_dce): Free visited bitmap after propagating
10851 necessity.
10852 (remove_dead_phis): Perform simple dead virtual PHI removal.
10853 (remove_dead_stmt): Properly unlink virtual operands when
10854 removing stores.
10855 (eliminate_unnecessary_stmts): Schedule PHI removal after
10856 stmt removal.
10857 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10858 (process_replaceable): Likewise.
10859 (find_replaceable_in_bb): Likewise.
10860 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10861 based on the single gimple vop.
10862 (verify_flow_insensitive_alias_info): Remove.
10863 (verify_flow_sensitive_alias_info): Likewise.
10864 (verify_call_clobbering): Likewise.
10865 (verify_memory_partitions): Likewise.
10866 (verify_alias_info): Likewise.
10867 (verify_ssa): Adjust..
10868 (execute_update_addresses_taken): Export. Update SSA
10869 manually. Optimize only when optimizing. Use a local bitmap.
10870 (pass_update_address_taken): Remove TODO_update_ssa, add
10871 TODO_dump_func.
10872 (pass_update_address_taken): Just use TODO_update_address_taken.
10873 (init_tree_ssa): Do not initialize addressable_vars.
10874 (verify_ssa): Verify new VUSE / VDEF properties.
10875 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10876 Do not call verify_alias_info.
10877 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10878 Do not free the loaded and stored syms bitmaps. Reset the escaped
10879 and callused solutions. Do not free addressable_vars.
10880 Remove memory-tag related code.
10881 (warn_uninitialized_var): Aliases are always available.
10882 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10883 * lambda-code.c (can_put_in_inner_loop): Adjust.
10884 (can_put_after_inner_loop): Likewise.
10885 (perfect_nestify): Likewise.
10886 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10887 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10888 (vectorizable_conversion): Do not mark symbols for renaming.
10889 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10890 (expand_call_inline): Unlink the calls virtual operands before
10891 replacing it.
10892 (tree_function_versioning): Do not call update_ssa if we are not
10893 updating clones. Simplify.
10894 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10895 (propagate_with_phi): Likewise..
10896 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10897 clobber code. Assert we are not aliased or global.
10898 * tree-flow.h: Include tree-ssa-alias.h
10899 (enum escape_type): Remove.
10900 (struct mem_sym_stats_d): Likewise.
10901 (struct mem_ref_stats_d): Likewise.
10902 (struct gimple_df): Add vop member. Remove global_var,
10903 call_clobbered_vars, call_used_vars, addressable_vars,
10904 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10905 escaped and callused members.
10906 (struct ptr_info_def): Remove all members, add points-to solution
10907 member pt.
10908 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10909 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10910 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10911 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10912 (tree-ssa-alias.o): Likewise.
10913 (toplev.o): Add tree-ssa-alias.h
10914 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10915 * gimple.c (gimple_set_bb): Fix off-by-one error.
10916 (is_gimple_reg): Do not handle memory tags.
10917 (gimple_copy): Also copy virtual operands.
10918 Delay updating the statement. Do not reset loaded and stored syms.
10919 (gimple_set_stored_syms): Remove.
10920 (gimple_set_loaded_syms): Likewise.
10921 (gimple_call_copy_skip_args): Copy the virtual operands
10922 and mark the new statement modified.
10923 * tree-ssa-structalias.c (may_alias_p): Remove.
10924 (set_uids_in_ptset): Take the alias set to prune with as
10925 parameter. Fold in the alias test of may_alias_p.
10926 (compute_points_to_sets): Compute whether a ptr is dereferenced
10927 in a local sbitmap.
10928 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10929 other ADDRESSOF constraints on the lhs.
10930 (get_constraint_for_component_ref): Assert that we don't get
10931 ADDRESSOF constraints from the base of the reference.
10932 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10933 (struct variable_info): Remove collapsed_to member.
10934 (get_varinfo_fc): Remove.
10935 (new_var_info): Do not set collapsed_to.
10936 (dump_constraint): Do not follow cycles.
10937 (dump_constraint_graph): Likewise.
10938 (build_pred_graph): Likewise.
10939 (build_succ_graph): Likewise.
10940 (rewrite_constraints): Likewise.
10941 (do_simple_structure_copy): Remove.
10942 (do_rhs_deref_structure_copy): Remove.
10943 (do_lhs_deref_structure_copy): Remove.
10944 (collapse_rest_of_var): Remove.
10945 (do_structure_copy): Re-implement.
10946 (pta_stats): New global variable.
10947 (dump_pta_stats): New function.
10948 (struct constraint_expr): Make offset signed.
10949 (UNKNOWN_OFFSET): Define special value.
10950 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10951 (solution_set_expand): New helper function split out from ...
10952 (do_sd_constraint): ... here.
10953 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10954 (do_ds_constraint): Likewise.
10955 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10956 and CALLUSED = *CALLUSED.
10957 (set_union_with_increment): Make inc argument signed.
10958 (type_safe): Remove.
10959 (get_constraint_for_ptr_offset): Handle unknown and negative
10960 constant offsets.
10961 (first_vi_for_offset): Handle offsets before start. Bail
10962 out early for offsets beyond the variable extent.
10963 (first_or_preceding_vi_for_offset): New function.
10964 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10965 Together with ESCAPED = *ESCAPED this properly computes reachability.
10966 (find_what_var_points_to): New function.
10967 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10968 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10969 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10970 pt_solutions_intersect): New functions.
10971 (compute_call_used_vars): Remove.
10972 (compute_may_aliases): New main entry into PTA computation.
10973 * gimple.h (gimple_p): New typedef.
10974 (struct gimple_statement_base): Remove references_memory_p.
10975 (struct gimple_statement_with_memory_ops_base): Remove
10976 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10977 members.
10978 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10979 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10980 gimple_set_references_memory): Remove.
10981 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10982 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10983 New functions.
10984 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10985 (verify_expr): Allow RESULT_DECL.
10986 (gimple_duplicate_bb): Do not copy virtual operands.
10987 (gimple_duplicate_sese_region): Adjust.
10988 (gimple_duplicate_sese_tail): Likewise.
10989 (mark_virtual_ops_in_region): Remove.
10990 (move_sese_region_to_fn): Do not call it.
10991 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10992 and pass_simple_dse.
10993 (execute_function_todo): Handle TODO_update_address_taken,
10994 call execute_update_addresses_taken for TODO_rebuild_alias.
10995 (execute_todo): Adjust.
10996 (execute_one_pass): Init dump files early.
10997 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10998 call-clobbered.
10999 (create_general_new_stmt): Clear vops.
11000 * tree-ssa-reassoc.c (get_rank): Adjust.
11001 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11002 symbols for renaming.
11003 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11004 (PARAM_AVG_ALIASED_VOPS): Likewise.
11005 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11006 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 11007 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
11008 (operand_build_cmp, copy_virtual_operands,
11009 create_ssa_artificial_load_stmt, add_to_addressable_set,
11010 gimple_add_to_addresses_taken): Remove public functions.
11011 (unlink_stmt_vdef): New function.
11012
457d1d00
AM
110132009-04-03 Alan Modra <amodra@bigpond.net.au>
11014
11015 * config.gcc (powerpc-*-linux*): Merge variants.
11016
e19da24c 110172009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 11018 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
11019
11020 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11021 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11022 cop0_sp_offset.
11023 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11024 keep_interrupts_masked_p, use_debug_exception_return_p.
11025 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11026 keep_interrupts_masked, use_debug_exception_return.
11027 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11028 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11029 New functions.
11030 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11031 (mips_print_operand): Process COP0 registers to print $0 .. $31
11032 correctly for GAS to process.
11033 (mips_interrupt_extra_call_saved_reg_p): New function.
11034 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11035 extra registers.
11036 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11037 (mips_compute_frame_info): Add supports for interrupt context that
11038 includes doubleword accumulators and COP0 registers.
11039 (mips_for_each_saved_acc): New function.
11040 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11041 mips_for_each_saved_reg.
11042 (mips_save_reg): Save accumulators.
11043 (mips_kernel_reg_p): A new for_each_rtx callback.
11044 (mips_expand_prologue): Support interrupt handlers.
11045 (mips_restore_reg): Restore accumulators.
11046 (mips_expand_epilogue): Support interrupt handlers.
11047 (mips_can_use_return_insn): Return false for interrupt handlers.
11048 (mips_epilogue_uses): New function.
11049 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11050 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11051 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11052 cop0_move): New instructions.
11053 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11054 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11055 defines.
11056 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11057 New defines.
11058 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11059 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11060 interrupt handlers, we use K0 as the temporary register.
11061 (EPILOGUE_USES): Change to a function call.
11062 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11063 handlers, we use K0 as the temporary register.
2ba9daa7 11064
e19da24c
CF
11065 * doc/extend.texi (Function Attributes): Document interrupt,
11066 use_shadow_register_set, keep_interrupts_masked,
11067 use_debug_exception_return for MIPS attributes.
11068
aa1ca044
AM
110692009-04-03 Alan Modra <amodra@bigpond.net.au>
11070
11071 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11072 Remove a number of t-files from tmake_file.
11073 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11074 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11075 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11076 target_prototype, not TARGET_PROTOTYPE.
11077 (LINK_OS_GNU_SPEC): Define.
11078 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11079 and darwin-ldoubdle.c.
11080
14fdc613
MM
110812009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11082
11083 PR driver/39293
11084 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11085 (cpp_options): Ditto.
11086 (default_compilers): Ditto.
11087 (display_help): Ditto.
11088 (process_command): Ditto.
11089 (do_spec_1): Ditto.
11090 (set_input): Use lbasename instead of duplicate code.
11091 (save_temps_prefix): New static for -save-temps=obj.
11092 (save_temps_length): Ditto.
2ba9daa7 11093
14fdc613
MM
11094 * doc/invoke.texi (-save-temps=obj): Document new variant to
11095 -save-temps switch.
11096
d3aa398e
JL
110972009-04-02 Jeff Law <law@redhat.com>
11098
11099 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11100 variable.
11101
83f0ccb8
L
111022009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11103
11104 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11105 * configure: Regenerated.
11106
dcb6e951
RAE
111072009-04-02 Rafael Avila de Espindola <espindola@google.com>
11108
11109 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11110 share the argument list.
11111
d85478c2
RAE
111122009-04-02 Rafael Avila de Espindola <espindola@google.com>
11113
11114 Merge
11115
11116 2009-02-12 Diego Novillo <dnovillo@google.com>
11117
83f0ccb8
L
11118 * varpool.c (debug_varpool): New.
11119 * cgraph.h (debug_varpool): Declare.
d85478c2 11120
34f42a49
JH
111212009-04-02 Jan Hubicka <jh@suse.cz>
11122
11123 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11124 pass.
11125
a4747b4a
L
111262009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11127
11128 * config/i386/i386.c (ix86_abi): Move initialization to ...
11129 (override_options): Here.
11130
63a9de54
CB
111312009-04-02 Christian Bruel <christian.bruel@st.com>
11132
11133 * config/sh/sh.c (sh_dwarf_register_span): New function.
11134 (TARGET_DWARF_REGISTER_SPAN): Define.
11135 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11136
2f0fa28e
IR
111372009-04-02 Ira Rosen <irar@il.ibm.com>
11138
11139 PR tree-optimization/39595
2ba9daa7 11140 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11141 interleaved loads group is not greater than the SLP group size.
11142
bbf7ce11
RAE
111432009-04-02 Rafael Avila de Espindola <espindola@google.com>
11144
11145 * builtins.c (is_builtin_name): New.
11146 (called_as_built_in): Use is_builtin_name.
11147 * tree.h (is_builtin_name): New.
11148 * varasm.c (incorporeal_function_p): Use is_builtin_name
11149
47e4dfcf
AS
111502009-04-02 Andrew Stubbs <ams@codesourcery.com>
11151
11152 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11153
d0940d56
DS
111542009-04-02 Dodji Seketeli <dodji@redhat.com>
11155
11156 PR c++/26693
532bfb0a 11157 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11158 * c-common.c (set_underlying_type): ... here.
11159 Also, make sure the function properly sets TYPE_STUB_DECL() on
11160 the newly created typedef variant type.
11161 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11162 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11163 points.
d0940d56 11164
bf1cbdc6
RG
111652009-04-02 Richard Guenther <rguenther@suse.de>
11166
11167 PR tree-optimization/37221
11168 * tree-flow.h (degenerate_phi_result): Declare.
11169 * tree-ssa-dom.c (degenerate_phi_result): Export.
11170 * tree-scalar-evolution.c (analyze_initial_condition): If
11171 the initial condition is defined by a degenerate PHI node
11172 use the degenerate value.
11173
87cfb32c
EB
111742009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11175
11176 PR rtl-optimization/39588
11177 * combine.c (merge_outer_ops): Do not set the constant when this
11178 is not necessary.
11179 (simplify_shift_const_1): Do not modify it either in this case.
11180
bbb6eae8
SB
111812009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11182
11183 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11184 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11185
839a3b8a
JJ
111862009-04-01 Janis Johnson <janis187@us.ibm.com>
11187
11188 PR c/29027
11189 * c-lex.c (interpret_float): Default (no suffix) is double.
11190
667e8acb
XDL
111912009-04-1 Xinliang David Li <davidxl@google.com>
11192
11193 * config/i386/i386.c (legitimate_constant_p): Recognize
11194 all one vector constant.
11195
60839f5d 111962009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11197
60839f5d 11198 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11199 Change #include order to silence two warnings.
11200
60839f5d 112012009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11202
60839f5d 11203 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11204 (ASM_SPEC): Pass -k to the assembler for PIC code.
11205
60839f5d 112062009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11207
60839f5d
EB
11208 * config.gcc: Add vax-*-linux* to the switch.
11209 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11210 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11211
60839f5d 112122009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11213
60839f5d 11214 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11215 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11216 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11217 ashlsi3, rotrsi3, <unnamed>): Likewise.
11218
60839f5d 112192009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11220
60839f5d 11221 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11222 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11223 * config/vax/constraints.md: Likewise.
11224 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11225 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11226 * config/vax/predicates.md: Likewise.
11227 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11228 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11229 * config/vax/vax.h: Likewise.
11230 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11231
60839f5d 112322009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11233
60839f5d 11234 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11235 (indirectable_address_p, adjacent_operands_p): Add spaces around
11236 braces.
60839f5d 11237 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11238
60839f5d 112392009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11240
60839f5d 11241 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11242 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11243 index_term_p, reg_plus_index_p, legitimate_address_p,
11244 vax_mode_dependent_address_p): Update comments to match functions
11245 modified by the recent int->bool conversion.
11246
60839f5d 112472009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11248
60839f5d
EB
11249 * config/vax/builtins.md: Update copyright message.
11250 * config/vax/constraints.md: Likewise.
11251 * config/vax/netbsd-elf.h: Likewise.
11252 * config/vax/predicates.md: Likewise.
11253 * config/vax/vax-protos.h: Likewise.
11254 * config/vax/vax.c: Likewise.
11255 * config/vax/vax.h: Likewise.
11256 * config/vax/vax.md: Likewise.
11257 * config/vax/vax.opt: Likewise.
c4e75102 11258
60839f5d 112592009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11260
60839f5d 11261 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11262 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11263 * config/vax/constraints.md (B, R): Likewise.
11264 * config/vax/predicates.md (external_memory_operand,
c4e75102 11265 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11266 * config/vax/vax.c (vax_output_int_add): Likewise.
11267 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11268 untyped_call): Likewise.
11269
60839f5d 112702009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11271
7a715bba
UB
11272 * config/vax/predicates.md: New file.
11273 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11274 external_const_operand, nonsymbolic_operand, external_memory_operand,
11275 indirect_memory_operand, indexed_memory_operand,
11276 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11277 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11278 predicate.
7a715bba
UB
11279 * config/vax/constraints.md: New file.
11280 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11281 New constraint.
11282 * config/vax/builtins.md: New file.
11283 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11284 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11285 jbbccisi): Define.
c4e75102
MT
11286 * config/vax/vax.opt (mqmath): Add option.
11287 * config/vax/vax.md (isfx): Extend with DI.
11288 (VAXintQH, VAXintQHSD): Define.
11289 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11290 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11291 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11292 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11293 (movdi): Update constraints and use vax_output_int_move().
11294 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11295 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11296 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11297 nonlocal_goto): New.
11298 (mov<mode>): Extend accepted operand types.
11299 (subdi3_old): Rename from subdi3, change update constraints and use
11300 a new implementation.
60839f5d 11301 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11302 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11303 MOVE_RATIO, CLEAR_RATIO): Define.
11304 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11305 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11306 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11307 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11308 (split_quadword_operands): Make static and really allow variable
11309 splitting.
11310 (print_operand_address): Update for PIC generation.
11311 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11312 indexable_address_p, fixup_mathdi_operand,
11313 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11314 (vax_float_literal, legitimate_constant_p,
11315 indirectable_constant_address_p, index_term_p,
11316 reg_plus_index_p): Return bool instead of int.
11317 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11318 where needed.
11319 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11320 generation.
11321 (vax_output_conditional_branch): Indent.
11322 (legitimate_constant_address_p, indirectable_constant_address_p,
11323 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11324 vax_mode_dependent_address_p): Return bool instead of int, update for
11325 PIC generation.
11326 * config/vax/vax-protos.h (legitimate_constant_address_p,
11327 legitimate_constant_p, legitimate_address_p,
11328 vax_mode_dependent_address_p): Change declaration to bool.
11329 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11330 vax_expand_addsub_di_operands, vax_output_int_subtract,
11331 vax_output_movmemsi): Declare.
11332 (split_quadword_operands, vax_float_literal): Delete declaration.
11333 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11334 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11335 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11336 ASM_OUTPUT_DWARF_PCREL): Define.
11337 (ASM_SPEC): Change definition to allow PIC generation.
11338
9332c6eb
L
113392009-04-01 Steve Ellcey <sje@cup.hp.com>
11340
11341 * doc/sourcebuild.texi: Update front-end requirements.
11342
d93e052c
JJ
113432009-04-01 Jakub Jelinek <jakub@redhat.com>
11344
11345 PR target/39226
11346 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11347 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11348 (booldi3_internal3): Use boolean_or_operator instead of
11349 boolean_operator.
11350
6ccb2a4a
JM
113512009-04-01 Joseph Myers <joseph@codesourcery.com>
11352
11353 PR c/39605
11354 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11355 declarator whose size is not an integer constant expression but
11356 folds to an integer constant, then treat it as a constant
11357 subsequently.
11358
299b87f8
RG
113592009-04-01 Richard Guenther <rguenther@suse.de>
11360
11361 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11362 i * 4 + 2 to (i * 2 + 1) * 2.
11363
b85eb797
JJ
113642009-04-01 Jakub Jelinek <jakub@redhat.com>
11365
11366 PR c/37772
11367 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11368 return if c_parser_asm_string_literal returned NULL.
11369
235e1fe8
NC
113702009-04-01 Nick Clifton <nickc@redhat.com>
11371
11372 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11373 already defined.
11374 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11375 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11376 other typedefs to avoid conflicts with libgcc2.c. Define labels
11377 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11378 include it.
11379 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11380 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11381 then include it.
11382
d6868399
RAE
113832009-04-01 Rafael Avila de Espindola <espindola@google.com>
11384
7a715bba
UB
11385 * varasm.c (default_function_rodata_section): Declare DOT as
11386 const char*.
d6868399 11387
73d21f56 113882009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11389 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11390
11391 PR/39492
11392 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11393 Make object_name unique for each process.
11394
03742a9b
JJ
113952009-04-01 Jakub Jelinek <jakub@redhat.com>
11396
11397 PR other/39591
11398 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11399 addressable variables in the parallel that could go out of scope while
11400 running queued tasks.
11401
4223ff5f
AS
114022009-04-01 Anatoly Sokolov <aesok@post.ru>
11403
11404 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11405 (CASE_VALUES_THRESHOLD): Redefine.
11406 * config/avr/avr.c (avr_override_options): Remove initialization of
11407 avr_case_values_threshold variable.
11408 (avr_case_values_threshold): Remove variable. Add new function.
11409 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11410 * config/avr/avr.opt (mno-tablejump): Remove option.
11411 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11412
e893f6f3
DD
114132009-04-01 DJ Delorie <dj@redhat.com>
11414
11415 * varasm.c (default_function_rodata_section): Don't assume
11416 anything about where the first '.' in the section name is.
11417
b246d100
AM
114182009-04-01 Alan Modra <amodra@bigpond.net.au>
11419
11420 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11421 rs6000_emit_stack_tie.
11422
d3e37a9e
ILT
114232009-03-31 Ian Lance Taylor <iant@google.com>
11424
11425 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11426 gimple_code with GIMPLE_RESX, not RESX.
11427
c1b61fca
JM
114282009-03-31 Joseph Myers <joseph@codesourcery.com>
11429
11430 * c-common.c (c_get_ident): New.
7a715bba 11431 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11432
c2d2ad48
BE
114332009-04-01 Ben Elliston <bje@au.ibm.com>
11434
11435 * config/rs6000/sysv4.opt (msdata): Improve option description.
11436
13d1a6e7
SE
114372009-03-31 Steve Ellcey <sje@cup.hp.com>
11438
11439 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11440 (divdf3_internal_lat): Remove.
11441 (divxf3_internal_lat): Remove.
11442 (divxf3_internal_thr): Remove.
11443 (divxf): Use divxf3_internal.
11444 * config/ia64/div.md (divsf3_internal_lat): New.
11445 (divdf3_internal_lat): New.
11446 (divxf3_internal): New.
11447
207bf79d
JM
114482009-03-31 Joseph Myers <joseph@codesourcery.com>
11449
11450 PR c/448
11451 * Makefile.in (USE_GCC_STDINT): Define.
11452 (stmp-int-hdrs): Install stdint.h if applicable.
11453 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11454 if known.
11455 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11456 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11457 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11458 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11459 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11460 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11461 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11462 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11463 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11464 (c_common_nodes_and_builtins): Initialize
11465 underlying_wchar_type_node. Do not initialize
11466 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11467 nodes for new types.
11468 (c_stddef_cpp_builtins): Define macros for new types.
11469 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11470 Remove.
11471 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11472 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11473 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11474 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11475 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11476 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11477 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11478 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11479 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11480 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11481 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11482 int16_type_node, int32_type_node, int64_type_node,
11483 uint8_type_node, uint16_type_node, c_uint32_type_node,
11484 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11485 int_least32_type_node, int_least64_type_node,
11486 uint_least8_type_node, uint_least16_type_node,
11487 uint_least32_type_node, uint_least64_type_node,
11488 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11489 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11490 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11491 uintptr_type_node): Define.
11492 * c-cppbuiltin.c (builtin_define_constants,
11493 builtin_define_type_minmax): New.
11494 (builtin_define_stdint_macros): Define more macros.
11495 (c_cpp_builtins): Define more limit macros.
11496 (type_suffix): New.
11497 (builtin_define_type_max): Define in terms of
11498 builtin_define_type_minmax. Remove is_long parameter. All
11499 callers changed.
11500 * config.gcc (use_gcc_stdint): Define.
11501 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11502 Add newlib-stdint.h for generic targets.
11503 * config/glibc-stdint.h, config/newlib-stdint.h,
11504 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11505 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11506 * config/score/score.h (UINTPTR_TYPE): Define.
11507 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11508 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11509 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11510 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11511 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11512 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11513 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11514 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11515 * config/spu/spu.h (STDINT_LONG32): Define.
11516 * configure.ac (use_gcc_stdint): Substitute.
11517 * configure: Regenerate.
11518 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11519 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11520 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11521 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11522 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11523 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11524 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11525 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11526 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11527 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11528 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11529 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11530 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11531 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11532 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11533 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11534 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11535 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11536 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11537 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11538 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11539 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11540 INT64_TYPE, UINT8_TYPE, 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): Document.
11547
ed853664
BS
115482009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11549
11550 * loop-iv.c (suitable_set_for_replacement): Renamed from
11551 simplify_using_assignment; changed to return bool and to accept new
11552 args DEST and SRC. Return true iff we find a source/destination pair
11553 that can be used to make a replacement, and fill SRC and DEST if so.
11554 Remove arg ALTERED. Don't deal with altered regs here. All callers
11555 changed.
11556 (simplify_using_initial_values): Deal with altered regs here and track
11557 more precisely the effect they have on the validity of our expression.
11558
1569e190
BS
11559 * loop-iv.c (simplify_using_condition): A condition of the form
11560 (EQ REG CONST) can be used to simply make a substitution.
11561 (simplify_using_initial_values): Keep track of conditions we have seen
11562 and keep using them to simplify new expressions, while applying the
11563 same substitutions to them as to the expression.
11564
1d1eb80c
BS
11565 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11566 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11567 GEU/LTU reversed.
11568
28af33b0
BS
11569 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11570 changed. Use this when trying to improve the upper bound.
11571 Generate the comparison by using simplify_gen_relational.
11572
b30321cd
BS
11573 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11574
60081874
BS
11575 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11576 functions.
2ba9daa7 11577 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11578 replace_in_expr to make replacements. Call replace_single_def_regs
11579 once on the initial version of the expression.
11580
bebc6e07
RR
115812009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11582
fcb82ab0 11583 PR target/27237
bebc6e07 11584 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11585
6b12efe9
RG
115862009-03-31 Richard Guenther <rguenther@suse.de>
11587
11588 PR middle-end/31029
11589 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11590 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11591
108f6c2f
RG
115922009-03-31 Richard Guenther <rguenther@suse.de>
11593
11594 * tree.h (div_if_zero_remainder): Declare.
11595 * fold-const.c (div_if_zero_remainder): Export.
11596 * tree-ssa-forwprop.c
11597 (forward_propagate_addr_into_variable_array_index): Handle
11598 constant array index addition outside of the variable index.
11599
8f612190
JM
116002009-03-31 Joseph Myers <joseph@codesourcery.com>
11601
11602 PR target/39592
11603 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11604 define_splits, floatunssi<mode>2): Require x87 conversions from
11605 DImode to be permitted.
11606
47580d22
JM
116072009-03-31 Joseph Myers <joseph@codesourcery.com>
11608
11609 PR preprocessor/15638
11610 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11611
ba4d8f9d
RG
116122009-03-31 Richard Guenther <rguenther@suse.de>
11613
11614 PR middle-end/23401
11615 PR middle-end/27810
11616 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11617 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11618 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11619 a separate statement.
11620 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11621 (lookup_tmp_var): Likewise.
11622 (is_gimple_formal_tmp_or_call_rhs): Remove.
11623 (is_gimple_reg_or_call_rhs): Rename to ...
11624 (is_gimple_reg_rhs_or_call): ... this.
11625 (is_gimple_mem_or_call_rhs): Rename to ...
11626 (is_gimple_mem_rhs_or_call): ... this.
11627 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11628 DECL_GIMPLE_REG_P only if is_formal is true.
11629 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11630 for non-proper post-modify expression gimplification.
11631 (gimplify_self_mod_expr): For post-modify expressions gimplify
11632 the lvalue to a minimal lvalue.
11633 (rhs_predicate_for): Remove formal temp case.
11634 (gimplify_modify_expr_rhs): Likewise.
11635 (gimplify_addr_expr): Use is_gimple_reg.
11636 (gimplify_expr): Remove formal temp cases.
11637 (gimple_regimplify_operands): Likewise.
11638 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11639 and FILTER_EXPR like constants.
11640 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11641 is_gimple_reg.
11642 (is_gimple_formal_tmp_rhs): Remove.
11643 (is_gimple_reg_rhs): Remove special casing.
11644 (is_gimple_mem_rhs): Fix.
11645 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11646 (is_gimple_formal_tmp_var): Remove.
11647 (is_gimple_formal_tmp_reg): Likewise.
11648 (is_gimple_min_lval): Allow invariant component ref parts.
11649 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11650 is_gimple_formal_tmp_reg): Remove declarations.
11651 * tree-cfg.c (verify_expr): Verify that variables with address
11652 taken do not have DECL_GIMPLE_REG_P set.
11653 * tree-mudflap.c (mf_build_check_statement_for): Use
11654 force_gimple_operand instead of gimplify_expr.
11655
8de9b877
AZ
116562009-03-31 Ayal Zaks <zaks@il.ibm.com>
11657
11658 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11659 schedulable rows to compute_split_row.
11660
b5e3caf2
BE
116612009-03-31 Ben Elliston <bje@au.ibm.com>
11662
11663 PR target/31635
11664 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11665 OPT_mvrsave.
11666
9752c4ad
AM
116672009-03-31 Alan Modra <amodra@bigpond.net.au>
11668
11669 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11670 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11671 * configure: Regenerate.
11672 * config.in: Regenerate.
11673 * config/rs6000/rs6000.opt (mtls-markers): Add.
11674 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11675 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11676 (tls_ld_aix, tls_ld_sysv): Likewise.
11677 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11678 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11679
b597d1b6
AM
116802009-03-31 Alan Modra <amodra@bigpond.net.au>
11681
11682 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11683
a203a221
JH
116842009-03-30 Jan Hubicka <jh@suse.cz>
11685
b597d1b6
AM
11686 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11687 out of RESX.
11688 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11689 detection and label handling.
a203a221 11690
5b0c0b2c
VM
116912009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11692
11693 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11694 left_conflicts_size.
11695 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11696 ALLOCNO_LEFT_CONFLICTS_SIZE.
11697
11698 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11699 remove_allocno_from_bucket_and_push,
11700 allocno_spill_priority_compare, push_allocnos_to_stack,
11701 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11702 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11703 (setup_allocno_left_conflicts_num): Ditto. Rename to
11704 setup_allocno_left_conflicts_size.
11705 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11706 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11707 setup_allocno_left_conflicts_size instead of
11708 setup_allocno_left_conflicts_num.
11709
11710 * ira-build.c (ira_create_allocno): Use
11711 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11712 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11713
9a48a93f
VM
117142009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11715
11716 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11717 instead of DF_LR_OUT.
11718
11719 * ira-lives.c (process_bb_node_lives): Ditto.
11720
11721 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11722 instead of DF_LR_{OUT,IN}.
11723
11724 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11725
11726 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11727
4c936d4f
JH
117282009-03-30 Jan Hubicka <jh@suse.cz>
11729
11730 * except.c (label_to_region_map): Fix thinko.
11731
f4d9f129
SE
117322009-03-30 Steve Ellcey <sje@cup.hp.com>
11733
11734 PR middle-end/38237
11735 * tree.h (tree_find_value): New declaration.
11736 * tree.c (tree_find_value): New function.
11737 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11738
b3f27c15
JJ
117392009-03-30 Jakub Jelinek <jakub@redhat.com>
11740
11741 PR debug/39563
11742 * c-decl.c (struct c_binding): Add locus field.
11743 (bind): Add locus argument, set locus field from it.
11744 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11745 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11746 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11747 implicitly_declare, undeclared_variable, lookup_label,
11748 declare_label, c_make_fname_decl, c_builtin_function,
11749 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11750 bind callers.
11751
ad41bd84 117522009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11753
11754 PR target/38781
11755 * config/i386/i386.c (classify_argument): Check total size of
11756 structure.
11757
133f9369
MJ
117582009-03-30 Martin Jambor <mjambor@suse.cz>
11759
11760 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11761 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11762 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11763 respectively.
11764
11765 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11766 seen_variable_array_ref while also traversing a union.
11767
11768 * tree-inline.c (optimize_inline_calls): Do not call
11769 cgraph_node_remove_callees.
11770 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11771 (pass_remove_cgraph_callee_edges): New variable.
11772 * passes.c (init_optimization_passes): Add
11773 pass_remove_cgraph_callee_edges after early inlining and before all
11774 late intraprocedural passes.
11775
11776 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11777
1190f2eb
PB
117782009-03-30 Paolo Bonzini <bonzini@gnu.org>
11779
11780 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11781 Fix typos in names.
11782
fedc1775
PB
117832009-03-30 Paolo Bonzini <bonzini@gnu.org>
11784
fcb82ab0
UB
11785 * combine.c (simplify_comparison): Use have_insn_for.
11786 * dojump.c (do_jump): Likewise.
fedc1775 11787
65c5ae8b
PB
117882009-03-30 Paolo Bonzini <bonzini@gnu.org>
11789
11790 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11791 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11792 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11793 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11794 instead of sparc_compare_emitted.
11795 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11796 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11797 instead of sparc_compare_emitted.
11798
d25aa7ab
PB
117992009-03-30 Paolo Bonzini <bonzini@gnu.org>
11800
11801 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11802 enter/exit cfglayout mode.
11803 (pass_partition_block): Require it.
11804 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11805 (combine_instructions): Track basic blocks instead of labels.
11806 (update_cfg_for_uncondjump): New.
11807 (try_combine): Use it. Update jumps after rescanning.
11808 (pass_combine): Require PROP_cfglayout.
11809 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11810
9c9e26f5
PB
118112009-03-30 Paolo Bonzini <bonzini@gnu.org>
11812
fcb82ab0
UB
11813 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11814 Provide/destroy PROP_cfglayout respectively.
11815 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11816 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11817
28ddeea1
PB
118182009-03-30 Paolo Bonzini <bonzini@gnu.org>
11819
11820 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11821 fold_convert_const_fixed_from_fixed,
11822 fold_convert_const_fixed_from_int,
11823 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11824 set TREE_CONSTANT_OVERFLOW.
11825 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11826 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11827
ebfd146a
IR
118282009-03-30 Ira Rosen <irar@il.ibm.com>
11829
11830 * tree-vect-loop-manip.c: New file.
11831 * tree-vectorizer.c: Update documentation and included files.
11832 (vect_loop_location): Make extern.
11833 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11834 (rename_variables_in_bb, rename_variables_in_loop,
11835 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11836 slpeel_update_phi_nodes_for_guard1,
11837 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11838 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11839 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11840 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11841 find_loop_location): Likewise.
11842 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11843 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11844 get_vectype_for_scalar_type, vect_is_simple_use,
11845 supportable_widening_operation, supportable_narrowing_operation):
11846 Likewise.
11847 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11848 (new_loop_vec_info, destroy_loop_vec_info,
11849 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11850 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11851 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11852 (vect_supportable_dr_alignment): Likewise.
11853 * tree-vectorizer.h (tree-data-ref.h): Include.
11854 (vect_loop_location): Declare.
11855 Reorganize function declarations according to the new file structure.
11856 * tree-vect-loop.c: New file.
2ba9daa7 11857 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11858 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11859 * tree-vect-data-refs.c: New file.
11860 * tree-vect-patterns.c (timevar.h): Don't include.
11861 * tree-vect-stmts.c: New file.
2ba9daa7 11862 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11863 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11864 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11865 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11866 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11867 (tree-vect-analyze.o): Remove.
11868 (tree-vect-transform.o): Likewise.
11869 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11870 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11871 tree-vect-slp.o): Likewise.
11872 (tree-vect-patterns.o): Remove redundant dependencies.
11873 (tree-vectorizer.o): Likewise.
11874 * tree-vect-slp.c: New file.
11875
40a1cfba
RW
118762009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11877
11878 * optc-gen.awk: Warn if an option flag has multiple different
11879 help strings.
11880
a9a7a9a2
SP
118812009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11882
11883 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11884 -floop-block): Document dependences on PPL, CLooG and Graphite.
11885
8ce94e44
JM
118862009-03-30 Joseph Myers <joseph@codesourcery.com>
11887
11888 PR rtl-optimization/323
11889 * c-common.c (c_fully_fold, convert_and_check,
11890 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11891 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11892 * c-common.def (EXCESS_PRECISION_EXPR): New.
11893 * c-cppbuiltin.c (builtin_define_float_constants): Define
11894 constants with enough digits for long double.
11895 * c-lex.c (interpret_float): Interpret constant with excess
11896 precision where appropriate.
11897 * c-opts.c (c_common_post_options): Set
11898 flag_excess_precision_cmdline. Give an error for
11899 -fexcess-precision=standard for C++ for processors where the
11900 option is significant.
11901 * c-parser.c (c_parser_conditional_expression): Handle excess
11902 precision in condition.
11903 * c-typeck.c (convert_arguments): Handle arguments with excess
11904 precision.
11905 (build_unary_op): Move excess precision outside operation.
11906 (build_conditional_expr): Likewise.
11907 (build_compound_expr): Likewise.
11908 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11909 (build_modify_expr): Handle excess precision in RHS.
11910 (convert_for_assignment): Handle excess precision in converted
11911 value.
11912 (digest_init, output_init_element, process_init_element): Handle
11913 excess precision in initializer.
11914 (c_finish_return): Handle excess precision in return value.
11915 (build_binary_op): Handle excess precision in operands and add
11916 excess precision as needed for operation.
11917 * common.opt (-fexcess-precision=): New option.
11918 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11919 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11920 For standard excess precision, output explicit conversion to and
11921 truncation from XFmode.
11922 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11923 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11924 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11925 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11926 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11927 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11928 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11929 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11930 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11931 define_splits, sqrt<mode>2): Disable where appropriate for
11932 standard excess precision.
11933 * convert.c (convert_to_real): Do not shorten arithmetic to type
11934 for which excess precision would be used.
11935 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11936 * doc/invoke.texi (-fexcess-precision=): Document option.
11937 (-mfpmath=): Correct index entry.
11938 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11939 flag_excess_precision): New.
11940 * langhooks.c (lhd_post_options): Set
11941 flag_excess_precision_cmdline.
11942 * opts.c (common_handle_option): Handle -fexcess-precision=.
11943 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11944 init_excess_precision): New.
11945 (lang_dependent_init_target): Call init_excess_precision.
11946 * tree.c (excess_precision_type): New.
11947 * tree.h (excess_precision_type): Declare.
11948
1e57bf47
JM
119492009-03-30 Joseph Myers <joseph@codesourcery.com>
11950
11951 PR c/35235
11952 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11953 non-lvalue to component.
11954
148e4216
JM
119552009-03-29 Joseph Myers <joseph@codesourcery.com>
11956
11957 PR preprocessor/34695
11958 * Makefile.in (c-opts.o): Depend on c-tree.h.
11959 * c-common.c: Move down include of diagnostic.h.
11960 (done_lexing, c_cpp_error): New.
11961 * c-common.h (done_lexing): Declare.
11962 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11963 (parse_in).
11964 * c-opts.c: Include c-tree.h.
11965 (c_common_init_options): Set preprocessor error callback.
11966 (c_common_handle_option): Do not set preprocessor
11967 inhibit_warnings, warnings_are_errors, warn_system_headers,
11968 pedantic_errors or inhibit_warnings flags.
11969 (c_common_post_options): Do not check cpp_errors (parse_in).
11970 (c_common_finish): Do not output dependencies if there were
11971 errors. Do not check return value of cpp_finish.
11972 * c-ppoutput.c (pp_file_change): Set input_location.
11973 * c-tree.h (c_cpp_error): Declare.
11974 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11975 override_column.
11976 (diagnostic_build_prefix): Check override_column.
11977 * diagnostic.h (diagnostic_info): Add override_column field.
11978 (diagnostic_override_column): Define.
11979
2ec5deb5
PB
119802009-03-28 Paolo Bonzini <bonzini@gnu.org>
11981
ba20e309
UB
11982 * c-common.c (c_expand_expr, c_staticp): Remove.
11983 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11984 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11985 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11986 * c-gimplify.c (gimplify_compound_literal_expr,
11987 optimize_compound_literals_in_ctor): Remove.
11988 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11989 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11990 * c-semantics.c (emit_local_var): Remove.
11991
11992 * langhooks-def.h (lhd_expand_expr): Remove.
11993 * langhooks.c (lhd_expand_expr): Remove.
11994 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11995
11996 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11997 handling from c-semantics.c; don't call into langhook.
11998 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11999 * gimplify.c (gimplify_compound_literal_expr,
12000 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12001 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12002 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12003 as was done in c-gimplify.c.
12004 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12005 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12006 Move from c-common.h.
12007 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
12008
12009 * tree.c (staticp): Do not call langhook.
12010 * langhooks.c (lhd_staticp): Delete.
12011 * langhooks-def.h (lhd_staticp): Delete prototype.
12012 (LANG_HOOKS_STATICP): Delete.
12013 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12014
ba20e309
UB
12015 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12016 instead of DECL_STMTs.
2ec5deb5 12017
928c19bb
JM
120182009-03-29 Joseph Myers <joseph@codesourcery.com>
12019
12020 PR c/456
12021 PR c/5675
12022 PR c/19976
12023 PR c/29116
12024 PR c/31871
12025 PR c/35198
12026 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12027 void_type_node.
12028 (fold_call_expr): Return a NOP_EXPR from folding rather than the
12029 contained expression.
ba20e309 12030 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
12031 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
12032 conditional expressions for C.
12033 (decl_constant_value_for_optimization): Move from
ba20e309 12034 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
12035 whether optimizing and that the expression is a VAR_DECL not of
12036 array type instead of doing such checks in the caller. Do not
12037 check pedantic. Call gcc_unreachable for C++.
12038 * c-common.def (C_MAYBE_CONST_EXPR): New.
12039 * c-common.h (c_fully_fold, c_save_expr,
12040 decl_constant_value_for_optimization): New prototypes.
12041 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12042 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12043 EXPR_INT_CONST_OPERANDS): Define.
12044 * c-convert.c (convert): Strip nops from expression.
12045 * c-decl.c (groktypename): Take extra parameters expr and
12046 expr_const_operands. Update call to grokdeclarator.
12047 (start_decl): Update call to grokdeclarator. Add statement for
12048 expressions used in type of decl.
12049 (grokparm): Update call to grokdeclarator.
12050 (push_parm_decl): Update call to grokdeclarator.
12051 (build_compound_literal): Add parameter non_const and build a
12052 C_MAYBE_COSNT_EXPR if applicable.
12053 (grokdeclarator): Take extra parameters expr and
12054 expr_const_operands. Track expressions used in declaration
12055 specifiers and declarators. Fold array sizes and track whether
12056 they are constant expressions and whether they are integer
12057 constant expressions.
12058 (parser_xref_tag): Set expr and expr_const_operands fields in
12059 return value.
12060 (grokfield): Update call to grokdeclarator.
12061 (start_function): Update call to grokdeclarator.
12062 (build_null_declspecs): Set expr and expr_const_operands fields in
12063 return value.
12064 (declspecs_add_type): Handle expressions in typeof specifiers.
12065 * c-parser.c (c_parser_declspecs): Set expr and
12066 expr_const_operands fields for declaration specifiers.
12067 (c_parser_enum_specifier): Likewise.
12068 (c_parser_struct_or_union_specifier): Likewise.
12069 (c_parser_typeof_specifier): Likewise. Update call to
12070 groktypename. Fold expression as needed. Return expressions with
12071 type instead of adding statements.
12072 (c_parser_attributes): Update calls to c_parser_expr_list.
12073 (c_parser_statement_after_labels): Fold expression before passing
12074 to objc_build_throw_stmt.
12075 (c_parser_condition): Fold expression.
12076 (c_parser_asm_operands): Fold expression.
12077 (c_parser_conditional_expression): Use c_save_expr. Update call
12078 to build_conditional_expr.
12079 (c_parser_alignof_expression): Update call to groktypename.
12080 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12081 original_code. Fold expression argument of va_arg. Create
12082 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12083 argument to va_arg. Update calls to groktypename. Fold array
12084 index for offsetof. Verify that first argument to
12085 __builtin_choose_expr has integer type.
12086 (c_parser_postfix_expression_after_paren_type): Update calls to
12087 groktypename and build_compound_literal. Handle expressions with
12088 side effects in type name.
12089 (c_parser_postfix_expression_after_primary): Update call to
12090 c_parser_expr_list. Set original_code for calls to
12091 __builtin_constant_p.
12092 (c_parser_expr_list): Take extra parameter fold_p. Fold
12093 expressions if requested.
12094 (c_parser_objc_type_name): Update call to groktypename.
12095 (c_parser_objc_synchronized_statement): Fold expression.
12096 (c_parser_objc_receiver): Fold expression.
12097 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12098 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12099 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12100 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12101 (struct c_typespec): Add elements expr and expr_const_operands.
12102 (struct c_declspecs): Add elements expr and expr_const_operands.
12103 (groktypename, build_conditional_expr, build_compound_literal):
12104 Update prototypes.
12105 (in_late_binary_op): Declare.
12106 * c-typeck.c (note_integer_operands): New function.
12107 (in_late_binary_op): New variable.
12108 (decl_constant_value_for_broken_optimization): Move to c-common.c
12109 and rename to decl_constant_value_for_optimization.
12110 (default_function_array_conversion): Do not strip nops.
12111 (default_conversion): Do not call
12112 decl_constant_value_for_broken_optimization.
12113 (build_array_ref): Do not fold result.
12114 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12115 result when operand is a VLA.
12116 (c_expr_sizeof_type): Update call to groktypename. Handle
12117 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12118 result when operand names a VLA type.
12119 (build_function_call): Update call to build_compound_literal.
12120 Only fold result for calls to __builtin_* functions. Strip
12121 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12122 the function designator.
12123 (convert_arguments): Fold arguments. Update call to
12124 convert_for_assignment.
12125 (build_unary_op): Handle increment and decrement of
12126 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12127 decrement earlier. Fold operand of increment and decrement.
12128 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12129 built for integer operand. Wrap returns that are INTEGER_CSTs
12130 without being integer constant expressions or that have integer
12131 constant operands without being INTEGER_CSTs.
12132 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12133 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12134 result is an integer constant expression or can be used in
12135 unevaluated parts of one and avoid folding and wrap as
12136 appropriate. Fold operands before possibly doing -Wsign-compare
12137 warnings.
12138 (build_compound_expr): Wrap result for C99 if operands can be used
12139 in integer constant expressions.
12140 (build_c_cast): Update call to digest_init. Do not ignore
12141 overflow from casting floating-point constants to integers. Wrap
12142 results that could be confused with integer constant expressions,
12143 null pointer constants or floating-point constants.
12144 (c_cast_expr): Update call to groktypename. Handle expressions
12145 included in type name.
12146 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12147 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12148 Update calls to convert_for_assignment.
12149 (convert_for_assignment): Take new parameter
12150 null_pointer_constant. Do not strip nops or call
12151 decl_constant_value_for_broken_optimization. Set
12152 in_late_binary_op for conversions to boolean.
12153 (store_init_value): Update call to digest_init.
12154 (digest_init): Take new parameter null_pointer_constant. Do not
12155 call decl_constant_value_for_broken_optimization. pedwarn for
12156 initializers not constant expressions. Update calls to
12157 convert_for_assignment.
12158 (constructor_nonconst): New.
12159 (struct constructor_stack): Add nonconst element.
12160 (really_start_incremental_init, push_init_level, pop_init_level):
12161 Handle constructor_nonconst and nonconst element.
12162 (set_init_index): Call constant_expression_warning for array
12163 designators.
12164 (output_init_element): Fold value. Set constructor_nonconst as
12165 applicable. pedwarn for initializers not constant expressions.
12166 Update call to digest_init. Call constant_expression_warning
12167 where constant initializers are required.
12168 (process_init_element): Use c_save_expr.
12169 (c_finish_goto_ptr): Fold expression.
12170 (c_finish_return): Fold return value. Update call to
12171 convert_for_assignment.
12172 (c_start_case): Fold switch expression.
12173 (c_process_expr_stmt): Fold expression.
12174 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12175 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12176 (build_binary_op): Track whether results are integer constant
12177 expressions or may occur in such, disable folding and wrap results
12178 as applicable. Fold operands for -Wsign-compare warnings unless
12179 in_late_binary_op.
12180 (c_objc_common_truthvalue_conversion): Handle results folded to
12181 integer constants that are not integer constant expressions.
12182 * doc/extend.texi: Document when typeof operands are evaluated,
12183 that condition of __builtin_choose_expr is an integer constant
12184 expression, and more about use of __builtin_constant_p in
12185 initializers.
12186
5babbcc0
RG
121872009-03-29 Richard Guenther <rguenther@suse.de>
12188
12189 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12190 propagate addresses of array references.
12191
0340f2ba
SB
121922009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12193
12194 * regmove.c (perhaps_ends_bb_p): Remove.
12195 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12196 from INSN and check that the main loop stays within that basic block.
12197 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12198 (regmove_forward_pass): Split out from regmove_optimize. Use
12199 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12200 (regmove_backward_pass): Split out from regmove_optimize. Use
12201 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12202 (regmove_optimize): Simplify.
12203
eeae74a1
L
122042009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12205
12206 PR target/39545
12207 * config/i386/i386.c (classify_argument): Ignore flexible array
12208 member in struct and warn ABI change.
12209
a24078b2
L
122102009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12211
12212 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12213
12214 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12215 (ix86_adjust_cost): Updated.
12216
a8da523f
JH
122172009-03-29 Jan Hubicka <jh@suse.cz>
12218
12219 PR middle-end/28850
12220 * tree-pass.h (pass_cleanup_eh): New function.
12221 (remove_unreachable_regions): Break code handling RTL
12222 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12223 that can not be reached by runtime.
12224 (can_be_reached_by_runtime): New function.
12225 (label_to_region_map): New function.
12226 (num_eh_regions): New function.
12227 (rtl_remove_unreachable_regions): New function.
12228 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12229 (remove_eh_region): New function.
12230 * except.h: Include sbitmap and vecprim.
12231 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12232 num_eh_regions): Declare.
12233 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12234 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12235 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12236 (tree_empty_eh_handler_p): New function.
12237 (cleanup_empty_eh): New function.
12238 (cleanup_eh): New function.
12239 (pass_cleanup_eh): New function.
12240
98f358e5
JH
122412009-03-29 Jan Hubicka <jh@suse.cz>
12242
12243 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12244 for removed regions.
12245
13a9fa44
JH
122462009-03-29 Jan Hubicka <jh@suse.cz>
12247
12248 * except.c (dump_eh_tree): Dump all datastructures.
12249
e38cf733
JH
122502009-03-29 Jan Hubicka <jh@suse.cz>
12251
12252 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12253 (duplicate_eh_regions_1): Likewise.
12254 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12255 vector; call EH verification.
12256 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12257 Be ready for region being removed.
12258
12802c2b
JH
122592009-03-29 Jan Hubicka <jh@suse.cz>
12260
12261 * bitmap.c (bitmap_last_set_bit): New function.
12262 * bitmap.h (bitmap_last_set_bit): Declare.
12263
4ea80a41
DA
122642009-03-29 David Ayers <ayers@fsfe.org>
12265
12266 PR objc/27377
12267 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12268 by calling objc_compare_types and surpress warnings about
12269 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12270
4ea80a41 122712009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12272
12273 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12274 call initialize_inline_failed.
12275 (initialize_inline_failed): Move it from here ...
12276 * cgraph.c (initialize_inline_failed): ... to here.
12277 (cgraph_create_edge): Call initialize_inline_failed rather than
12278 setting inline_failed directly.
12279
7fb0ee07
BE
122802009-03-29 Ben Elliston <bje@au.ibm.com>
12281
12282 PR target/32542
12283 * sysv4.opt (msdata): Improve comment.
12284 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12285 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12286
0be77bf2
BE
122872009-03-29 Ben Elliston <bje@au.ibm.com>
12288
12289 PR target/30451
12290 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12291 load and store attributes.
12292
593812b6
BE
122932009-03-29 Ben Elliston <bje@au.ibm.com>
12294
12295 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12296 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12297 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12298 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12299 __builtin_infq and __builtin_huge_valq.
12300
8272d11d
AS
123012009-03-28 Anatoly Sokolov <aesok@post.ru>
12302
12303 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12304 atmega8m1 devices.
12305 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12306 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12307
74fe548b
XDL
123082009-03-28 Xinliang David Li <davidxl@google.com>
12309
2ba9daa7 12310 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12311 (do_dbg_cnt): New function.
12312
33977f81
JH
123132009-03-28 Jan Hubicka <jh@suse.cz>
12314
12315 Merge from pretty-ipa:
12316
12317 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12318
33977f81
JH
12319 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12320 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12321 * passes.c (function_called_by_processed_nodes_p): New.
12322 * ipa-pure-const.c (check_call): Fix handling of operands.
12323 (analyze_function): Dump debug output for skipped bodies.
12324 (local_pure_const): Use function_called_by_processed_nodes_p.
12325 * dwarf2out.c (reference_to_unused): Use output.
12326 * passes.c (do_per_function_toporder): Likewise.
12327
12328 2008-11-12 Jan Hubicka <jh@suse.cz>
12329
12330 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12331 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12332 state_set_in_source enum
12333 (check_decl): Ignore memory tags; do not set fake looping flags;
12334 dump diagnostics.
12335 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12336 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12337 (check_call, analyze_function): Rewrite.
12338 (check_stmt): New.
12339 (add_new_function): Update call of analyze_function.
12340 (generate_summary): Add call of analyze_function.
12341 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12342 (local_pure_const): New function.
12343 (pass_local_pure_const): New pass.
12344 * ipa-inline.c (inline_transform): Set after_inlining.
12345 * tree-eh.c (stmt_can_throw_external): New.
12346 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12347 work with aliasing built.
12348 * tree-flow.h (stmt_can_throw_external): New.
12349 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12350 and local pure/const pass in early and late optimization queue.
ba20e309 12351
617f3897
MJ
123522009-03-28 Martin Jambor <mjambor@suse.cz>
12353
12354 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12355 allow_func_align.
12356 (fold_binary): Allow function decl aligment consideration is the
12357 second argument is integer constant one.
12358 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12359 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12360 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12361
fe89fbc5
JH
123622009-03-28 Jan Hubicka <jh@suse.cz>
12363
12364 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12365 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12366 * function.h (rtl_data): Add nothrow flag.
12367 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12368 set DECL_NOTHROW for AVAILABLE functions.
12369
574872ff
JJ
123702009-03-28 Jakub Jelinek <jakub@redhat.com>
12371
b3bf8855
JJ
12372 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12373 following vector keyword has expansion starting with pixel or bool
12374 keyword, expand vector to __vector and pixel or bool to __pixel or
12375 __bool.
12376
574872ff
JJ
12377 PR c++/39554
12378 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12379 warn_if_disallowed_function_p): Removed.
12380 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12381 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12382 warning_if_disallowed_function_p.
12383 * flags.h (warn_if_disallowed_function_p,
12384 warn_disallowed_functions): Removed.
12385 * common.opt (Wdisallowed-function-list=): Removed.
12386 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12387
b005da11
RG
123882009-03-28 Richard Guenther <rguenther@suse.de>
12389
12390 PR tree-optimization/38723
12391 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12392 the entry block.
12393
1de812a6
JH
123942009-03-28 Jan Hubicka <jh@suse.cz>
12395
12396 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12397 test introduced by my previous patch.
12398
fbb789d4
RG
123992009-03-28 Richard Guenther <rguenther@suse.de>
12400
12401 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12402 the PHIs value undefined.
12403
6f1873a1
JH
124042009-03-28 Jan Hubicka <jh@suse.cz>
12405
12406 * tree-pass.h (pass_fixup_cfg): New pass.
12407 * ipa-inline.c (inline_transform): Set
12408 always_inline_functions_inlined/after_inlining.
12409 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12410 (pass_fixup_cfg): New pass.
12411 * passes.c (init_optimization_passes): Add fixup_cfg.
12412
17021bc8
RG
124132009-03-28 Richard Guenther <rguenther@suse.de>
12414
12415 PR tree-optimization/38458
12416 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12417 argument use the arguments copy-of value.
12418
e8114fba
RG
124192009-03-28 Richard Guenther <rguenther@suse.de>
12420
12421 PR tree-optimization/38180
12422 * tree-ssa-ccp.c (get_default_value): Simplify.
12423 (likely_value): Likewise.
12424 (surely_varying_stmt_p): Properly handle VOP case.
12425 (ccp_initialize): Likewise.
12426 (ccp_fold): Handle propagating through *&.
12427 (fold_const_aggregate_ref): Also handle decls.
12428
257eb6e3
JH
124292009-03-28 Jan Hubicka <jh@suse.cz>
12430
12431 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12432 * cgraph.h (cgraph_node): Likewise.
12433 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12434 (cgraph_reset_node): Use process flag.
12435 (cgraph_mark_functions_to_output): Likewise.
12436 (cgraph_expand_function): Likewise.
12437 (cgraph_expand_all_functions): Likewise.
12438 (cgraph_output_in_order): Likewise.
12439 * dwarf2out.c (reference_to_unused): Likewise.
12440 * passes.c do_per_function_toporder): Likewise.
12441
61a05df1
JH
124422009-03-28 Jan Hubicka <jh@suse.cz>
12443
12444 Bring from lto-branch:
ba20e309 12445
61a05df1
JH
12446 2008-09-03 Doug Kwan <dougkwan@google.com>
12447
12448 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12449 enums instead of reason strings.
12450 * cgraph.c (cgraph_create_edge): Same.
12451 (cgraph_inline_failed_string): New function.
12452 * cgraph.h (cgraph_inline_failed_t): New enum type.
12453 (cgraph_inline_failed_string): New prototype.
12454 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12455 char pointer to cgraph_inline_failed_t.
12456 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12457 (cgraph_default_inline_p): Ditto.
60839f5d 12458 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12459 to cgraph_inline_failed_t pointer.
12460 * cif-code.def: New file.
12461 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12462 reason string.
12463 (cgraph_check_inline_limits): Change type of REASON to pointer to
12464 cgraph_inline_failed_t. Replace reason strings with enums.
12465 (cgraph_default_inline_p): Ditto.
12466 (cgraph_recursive_inlining_p): Ditto.
12467 (update_caller_keys): Change type of FAILED_REASON to
12468 cgraph_inline_failed_t.
12469 (cgraph_set_inline_failed): Change type of REASON to pointer to
12470 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12471 convert enums to strings for text output.
12472 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12473 to be of type cgraph_inline_failed_t. Replace reason strings with
12474 enums. Call cgraph_inline_failed_string to covert enums
12475 to strings for text output.
12476 (cgraph_decide_inlining): Replace reason strings with enums.
12477 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12478 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12479 for text output.
12480 * tree-inline.c (expand_call_inline): Change type of REASON
12481 to cgraph_inline_failed_t. Replace reason strings with enums.
12482 Call cgraph_inline_failed_string for text output.
12483 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12484 (cgraph.o): Ditto.
12485
144e8aac
JH
124862009-03-28 Jan Hubicka <jh@suse.cz>
12487
12488 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12489 cgraph_clone_node): Remove master clone handling.
12490 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12491 * cgraph.h (master_clone): Remove.
12492 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12493 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12494 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12495
4a371c8d
JH
124962009-03-28 Jan Hubicka <jh@suse.cz>
12497
12498 * cgraph.c (cgraph_function_body_availability): Functions declared
12499 inline are always safe to assume that it is not going to be replaced.
12500
6cdb0ee3
RG
125012009-03-28 Richard Guenther <rguenther@suse.de>
12502
12503 PR tree-optimization/38513
12504 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12505 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12506 EXC_PTR_EXPR and FILTER_EXPR.
12507 (get_ref_from_reference_ops): Likewise.
12508
8ca1fd76
RG
125092009-03-28 Richard Guenther <rguenther@suse.de>
12510
12511 PR tree-optimization/38968
12512 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12513 Use FLOOR_MOD_EXPR to compute misalignment.
12514
a254e44d
RG
125152009-03-28 Richard Guenther <rguenther@suse.de>
12516
12517 PR tree-optimization/37795
12518 * tree.h (combine_comparisons): Declare.
12519 * fold-const.c (combine_comparisons): Export.
12520 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12521 comparisons.
12522 (ifcombine_iforif): Use combine_comparisons.
12523
a8ee227c
JH
125242009-03-28 Jan Hubicka <jh@suse.cz>
12525
12526 * tree-eh.c (inlinable_call_p): New function.
12527 (make_eh_edges): Use it.
12528 (verify_eh_edges): Use it.
12529 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12530 * except.c (reachable_next_level): Add inlinable_function argument
12531 (sjlj_find_directly_reachable_regions): Update.
12532 (add_reachable_handler): Do not set saw_any_handlers.
12533 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12534 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12535 Add new inlinable call parameter.
12536 (can_throw_internal, can_throw_external): Update.
12537 * except.h (can_throw_internal_1, can_throw_external_1,
12538 foreach_reachable_handler): Update declaration.
12539
52c0e446
JM
125402009-03-28 Joseph Myers <joseph@codesourcery.com>
12541
12542 * config/arm/t-arm-coff, config/h8300/coff.h,
12543 config/i386/i386-aout.h, config/i386/i386-coff.h,
12544 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12545 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12546 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12547 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12548 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12549 sys-types.h: Remove.
12550 * Makefile.in: Remove protoize and fixproto support and references
12551 in comments.
12552 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12553 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12554 Remove.
12555 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12556 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12557 unprotoize$(exeext).
12558 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12559 (.PHONY): Don't depend on proto.
12560 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12561 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12562 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12563 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12564 build/gen-protos.o, build/scan.o, xsys-protos.h,
12565 build/fix-header$(build_exeext), build/fix-header.o,
12566 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12567 stmp-install-fixproto): Remove.
12568 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12569 SYSCALLS.c or fixproto files.
12570 (install-common): Don't install protoize.
12571 (install-headers-tar, install-headers-cpio, install-headers-cp):
12572 Don't depend on $(STMP_FIXPROTO).
12573 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12574 install fixproto files or write out fixproto settings.
12575 (uninstall): Don't uninstall protoize.
12576 * config.gcc (use_fixproto): Remove.
12577 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12578 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12579 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12580 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12581 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12582 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12583 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12584 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12585 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12586 * config/t-vxworks (STMP_FIXPROTO): Remove.
12587 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12588 STMP_FIXPROTO): Remove.
12589 * config.in, configure: Regenerate.
12590 * crtstuff.c (gid_t, uid_t): Don't undefine.
12591 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12592 (arm-*-coff, arm-*-aout: Remove target entries.
12593 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12594 Remove mention of AIX 4.1.
12595 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12596 * doc/invoke.texi (Running Protoize): Remove.
12597 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12598 (Protoize Caveats): Remove.
12599 * tsystem.h: Update comments on headers assumed to exist.
12600
20a07f44
VM
126012009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12602
12603 * genautomata.c: Add a new year to the copyright. Add a new
12604 reference.
12605 (struct insn_reserv_decl): Add comments for member bypass_list.
12606 (find_bypass): Remove.
12607 (insert_bypass): New.
12608 (process_decls): Use insert_bypass.
12609 (output_internal_insn_latency_func): Output all bypasses with the
12610 same input insn in one switch case.
12611
12612 * rtl.def (define_bypass): Describe bypass choice.
12613 * doc/md.texi (define_bypass): Ditto.
12614
3a0d06c1
RB
126152009-03-27 Richard Guenther <rguenther@suse.de>
12616
12617 * gimplify.c (mark_addressable): Export.
12618 * tree-flow.h (mark_addressable): Declare.
12619 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12620 * tree-ssa.c (verify_phi_args): Verify that address taken
12621 variables have TREE_ADDRESSABLE set.
12622
126232009-03-27 Richard Guenther <rguenther@suse.de>
12624
12625 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12626 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12627 Do not mark decls TREE_ADDRESSABLE.
12628 (build_fold_addr_expr): Adjust.
12629 (fold_addr_expr): Remove.
12630 (fold_unary): Use build_fold_addr_expr.
12631 (fold_comparison): Likewise.
12632 (split_address_to_core_and_offset): Likewise.
12633 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12634 TREE_ADDRESSABLE.
12635 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12636 (gimplify_modify_expr_to_memcpy): Mark source and destination
12637 addressable.
12638 * omp-low.c (create_omp_child_function): Mark the object decl
12639 TREE_ADDRESSABLE.
12640 (lower_rec_input_clauses): Mark the var we take the address of
12641 TREE_ADDRESSABLE.
12642 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12643
2ac26e15
L
126442009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12645
12646 PR middle-end/39315
12647 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12648 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12649
472c7fbd
RG
126502009-03-27 Richard Guenther <rguenther@suse.de>
12651
12652 PR tree-optimization/39120
12653 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12654 constraints.
12655 (handle_lhs_call): Process return constraints. Add escape
12656 constraints if necessary.
12657 (handle_const_call): Fill out return constraints. Make nested
12658 case more precise. Avoid consttmp if possible.
12659 (handle_pure_call): Fill out return constraints. Avoid
12660 callused if possible.
12661 (find_func_aliases): Simplify call handling.
12662
126632009-03-27 Richard Guenther <rguenther@suse.de>
12664
12665 PR tree-optimization/39120
12666 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12667 as a representative.
12668 (solve_graph): Do propagate CALLUSED.
12669 (handle_pure_call): Use a scalar constraint from CALLUSED for
12670 the return value.
12671 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12672 solutions.
12673
d9223014
L
126742009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12675
12676 PR c/39323
12677 * c-common.c (handle_aligned_attribute): Properly check alignment
12678 overflow. Use (1U << i) instead of (1 << i).
12679
ba20e309 12680 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12681
12682 * expr.h (get_mem_align_offset): Updated.
12683
12684 * tree.h (tree_decl_common): Change align to "unsigned int" and
12685 move it before pointer_alias_set.
12686
689b689c
L
126872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12688 Jakub Jelinek <jakub@redhat.com>
12689
12690 PR target/38034
12691 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12692 gr_register_operand with gr_reg_or_0_operand.
12693 (cmpxchg_rel_di): Likewise.
12694 (sync_lock_test_and_set<mode>): Likewise.
12695
c619e982
L
126962009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12697
12698 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12699 (true_regnum): Likewise.
12700
12701 * rtlanal.c (subreg_info): Moved to ...
12702 * rtl.h (subreg_info): Here. New.
12703 (subreg_get_info): New.
12704
12705 * rtlanal.c (subreg_get_info): Make it extern.
12706
51212b32
L
127072009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12708
12709 PR target/39472
12710 * config/i386/i386.c (ix86_abi): New.
12711 (override_options): Handle -mabi=.
ba20e309 12712 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12713 (ix86_call_abi_override): Likewise.
12714 (init_cumulative_args): Likewise.
12715 (function_arg_advance): Likewise.
12716 (function_arg_64): Likewise.
12717 (function_arg): Likewise.
12718 (ix86_pass_by_reference): Likewise.
12719 (ix86_function_value_regno_p): Likewise.
12720 (ix86_build_builtin_va_list_abi): Likewise.
12721 (setup_incoming_varargs_64): Likewise.
12722 (is_va_list_char_pointer): Likewise.
12723 (ix86_init_machine_status): Likewise.
ba20e309 12724 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12725 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12726 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12727 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12728 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12729 with ix86_abi.
12730 (ix86_fn_abi_va_list): Updated.
12731
12732 * config/i386/i386.h (ix86_abi): New.
12733 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12734 (CONDITIONAL_REGISTER_USAGE): Likewise.
12735 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12736 (machine_function): Likewise.
12737
12738 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12739 with ix86_abi.
12740 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12741 (STACK_BOUNDARY): Likewise.
12742 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12743
12744 * config/i386/i386.opt (mabi=): New.
12745
12746 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12747 return enum calling_abi.
12748 (ix86_function_type_abi): Likewise.
12749 (ix86_function_abi): Removed.
12750
12751 * doc/invoke.texi: Document -mabi= option for x86.
12752
7338ea63
KG
127532009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12754
12755 * builtins.c (real_dconstp): Delete.
12756 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12757
68599f33
DS
127582009-03-27 Dodji Seketeli <dodji@redhat.com>
12759 Jakub Jelinek <jakub@redhat.com>
12760
12761 PR debug/37959
12762 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12763 (gen_subprogram_die): When a function is explicit, generate the
12764 DW_AT_explicit attribute.
12765 * langhooks.h (struct lang_hooks_for_decls): Add
12766 function_decl_explicit_p langhook.
12767 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12768 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12769
9f5e9983
JJ
127702009-03-27 Jakub Jelinek <jakub@redhat.com>
12771
64d7685c
JJ
12772 * builtins.c (fold_builtin_memory_op): Optimize memmove
12773 into memcpy if we can prove source and destination don't overlap.
12774
9f5e9983
JJ
12775 * tree-inline.c: Include gt-tree-inline.h.
12776 (clone_fn_id_num): New variable.
12777 (clone_function_name): New function.
12778 (tree_function_versioning): Use it.
12779 * Makefile.in (GTFILES): Add tree-inline.c.
12780
e54d52a8
MM
127812009-03-27 Mark Mitchell <mark@codesourcery.com>
12782
12783 * BASE-VER: Change to 4.5.0.
12784
e9d51dc6
XDL
127852009-03-27 Xinliang David Li <davidxl@google.com>
12786
12787 PR tree-optimization/39557
12788 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12789
4577cea1
XDL
127902009-03-27 Xinliang David Li <davidxl@google.com>
12791
12792 PR tree-optimization/39548
2ba9daa7 12793 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12794 candidate check.
12795
0f7464f4
L
127962009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12797
12798 * c-common.c (pointer_int_sum): Use %wd on return from
12799 tree_low_cst.
12800
a8847a7f
L
128012009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12802
12803 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12804 on return from tree_low_cst.
12805
b0957daf
AP
128062009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12807
12808 PR c++/36799
ba20e309
UB
12809 * ginclude/stdarg.h (va_copy): Define also for
12810 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12811
a5f805df
MLI
128122009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12813
12814 PR c++/35652
12815 * builtins.h (c_strlen): Do not warn here.
12816 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12817 * c-common.c (pointer_int_sum): Take an explicit location.
12818 Warn about offsets out of bounds.
12819 * c-common.h (pointer_int_sum): Adjust declaration.
12820
6f401211
RW
128212009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12822
a5f805df
MLI
12823 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12824 markup glitch.
6f401211 12825
5a59b39e
JJ
128262009-03-26 Jakub Jelinek <jakub@redhat.com>
12827
12828 PR c++/39554
12829 * opts.c (warn_if_disallowed_function_p): Don't assume
12830 get_callee_fndecl must return non-NULL.
12831
d5f89b53
VM
128322009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12833
12834 PR rtl-optimization/39522
12835 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12836 when reg_reloaded_valid is set.
12837
61238a79
UW
128382009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12839
12840 * config/spu/divv2df3.c: New file.
12841 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12842 (DPBIT_FUNCS): Filter out _div_df.
12843
03f8829b
BS
128442009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12845
12846 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12847 a jump insn, count that jump in the distance to the loop start.
12848
9fdcdc74
KK
128492009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12850
12851 PR target/39523
12852 * config/sh/sh.c (calc_live_regs): Fix condition for global
12853 registers except PIC_OFFSET_TABLE_REGNUM.
12854
46994828
KT
128552009-03-25 Kai Tietz <kai.tietz@onevision.com>
12856
12857 PR/39518
12858 * doc/invoke.texi (-mconsole): New.
12859 (-mcygwin): New.
12860 (-mno-cygwin): New.
12861 (-mdll): New.
12862 (-mnop-fun-dllimport): New.
12863 (-mthread): New.
12864 (-mwin32): New.
12865 (-mwindows): New.
12866 (sub section "i386 and x86-64 Windows Options"): New.
12867
60839f5d 128682009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12869
12870 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12871 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12872
ae560440
RG
128732009-03-25 Richard Guenther <rguenther@suse.de>
12874
12875 PR middle-end/39497
12876 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12877 of -Wno-error.
12878
cd510f15
AM
128792009-03-25 Andrey Belevantsev <abel@ispras.ru>
12880
12881 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12882 neither of haifa/selective schedulers are working.
12883
44ab0f0e
RW
128842009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12885
12886 * doc/invoke.texi (Debugging Options): Fix description of
12887 -fno-merge-debug-strings.
12888
ad9646c7
HPN
128892009-03-24 Hans-Peter Nilsson <hp@axis.com>
12890
e6142656
HPN
12891 * config/cris/libgcc.ver: New version-script.
12892 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12893
ad9646c7
HPN
12894 * configure.ac <GAS features, nop mnemonic>: Add pattern
12895 crisv32-*-* for "nop".
ba20e309 12896 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12897 * configure: Regenerate.
12898
09ac4473
IR
128992009-03-24 Ira Rosen <irar@il.ibm.com>
12900
12901 PR tree-optimization/39529
12902 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12903 mark_sym_for_renaming for the tag copied to the new vector
12904 pointer.
12905
d94a427e
AL
129062009-03-24 Arthur Loiret <aloiret@debian.org>
12907
ba20e309 12908 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12909 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12910 EXTRA_SPEC_FUNCTIONS.
12911 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12912 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12913 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12914 -march and -mtune options.
12915
60839f5d 129162009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12917
12918 * config/m68k/t-rtems: Add m5329 multilib.
12919
603f5959
DS
129202009-03-24 Dodji Seketeli <dodji@redhat.com>
12921 Jakub Jelinek <jakub@redhat.com>
12922
12923 PR debug/39524
12924 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12925 nodes.
12926
c5cdb03f
JJ
129272009-03-23 Jakub Jelinek <jakub@redhat.com>
12928
12929 PR c/39495
12930 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12931 instead of c_parser_expression_conv, if original_code isn't one of the
12932 4 allowed comparison codes, fail.
12933
3691626c
RG
129342009-03-23 Richard Guenther <rguenther@suse.de>
12935
12936 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12937 * tree.h (struct tree_type): Likewise.
12938 * reload.h (struct insn_chain): Likewise.
12939 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12940 * function.h (struct function): Likewise.
12941 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12942
88ccb72a
JJ
129432009-03-23 Jakub Jelinek <jakub@redhat.com>
12944
12945 PR tree-optimization/39516
12946 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12947
60839f5d 129482009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12949
2ba9daa7 12950 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12951 should be set true if BITS_PER_WORD of target is bigger than 32
12952
f82162f8
HPN
129532009-03-22 Hans-Peter Nilsson <hp@axis.com>
12954
12955 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12956 Translate -B-options to -rpath-link. Correct existing
12957 rpath-link and conditionalize on !nostdlib.
12958
048fd785
RW
129592009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12960
12961 * doc/extend.texi (Function Attributes, Variable Attributes):
12962 Fix typos.
12963 * doc/invoke.texi (Debugging Options, Optimize Options)
12964 (i386 and x86-64 Options, MCore Options): Likewise.
12965
6e75c1a9
JJ
129662009-03-20 Jakub Jelinek <jakub@redhat.com>
12967
12968 PR debug/37890
12969 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12970 it for block local namespace aliases.
12971 (gen_decl_die): Pass context_die to gen_namespace_die.
12972
ea1199ee
JJ
129732009-03-19 Jakub Jelinek <jakub@redhat.com>
12974
12975 PR c/39495
12976 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12977 minimum or maximum value.
12978
58929c10
AO
129792009-03-19 Alexandre Oliva <aoliva@redhat.com>
12980
12981 * reginfo.c (globalize_reg): Recompute derived reg sets.
12982
60839f5d 129832009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12984
12985 PR target/39063
12986 * libgcc2.c (mprotect): Do not use signed arguments for
12987 VirtualProtect, use DWORD arguments. Also fix the 'may
12988 be used uninitialized' warning for the np variable.
12989
f57c2f04
JJ
129902009-03-19 Jakub Jelinek <jakub@redhat.com>
12991
12992 PR target/39496
12993 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12994 functions using regparm calling conventions when not optimizing.
12995 (ix86_function_sseregparm): Similarly for sseregparm calling
12996 conventions.
12997
9e517d61
LF
129982009-03-19 Li Feng <nemokingdom@gmail.com>
12999
13000 PR middle-end/39500
13001 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13002 dependence if the first conflict is after niter iterations.
13003
8ef20026
HPN
130042009-03-19 Hans-Peter Nilsson <hp@axis.com>
13005
13006 PR middle-end/38609
13007 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13008 functions with dynamic stack-pointer adjustments.
13009
64e4a1a6
BE
130102009-03-19 Ben Elliston <bje@au.ibm.com>
13011
13012 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13013 option; change to -msdata=data.
13014
9a0f3e86
RW
130152009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13016
13017 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13018 and -fopenmp.
13019
09bc5979
EB
130202009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13021
13022 PR target/35180
13023 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13024
332459cd
SL
130252009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13026
13027 * doc/invoke.texi (Code Gen Options): Expand discussion of
13028 -fno-common.
13029
8f5929e1
JJ
130302009-03-18 Jakub Jelinek <jakub@redhat.com>
13031
13032 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13033 * matrix-reorg.c (struct matrix_info): Likewise.
13034 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13035 * rtl.h (struct mem_attrs): Likewise.
13036 * df.h (struct df): Likewise.
13037 * tree-data-ref.h (struct data_dependence_relation): Likewise.
13038 * ira-int.h (struct ira_allocno): Likewise.
13039 * df-scan.c (struct df_collection_rec): Likewise.
13040 * ira.c (struct equivalence): Likewise.
13041 * function.c (struct temp_slot): Likewise.
13042 * cfgloop.h (struct loop): Likewise.
13043
d130d647
JJ
13044 PR debug/39485
13045 * function.c (use_register_for_decl): When not optimizing, disregard
13046 register keyword for variables with types containing methods.
13047
9968d233
SP
130482009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13049
13050 PR middle-end/39447
13051 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13052 (is_simple_operand): Call contains_component_ref_p before calling data
13053 reference analysis that would fail on COMPONENT_REFs.
13054
13055 * tree-vrp.c (search_for_addr_array): Fix formatting.
13056
69484bfd
RG
130572009-03-18 Richard Guenther <rguenther@suse.de>
13058
13059 * tree-vect-transform.c (vect_loop_versioning): Fold the
13060 generated comparisons.
13061 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13062 (slpeel_tree_peel_loop_to_edge): Likewise.
13063
66811228
RW
130642009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13065
0631b69f
RW
13066 PR middle-end/37805
13067 * opts.c (print_specific_help): In addition to `undocumented',
13068 accept `separate' and `joined' flags if passed alone. Describe
13069 output by the first matched one of those.
13070 (common_handle_option): Skip over empty strings.
13071 * gcc.c (display_help): Fix help string for `--help='.
13072 * doc/invoke.texi (Option Summary, Overall Options): With
13073 `--help=', classes and qualifiers can both be repeated, but
13074 only the latter can be negated. One should not pass only
13075 negated qualifiers. Fix markup and examples.
13076
66811228
RW
13077 Revert
13078 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13079 PR middle-end/37805
13080 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13081 and -fhelp=separate.
13082
3c072c6b
JY
130832009-03-17 Jing Yu <jingyu@google.com>
13084
13085 PR middle-end/39378
80c65208
JY
13086 * function.h (struct rtl_data): Move is_thunk from here...
13087 (struct function): ...to here.
13088 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13089 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13090 cfun.
80c65208
JY
13091 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13092 cfun.
13093 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13094 (alpha_output_function_end_prologue): Likewise.
13095 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13096 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13097 (rs6000_output_function_epilogue): Likewise.
13098 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13099
9ade279b
UB
131002009-03-17 Uros Bizjak <ubizjak@gmail.com>
13101
13102 PR target/39482
13103 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13104 from different units in a single alternative.
13105 (*truncdfsf_i387): Ditto.
13106 (*truncxfsf2_mixed): Ditto.
13107 (*truncxfdf2_mixed): Ditto.
13108
16e60c17
JJ
131092009-03-17 Jakub Jelinek <jakub@redhat.com>
13110
98381eb4
JJ
13111 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13112 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13113
df5deb18
JJ
13114 PR debug/39474
13115 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13116 unused non-artificial variables when not optimizing.
13117
a3f596ba
JJ
13118 PR debug/39471
13119 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13120 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13121 NAMESPACE_DECL in its DECL_INITIAL.
13122
6b2b8871
JJ
13123 PR middle-end/39443
13124 * optabs.c (set_user_assembler_libfunc): New function.
13125 * expr.h (set_user_assembler_libfunc): New prototype.
13126 * c-common.c: Include libfuncs.h.
13127 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13128 for memcmp, memset, memcpy, memmove and abort.
13129 * Makefile.in (c-common.o): Depend on libfuncs.h.
13130
16e60c17
JJ
13131 PR debug/39412
13132 * dwarf2out.c (gen_inlined_enumeration_type_die,
13133 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13134 gen_tagged_type_instantiation_die): Removed.
13135 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13136 do nothing.
13137
4d936aca
JJ
131382009-03-17 Janis Johnson <janis187@us.ibm.com>
13139
13140 PR testsuite/38526
13141 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13142 its use.
13143 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13144 (check-parallel-%): Ditto.
13145 (check-consistency): Ditto.
13146
4e9b2e50
KT
131472009-03-17 Kai Tietz <kai.tietz@onevision.com>
13148
13149 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13150 local variable rhs by NULL_TREE.
13151
21440b2d
L
131522009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13153
13154 PR target/39477
9ade279b 13155 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13156
d8905c6a
L
131572009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13158
13159 PR target/39476
9ade279b 13160 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13161
131622009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13163
13164 PR target/39473
13165 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13166 for ms->sysv ABI calls only in 64bit mode.
13167
13168 * config/i386/i386.md (untyped_call): Support 32bit.
13169
cdcabece
L
131702009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13171
13172 * doc/extend.texi: Replace x86_65 with x86_64.
13173
97b4ba9f
JJ
131742009-03-16 Jakub Jelinek <jakub@redhat.com>
13175
13176 PR tree-optimization/39455
13177 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13178 mismatches for POINTER_TYPE_P (type).
13179 (number_of_iterations_le): Likewise.
13180
60839f5d 131812009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13182
13183 * config/picochip/picochip.c: Removed profiling support.
13184 * config/picochip/picochip.md: Removed profiling instruction.
13185 * config/picochip/picochip.h: Removed profiling builtin.
13186
f38095f3
JM
131872009-03-16 Joseph Myers <joseph@codesourcery.com>
13188
13189 * doc/install.texi (--with-host-libstdcxx): Document.
13190
2cb4817b
AS
131912009-03-14 Anatoly Sokolov <aesok@post.ru>
13192
13193 PR target/34299
13194 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13195 generate a warning if the function name does not begin with
13196 "__vector" and the function has either the 'signal' or 'interrupt'
13197 attribute, from here to ...
13198 (avr_declare_function_name): ...here. New function.
13199 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13200 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13201
39b2ac74
JJ
132022009-03-14 Jakub Jelinek <jakub@redhat.com>
13203
13204 PR bootstrap/39454
13205 * cse.c (fold_rtx): Don't modify original const_arg1 when
13206 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13207 separate variable instead.
13208 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13209 from out of range shift counts.
13210 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13211
ad41bd84 132122009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13213
60839f5d 13214 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13215 diagnostic.h with $(DIAGNOSTIC_H).
13216
ad41bd84 132172009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13218
13219 PR target/39431
13220 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13221 predicate.
13222 * config/i386/sync.md (sync_compare_and_swap<mode>,
13223 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13224 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13225 into a register.
13226 (sync_double_compare_and_swapdi_pic,
13227 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13228 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13229
122c59c7
L
132302009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13231
13232 PR target/39445
9ade279b 13233 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13234
cec8874f
L
132352009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13236
13237 PR target/39327
13238 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13239 (avx_addsubv4df3): Likewise.
13240 (*avx_addsubv4sf3): Likewise.
13241 (sse3_addsubv4sf3): Likewise.
13242
bbb52802
L
132432009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13244
13245 PR target/38824
9ade279b 13246 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13247
a812fb07
VM
132482009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13249
13250 PR debug/39432
13251 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13252 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13253 registers for allocnos created from user-defined variables.
13254
4caab5ba
UW
132552009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13256
13257 PR target/39181
13258 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13259 of non-integer mode as well.
13260
498e51ca
AN
132612009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13262
13263 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13264 for functions for which the parameter types are unknown.
13265
9bfaf89d
JJ
132662009-03-11 Jakub Jelinek <jakub@redhat.com>
13267
13268 PR target/39137
9ade279b 13269 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13270 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13271 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13272 * config/i386/i386.c (ix86_local_alignment): For
13273 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13274 long long variables on the stack to avoid dynamic realignment.
13275 Allow the first argument to be a decl rather than type.
13276 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13277
18a3bdcb
NC
132782009-03-11 Nick Clifton <nickc@redhat.com>
13279
13280 PR target/5362
40190a76
NC
13281 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13282 options.
13283 Add description to mno-lsim option.
13284 * config/mcore/mcore.h: Remove comment about deprecated m4align
13285 option.
13286 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13287 * doc/invoke.texi: Add description of mno-lsim and
13288 mstack-increment options.
13289
18a3bdcb
NC
13290 * config/fr30/fr30.opt: Document the -mno-lsim option.
13291 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13292 and -mno-lsim options.
13293
dc215785
UW
132942009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13295
13296 * fold-const.c (fold_comparison): Only call fold_inf_compare
13297 if the mode supports infinities.
13298
7716876b
JM
132992009-03-11 Jason Merrill <jason@redhat.com>
13300
13301 PR debug/39086
13302 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13303 end already did. Notice GIMPLE_CALL modifications of the result.
13304 Don't copy debug information from an ignored decl or a decl from
13305 another function.
13306
ddef83d2
RG
133072009-03-10 Richard Guenther <rguenther@suse.de>
13308 Nathan Froyd <froydnj@codesourcery.com>
13309
13310 PR middle-end/37850
9ade279b 13311 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13312 (__divMODE3): Likewise.
13313
9a9ba8d9
JJ
133142009-03-09 Jakub Jelinek <jakub@redhat.com>
13315
13316 PR tree-optimization/39394
13317 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13318 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13319
929b7fc3
AK
133202009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13321
13322 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13323 inline asms for register asm ("") declarations.
13324
1803581d
EB
133252009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13326
13327 * fold-const.c (fold_unary): Fix comment.
13328
8454d27e
JH
133292009-03-07 Jan Hubicka <jh@suse.cz>
13330
13331 PR target/39361
969a5433
JJ
13332 * tree-inline.c (setup_one_parameter): Do replacement of const
13333 argument by constant in SSA form.
8454d27e 13334
3a695389
UW
133352009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13336
13337 PR middle-end/38028
13338 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13339 determine alignment passed to assign_stack_local.
13340 (assign_parms_unsplit_complex): Likewise.
13341 * except.c (sjlj_build_landing_pads): Likewise.
13342
9f0e7885
JJ
133432009-03-06 Jakub Jelinek <jakub@redhat.com>
13344
65401a0b
JJ
13345 PR middle-end/39360
13346 * tree-flow.h (add_referenced_var): Return bool instead of void.
13347 * tree-dfa.c (add_referenced_var): Return result of
13348 referenced_var_check_and_insert call.
13349 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13350 of referenced_var_check_and_insert.
13351
9f0e7885 13352 PR debug/39372
9ade279b 13353 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13354 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13355 DIE, don't emit it if abstract origin already has it.
13356 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13357 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13358
3b664bd1
JBG
133592009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13360
ba20e309 13361 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13362 detection.
13363 (write_tm_constrs_h): Indent generated code.
13364
d8f8ca80
RR
133652009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13366
13367 * doc/extend.texi (Function Attributes): Add documentation
13368 for isr attributes.
13369
6c3d550c
JJ
133702009-03-06 Jakub Jelinek <jakub@redhat.com>
13371
13372 PR debug/39387
13373 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13374 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13375
f9e96751
BS
133762009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13377
13378 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13379 the loop as bad.
13380
ee0ee7e2
JJ
133812009-03-05 Jakub Jelinek <jakub@redhat.com>
13382
13383 PR debug/39379
13384 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13385 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13386
6c6094f1
UB
133872009-03-05 Uros Bizjak <ubizjak@gmail.com>
13388
13389 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13390 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13391 constants instead of magic numbers.
13392 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13393 (QI_REG_P): Ditto.
13394 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13395 (x86_64_ms_abi_int_parameter_registers): Ditto.
13396 (x86_64_int_return_registers): Ditto.
09f8a8d3 13397 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13398 (ix86_expand_call): Ditto for clobbered_registers array.
13399 (ix86_hard_regno_mode_ok): Ditto.
13400 (x86_extended_QIreg_mentioned_p): Ditto.
13401
b267bd41
R
134022009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13403
6c6094f1 13404 PR tree-optimization/39349
1f3ad3f0
R
13405 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13406
b267bd41
R
13407 * combine.c (gen_lowpart_for_combine): Use omode when generating
13408 clobber.
13409
1242bc9d
R
134102009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13411
6c6094f1 13412 PR rtl-optimization/39235
1242bc9d
R
13413 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13414
48f03606
ZD
134152009-03-04 Zdenek Dvorak <ook@ucw.cz>
13416
13417 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13418
b505e785
RG
134192009-03-04 Richard Guenther <rguenther@suse.de>
13420
13421 PR tree-optimization/39362
13422 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13423 that occur in abnormal PHIs should be varying.
13424
f017bf5e
ZD
134252009-03-04 Zdenek Dvorak <ook@ucw.cz>
13426
13427 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13428 Extend comments.
13429 (simple_iv): Take loop as an argument instead of statement.
13430 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13431 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13432 to simple_iv.
13433 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13434 Ditto.
13435 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13436 * matrix-reorg.c (analyze_transpose): Ditto.
13437 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13438 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13439 * tree-predcom.c (ref_at_iteration): Ditto.
13440 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13441
6a66f28e
RG
134422009-03-04 Richard Guenther <rguenther@suse.de>
13443
13444 PR tree-optimization/39358
13445 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13446 escaped_id and callused_id.
13447 (solve_graph): Likewise.
13448
57e454ee
RG
134492009-03-04 Richard Guenther <rguenther@suse.de>
13450
13451 PR tree-optimization/39339
13452 * tree-sra.c (try_instantiate_multiple_fields): Make it
13453 no longer ICE on the above.
13454
a6fe9ed4
JM
134552009-03-03 Joseph Myers <joseph@codesourcery.com>
13456
13457 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13458 that fits within Pmode.
13459
dc672951
SE
134602009-03-03 Steve Ellcey <sje@cup.hp.com>
13461
13462 PR middle-end/10109
13463 * tm.texi (LIBCALL_VALUE): Update description.
13464
8b9d598f
SE
134652009-03-03 Steve Ellcey <sje@cup.hp.com>
13466
13467 PR middle-end/34443
13468 * doc/extend.texi (section): Update description.
13469
13e4e36e
L
134702009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13471
13472 PR middle-end/39345
13473 * tree-inline.c (remapped_type): New.
13474 (can_be_nonlocal): Call remapped_type instead of remap_type.
13475
067dd3c9
JJ
134762009-03-03 Jakub Jelinek <jakub@redhat.com>
13477
13478 PR fortran/39354
13479 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13480 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13481
9bd9f738
RG
134822009-03-03 Richard Guenther <rguenther@suse.de>
13483
13484 PR middle-end/39272
13485 * tree.c (tree_nonartificial_location): New function.
13486 * tree.h (tree_nonartificial_location): Declare.
13487 * builtins.c (expand_builtin_memory_chk): Provide location
13488 of the call location for artificial function pieces.
13489 (maybe_emit_chk_warning): Likewise.
13490 (maybe_emit_sprintf_chk_warning): Likewise.
13491 (maybe_emit_free_warning): Likewise.
13492 * expr.c (expand_expr_real_1): Likewise.
13493
f07049c8
JJ
134942009-03-03 Jakub Jelinek <jakub@redhat.com>
13495
13496 PR tree-optimization/39343
13497 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13498 COMPONENT_REF t has ARRAY_TYPE.
13499
7d4fba4a
SP
135002009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13501
13502 PR middle-end/39335
13503 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13504 when the type precision of the induction variable should be
13505 larger than the type precision of nit.
13506 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13507 * graphite.c (graphite_loop_normal_form): Same.
13508 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13509
78168632
UB
135102009-03-02 Uros Bizjak <ubizjak@gmail.com>
13511
13512 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13513 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13514 numbers to describe clobbered registers.
78168632 13515 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13516 * config/i386/mmx.md (mmx_emms): Ditto.
13517 (mmx_femms): Ditto.
78168632 13518
63553059
RS
135192009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13520
13521 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13522 of ABI_64.
13523
500a1f85
UW
135242009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13525
13526 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13527 (spu_section_type_flags): New function.
13528
962aae34
UB
135292009-03-02 Uros Bizjak <ubizjak@gmail.com>
13530
13531 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13532 reg_class_contents of FLOAT_REGS into a temporary.
13533
6dfb529c 135342009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13535 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13536
13537 PR tree-optimization/39318
13538 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13539 information to the vectorized statement.
13540
6b5629db
UB
135412009-03-01 Uros Bizjak <ubizjak@gmail.com>
13542
434426d2
UB
13543 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13544 variable. Use defined names instead of magic constants for REX SSE
13545 registers.
6b5629db 13546
14e5b285
RG
135472009-03-01 Richard Guenther <rguenther@suse.de>
13548
13549 PR tree-optimization/39331
13550 * omp-low.c (lower_send_shared_vars): Do not receive new
13551 values for the reference of DECL_BY_REFERENCE parms or results.
13552
526d73ab
JH
135532009-03-01 Jan Hubicka <jh@suse.cz>
13554
13555 PR debug/39267
13556 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13557 BLOCK_NONLOCALIZED_VAR): New macros.
13558 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13559 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13560 gen_decl_die): Add origin argument. Allow generation of die with
13561 origin at hand only.
526d73ab 13562 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13563 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13564 of gen_*.
526d73ab
JH
13565 (gen_block_die): Fix checking for unused blocks.
13566 (process_scope_var): Break out from .... ; work with origins only.
13567 (decls_for_scope) ... here; process nonlocalized list.
13568 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13569 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13570 vars.
526d73ab
JH
13571 (dump_scope_block): Dump them.
13572 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13573 (remap_block): Likewise.
13574 (can_be_nonlocal): New predicate.
13575 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13576
7a9d3fe8
RW
135772009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13578
13579 * configure: Regenerate.
13580
b3cdf3cb
RW
135812009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13582
a16d1645 13583 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13584 Reuse help texts for duplicate options which do not have any.
a16d1645 13585
1156c176
RW
13586 * gcc.c (display_help): Document --version.
13587
033505fc
RW
13588 * gcc.c (main): If print_help_list and verbose_flag, ensure
13589 driver output comes before subprocess output.
13590
4d077054
RW
13591 * optc-gen.awk: Assign all remaining fields to help string,
13592 space-separated, for multi-line help in *.opt.
13593
a072f1cf
RW
13594 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13595 -Wno-pedantic-ms-format is for MinGW targets only.
13596
b3cdf3cb
RW
13597 * doc/options.texi (Option file format): Fix bad indentation,
13598 restoring dropped sentence.
13599
a3aadcc5
JH
136002009-02-28 Jan Hubicka <jh@suse.cz>
13601
13602 * tree-inline.c (tree_function_versioning): Output debug info.
13603
1cf5abb3
JH
136042009-02-28 Jan Hubicka <jh@suse.cz>
13605
13606 PR debug/39267
13607 * tree-inline.c (setup_one_parameter): Do not copy propagate
13608 arguments when not optimizing.
13609
c4d3f42f
L
136102009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13611
13612 PR target/39327
13613 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13614 (avx_addsubv4df3): Likewise.
13615 (*avx_addsubv4sf3): Likewise.
13616 (sse3_addsubv4sf3): Likewise.
13617 (*avx_addsubv2df3): Likewise.
13618 (sse3_addsubv2df3): Likewise.
13619 (avx_unpckhps256): Correct item selectors.
13620 (avx_unpcklps256): Likewise.
13621 (avx_unpckhpd256): Likewise.
13622 (avx_unpcklpd256): Likewise.
13623
eb50f5f4
JH
136242009-02-28 Jan Hubicka <jh@suse.cz>
13625
13626 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13627 static vars.
13628 (copy_arguments_for_versioning): If var is declared don't declare it.
13629 (tree_function_versioning): First setup substitutions and then copy
13630 args.
13631
26140130
JH
136322009-02-27 Jan Hubicka <jh@suse.cz>
13633
13634 PR debug/39267
13635 * cgraph.h (varpool_output_debug_info): Remove.
13636 * cgraphunit.c (varpool_output_debug_info): Remove.
13637 * dwarf2out.c (deferred_locations_struct): New struct
13638 (deferred_locations): New type.
13639 (deferred_locations_list): New static var.
13640 (deffer_location): New function.
13641 (gen_variable_die): Use it.
13642 (decls_for_scope): Output info on local static vars.
13643 (dwarf2out_finish): Process deferred locations.
13644 * varpool.c (varpool_output_debug_info): Remove.
13645
cff7525f
JH
136462009-02-27 Jan Hubicka <jh@suse.cz>
13647
13648 PR debug/39267
13649 * tree.h (TREE_PROTECTED): Fix comment.
13650 (BLOCK_HANDLER_BLOCK): Remove.
13651 (struct tree_block): Remove handler_block add body_block.
13652 (inlined_function_outer_scope_p): New.
13653 (is_body_block): Remove.
13654 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13655 * dwarf2out.c (is_inlined_entry_point): Remove.
13656 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13657 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13658 code.
cff7525f
JH
13659 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13660 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13661 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13662 block with multiple subblocks.
cff7525f
JH
13663 (dump_scope_block): Prettier output; dump more flags and info.
13664 (dump_scope_blocks): New.
13665 (remove_unused_locals): Use dump_scope_blocks.
13666 * tree-flow.h (dump_scope_blocks): Declare.
13667 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13668 * stmt.c (is_body_block): Remove.
13669 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13670 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13671
c20993b9
SP
136722009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13673
13674 PR middle-end/39308
2ba9daa7 13675 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13676 number_of_iterations_exit from a gcc_assert.
13677
e3cba5e5
AK
136782009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13679
60839f5d 13680 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13681 jumps if COND is NULL.
13682 (find_cond_jump): New function.
13683 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13684 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13685
9dadeeb8
UB
136862009-02-26 Uros Bizjak <ubizjak@gmail.com>
13687
13688 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13689 force_const_mem returns NULL_RTX.
13690
625d3251
EB
136912009-02-26 Jan Hubicka <jh@suse.cz>
13692
13693 PR debug/39267
13694 * cgraph.h (varpool_output_debug_info): Remove.
13695 * cgraphunit.c (varpool_output_debug_info): Remove.
13696 * dwarf2out.c (deferred_locations_struct): New struct
13697 (deferred_locations): New type.
13698 (deferred_locations_list): New static var.
13699 (deffer_location): New function.
13700 (gen_variable_die): Use it.
13701 (decls_for_scope): Output info on local static vars.
13702 (dwarf2out_finish): Process deferred locations.
13703 * varpool.c (varpool_output_debug_info): Remove.
13704
38432148 137052009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13706
13707 PR rtl-optimization/39241
13708 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13709 to subreg_offset_representable_p.
13710
62d049cf
PB
137112009-02-25 Paolo Bonzini <bonzini@gnu.org>
13712
13713 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13714 execute function prototype. Get f and nregs from max_reg_num
13715 and get_insns. Remove the first backward pass as it's dead,
13716 guard the forward pass by flag_expensive_optimizations.
13717 (rest_of_handle_regmove): Delete.
13718 (pass_regmove): Replace it with regmove_optimize.
13719
f618d33e
MJ
137202009-02-25 Martin Jambor <mjambor@suse.cz>
13721
13722 PR tree-optimization/39259
13723 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13724 calls_alloca function flags.
f618d33e
MJ
13725 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13726 calls are detected.
13727
c8a05f7c
PB
137282009-02-25 Paolo Bonzini <bonzini@gnu.org>
13729
13730 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13731 flags_set_1_rtx, flags_set_1_set): Delete.
13732 (regmove_optimize): Do not call mark_flags_life_zones.
13733
6d2538f5
JB
137342009-02-24 Julian Brown <julian@codesourcery.com>
13735
13736 PR target/35965
13737 * config/arm/arm.c (require_pic_register): Only set
13738 cfun->machine->pic_reg once per function.
13739
a2fa6772
SL
137402009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13741
13742 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13743 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13744
5472de36
SE
137452009-02-24 Steve Ellcey <sje@cup.hp.com>
13746
13747 PR target/33785
13748 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13749
844216f3
RG
137502009-02-24 Richard Guenther <rguenther@suse.de>
13751
13752 PR debug/39285
13753 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13754
71adbef3 137552009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13756 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13757
13758 PR tree-optimization/39233
13759 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13760 from converting them to a generic type.
13761
f1a558e0
SP
137622009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13763
13764 PR tree-optimization/39260
13765 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13766 contains a condition with a real type.
13767 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13768
d8028f2c
JM
137692009-02-23 Jason Merrill <jason@redhat.com>
13770
13771 PR c++/38880
13772 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13773 narrowing_initializer_constant_valid_p.
2ba9daa7 13774 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13775 null_pointer_node for adding a pointer to itself.
13776
9283b513
JH
137772009-02-23 Jan Hubicka <jh@suse.cz>
13778
13779 PR c/12245
9dadeeb8
UB
13780 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13781 resizing.
9283b513 13782
61e04322
JH
137832009-02-23 Jan Hubicka <jh@suse.cz>
13784
9dadeeb8
UB
13785 PR tree-optimization/37709
13786 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13787 * tree.h (block_ultimate_origin): Declare.
13788 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13789 * tree-ssa-live.c (remove_unused_scope_block_p):
13790 Eliminate blocks containig no instructions nor live variables nor
13791 nested blocks.
13792 (dump_scope_block): New function.
13793 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13794 enable dumping at TDF_DETAILS.
61e04322 13795
38432148 137962009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13797
13798 * config/i386/i386.c (classify_argument): Don't allow COImode
13799 and OImode.
13800 (function_arg_advance_32): Don't allow OImode.
13801 (function_arg_32): Likewise.
13802 (function_value_32): Likewise.
13803 (return_in_memory_32): Likewise.
13804 (function_arg_64): Remove OImode comment.
13805
38432148 138062009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13807
13808 PR target/39261
13809 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13810 ix86_expand_vector_set for V4DImode in 64bit mode only.
13811 (ix86_expand_vector_init_one_var): Likewise.
13812
dcd739a6
SP
138132009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13814
13815 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13816
6c3b938d
RS
138172009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13818
8e361f23 13819 PR bootstrap/39257
6c3b938d
RS
13820 * loop-iv.c: Revert last change.
13821 * emit-rtl.c: Likewise.
13822
38432148 138232009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13824
13825 PR target/39256
13826 * config/i386/i386.c (type_natural_mode): Remove an extra
13827 space in the warning message.
13828 (function_value_32): Handle 32-byte vector modes.
13829 (return_in_memory_32): Likewise.
13830
2ec62529
RS
138312009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13832
13833 * loop-iv.c (truncate_value): New function.
13834 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13835 of lowpart_subreg.
13836 (lowpart_subreg): Move to...
13837 * emit-rtl.c: ...here.
13838
ecb8c3cc 138392009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13840
ecb8c3cc
DS
13841 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13842 accidental and undocumented change at revision 140860.
13843
ae46a823
JM
138442009-02-21 Joseph Myers <joseph@codesourcery.com>
13845
13846 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13847 take gimple_seq * arguments.
13848 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13849 types_compatible_p langhook.
13850
07d8efe3 138512009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13852 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13853
13854 * config/arm/arm.c (arm_builtin_va_list): New function.
13855 (arm_expand_builtin_va_start): Likewise.
13856 (arm_gimplify_va_arg_expr): Likewise.
13857 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13858 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13859 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13860 (va_list_type): New variable.
13861 (arm_mangle_type): Mangle va_list_type appropriately.
13862
b1fb9f56
JJ
138632009-02-20 Jakub Jelinek <jakub@redhat.com>
13864
13865 PR middle-end/39157
13866 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13867 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13868 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13869 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13870 parameter to 1000 for -O1 by default.
13871 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13872 parameter.
13873 * loop-invariant.c: Include params.h.
13874 (move_loop_invariants): Don't call move_single_loop_invariants on
13875 very large loops.
13876
5bc0807c
JM
138772009-02-20 Jaka Mocnik <jaka@xlab.si>
13878
13879 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13880 offset when calculating bounds for indexing stack_usage_map. Fixes
13881 a buffer overflow with certain target setups.
13882
c69cd1f5
JJ
138832009-02-20 Jakub Jelinek <jakub@redhat.com>
13884
13885 PR target/39240
13886 * calls.c (expand_call): Clear try_tail_call if caller and callee
13887 disagree in promotion of function return value.
13888
09812622
JJ
138892009-02-19 Jakub Jelinek <jakub@redhat.com>
13890
13891 PR target/39175
13892 * c-common.c (c_determine_visibility): If visibility changed and
13893 DECL_RTL has been already set, call make_decl_rtl to update symbol
13894 flags.
13895
68017cb4
L
138962009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13897
13898 PR c++/39188
13899 * varasm.c (assemble_variable): Don't check DECL_NAME when
13900 globalizing a variable.
13901
ab4194da
JM
139022009-02-19 Joseph Myers <joseph@codesourcery.com>
13903
13904 PR c/38483
13905 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13906 expression before any __builtin_trap call.
13907 * c-typeck.c (build_function_call): Convert and check function
13908 arguments before generating a call to a trap. Evaluate the
13909 function arguments before the trap.
13910
6b67572e
UB
139112009-02-19 Uros Bizjak <ubizjak@gmail.com>
13912
13913 PR target/39228
13914 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13915 (UNSPEC_FXAM_MEM): New unspec.
13916 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13917 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13918 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13919
9e39dba6
RG
139202009-02-19 Richard Guenther <rguenther@suse.de>
13921
13922 PR tree-optimization/39207
13923 PR tree-optimization/39074
13924 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13925 storedanything_tree): New.
13926 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13927 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13928 (build_succ_graph): Add edges from STOREDANYTHING to all
13929 non-direct nodes.
13930 (init_base_vars): Initialize STOREDANYTHING.
13931 (compute_points_to_sets): Free substitution info after
13932 building the succ graph.
13933 (ipa_pta_execute): Likewise.
13934
13935 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13936 field.
13937 (do_ds_constraint): Do not add to special var or non-pointer
13938 field solutions.
13939 (type_could_have_pointers): Split out from ...
13940 (could_have_pointers): ... here. For arrays use the element type.
13941 (create_variable_info_for): Initialize may_have_pointers.
13942 (new_var_info): Likewise.
13943 (handle_lhs_call): Make the HEAP variable unknown-sized.
13944 (intra_create_variable_infos): Use a type with pointers for
13945 PARM_NOALIAS, make it unknown-sized.
13946
fd7b2603
L
139472009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13948
13949 PR target/39224
6b67572e 13950 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13951
98b80692
JM
139522009-02-18 Jason Merrill <jason@redhat.com>
13953
13954 PR target/39179
13955 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13956 value if DECL_EXTERNAL.
13957 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13958 * target.h (gcc_target::binds_local_p): Clarify "module".
13959 * tree.h (TREE_PUBLIC): Clarify "module".
13960
0705d3f4
L
139612009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13962
13963 PR target/38891
13964 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13965 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13966
bce08d50
L
139672009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13968
13969 PR target/39082
13970 * c.opt (Wabi): Support C and ObjC.
13971 (Wpsabi): New.
13972
13973 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13974
13975 * config/i386/i386.c (classify_argument): Warn once about the ABI
13976 change when passing union with long double.
13977
13978 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13979
5600f233
JM
139802009-02-18 Joseph Myers <joseph@codesourcery.com>
13981
13982 PR c/35447
13983 * c-parser.c (c_parser_compound_statement): Always enter and leave
13984 a scope.
13985
8cd01fe6
JDA
139862009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13987
13988 PR target/34587
13989 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13990
418df9d7
JJ
139912009-02-18 Jakub Jelinek <jakub@redhat.com>
13992
13993 PR tree-optimization/36922
13994 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13995 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13996 Likewise.
13997
082d2ebb
RS
139982009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13999
14000 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14001 to 0 for EABI64.
14002
17de576c
RS
140032009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14004
14005 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14006
6d8d5435
RS
140072009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14008
14009 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14010 tree sharing.
14011
e69ff910
RB
140122009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14013 Richard Sandiford <rdsandiford@googlemail.com>
14014
14015 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14016 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14017 (loongson_biadd): ...this.
14018
6b24ee26
RG
140192009-02-17 Richard Guenther <rguenther@suse.de>
14020
14021 PR tree-optimization/39202
14022 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14023 a var make sure to follow existing collapses.
14024
91ab2c86
RG
140252009-02-17 Richard Guenther <rguenther@suse.de>
14026
14027 PR middle-end/39214
14028 * langhooks.c (lhd_print_error_function): Check for NULL block.
14029
73a63870
RG
140302009-02-17 Richard Guenther <rguenther@suse.de>
14031
14032 PR tree-optimization/39204
14033 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14034 of the PHI arg.
14035
0e08f686
UB
140362009-02-17 Uros Bizjak <ubizjak@gmail.com>
14037
14038 * config/soft-fp/double.h: Update from glibc CVS.
14039
a60b7ddb
RG
140402009-02-17 Richard Guenther <rguenther@suse.de>
14041
14042 PR tree-optimization/39207
14043 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14044 strict-aliasing warnings for pointers pointing to NULL.
14045
a47e20fd
JM
140462009-02-16 Joseph Myers <joseph@codesourcery.com>
14047
14048 PR c/35446
14049 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14050 skipping until next close brace.
14051
50aab7dc
L
140522009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14053
14054 PR target/37049
14055 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14056 to function argument boundary.
14057
68e53db0
HS
140582009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14059
14060 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14061 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14062 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14063 "b", since it is not needed anymore.
14064
09e361bb
JJ
140652009-02-16 Jakub Jelinek <jakub@redhat.com>
14066
14067 * gthr-dce.h: Uglify function parameter and local variable names.
14068 * gthr-gnat.h: Likewise.
14069 * gthr-mipssde.h: Likewise.
14070 * gthr-nks.h: Likewise.
14071 * gthr-posix95.h: Likewise.
14072 * gthr-posix.h: Likewise.
14073 * gthr-rtems.h: Likewise.
14074 * gthr-single.h: Likewise.
14075 * gthr-solaris.h: Likewise.
14076 * gthr-tpf.h: Likewise.
14077 * gthr-vxworks.h: Likewise.
14078 * gthr-win32.h: Likewise.
14079
47f5a48f
L
140802009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14081
14082 PR target/39196
14083 * config/i386/i386.md: Restrict the new peephole2 to move
14084 between MMX/SSE registers.
14085
68c9ab45
RG
140862009-02-15 Richard Guenther <rguenther@suse.de>
14087
14088 Revert
14089 2009-02-13 Richard Guenther <rguenther@suse.de>
14090
14091 * configure.ac: Enable LFS.
14092 * configure: Re-generate.
14093 * config.in: Likewise.
14094
d7815554
UW
140952009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14096
14097 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14098 spu_srqwbyte, spu_srqwbytebc): Define.
14099 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14100 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14101 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14102 "shrqby_<mode>"): New insn-and-split patterns.
14103 * config/spu/spu.c (expand_builtin_args): Determine and return
14104 number of operands using spu_builtin_description data.
14105 (spu_expand_builtin_1): Use it.
14106
c208436c
SE
141072009-02-13 Steve Ellcey <sje@cup.hp.com>
14108
14109 PR target/38056
14110 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14111 TARGET_CONST_GP.
14112
c2e7ba7e
L
141132009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14114
14115 PR target/39149
14116 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14117 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14118
72f4e3a7
L
141192009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14120
14121 PR target/39152
14122 * config/i386/i386.md: Restrict the new peephole2 to move
14123 between the general purpose registers.
14124
53f648e2
L
141252009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14126
14127 PR target/39162
14128 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14129 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14130 (function_arg_advance): Updated.
14131 (function_arg): Likewise.
14132 (ix86_function_value): Likewise.
14133 (ix86_return_in_memory): Likewise.
14134 (ix86_sol10_return_in_memory): Likewise.
14135 (ix86_gimplify_va_arg): Likewise.
14136 (function_arg_32): Don't warn ABX ABI change here.
14137 (function_arg_64): Likewise.
14138
38432148 141392009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14140
14141 * loop-iv.c (implies_p): In the final case, test that operands 0
14142 of the two comparisons match.
14143
dd2139e7
BS
14144 * config/bfin/bfin.c (find_prev_insn_start): New function.
14145 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14146 (find_next_insn_start): Move.
14147
601b3e1a
RG
141482009-02-13 Richard Guenther <rguenther@suse.de>
14149
14150 * configure.ac: Enable LFS.
14151 * configure: Re-generate.
14152 * config.in: Likewise.
14153
f007042e
JM
141542009-02-13 Joseph Myers <joseph@codesourcery.com>
14155
14156 PR c/35444
14157 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14158 sizes on syntax error after some arguments have been parsed.
14159
3f238e8b
JJ
141602009-02-12 Jakub Jelinek <jakub@redhat.com>
14161
14162 * doc/invoke.texi (-fira): Remove.
14163
328e13b7
L
141642009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14165
14166 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14167 * recog.c: Likewise.
14168 * rtl.h: Likewise.
14169
c252db20
L
141702009-02-12 Uros Bizjak <ubizjak@gmail.com>
14171
14172 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14173 (umul_ppmm): Likewise.
14174 (count_leading_zeros): Likewise.
14175 (count_trailing_zeros): Likewise.
14176 (UMUL_TIME): Likewise.
14177
141782009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14179
ba181049
UB
14180 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14181 soft-fp/t-softfp to tmake_file.
c252db20
L
14182
14183 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14184 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14185 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14186 IA64_BUILTIN_INFQ]: New.
c252db20
L
14187 (ia64_init_builtins): Initialize __builtin_infq,
14188 __builtin_fabsq and __builtin_copysignq if not HPUX.
14189 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14190 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14191
14192 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14193 SHARED is defined.
14194 (__fixtfti): Likewise.
14195 (__fixunstfti): Likewise.
14196 (__floattitf): Likewise.
14197
14198 * config/ia64/libgcc-glibc.ver: New.
14199 * config/ia64/t-fprules-softfp: Likewise.
14200 * config/ia64/sfp-machine.h: Likewise.
14201
14202 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14203 (LIBGCC2_TF_CEXT): Likewise.
14204 (TF_SIZE): Likewise.
14205 (TARGET_INIT_LIBFUNCS): Likewise.
14206
ba181049 14207 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14208 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14209
f13eae6a
L
142102009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14211
14212 * config/i386/i386.c (construct_container): Rewrite processing
14213 BLKmode with X86_64_SSE_CLASS.
14214
12019aec
L
142152009-02-12 Paolo Bonzini <bonzini@gnu.org>
14216
14217 PR target/39152
14218 * config/i386/i386.md: Replace simplify_replace_rtx with
14219 replace_rtx in the new peephole2.
14220
28c11eb3
NS
142212009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14222
14223 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14224 loop unrolling do not happen at -O2.
14225
c7b94907
MM
142262009-02-12 Michael Matz <matz@suse.de>
14227
14228 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14229
61e98967
JJ
142302009-02-12 Jakub Jelinek <jakub@redhat.com>
14231
14232 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14233 for -g3.
14234
a2a237b5
BE
142352009-02-12 Ben Elliston <bje@au.ibm.com>
14236
14237 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14238 patterns when updating the back chain. Missed in the 2009-02-10
14239 change.
14240
853eda8d
JJ
142412009-02-11 Janis Johnson <janis187@us.ibm.com>
14242
14243 * doc/extend.texi (Decimal Floating Types): Update identifier of
14244 draft TR and list of missing support.
14245
3ad6b266
JJ
142462009-02-11 Jakub Jelinek <jakub@redhat.com>
14247
14248 PR middle-end/39154
14249 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14250 bit to variable length decl's flags, add it also to its
14251 pointer replacement variable.
14252
b058b753
UB
142532009-02-11 Uros Bizjak <ubizjak@gmail.com>
14254 Jakub Jelinek <jakub@redhat.com>
14255
14256 PR target/39118
14257 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14258 (memory_blockage): New expander.
14259 (*memory_blockage): New insn pattern.
14260 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14261 instead of general blockage at the end of function prologue when
14262 frame pointer is used to access red zone area. Do not emit blockage
14263 when profiling, it is emitted in generic code.
14264 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14265 function epilogue when frame pointer is used to access red zone area.
14266
bab64f23
PB
142672009-02-11 Paolo Bonzini <bonzini@gnu.org>
14268
0ce6dcfa 14269 PR target/38824
bab64f23
PB
14270 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14271 by arithmetic with memory operands.
14272 * config/i386/predicates.md (commutative_operator): New.
14273
8fd94bda
JJ
142742009-02-10 Janis Johnson <janis187@us.ibm.com>
14275
14276 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14277 bulleted lists.
14278
794511d2
EB
142792009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14280
14281 * alias.h (record_alias_subset): Declare.
14282 * alias.c (record_alias_subset): Make global.
14283
6da7fc87
NC
142842009-02-10 Nick Clifton <nickc@redhat.com>
14285
14286 * tree-parloops.c: Change license to GPLv3.
14287 * ipa-struct-reorg.c: Change license to GPLv3.
14288 * ipa-struct-reorg.h: Change license to GPLv3.
14289
a03813c8
SE
142902009-02-10 Steve Ellcey <sje@cup.hp.com>
14291
14292 PR c/39084
14293 * c-decl.c (start_struct): Return NULL on error.
14294
fc3103e7
JJ
142952009-02-10 Jakub Jelinek <jakub@redhat.com>
14296
9b43d37b
JJ
14297 PR middle-end/39124
14298 * cfgloopmanip.c (remove_path): Call remove_bbs after
14299 cancel_loop_tree, not before it.
14300
fc3103e7 14301 PR target/39139
b058b753 14302 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14303 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14304 VAR_DECLs were seen.
14305 * tree-ssa-live.c (remove_unused_locals): Recompute
14306 cfun->has_local_explicit_reg_vars.
14307 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14308 copies or clearings if cfun->has_local_explicit_reg_vars.
14309
dbf9ee15
UB
143102009-02-10 Uros Bizjak <ubizjak@gmail.com>
14311
14312 PR target/39118
14313 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14314 of function prologue when frame pointer is used to access
14315 red zone area.
14316
bdec4dc7
RG
143172009-02-10 Richard Guenther <rguenther@suse.de>
14318
14319 PR middle-end/39127
14320 * gimplify.c (gimple_regimplify_operands): Always look if
14321 we need to create a temporary.
14322
7cae94fc
RG
143232009-02-10 Richard Guenther <rguenther@suse.de>
14324
14325 PR tree-optimization/39132
14326 * tree-loop-distribution.c (todo): New global var.
14327 (generate_memset_zero): Trigger TODO_rebuild_alias.
14328 (tree_loop_distribution): Return todo.
14329
a8800687
L
143302009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14331
14332 PR target/39119
14333 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14334 (x86_64_reg_class_name): Removed.
14335 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14336 first one isn't X86_64_SSE_CLASS or any other ones aren't
14337 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14338 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14339 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14340 and 3 X86_64_SSEUP_CLASS.
14341 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14342 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14343
d4bacef0
BE
143442009-02-10 Ben Elliston <bje@au.ibm.com>
14345
14346 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14347 form instruction to update the stack back chain word, even if the
14348 user has disabled the generation of update instructions.
14349 (movdi_<mode>_update_stack): New.
14350 (movsi_update_stack): Likewise.
14351 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14352 always use an update form instruction to update the stack back
14353 chain word.
14354
01d7d2f3
SP
143552009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14356
14357 PR middle-end/38953
b058b753
UB
14358 * graphite.c (if_region_set_false_region): After moving a region in
14359 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14360 (gloog): Remove wrong fix for PR38953.
14361
e41e2ab4
UW
143622009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14363
14364 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14365 generation due to implicit sign extension.
14366
4bb07c5d
EB
143672009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14368
14369 PR middle-end/38981
14370 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14371 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14372
f060a261
RG
143732009-02-09 Richard Guenther <rguenther@suse.de>
14374
14375 PR middle-end/35202
14376 * convert.c (convert_to_real): Disable (float)fn((double)x)
14377 to fnf(x) conversion if errno differences may occur and
14378 -fmath-errno is set.
14379
5a7e237c
AS
143802009-02-07 Anatoly Sokolov <aesok@post.ru>
14381
14382 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14383 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14384 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14385
feab5a67
JM
143862009-02-06 Joseph Myers <joseph@codesourcery.com>
14387
14388 PR c/35434
14389 * c-common.c (handle_alias_attribute): Disallow attribute for
14390 anything not a FUNCTION_DECL or VAR_DECL.
14391
90ef2296
JJ
143922009-02-06 Janis Johnson <janis187@us.ibm.com>
14393
14394 PR c/39035
14395 * real.c (do_compare): Special-case compare of zero against
14396 decimal float value.
14397
1de2c900
JM
143982009-02-06 Joseph Myers <joseph@codesourcery.com>
14399
14400 PR c/36432
14401 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14402 as indicating flexible array members unless the field itself is
14403 being declarared as the incomplete array.
14404
e901811a
JH
144052009-02-06 Jan Hubicka <jh@suse.cz>
14406
14407 PR tree-optimization/38844
14408 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14409 is already inlined.
14410
3cfa762b
RG
144112009-02-06 Richard Guenther <rguenther@suse.de>
14412
14413 PR middle-end/38977
14414 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14415 fork because we may expand it as __gcov_fork.
14416
8506528c
NC
144172009-02-06 Nick Clifton <nickc@redhat.com>
14418
dbf9ee15 14419 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14420
85169114
PB
144212009-02-06 Paolo Bonzini <bonzini@gnu.org>
14422
14423 PR tree-optimization/35659
14424 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14425 vn_phi_eq): Shortcut if hashcode does not match.
14426 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14427 NULL operands.
14428 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14429 and avoid iterative_hash_expr.
14430 (FOR_EACH_VALUE_ID_IN_SET): New.
14431 (value_id_compare): Remove.
14432 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14433 sort expressions by value id.
14434
6d39673d
KK
144352009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14436
14437 PR target/38991
14438 * config/sh/predicates.md (general_movsrc_operand): Don't check
14439 the subreg of system registers here.
14440
e6e1c050
JJ
144412009-02-05 Jakub Jelinek <jakub@redhat.com>
14442
14443 PR c++/39106
14444 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14445 on the copied decl.
14446
65a74b5d
PB
144472009-02-05 Paolo Bonzini <bonzini@gnu.org>
14448
14449 PR rtl-optimization/39110
14450 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14451 addresses, not aligned ones.
14452
08e14b2a
DB
144532009-02-05 Daniel Berlin <dberlin@dberlin.org>
14454 Richard Guenther <rguenther@suse.de>
14455
14456 PR tree-optimization/39100
14457 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14458 comment says and add edges.
14459
5006381c
JM
144602009-02-05 Joseph Myers <joseph@codesourcery.com>
14461
14462 PR c/35435
14463 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14464 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14465
2ba9daa7 144662009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14467
14468 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14469 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14470 register_bb_in_sese, new_sese, free_sese): Moved.
14471 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14472 outermost_loop_in_scop, build_scop_iteration_domain,
14473 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14474 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14475 Use loop_in_sese_p instead of loop_in_scop_p.
14476 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14477 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14478 (scopdet_basic_block_info): Fix bug in scop detection.
14479 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14480 eq_loop_to_cloog_loop): Remove.
14481 (nb_loops_around_loop_in_scop, nb_loop
14482 ref_nb_loops): Moved here...
14483 * graphite.h (ref_nb_loops): ... from here.
14484 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14485 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14486 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14487 * testsuite/gcc.dg/graphite/scop-19.c: New
14488
48e8382e
PB
144892009-02-04 Paolo Bonzini <bonzini@gnu.org>
14490 Hans-Peter Nilsson <hp@axis.com>
14491
14492 PR rtl-optimization/37889
14493 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14494 Move offset handling from PLUS to before the switch. Use new
14495 arguments when considering SYMBOL_REFs too.
14496 (rtx_addr_can_trap_p): Pass dummy offset and size.
14497 (enum may_trap_p_flags): Remove.
14498 (may_trap_p_1): Pass size from MEM_SIZE.
14499
14500 PR rtl-optimization/38921
14501 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14502 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14503 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14504 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14505
69349ea5
L
145062009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14507
14508 AVX Programming Reference (January, 2009)
14509 * config/i386/sse.md (*vpclmulqdq): New.
14510
b545e411
JJ
145112009-02-04 Jakub Jelinek <jakub@redhat.com>
14512
14513 PR tree-optimization/38977
14514 PR gcov-profile/38292
bf9b2cc9 14515 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14516
5b43bf05
HS
145172009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14518
14519 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14520 non-indexable addresses even before reload.
14521
062c4bb3
JM
145222009-02-03 Joseph Myers <joseph@codesourcery.com>
14523
14524 PR c/29129
14525 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14526 as having variable size. Do not give an error for unnamed
14527 parameters with [*] declarators. Give a warning for type names
14528 with [*] declarators and mark them as variable size.
14529 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14530 for sizeof applied to [*] type names.
14531
6175f578
AP
145322009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14533
14534 PR C++/36607
14535 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14536
d4f4bc84
JJ
145372009-02-03 Jakub Jelinek <jakub@redhat.com>
14538
14539 * gcc.c (process_command): Update copyright notice dates.
14540 * gcov.c (print_version): Likewise.
14541 * gcov-dump.c (print_version): Likewise.
14542 * mips-tfile.c (main): Likewise.
14543 * mips-tdump.c (main): Likewise.
14544
f6294de7
JM
145452009-02-03 Joseph Myers <joseph@codesourcery.com>
14546
14547 PR c/35433
14548 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14549 for composite type involving a zero-length array type.
14550
754ccf7c
JJ
145512009-02-03 Jakub Jelinek <jakub@redhat.com>
14552
70f16287
JJ
14553 PR target/35318
14554 * function.c (match_asm_constraints_1): Skip over
14555 initial optional % in the constraint.
14556
754ccf7c
JJ
14557 PR inline-asm/39059
14558 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14559 supported, don't accept FIXED_CSTs.
14560 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14561 and _Sat is used without _Fract/_Accum. Set specs->type to
14562 integer_type_node for cts_fract/cts_accum if fixed point is not
14563 supported.
14564
965fdadf
CM
145652009-02-02 Catherine Moore <clm@codesourcery.com>
14566
dbf9ee15 14567 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14568
2e8a796f
RS
145692009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14570
14571 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14572 (ABI_HAS_64BIT_SYMBOLS): Use it.
14573 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14574
e0079468
PB
145752009-02-02 Paul Brook <paul@codesourcery.com>
14576
14577 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14578
eca72963
JJ
145792009-02-02 Jakub Jelinek <jakub@redhat.com>
14580
14581 PR inline-asm/39058
14582 * recog.h (asm_operand_ok): Add constraints argument.
14583 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14584 recurse on matching constraint.
14585 (check_asm_operands): Pass constraints as 3rd argument to
14586 asm_operand_ok. Don't look up matching constraint here.
14587 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14588 to asm_operand_ok.
14589
b5bde9ff
BE
145902009-02-02 Ben Elliston <bje@au.ibm.com>
14591
14592 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14593 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14594
30f3e427
JDA
145952009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14596
be7659ba
JDA
14597 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14598 information. Remove some obsolete information. Reorganize.
14599
30f3e427
JDA
14600 * config/pa/fptr.c: Revert license to GPL 2.
14601 * config/pa/milli64.S: Likewise.
14602
3cbfaf98
DK
146032009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14604
14605 PR target/38904
14606 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14607 LIBRARY name in, instead of hard-coding it.
14608 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14609 extra target make frag to tmake_files according to EH model.
14610 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14611 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14612 frags that define makefile variable EH_MODEL appropriately.
14613 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14614 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14615 to "-sjlj" according to type of EH configured.
14616 (LIBGCC_SONAME): Concatenate it to shared library base name.
14617 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14618 to "_sjlj" according to type of EH configured.
14619 (LIBGCC_SONAME): Concatenate it to shared library base name.
14620 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14621 (SHLIB_LINK): Add missing semicolon to if-else construct.
14622 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14623 string value of "pe_dll" command-line option.
14624 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14625 (SHLIB_SONAME): Use it when overriding t-cygming default.
14626 (SHLIB_IMPLIB): Override t-cygming default.
14627 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14628 string value of "pe_dll" command-line option.
14629
8d0b6068
DK
146302009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14631
14632 PR target/38952
14633 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14634 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14635
14c28276
RG
146362009-01-31 Richard Guenther <rguenther@suse.de>
14637
14638 PR tree-optimization/38937
14639 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14640 computing the transitive closure.
14641
5f4d82c2
RG
146422009-01-30 Richard Guenther <rguenther@suse.de>
14643
14644 PR tree-optimization/39041
14645 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14646 Propagate variable indices only if the types match for this stmt.
14647
d0728ae0
JJ
146482009-01-30 Jakub Jelinek <jakub@redhat.com>
14649
14650 PR target/39013
14651 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14652 inline but never defined.
14653
6b67572e 146542009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14655
14656 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14657 (*insv_h_di_reg_extimm): New insn.
14658 (*insv_l<mode>_reg_extimm): New insn.
14659
146602009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14661
14662 * config/picochip/picochip.c (flag_conserve_stack): set
14663 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14664 fconserve-stack. Reduce call-overhead used by inliner.
14665
9fec758d 146662009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14667
14668 PR/38157
14669 * common.opt (flag_conserve_stack): Initialised to zero.
14670
7f1c539c
KT
146712009-01-30 Kai Tietz <kai.tietz@onevision.com>
14672
14673 PR/39002
14674 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14675 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14676 method.
14677
3631be48
L
146782009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14679
14680 * ira-color.c (allocno_reload_assign): Update comments.
14681 * regmove.c (regmove_optimize): Likewise.
14682
14683 * ra.h: Removed.
14684
416ac4d4
RM
146852009-01-29 Robert Millan <rmh@aybabtu.com>
14686
60839f5d
EB
14687 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14688 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14689 `MD_UNWIND_SUPPORT'.
60839f5d 14690 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14691
d5e54bc1
KH
146922009-01-29 Kazu Hirata <kazu@codesourcery.com>
14693
14694 PR tree-optimization/39007
14695 * tree-loop-distribution.c (generate_builtin): Use
14696 recompute_dominator to compute the immediate dominator of the
14697 basic block just after the loop.
14698
38432148 146992009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14700
14701 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14702 (ASM_OUTPUT_DWARF_PCREL): Define.
14703
38432148 147042009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14705
14706 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14707 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14708 global. Modify entries about regmove and IRA.
14709
14710 * ra-conflict.c: Remove the file.
14711
14712 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14713
14714 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14715 (pass_regclass_init): Rename to pass_reginfo_init.
14716
14717 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14718
14719 * toplev.h (flag_ira): Remove.
14720
14721 * caller-save.c (setup_save_areas): Remove flag_ira.
14722
bf9b2cc9 14723 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14724
14725 * global.c: Remove the file.
14726
ba20e309 14727 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14728
14729 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14730
14731 * regmove.c: Modify file description.
14732 (find_use_as_address, try_auto_increment): Define them only if
14733 AUTO_INC_DEC is defined.
14734 (replacement_quality, replace_in_call_usage, fixup_match_1,
14735 stable_and_no_regs_but_for_p): Remove.
14736 (reg_set_in_bb): Make it static.
14737 (regmove_optimize): Remove flag_ira and code which worked for
14738 !flag_ira.
14739
14740 * local-alloc.c: Remove the file.
14741
14742 * common.opt (fira): Remove.
14743
14744 * ira.c: Include except.h.
14745 (eliminable_regset): Move from global.c.
14746 (mark_elimination): Ditto. Remove flag_ira.
14747 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14748 equiv_mem_modified, validate_equiv_mem_from_store,
14749 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14750 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14751 no_equiv, recorded_label_ref): Move from local-alloc.c.
14752 (update_equiv_regs): Ditto. Make it static.
14753 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14754 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14755 (build_insn_chain): Ditto. Make it static.
14756 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14757 Rename to init_live_subregs.
14758 (gate_ira): Remove flag_ira.
14759
14760 * regclass.c: Rename reginfo.c. Change file description.
14761 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14762 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14763 (init_reg_sets_1): Remove code for evaluation of
14764 reg_class_superclasses and losing_caller_save_reg_set.
14765 (init_regs): Remove init_reg_autoinc.
14766 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14767 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14768 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14769 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14770 corresponding entries.
14771 (dump_regclass, record_operand_costs, scan_one_insn,
14772 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14773 record_address_regs, auto_inc_dec_reg_p): Remove.
14774 (gt-regclass.h): Rename to gt-reginfo.h.
14775
14776 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14777 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14778
14779 * Makefile.in (RA_H): Remove.
14780 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14781 Rename regclass.o to reginfo.o.
14782 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14783 gt-reginfo.h.
14784 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14785 (GTFILES): Rename regclass.c to reginfo.c.
14786
14787 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14788 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14789
14790 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14791 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14792 Remove flag_ira.
6b67572e 14793 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14794
c95b2534 147952009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14796
14797 PR middle-end/35854
14798 * doc/invoke.texi (rtl debug options): Complete rewrite.
14799 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14800 to auto_inc_dec".
14801 * mode-switching.c (pass_mode_switching): Rename pass from
14802 "mode-sw" to "mode_sw".
14803 * except.c (pass_convert_to_eh_ranges): Rename pass from
14804 "eh-ranges" to "eh_ranges".
14805 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14806 to "subreg1".
2ba9daa7
AS
14807
14808
72a54528
AM
148092009-01-29 Andrey Belevantsev <abel@ispras.ru>
14810 Alexander Monakov <amonakov@ispras.ru>
14811
14812 PR middle-end/38857
14813 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14814 register.
14815 (move_exprs_to_boundary): Change return type and pass through
14816 should_move from move_op. Relax assert. Update usage ...
14817 (schedule_expr_on_boundary): ... here. Use should_move instead of
14818 cant_move.
14819 (move_op_orig_expr_found): Indicate that insn was disconnected from
14820 stream.
14821 (code_motion_process_successors): Do not call after_merge_succs
14822 callback if original expression was not found when traversing any of
14823 the branches.
14824 (code_motion_path_driver): Change return type. Update prototype.
14825 (move_op): Update comment. Add a new parameter (should_move). Update
14826 prototype. Set *should_move based on indication provided by
14827 move_op_orig_expr_found.
14828
001b9eb6
PH
148292009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14830
14831 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14832 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14833 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14834 * config/rs6000/rs6000.c (rs6000_override_options): Default
14835 avoid-indexed-addresses on for Power6, off for everything else.
14836 (avoiding_indexed_address_p): New function.
14837 (rs6000_legitimize_address): Use it.
14838 (rs6000_legitimate_address): Likewise.
14839 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14840
59dc4898
KH
148412009-01-28 Kazu Hirata <kazu@codesourcery.com>
14842
14843 PR tree-optimization/38997
14844 * tree-loop-distribution.c (generate_memset_zero): Use
14845 POINTER_PLUS_EXPR for a pointer addition.
14846
07da44ab
AK
148472009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14848
14849 * config/s390/s390.md (bswap<mode>2): New pattern added.
14850
cdc15d23
WG
148512009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14852
14853 * config/s390/s390.md (*tls_load_31): Added type attribute.
14854
d46f24b6
WG
148552009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14856
14857 * config/s390/s390.md: Fix a few comments.
14858
729e750f
WG
148592009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14860
14861 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14862 (*tm<mode>_full): Fixed z10prop attribute.
14863 (*tst<mode>_extimm): Fixed z10prop attribute.
14864 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14865 (*tstqiCCT_cconly): Fixed z10prop attribute.
14866 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14867 (*movsi_larl): Fixed z10prop attribute.
14868 (*movsi_zarch): Fixed z10prop attribute.
14869 (*movsi_eas): Fixed z10prop attribute.
14870 (*movhi): Fixed z10prop attribute.
14871 (*movqi): Fixed z10prop attribute.
14872 (*movstrictqi): Fixed z10prop attribute.
14873 (*mov<mode>): Fixed z10prop attribute.
14874 (*movcc): Fixed z10prop attribute.
14875 (*sethighpartdi_64): Fixed z10prop attribute.
14876 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14877 (*negdi2_sign_cc): Fixed z10prop attribute.
14878 (*negdi2_sign): Fixed z10prop attribute.
14879 (*absdi2_sign_cc): Fixed z10prop attribute.
14880 (*absdi2_sign): Fixed z10prop attribute.
14881 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14882 (*negabsdi2_sign): Fixed z10prop attribute.
14883 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14884 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14885 (doloop_si64): Fixed z10prop attribute.
14886 (doloop_si31): Fixed z10prop attribute.
14887 (doloop_long): Fixed z10prop attribute.
14888 (indirect_jump): Fixed z10prop attribute.
14889 (nop): Fixed z10prop attribute.
14890 (main_base_64): Fixed z10prop attribute.
14891 (reload_base_64): Fixed z10prop attribute.
14892
c7789bfb
JJ
148932009-01-28 Jakub Jelinek <jakub@redhat.com>
14894
14895 PR rtl-optimization/38740
6b67572e
UB
14896 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14897 if !optimize.
c7789bfb
JJ
14898 * config/mips/mips.c (mips_reorg): Likewise.
14899
de081cfd
RG
149002009-01-28 Richard Guenther <rguenther@suse.de>
14901
14902 PR tree-optimization/38926
14903 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14904 with the correct value id to a value.
14905 (do_regular_insertion): Use the value number of edoubleprime
14906 for the value number of the expr.
14907
14908 Revert
14909 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14910
d748c406
UB
14911 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14912 a PHI ask VN if it is already available.
14913 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14914 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14915
a9d386a1
JJ
149162009-01-28 Jakub Jelinek <jakub@redhat.com>
14917
14918 PR middle-end/38934
14919 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14920 set to varying whenever max has TREE_OVERFLOW set, similarly
14921 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14922
97a170cd
RG
149232009-01-28 Richard Guenther <rguenther@suse.de>
14924
14925 PR middle-end/38908
14926 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14927 uninitialized aggregate uses in call arguments.
14928
89ebafc6
PB
149292009-01-28 Paolo Bonzini <bonzini@gnu.org>
14930
14931 PR tree-optimization/38984
14932 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14933 the nothing_id variable if -fno-delete-null-pointer-checks.
14934
bef3c57b
UB
149352009-01-28 Uros Bizjak <ubizjak@gmail.com>
14936
14937 PR target/38988
14938 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14939 (set_got_offset_rex64): Ditto.
14940
0c6390fa
L
149412009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14942
14943 PR target/38941
14944 * doc/extend.texi: Improve local variable with asm reg.
14945
bee6fa6d
AN
149462009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14947
14948 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14949 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14950 was not supplied then set warn_packed_bitfield_compat to the
14951 default value of 1.
14952 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14953 against 1.
14954
b5c3dfbb
RG
149552009-01-27 Richard Guenther <rguenther@suse.de>
14956
14957 PR tree-optimization/38503
14958 * cfgexpand.c (expand_gimple_basic_block): Ignore
14959 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14960 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14961 variables that cannot have TBAA applied.
14962 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14963 statements.
14964
d748c406 149652009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14966
14967 PR middle-end/38969
14968 * calls.c (initialize_argument_information): Do not wrap complex
14969 arguments in SAVE_EXPR.
14970
9112bb38
AT
149712009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14972
14973 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14974 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14975
4757704f
RG
149762009-01-26 Richard Guenther <rguenther@suse.de>
14977
14978 PR tree-optimization/38745
14979 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14980 from special handling.
14981
e3e6cff4
RG
149822009-01-26 Richard Guenther <rguenther@suse.de>
14983
14984 PR tree-optimization/38745
14985 * tree-ssa.c (execute_update_addresses_taken): Do not include
14986 variables that cannot possibly be a register in not_reg_needs.
14987 Do not clear TREE_ADDRESSABLE on vars that may not become
14988 registers.
14989 * tree-ssa.c (update_alias_info_1): Include those in the set
14990 of addressable vars.
14991
dc874b53
RG
149922009-01-26 Richard Guenther <rguenther@suse.de>
14993
14994 PR middle-end/38851
14995 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14996 * tree-ssa-dse.c: Include langhooks.h
14997 (execute_simple_dse): Remove stores with zero size.
14998
849421a3
JJ
149992009-01-24 Jakub Jelinek <jakub@redhat.com>
15000
15001 PR c/38957
15002 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15003 as PLUS_EXPR.
15004
82f70421
JB
150052009-01-24 Julian Brown <julian@codesourcery.com>
15006
15007 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15008 config/arm/linux-atomic.c.
15009 * config/arm/linux-atomic.c: New.
15010
863412d6
EB
150112009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15012
15013 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15014 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15015 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15016
8c684300
L
150172009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15018
15019 PR c/38938
93f1527a 15020 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
15021 properly.
15022
b840fb02
SP
150232009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15024
15025 PR tree-optimization/38953
15026 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15027 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15028 (gloog): Split the exit of the scop when the scop exit is a loop exit.
15029 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15030 changed the CFG.
15031
ecee559f
PB
150322009-01-24 Paul Brook <paul@codesourcery.com>
15033
15034 * config/arm/neon.md (neon_type): Move to arm.md.
15035 (neon_mov<VSTRUCT>): Add neon_type attribute.
15036 * config/arm/arm.md (neon_type): Move to here.
15037 (conds): Add "unconditioal" and use as default for NEON insns.
15038
61ad0914
BE
150392009-01-24 Ben Elliston <bje@au.ibm.com>
15040
15041 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15042 void *' warning from -Wc++-compat.
15043 * Makefile.in (dominance.o-warn): Remove.
15044
38432148 150452009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15046
15047 PR tree-optimization/38932
15048 * fold-const.c (fold_unary_ignore_overflow): New.
15049 * tree.h (fold_unary_ignore_overflow): Declare.
15050 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15051 * tree-ssa-sccvn.c (visit_reference_op_load,
15052 simplify_unary_expression): Likewise.
15053
2cd36c22
AN
150542009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15055
15056 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15057 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15058 regardless of their type.
15059 * c-common.c (handle_packed_attribute): Don't ignore packed on
15060 bitfields.
15061 * c.opt (Wpacked-bitfield-compat): New warning option.
15062 * stor-layout.c (place_field): Warn if offset of a field changed.
15063 * doc/extend.texi (packed): Mention the ABI change.
15064 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15065 (Warning Options): Add it to the list.
15066
e4e624ab
L
150672009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15068
15069 * c-opts.c (c_common_post_options): Fix a typo in comments.
15070
d0ea0759
SE
150712009-01-22 Steve Ellcey <sje@cup.hp.com>
15072
15073 PR middle-end/38615
15074 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15075 variables to static.
15076 * doc/invoke.texi (-fmerge-all-constants): Update description.
15077
87673f84
UB
150782009-01-22 Uros Bizjak <ubizjak@gmail.com>
15079
15080 PR target/38931
15081 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15082 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15083
96339268
RE
150842009-01-22 Richard Earnshaw <rearnsha@arm.com>
15085
15086 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15087 a word boundary.
15088 (LOCAL_ALIGNMENT): Similarly.
15089
442dc742 150902009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15091 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15092
15093 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15094 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15095 * config/arm/arm-tune.md: Regenerate.
15096 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15097 -march=iwmmxt2.
15098
9b34732e
MS
150992009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15100
15101 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15102 version number to five.
15103
03c2a308
DS
151042009-01-22 Dodji Seketeli <dodji@redhat.com>
15105
15106 PR c++/38930
ba20e309 15107 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15108 * c-common.c (set_underlying_type): Likewise.
15109 (is_typedef_decl ): Likewise
15110 * tree.h: Likewise
15111 (set_underlying_type): Likewise.
15112 (is_typedef_type): Likewise.
15113
1240d76e
VM
151142009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15115
15116 PR middle-end/38587
15117 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15118 crossing setjmps.
15119
b8a1087d
DK
151202009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15121
15122 PR bootstrap/37660
15123 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15124 (LIBGCC_SPEC): Don't define.
15125 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15126
435da628
UB
151272009-01-21 Uros Bizjak <ubizjak@gmail.com>
15128
15129 PR rtl-optimization/38879
15130 * alias.c (base_alias_check): Unaligned access via AND address can
15131 alias all surrounding object types except those with sizes equal
15132 or wider than the size of unaligned access.
15133
d597b3ce
DS
151342009-01-21 Dodji Seketeli <dodji@redhat.com>
15135
15136 PR c++/26693
ba20e309 15137 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15138 * c-common.c (set_underlying_type): ... here.
435da628 15139 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15140 the newly created typedef variant type.
15141 (is_typedef_decl ): New entry point.
15142 * tree.h: Added a new member member_types_needing_access_check to
15143 struct tree_decl_non_common.
15144 (set_underlying_type): New entry point.
15145 (is_typedef_type): Likewise.
15146
71a6fe66
BM
151472009-01-21 Bingfeng Mei <bmei@broadcom.com>
15148
15149 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15150 Check whether two instructions have memory references that
15151 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15152 are helper functions for traversing.
15153 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15154 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15155 not to draw dependency edge for instructions with non-conflicting
15156 alias sets.
15157
5a248274
JM
151582009-01-20 Joseph Myers <joseph@codesourcery.com>
15159
15160 PR other/38758
6b67572e
UB
15161 * longlong.h: Update copyright years. Use soft-fp license notice.
15162 Sync __clz_tab declaration with glibc.
5a248274 15163
4b84f3de
SE
151642009-01-20 Steve Ellcey <sje@cup.hp.com>
15165
15166 PR target/30687
15167 * doc/extend.texi (syscall_linkage): New.
15168 (version_id): Modify.
15169
37348bf1 151702009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15171 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15172
15173 PR tree-optimization/38747
15174 PR tree-optimization/38748
15175 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15176 conversion if the base address is an indirect reference and the
15177 aliasing sets could cause issues.
15178
d0a58904
SP
151792009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15180
2ba9daa7 15181 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15182 explaining why these options are not documented.
15183
71e7afb2
SP
151842009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15185
15186 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15187 gimple_call_lhs is NULL.
15188
38432148 151892009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15190
15191 PR target/38868
15192 * emit-rtl.c (adjust_address_1): Make sure memref is never
15193 overwritten.
15194
cbb8dee3
BE
151952009-01-20 Ben Elliston <bje@au.ibm.com>
15196
15197 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15198 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15199 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15200 const qualifier from arg 2.
15201
72c66596
IS
152022009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15203
435da628 15204 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15205
f68211cd
VM
152062009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15207
15208 PR c/38869
15209 * rtl.h (reinit_regs): New prototype.
15210 * regclass.c: Include ira.h.
15211 (reinit_regs): New.
15212 * Makefile.in (regclass.o): Add ira.h.
15213 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15214
6e4f1168
L
152152009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15216
15217 PR target/38736
15218 * c-common.c (handle_aligned_attribute): Use
15219 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15220 default alignment value.
15221
15222 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15223
15224 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15225 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15226
15227 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15228 __BIGGEST_ALIGNMENT__.
15229
15230 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15231
890065bf
RG
152322009-01-18 Richard Guenther <rguenther@suse.de>
15233
15234 PR tree-optimization/38819
15235 * tree-flow.h (operation_could_trap_helper_p): Declare.
15236 * tree-eh.c (operation_could_trap_helper_p): Export.
15237 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15238 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15239 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15240 are about to insert a possibly trapping instruction and fail
15241 in this case.
15242
a729d731
AS
152432009-01-18 Andreas Schwab <schwab@suse.de>
15244
15245 * doc/install.texi (Configuration): Remove obsolete paragraph
15246 about use of --with-gnu-ld with --with-gnu-as.
15247
a640c13b
KH
152482009-01-18 Kazu Hirata <kazu@codesourcery.com>
15249
15250 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15251 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15252 Follow spelling conventions.
15253
dba2cc0c
BE
152542009-01-18 Ben Elliston <bje@au.ibm.com>
15255
15256 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15257 C++ warning about implicit conversion from void * to struct
15258 bitmap_head_def *.
15259 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15260 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15261
2207a498
DK
152622009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15263
15264 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15265
8137e465
SP
152662009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15267 Tobias Grosser <tobi.grosser@amd.com>
15268
15269 * graphite.c (graphite_trans_scop_block): Do not block single
15270 nested loops.
15271
5be1c58c
AO
152722009-01-16 Alexandre Oliva <aoliva@redhat.com>
15273
15274 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15275 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15276 test with assertion.
15277
786ce82d
RG
152782009-01-16 Richard Guenther <rguenther@suse.de>
15279
15280 PR tree-optimization/38835
15281 PR middle-end/36227
15282 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15283 and INT + PTR -> (INT)(PTR p+ INT) folding.
15284 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15285
c1cb09ad
AN
152862009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15287
15288 PR target/38554
15289 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15290 the subreg from a lowpart subreg if it is also casting the value.
15291
bcab4e19
SP
152922009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15293 Tobias Grosser <tobi.grosser@amd.com>
15294
15295 * graphite.c (compare_prefix_loops): New.
15296 (build_scop_canonical_schedules): Rewritten.
15297 (graphite_transform_loops): Move build_scop_canonical_schedules
15298 after build_scop_iteration_domain.
15299
0b040072
SP
153002009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15301 Tobias Grosser <tobi.grosser@amd.com>
15302
2ba9daa7 15303 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15304 the dimension of the iteration domain. Do copy the domain
15305 only when it exists.
15306 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15307 (add_conditions_to_constraints): New.
15308 (can_generate_code_stmt, can_generate_code): Removed.
15309 (gloog): Do not call can_generate_code.
15310 (graphite_transform_loops): Call add_conditions_to_constraints
15311 after building the iteration domain.
15312
56c6a499
JJ
153132009-01-16 Jakub Jelinek <jakub@redhat.com>
15314
15315 PR tree-optimization/38789
15316 * tree-ssa-threadedge.c
15317 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15318 __builtin_constant_p.
15319
c95b2534 153202009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15321
15322 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15323 examined before deleting them.
2ba9daa7 15324
c433cb14
RE
153252009-01-16 Richard Earnshaw <rearnsha@arm.com>
15326
15327 * function.c (aggregate_value_p): Correctly extract the function
15328 type from CALL_EXPR_FN lookup.
15329
c95b2534 153302009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15331
15332 * config/picochip/picochip.c (picochip_override_options): Revert
15333 CFI asm flag disable commited previously.
15334
c77bb78f
SP
153352009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15336 Tobias Grosser <tobi.grosser@amd.com>
15337 Jan Sjodin <jan.sjodin@amd.com>
15338
15339 * graphite.c (scan_tree_for_params): On substractions negate
15340 all the coefficients of the term.
15341 (clast_to_gcc_expression_red): New. Handle reduction expressions
15342 of more than two operands.
15343 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15344 (get_vdef_before_scop): Handle also the case of default definitions.
15345
574af2d6
RS
153462009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15347
15348 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15349 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15350 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15351
e939805b
L
153522009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15353 Joey Ye <joey.ye@intel.com>
15354
15355 PR middle-end/37843
15356 * cfgexpand.c (expand_stack_alignment): Don't update stack
15357 boundary nor check incoming stack boundary here.
15358 (gimple_expand_cfg): Update stack boundary and check incoming
15359 stack boundary here.
15360
c95b2534 153612009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15362
435da628 15363 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15364
0196c95e
JJ
153652009-01-14 Jakub Jelinek <jakub@redhat.com>
15366
15367 PR rtl-optimization/38245
15368 * calls.c (expand_call): Add stack arguments to
15369 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15370 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15371 in regs and partially in memory or BLKmode arguments.
15372 (emit_library_call_value_1): Add stack arguments to
15373 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15374 ACCUMULATE_OUTGOING_ARGS).
15375 * dce.c: Include tm_p.h.
15376 (find_call_stack_args): New function.
15377 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15378 argument.
15379 (mark_insn): Call find_call_stack_args for CALL_Ps.
15380 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15381 forwards. Allocate and free arg_stores bitmap if needed, pass it
15382 down to deletable_insn_p, don't mark stores set in arg_stores
15383 bitmap, clear the bitmap at the beginning of each bb.
15384 * Makefile.in (dce.o): Depend on $(TM_P_H).
15385
6df6bcfa
MM
153862009-01-14 Michael Meissner <gnu@the-meissners.org>
15387
15388 PR target/22599
435da628
UB
15389 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15390 to make sure the insn is a conditional test (bug 22599). Reformat a
15391 few long lines.
6df6bcfa 15392
765ec70c
SP
153932009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15394
15395 PR middle-end/38431
15396 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15397 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15398 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15399 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15400 scops have been code generated.
15401
7de2b688
BS
154022009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15403 * doc/gty.texi (Invoking the garbage collector): Added new node
15404 and section documenting ggc_collect.
15405
10bd6c5c
RG
154062009-01-14 Richard Guenther <rguenther@suse.de>
15407
15408 PR tree-optimization/38826
15409 PR middle-end/38477
15410 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15411 initialization notes only if we actually emitted a warning.
15412 (intra_create_variable_infos): Add constraints for a result decl
15413 that is passed by hidden reference.
15414 (build_pred_graph): Mark all related variables non-direct on
15415 address-taking.
15416
9c7c70ee
NC
154172009-01-14 Nick Clifton <nickc@redhat.com>
15418
15419 * ira-conflicts.c: Include addresses.h for the definition of
15420 base_reg_class.
435da628
UB
15421 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15422 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15423
cf0c2a60
VM
154242009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15425
15426 PR target/38811
15427 * Makefile.in (ira-lives.o): Add except.h.
15428
15429 * ira-lives.c: Include except.h.
15430 (process_bb_node_lives): Process can_throw_internal.
15431
d3302fd3
JJ
154322009-01-13 Jakub Jelinek <jakub@redhat.com>
15433
15434 PR rtl-optimization/38774
15435 * combine.c (simplify_set): When undoing cc_use change, don't do
15436 PUT_CODE on the newly created comparison, but instead put back the
15437 old comparison.
15438
7ab23fd0
JM
154392009-01-13 Joseph Myers <joseph@codesourcery.com>
15440
15441 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15442 values. Remove duplicate arm8 entry.
15443
f9344488
SP
154442009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15445
15446 PR tree-optimization/38786
15447 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15448 the SSA_NAME case of expand_scalar_variables_expr.
15449 Set the type of an expression to the type of its assign statement.
15450 (expand_scalar_variables_expr): Also gather the scalar computation
15451 used to index the memory access. Do not pass loop_p.
15452 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15453 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15454 the gimple_stmt_iterator where it inserts new code.
15455 Do not pass loop_p.
f9344488
SP
15456 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15457 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15458
2d8bb84d
SP
154592009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15460
15461 * graphite.h (debug_value): Removed.
15462 * graphite.c (debug_value): Removed.
15463
ff128632
RE
154642009-01-13 Richard Earnshaw <rearnsha@arm.com>
15465
435da628
UB
15466 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15467 ldrd/strd with two 32-bit instructions.
ff128632 15468
d5a0a47b
RE
154692009-01-13 Richard Earnshaw <rearnsha@arm.com>
15470
435da628
UB
15471 * config/arm/arm.c (struct processors): Pass for speed down into
15472 cost helper functions.
d5a0a47b
RE
15473 (const_ok_for_op): Handle COMPARE and inequality nodes.
15474 (arm_rtx_costs_1): Rewrite.
15475 (arm_size_rtx_costs): Update prototype.
15476 (arm_rtx_costs): Pass speed down to helper functions.
15477 (arm_slowmul_rtx_costs): Rework cost calculations.
15478 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15479 (arm_9e_rtx_costs): Likewise.
15480
26d5bf5b
UB
154812009-01-13 Uros Bizjak <ubizjak@gmail.com>
15482
15483 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15484 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15485 (alpha_legitimize_address): Do not split local symbols wider than
15486 UNITS_PER_WORD into HIGH/LO_SUM parts.
15487
5d14e3d5
DS
154882009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15489
15490 PR bootstrap/38580
15491 * gcc.c (process_command): Replace call to execvp with calls
15492 to pex_one and exit.
15493
33faafca
AS
154942009-01-03 Anatoly Sokolov <aesok@post.ru>
15495
15496 PR target/29141
15497 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15498 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15499 variant for devices with 3-byte PC.
ba20e309 15500 (__tablejump_elpm__): New.
33faafca 15501
634b5df5
JJ
155022009-01-12 Jakub Jelinek <jakub@redhat.com>
15503
15504 PR c/32041
15505 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15506 offsetof member-designator, handle it as `[0].'.
15507
2842bb86
JDA
155082009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15509
15510 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15511 function when not using named sections on targets with named sections
15512 if branch distance is less than 262132.
15513
76ee70f6
RE
155142009-01-12 Richard Earnshaw <rearnsha@arm.com>
15515
15516 * combine.c (combine_instructions): Recompute
15517 optimize_this_for_speed_p for each BB in the main combine loop.
15518
f56e675d
TB
155192009-01-12 Tomas Bily <tbily@suse.cz>
15520
15521 PR middlend/38385
26d5bf5b
UB
15522 * tree-loop-distribution.c (prop_phis): New function.
15523 (generate_builtin): Call prop_phis.
15524 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15525
c2152239
JJ
155262009-01-12 Jakub Jelinek <jakub@redhat.com>
15527
15528 PR tree-optimization/38807
15529 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15530 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15531
0e510b3e
AN
155322009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15533
15534 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15535 subreg of op0 to the original op0.
15536
c95b2534 155372009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15538
15539 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15540
53a7ff9a
MS
155412009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15542
15543 PR debug/7055
60839f5d 15544 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15545 starting with digits.
15546
b3a796bc
JJ
155472009-01-10 Jakub Jelinek <jakub@redhat.com>
15548
15549 PR target/38695
15550 * config/arm/arm.c (arm_is_long_call_p): Don't call
15551 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15552
b21b850e
SB
155532009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15554
15555 * regrename.c (regrename_optimize): Fix dumping.
15556 (find_oldest_value_reg): Preserve REG_POINTER.
15557 (copy_hardreg_forward_1): Likewise.
15558
e0e10d3a
DN
155592009-01-09 Diego Novillo <dnovillo@google.com>
15560
bf9b2cc9 15561 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15562 the restrictions on its use.
15563 (gimple_uid): Tidy.
15564 (gimple_set_uid): Tidy.
15565
c9da2ae8
JJ
155662009-01-09 Jakub Jelinek <jakub@redhat.com>
15567
15568 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15569 zero guard even if align_bytes != 0 and count is smaller than
15570 size_needed.
15571
38432148 155722009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15573
15574 PR rtl-optimization/38495
26d5bf5b 15575 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15576 (add_range_and_copies_from_move_list): Print all added ranges.
15577 Add ranges to memory optimized destination.
15578
260fda3d
JJ
155792009-01-09 Jakub Jelinek <jakub@redhat.com>
15580
6f6278ad
JJ
15581 PR target/38686
15582 PR target/38708
15583 * config/i386/i386.c (override_options): Reject
15584 -mstringop-strategy=rep_8byte with -m32.
15585 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15586 to 1. Do count comparison against epilogue_size_needed at compile
15587 time even when count_exp was constant forced into register. For
15588 size_needed don't jump to epilogue, instead just avoid aligning
15589 and invoke the body algorithm. If need_zero_guard, add zero guard
15590 even if count is non-zero, but smaller than size_needed + number of
15591 bytes that could be stored for alignment.
15592 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15593 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15594 but smaller than size_needed + number of bytes that could be stored
15595 for alignment. Compare size_needed with epilogue_size_needed instead
15596 of desired_align - align, don't adjust size_needed, pass
15597 epilogue_size_needed to the epilogue expanders.
15598
260fda3d 15599 PR c/35742
26d5bf5b 15600 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15601
67b846fa
JDA
156022009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15603
15604 * pa.c (last_address): Change to unsigned.
15605 (update_total_code_bytes): Change argument to unsigned. Don't
15606 check if insn addresses are set.
15607 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15608 addresses are not set.
15609 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15610
91c82473
NC
156112009-01-09 Nick Clifton <nickc@redhat.com>
15612
15613 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15614 DECL_DECLARED_INLINE_P.
15615
4017e262
JJ
156162009-01-09 Jakub Jelinek <jakub@redhat.com>
15617
0a49e5c2
JJ
15618 PR middle-end/38347
15619 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15620 GET_MODE (op0) in operand_subword_force calls.
15621
4017e262
JJ
15622 PR middle-end/38771
15623 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15624 fold_convert arg0 operands to TREE_TYPE (op0) first.
15625
7cd06356
VM
156262009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15627
15628 * params.def (ira-max-conflict-table-size): Decrease default value
15629 to 1000.
15630
96867bbd
JJ
156312009-01-08 Jakub Jelinek <jakub@redhat.com>
15632
15633 PR tree-optimization/37031
15634 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15635 on parameter_set.
15636 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15637 allocate it using gc instead of heap, use VEC_quick_push instead of
15638 VEC_safe_push.
15639 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15640 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15641 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15642 allocated vector from heap allocated.
15643 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15644 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15645 vector only after perfect_loop_nest_depth call.
15646
68f61c3d
SP
156472009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15648 Jan Sjodin <jan.sjodin@amd.com>
15649
15650 PR tree-optimization/38559
15651 * graphite.c (debug_value, copy_constraint,
15652 swap_constraint_variables, scale_constraint_variable, ): New.
15653 (get_lower_bound, get_upper_bound): Removed.
15654 (graphite_trans_bb_strip_mine): Clean up this code that works
15655 only for constant number of iterations. Fully copy upper and
15656 lower bound constraints, not only the constant part of them.
15657 * graphite.h (debug_value): Declared.
15658
82567e33
IR
156592009-01-08 Ira Rosen <irar@il.ibm.com>
15660
15661 PR tree-optimization/37194
15662 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15663 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15664 outside cost in case of known number of iterations.
15665
7da13f1d
NF
156662009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15667 Alan Modra <amodra@bigpond.net.au>
15668
15669 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15670 non-word-aligned REG+CONST addressing.
15671
c0f64575
UB
156722009-01-07 Uros Bizjak <ubizjak@gmail.com>
15673
15674 PR target/38706
15675 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15676 free_after_compilation when outputting a thunk.
15677 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15678 Do not call free_after_compilation here.
15679
301b6a4e
UB
156802009-01-07 Uros Bizjak <ubizjak@gmail.com>
15681
15682 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15683 (ix86_valid_target_attribute_inner_p): Ditto.
15684
6a114766
JS
156852009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15686
15687 PR tree-optimization/38492
15688 PR tree-optimization/38498
15689 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15690 * tree-chrec.h (scev_is_linear_expression): Declared.
15691 * graphite.c (graphite_cannot_represent_loop_niter): New.
15692 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15693 (graphite_loop_normal_form): Use gcc_assert.
15694 (scan_tree_for_params): Use CASE_CONVERT.
15695 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15696 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15697 Use gcc_assert. Discard scops that contain unhandled cases.
15698 (build_scop_conditions): Return a boolean status for unhandled cases.
15699 (strip_mine_profitable_p): Print the loop number, not its depth.
15700 (is_interchange_valid): Pass the depth of the loop nest, don't
15701 recompute it wrongly.
15702 (graphite_trans_bb_block): Same.
15703 (graphite_trans_bb_block): Print tentative of loop blocking.
15704 (graphite_trans_scop_block): Do not print that the loop has been
15705 blocked.
15706 (graphite_transform_loops): Do not handle scops that contain condition
15707 scalar phi nodes.
15708
65b82caa
L
157092009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15710
15711 AVX Programming Reference (December, 2008)
15712 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15713 (_mm256_stream_pd): Likewise.
15714 (_mm256_stream_ps): Likewise.
15715
15716 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15717 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15718 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15719 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15720 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15721 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15722 (ix86_expand_special_args_builtin): Likewise.
15723
15724 * config/i386/sse.md (AVXMODEDI): New.
15725 (avx_movnt<mode>): Likewise.
15726 (avx_movnt<mode>): Likewise.
15727 (<sse>_movnt<mode>): Remove AVX support.
15728 (sse2_movntv2di): Likewise.
15729
cef158f9
RG
157302009-01-07 Richard Guenther <rguenther@suse.de>
15731
15732 PR middle-end/38751
15733 * fold-const.c (extract_muldiv): Remove obsolete comment.
15734 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15735 to PLUS_EXPR canonicalization for the canonicalization.
15736
246cb5be
GP
157372009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15738
15739 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15740 hosted cross-compilers generating less efficient code.
15741
84b9b872
RS
157422009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15743
15744 * function.h (rtl_data): Add a dbr_scheduled_p field.
15745 * reorg.c (dbr_schedule): Set it.
15746 (gate_handle_delay_slots): Check it.
15747 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15748 (mips_reorg): Check flag_delayed_branch instead of
15749 mips_base_delayed_branch.
15750 (mips_override_options): Don't set mips_base_delayed_branch
15751 or flag_delayed_branch.
15752
ace984c8
RS
157532009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15754
15755 PR rtl-optimization/38426.
15756 * ira.c (ira): Set current_function_is_leaf earlier.
15757
7ad7809b
JJ
157582009-01-06 Jakub Jelinek <jakub@redhat.com>
15759
15760 PR rtl-optimization/38722
15761 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15762 too early, only set a flag and modify after last possible
15763 undo_all point.
15764
c52ec948
JJ
157652009-01-06 Janis Johnson <janis187@us.ibm.com>
15766
15767 PR c/34252
15768 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15769 * real.c (decimal_single_format): Correct values of emin and emax.
15770 (decimal_double_format): Ditto.
15771 (decimal_quad_format): Ditto.
15772 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15773 computation of DECnn_MIN and DECnn_MAX for corrected values of
15774 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15775 __DECnn_MIN__, and adjust its computation for the corrected value
15776 of emin.
15777
300240e1
JH
157782009-01-06 Jan Hubicka <jh@suse.cz>
15779
15780 PR target/38744
435da628 15781 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15782
271c069e
GP
157832009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15784
15785 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15786 Add Robert Clark to the list of testers.
15787
64e4c301 157882009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15789 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15790
435da628
UB
15791 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15792 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15793
7650b83e 157942009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15795 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15796
435da628
UB
15797 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15798 for w64 ABI.
15799 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15800 (ix86_nsaved_regs): Count only general purpose regs.
15801 (ix86_nsaved_sseregs): New.
15802 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15803 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15804 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15805 general purpose regs.
7650b83e
JH
15806 (ix86_emit_save_sse_regs_using_mov): New.
15807 (ix86_expand_prologue): Save SSE regs if needed.
15808 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15809 (ix86_emit_restore_sse_regs_using_mov): New.
15810 (ix86_expand_epilogue): Save SSE regs if needed.
15811
9aa5c1b2 158122009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15813 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15814
435da628
UB
15815 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15816 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15817 functions when accumulate outgoing args is off.
9aa5c1b2 15818
f7556aae
L
158192009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15820
15821 PR bootstrap/38742
15822 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15823 before using pseudos_have_intersected_live_ranges_p.
15824
15825 * ira-int.h (ira_assert): Always define.
15826
e47b7d04
L
158272009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15828
15829 AVX Programming Reference (December, 2008)
15830 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15831 (_mm256_permute2_pd): Likewise.
15832 (_mm_permute2_ps): Likewise.
15833 (_mm256_permute2_ps): Likewise.
15834 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15835 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15836
15837 * config/i386/i386.c (ix86_builtins): Remove
15838 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15839 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15840 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15841 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15842 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15843 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15844 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15845 __builtin_ia32_vpermil2ps256.
15846 (ix86_init_mmx_sse_builtins): Updated.
15847 (ix86_expand_args_builtin): Likewise.
15848
44b86471
JDA
158492009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15850
e47b7d04
L
15851 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15852 long absolute calls when generating PA 2.0 code.
44b86471 15853
311aab06
VM
158542009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15855
15856 PR rtl-optimization/38583
15857 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15858
15859 * params.def (ira-max-conflict-table-size): New.
15860
15861 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15862
311aab06 15863 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15864
311aab06
VM
15865 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15866 table. Report this. Return result of building.
15867 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15868 building conflict table.
15869
301b6a4e 15870 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15871 (ira_color): Use ira_conflicts_p.
2ba9daa7 15872
311aab06
VM
15873 * global.c: Include ira.h.
15874 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15875 ira_conflicts_p.
15876
15877 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15878
311aab06
VM
15879 * ira-build.c (mark_all_loops_for_removal,
15880 propagate_some_info_from_allocno): New.
15881 (remove_unnecessary_allocnos): Call
15882 propagate_some_info_from_allocno.
15883 (remove_low_level_allocnos): New.
15884 (remove_unnecessary_regions): Add parameter. Call
15885 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15886 parameter to remove_unnecessary_regions.
15887 (ira_build): Remove all regions but root if the conflict table was
15888 not built. Update conflict hard regs for allocnos crossing calls.
15889
15890 * ira.c (ira_conflicts_p): New global.
15891 (ira): Define and use ira_conflicts_p.
15892
15893 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15894 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15895 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15896
5641785f
BE
158972009-01-06 Ben Elliston <bje@au.ibm.com>
15898
15899 * gengtype-lex.l (YY_NO_INPUT): Define.
15900
e4e5261f
AP
159012009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15902
15903 PR c/34911
5641785f
BE
15904 * c-common.c (handle_vector_size_attribute): Also reject
15905 BOOLEAN_TYPE types.
e4e5261f 15906
7b10257f
SP
159072009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15908
15909 PR tree-optimization/38492
15910 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15911 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15912 rename_map_elt_info, eq_rename_map_elts,
15913 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15914 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15915 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15916 (sese_build_livein_liveouts): New.
15917 (new_sese, free_sese): New.
15918 (new_scop): Call new_sese.
15919 (free_scop): Call free_sese.
15920 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15921 (register_old_new_names): Renamed register_old_and_new_names.
15922 (register_scop_liveout_renames, add_loop_exit_phis,
15923 insert_loop_close_phis, struct igp,
15924 default_liveout_before_guard, add_guard_exit_phis,
15925 insert_guard_phis, copy_renames): New.
15926 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15927 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15928 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15929 (scop_adjust_phis_for_liveouts): New.
15930 (gloog): Call scop_adjust_phis_for_liveouts.
15931
15932 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15933 num_ver and livein.
7b10257f
SP
15934 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15935 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15936 (struct scop): Added field liveout_renames.
15937 (SCOP_LIVEOUT_RENAMES): New.
15938
9761fcc7
HJ
159392009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15940
15941 PR tree-optimization/38510
15942 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15943 (translate_clast): Call recompute_all_dominators before
15944 graphite_verify.
15945 (gloog): Call recompute_all_dominators before graphite_verify.
15946
159472009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15948 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15949
15950 PR tree-optimization/38500
15951 * graphite.c (create_sese_edges): Call fix_loop_structure after
15952 splitting blocks.
15953
c95b2534 159542009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15955
15956 * config.gcc: Add m32r*-*-rtems*.
15957 * config/m32r/rtems.h: New file.
15958
fc0cd180
BE
159592009-01-05 Ben Elliston <bje@au.ibm.com>
15960
15961 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15962 (.po.pox): Likewise.
15963 (po/gcc.pot): Likewise.
15964
3106d8e5
DM
159652009-01-04 David S. Miller <davem@davemloft.net>
15966
15967 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15968 (STARTING_FRAME_OFFSET): Always set to zero.
15969
0009b473
RS
159702009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15971
15972 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15973 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15974 fixed-point types, and vectors of the same.
15975
4f24c6d6
RS
159762009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15977
15978 * config/mips/sync.md (*mb_barrier): Rename to...
15979 (*memory_barrier): ...this.
15980
1df48f5c
JW
159812009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15982
15983 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15984 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15985 and put in alphabetical order. Fix 'target' name and put in order.
15986 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15987 typos.
15988
1a8c13b3
UB
159892009-01-04 Uros Bizjak <ubizjak@gmail.com>
15990
15991 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15992 (memory_barrier): Expand as unspec instead of unspec_volatile.
15993 Remove mem:BLK from insn operands. Use Pmode scratch register.
15994 (*memory_barrier): Define as unspec instead of unspec_volatile.
15995 Use (match_dup 0) as input operand.
15996
15997 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15998 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15999 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16000 scratch register. Remove operand 1.
16001 (*stbar): Define as unspec instead of unspec_volatile.
16002 Use (match_dup 0) as input operand, remove (const_int 8).
16003 (*membar): Define as unspec instead of unspec_volatile.
16004 Use (match_dup 0) as input operand, remove input operand 2.
16005
16006 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16007 (memory_barrier): Expand as unspec instead of unspec_volatile.
16008 Remove mem:BLK from insn operands. Use Pmode scratch register.
16009 (*memory_barrier): Define as unspec instead of unspec_volatile.
16010 Use (match_dup 0) as input operand.
16011
16012 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16013 Remove mem:BLK from insn operands. Use Pmode scratch register.
16014 Set volatile flag on operand 0.
16015 (*memory_barrier): New insn pattern.
16016
16017 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16018 insn operands.
16019 (*memory_barrier): Use (match_dup 0) as input operand.
16020
16021 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16022 Remove mem:BLK from insn operands. Use Pmode scratch register.
16023 Set volatile flag on operand 0.
301b6a4e 16024 (*mb_internal): New insn pattern.
1a8c13b3
UB
16025
16026 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16027
fb0703f7
SB
160282009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16029
16030 PR middle-end/38586
16031 * function.c (struct temp_slot): Move to the section of the file
16032 that deals with temp slots. Remove field 'address'.
16033 (temp_slot_address_table): New hash table of address -> temp slot.
16034 (struct temp_slot_address_entry): New struct, items for the table.
16035 (temp_slot_address_compute_hash, temp_slot_address_hash,
16036 temp_slot_address_eq, insert_temp_slot_address): Support functions
16037 for the new table.
16038 (find_temp_slot_from_address): Rewrite to use the new hash table.
16039 (remove_unused_temp_slot_addresses): Remove addresses of temp
16040 slots that have been made available.
16041 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16042 worker function for remove_unused_temp_slot_addresses.
16043 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16044 Add the temp slot address to the address -> temp slot map.
16045 (update_temp_slot_address): Update via insert_temp_slot_address.
16046 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16047 (pop_temp_slots): Likewise.
16048 (init_temp_slots): Allocate the address -> temp slot map, or empty
16049 the map if it is already allocated.
16050 (prepare_function_start): Initialize temp slot processing.
16051
b5a430f3
SB
160522009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16053
16054 PR middle-end/38584
16055 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16056 Calculate the size of all stack vars assuming no packing of stack
16057 vars will happen, replacing a quadratic algorithm with a linear one.
16058
5d560619
JJ
160592009-01-03 Jakub Jelinek <jakub@redhat.com>
16060
16061 PR target/38707
16062 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16063 can't be used.
16064
953a7caa
DN
160652009-01-03 Diego Novillo <dnovillo@google.com>
16066
16067 * doc/contrib.texi: Update contributions.
16068
5f26a230
JJ
160692009-01-03 Jakub Jelinek <jakub@redhat.com>
16070
493aa551
JJ
16071 PR c++/38705
16072 * builtins.c (fold_builtin_memory_op): Give up if either operand
16073 is volatile. Set srctype or desttype to non-qualified version
16074 of the other type.
16075
5f26a230
JJ
16076 PR c/38700
16077 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16078 and FUNCTION_DECLs.
16079
c95b2534 160802009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16081
16082 PR rtl-optimization/35805
16083 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16084 problem if fast dce is able to remove any instructions.
16085 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16086
0b355794
MM
160872009-01-02 Mark Mitchell <mark@codesourcery.com>
16088
16089 PR 33649
16090 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16091
0cf0d02b
JJ
160922009-01-02 Jakub Jelinek <jakub@redhat.com>
16093
16094 PR middle-end/38690
16095 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16096 * tree-pretty-print.c (op_code_prio): New function.
16097 (op_prio): No longer static. Use op_code_prio.
16098 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16099 Use op_prio and op_code_prio to determine if () should be
16100 printed around operand(s) or not.
16101
16102 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16103 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16104 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16105 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16106 pp_character instead of pp_string for single letter printing.
16107
e3606f3b
RS
161082009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16109
16110 * doc/extend.texi: Fix '#pragma GCC option' typo.
16111
c95b2534 161122009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16113
a5f061dc
RG
16114 * doc/install.texi (--enable-checking): Mention different
16115 default for stage1.
16116 (--enable-stage1-checking): Document.
00f39bd5 16117
26de0bcb
AP
161182009-01-01 Andrew Pinski <pinskia@gmail.com>
16119
16120 PR middle-end/30142
16121 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16122 case to be an error.
16123
7a7d8fab
BE
161242009-01-02 Ben Elliston <bje@au.ibm.com>
16125
16126 * config/fp-bit.h (pack_d): Constify argument.
16127 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16128 (isnan): Constify argument.
16129 (isinf): Likewise.
16130 (iszero): Likewise.
16131 (pack_d): Likewise.
16132 (_fpadd_parts): Constify return type.
16133 (_fpmul_parts): Likewise.
16134 (_fpdiv_parts): Likewise.
16135
b295aee2
JJ
161362009-01-01 Jakub Jelinek <jakub@redhat.com>
16137
16138 PR c/36489
16139 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16140 warn about overwriting initializer with side-effects or
16141 -Woverride-init if !IMPLICIT.
16142 (output_init_element): Likewise. Pass IMPLICIT down to
16143 add_pending_init.
16144 (process_init_element): Add IMPLICIT argument. Pass it down
16145 to output_init_element.
16146 (push_init_element, pop_init_level, set_designator): Adjust
16147 process_init_element callers.
16148 (set_nonincremental_init, set_nonincremental_init_from_string):
16149 Adjust add_pending_init callers.
16150 (output_pending_init_elements): Adjust output_init_element callers.
16151 * c-tree.h (process_init_element): Adjust prototype.
16152 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16153 process_init_element callers.
ad41bd84
JM
16154
16155\f
16156Copyright (C) 2009 Free Software Foundation, Inc.
16157
16158Copying and distribution of this file, with or without modification,
16159are permitted in any medium without royalty provided the copyright
16160notice and this notice are preserved.