]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
expr.c (num_div_op): Take explicit location.
[gcc.git] / gcc / ChangeLog
CommitLineData
bdc4827b
SL
12009-06-18 Sandra Loosemore <sandra@codesourcery.com>
2
3 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
4 (arm_scalar_mode_supported_p): New function.
5
d9dd51dc
PB
62009-06-18 Paul Brook <paul@codesourcery.com>
7 Sandra Loosemore <sandra@codesourcery.com>
8
9 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
10 (__extendhfsf2, __truncsfhf2): Define.
11 * config/arm/fp16.c: New file.
12 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
13 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
14
0fd8c3ad
SL
152009-06-18 Sandra Loosemore <sandra@codesourcery.com>
16
17 * doc/extend.texi (Half-Precision): New section.
18 * doc/invoke.texi (Option Summary): List -mfp16-format.
19 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
20 * config/arm/arm.opt (mfp16-format=): New.
21 * config/arm/arm.c: Include intl.h.
22 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
23 (TARGET_INVALID_RETURN_TYPE): Redefine.
24 (TARGET_PROMOTED_TYPE): Redefine.
25 (TARGET_CONVERT_TO_TYPE): Redefine.
26 (arm_fp16_format): Define.
27 (all_fpus): Add entry for neon-fp16.
28 (fp_model_for_fpu): Likewise.
29 (struct fp16_format): Declare.
30 (all_fp16_formats): Define.
31 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
32 functions.
33 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
34 and no ldrh.
35 (arm_legitimate_index_p): Treat HFmode like HImode.
36 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
37 (coproc_secondary_reload_class): Special-case HFmode.
38 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
39 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
40 (arm_init_fp16_builtins): New.
41 (arm_init_builtins): Call it.
42 (arm_invalid_parameter_type): New.
43 (arm_invalid_return_type): New.
44 (arm_promoted_type): New.
45 (arm_convert_to_type).
46 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
47 format.
48 (arm_emit_fp16_const): New function.
49 (arm_mangle_type): Mangle __fp16 as "Dh".
50 * config/arm/arm.h (TARGET_VFPD32): Make it know about
51 FPUTYPE_NEON_FP16.
52 (TARGET_NEON_FP16): New.
53 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
54 (enum fputype): Add FPUTYPE_NEON_FP16.
55 (enum arm_fp16_format_type): Declare.
56 (arm_fp16_format): Declare.
57 (LARGEST_EXPONENT_IS_NORMAL): Define.
58 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
59 * config/arm/arm-modes.def (HFmode): Define.
60 * config/arm/vfp.md: (*movhf_vfp): New.
61 (extendhfsf2): New.
62 (truncsfhf2): New.
63 * config/arm/arm.md: (fpu): Add neon_fp16.
64 (floatsihf2, floatdihf2): New.
65 (fix_trunchfsi2, fix_trunchfdi2): New.
66 (truncdfhf2): New.
67 (extendhfdf2): New.
68 (movhf): New.
69 (*arm32_movhf): New.
70 (*thumb1_movhf): New.
71 (consttable_2): Add check for HFmode constants.
72 (consttable_4): Handle HFmode constants.
73
2c2f70e1
UB
742009-06-18 Uros Bizjak <ubizjak@gmail.com>
75
76 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
77
db4fa1c1
OH
782009-06-17 Olivier Hainque <hainque@adacore.com>
79
80 * collect2.c (main): Use CONST_CAST2 to perform char ** to
81 const char ** conversion in AIX specific section.
82
6bec4135
L
832009-06-17 H.J. Lu <hongjiu.lu@intel.com>
84
85 * config/i386/i386.c (ix86_special_builtin_type): Remove
86 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
87 (bdesc_special_args): Updated.
88 (ix86_init_mmx_sse_builtins): Likewise.
89 (ix86_expand_special_args_builtin): Likewise.
90
958d6d58
RH
912009-06-17 Richard Henderson <rth@redhat.com>
92
93 * tree-pretty-print.c (maybe_dump_asm_name): New.
94 (dump_decl_name): Use it.
95 (PRINT_FUNCTION_NAME): Merge into...
96 (dump_function_name): ... here. Use maybe_dump_asm_name.
97
ed5ef2e4
CC
982009-06-17 Cary Coutant <ccoutant@google.com>
99
100 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
101 Change caller.
102 * debug.c (struct gcc_debug_hooks): Change placeholder for
103 source_line hook.
104 (debug_nothing_int_charstar_int): Replaced by...
105 (debug_nothing_int_charstar_int_bool): ...this.
106 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
107 source_line prototype.
108 (debug_nothing_int_charstar_int): Replaced by...
109 (debug_nothing_int_charstar_int_bool): ...this.
110 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
111 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
112 Output is_stmt operand when necessary.
01a0acb7 113 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
114 (notice_source_line): Add is_stmt parameter.
115 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
116 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
117 Change callers.
118 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
119 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
120
b0f43ca0
ILT
1212009-06-17 Ian Lance Taylor <iant@google.com>
122
123 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
124 Change all uses.
125 (struct store_by_pieces_d): Rename from store_by_pieces. Change
126 call uses.
127
23314e77
AN
1282009-06-17 Adam Nemet <anemet@caviumnetworks.com>
129
130 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
131 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
132 tree_strip_sign_nop_conversions and
133 tree_ssa_strip_useless_type_conversions rather than stripping
134 the operations here.
135 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
136 Declare them.
137 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
138 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
139 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
140 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
141 functions.
142
799dbb0f
ME
1432009-06-17 Michael Eager <eager@eagercon.com>
144
c637b0fa
UB
145 * config/rs6000/constraints.md (register_constraint "d"): New.
146 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
147 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
148 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
149 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
150 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
151 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
152 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
153 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
154 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
155 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
156 __fctiwz): Same.
157 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
158 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
159 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
160 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
161 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
162 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
163 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
164 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
165 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
166 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
167 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
168 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
169 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
170 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
171
1469de3c
ILT
1722009-06-16 Ian Lance Taylor <iant@google.com>
173
174 * profile.c (total_num_never_executed): Don't define.
175 (compute_branch_probabilities): Don't count or print
176 num_never_executed.
177 (init_branch_prob): Don't set total_num_never_executed.
178 (end_branch_prob): Don't print total_num_never_executed.
179
2cb0a60d
DD
1802009-06-17 David Daney <ddaney@caviumnetworks.com>
181
c637b0fa 182 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 183
82882240
DE
1842009-06-17 David Edelsohn <edelsohn@gnu.org>
185
186 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
187 (nabstd2_fpr): Same.
188
a1a65f89
SE
1892009-06-17 Steve Ellcey <sje@cup.hp.com>
190
191 * expr.c (expand_assignment): Change complex type check.
192
07ae5620
BS
1932009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
194
195 * doc/plugins.texi (Building GCC plugins): Added new section.
196
5eb4df45
ILT
1972009-06-17 Ian Lance Taylor <iant@google.com>
198
199 * c-pch.c (get_ident): Don't set size of templ array.
200 (pch_init): Don't set size of partial_pch array.
201
202 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
203 string constant to intialize an array whose size is the length of
204 the string.
205
4d61856d
RG
2062009-06-17 Richard Guenther <rguenther@suse.de>
207
208 PR tree-optimization/40389
209 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
210 to addressable types.
211 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
212
3cb8677c
RG
2132009-06-17 Richard Guenther <rguenther@suse.de>
214
215 PR middle-end/40460
216 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
217 if there is no evolution of left in the loop bail out.
218 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
219 chrec_fold_multiply.
220
a4d99c86
R
2212009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
222 Janis Johnson <janis187@us.ibm.com>
223
224 PR target/39254
225 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
226 for the symbol ref of a constant that is the source of a move
227 - nor for any other not-obvious-label-ref constants.
228
8dd1bca0
OR
2292009-06-16 Olatunji Ruwase <tjruwase@google.com>
230
1469de3c 231 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
232 traversal to avoid repeated insertion.
233
8019538f
ILT
2342009-06-16 Ian Lance Taylor <iant@google.com>
235
236 * vec.h (VEC_stack_alloc): Define different version if
237 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
238 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
239 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
240 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
241
7c45393e
L
2422009-06-16 H.J. Lu <hongjiu.lu@intel.com>
243
244 * config.gcc (extra_headers): Add ia32intrin.h for x86.
245
246 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
247 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
248 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
249 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
250 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
251 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 252 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
253 (bdesc_special_args): Add __builtin_ia32_rdtsc and
254 __builtin_ia32_rdtscp.
255 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
256 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 257 and __builtin_ia32_rorhi.
7c45393e
L
258 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
259 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 260 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
261 (ix86_expand_args_builtin): Likewise.
262 (ix86_expand_special_args_builtin): Likewise.
263
264 * config/i386/i386.md (UNSPECV_RDTSCP): New.
265 (UNSPECV_RDTSC): Likewise.
266 (UNSPECV_RDPMC): Likewise.
c637b0fa 267 (*bsr): Renamed to ...
7c45393e 268 (bsr): This
c637b0fa 269 (*bsr_rex64): Renamed to ...
7c45393e
L
270 (bsr_rex64): This.
271 (rdpmc): New.
272 (*rdpmc): Likewise.
273 (*rdpmc_rex64): Likewise.
274 (rdtsc): Likewise.
275 (*rdtsc): Likewise.
276 (*rdtsc_rex64): Likewise.
277 (rdtscp): Likewise.
278 (*rdtscp): Likewise.
279 (*rdtscp_rex64): Likewise.
280
281 * config/i386/ia32intrin.h: New.
282
283 * config/i386/x86intrin.h: Include <ia32intrin.h>.
284
504b33d8
ILT
2852009-06-16 Ian Lance Taylor <iant@google.com>
286
287 * ira-build.c (copy_info_to_removed_store_destinations):
288 Initialize parent_a.
289
f9551830
ILT
2902009-06-16 Ian Lance Taylor <iant@google.com>
291
292 * c-decl.c (grokdeclarator): Change size_varies to bool.
293
c32e2175
ILT
2942009-06-16 Ian Lance Taylor <iant@google.com>
295
296 * sel-sched.c: Make forward declarations of move_op_hooks and
297 fur_hooks explicitly extern.
298
415a06c2
ILT
2992009-06-16 Ian Lance Taylor <iant@google.com>
300
c637b0fa 301 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
302 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
303
675f99c9
ILT
3042009-06-16 Ian Lance Taylor <iant@google.com>
305
306 * resource.c (mark_referenced_resources): Change
307 include_delayed_effects parameter to bool. Change all callers.
308 (mark_end_of_function_resources): Likewise.
309 * reorg.c (insn_references_resource_p): Likewise.
310 (insn_sets_resource_p): Likewise.
311 * resource.h (mark_referenced_resources): Update declaration.
312 (mark_end_of_function_resources): Update declaration.
313
a322799d
DE
3142009-06-16 David Edelsohn <edelsohn@gnu.org>
315
316 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
317
c58c92f5
DE
3182009-06-16 David Edelsohn <edelsohn@gnu.org>
319
320 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
321 GCC can bootstrap on AIX with GNU Binutils 2.20.
322
95228603
ILT
3232009-06-16 Ian Lance Taylor <iant@google.com>
324
325 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
326
9c727c9a
ILT
3272009-06-16 Ian Lance Taylor <iant@google.com>
328
329 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
330 inline, not extern inline.
331 (exact_log2): Likewise.
332 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
333 test CLZ_HWI.
334 (exact_log2): Likewise, but don't test CTZ_HWI.
335
5fd8300b
ILT
3362009-06-16 Ian Lance Taylor <iant@google.com>
337
338 * bitmap.c (bitmap_clear): Don't declare as inline.
339 * gimple.c (gimplify_assign): Likewise.
340 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
341 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
342 (sched_scan_info): Remove duplicate definition.
343
7d882b83
ILT
3442009-06-16 Ian Lance Taylor <iant@google.com>
345
346 * c-common.c (skip_evaluation): Don't define.
347 (c_inhibit_evaluation_warnings): Define global variable.
348 (overflow_warning): Check c_inhibit_evaluation_warnings rather
349 than skip_evaluation.
350 (convert_and_check, warn_for_div_by_zero): Likewise.
351 * c-common.h (skip_evaluation): Don't declare.
352 (c_inhibit_evaluation_warnings): Declare.
353 * c-parser.c (c_parser_typeof_specifier): Set
354 c_inhibit_evaluation_warnings rather than skip_evaluation.
355 (c_parser_conditional_expression): Likewise.
356 (c_parser_binary_expression): Likewise.
357 (c_parser_sizeof_expression): Likewise.
358 (c_parser_alignof_expression): Likewise.
359 * c-typeck.c (build_indirect_ref): Check
360 c_inhibit_evaluation_warnings rather than skip_evaluation.
361 (build_conditional_expr, build_binary_op): Likewise.
362
2e407842
RG
3632009-06-16 Richard Guenther <rguenther@suse.de>
364
365 * tree-ssa-alias.c (is_escape_site): Remove.
366 * tree-ssa-alias.h (enum escape_type): Remove.
367 (is_escape_site): Likewise.
368 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
369 via casts and asms without deferring to is_escape_site.
370
f2ff8872
JJ
3712009-06-16 Jakub Jelinek <jakub@redhat.com>
372
373 PR middle-end/40446
374 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
375 use gen_lowpart if op0 has complex mode.
376
de70bb20
RG
3772009-06-16 Richard Guenther <rguenther@suse.de>
378
379 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
380 variables add them to ESCAPED.
c637b0fa 381 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 382
daa0eeb8
RAE
3832009-06-16 Rafael Avila de Espindola <espindola@google.com>
384
385 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
386 make_decl_one_only.
387
0ec19b8c
MJ
3882009-06-16 Martin Jambor <mjambor@suse.cz>
389
390 PR tree-optimization/40432
391 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
392 check whether we need to force gimple register operand.
393
2b26b801
MJ
3942009-06-16 Martin Jambor <mjambor@suse.cz>
395
396 PR tree-optimization/40413
397 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
398 build_ref_for_offset.
399 (propagate_subacesses_accross_link): Fix a typo in a comment.
400
7c5222ff
IR
4012009-06-16 Ira Rosen <irar@il.ibm.com>
402
403 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
404 with additional parameter.
c637b0fa 405 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
406 vect_nested_cycle.
407 (enum vect_relevant): Add comments.
408 (vect_is_simple_reduction): Add new argument.
409 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
410 Detect nested cycles.
411 (vect_is_simple_reduction): Update documentation, add an argument to
412 distinguish inner-loop reduction from nested cycle, detect nested
413 cycles, fix printings and indentation, don't swap operands in case
414 of nested cycle.
415 (get_initial_def_for_reduction): Handle subtraction.
416 (vect_create_epilog_for_reduction): Add new argument to specify
417 reduction variable.
418 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
419 (vectorizable_reduction): Handle nested cycles. In case of nested
420 cycle keep track of the reduction variable position. Call
7c5222ff
IR
421 vect_is_simple_reduction with additional parameter. Use original
422 statement code in reduction epilogue for nested cycle. Call
423 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
424 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
425 inner-loop vectorization.
7c5222ff
IR
426 (vect_recog_widen_sum_pattern): Likewise.
427 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
428 and reductions.
429 (vect_mark_stmts_to_be_vectorized): Likewise.
430 (vect_get_vec_def_for_operand): Handle nested cycles.
431
d376d545
RW
4322009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
433
434 * doc/invoke.texi (Debugging Options): Fix option index entries
435 for -fdump-statistics, -frandom-seed add entries for
436 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
437 (FRV Options): Fix entries for -mTLS, -mtls.
438 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
439 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
440 (M68hc1x Options): Fix @itemx for -mnominmax.
441 (MCore Options): Fix entry for -mno-lsim.
442 (MMIX Options): Fix entry for -mabi=mmixware.
443 (PDP-11 Options): Fix entry for -mbcopy-builtin.
444
bd117bb6
BS
4452009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
446
447 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
448 Mention the plugin mode of gengtype.
c637b0fa 449 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
450 * gengtype.c: Updated copyright.
451 (plugin_files, nb_plugin_files) Added new static variables.
452 (measure_input_list) Care about plugin_files.
453 (write_rtx_next): Added early return in plugin mode.
454 (create_file): Updated copyright year in generated file. Added
455 asserts.
456 (oprintf): Added early return if NULL outf.
457 (get_output_file_with_visibility): Care of plugin_files.
458 (get_output_file_name): May return null.
459 (write_local): Added early return.
460 (put_mangled_filename): Ditto.
461 (finish_root_table): Added check for base_files.
462 (write_roots): Care about null when plugins.
463 (main): Added plugin mode.
464
e1b7793c
ILT
4652009-06-15 Ian Lance Taylor <iant@google.com>
466
c637b0fa 467 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
468 * gcov.c (read_count_file): Add braces around variables declared
469 before label.
470
471 * c.opt (Wjump-misses-init): New warning.
472 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
473 -Wall and -Wc++-compat if not already set.
474 (c_common_post_options): Clear warn_jump_misses_init if it was not
475 set.
476 * c-decl.c (struct c_binding): Change type field to a union with
477 new label field. Make it the first field in the struct. Update
478 references to type to use u.type instead.
479 (struct c_spot_bindings): Define.
480 (struct c_goto_bindings): Define.
481 (c_goto_bindings_p): Define, along with VECs.
482 (struct c_label_vars): Define.
483 (struct c_scope): Add has_label_bindings field.
484 (bind_label, set_spot_bindings): New static functions.
485 (decl_jump_unsafe, update_spot_bindings): New static functions.
486 (update_label_decls): New static function.
487 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
488 Update binding u.label field to shadowed field.
489 (c_binding_start_stmt_expr): New function.
490 (c_binding_end_stmt_expr): New function.
491 (pushdecl): Don't call c_begin_vm_scope.
492 (make_label): Add defining and p_label_vars parameters. Change
493 all callers.
494 (lookup_label): Correct test for whether a label has not yet been
495 defined. Call bind_label rather than bind.
496 (warn_about_goto): New static function.
497 (lookup_label_for_goto): New function.
498 (declare_label): Call bind_label rather than bind.
499 (check_earlier_gotos): New static function.
500 (define_label): Don't give errors about jumping into statement
501 expressions or scopes of variably modified types. Call
502 set_spot_bindings and check_earlier_gotos. Call bind_label
503 instead of bind. Don't set label_context_stack_se or
504 label_context_stack_vm.
505 (c_get_switch_bindings): New function.
506 (c_release_switch_bindings): New function.
507 (c_check_switch_jump_warnings): New function.
508 (start_function): Don't set label_context_stack_se or
509 label_context_stack_vm.
510 (finish_function): Likewise.
511 * c-typeck.c (label_context_stack_se): Don't define.
512 (label_context_stack_vm): Don't define.
513 (c_finish_goto_label): Call lookup_label_for_goto rather than
514 lookup_label. Don't give errors about jumping into a statement
515 expression or the scope of a variably modified type. Don't set
516 label_context_stack_se or label_context_stack_vm.
517 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
518 fields. Add bindings field.
519 (c_start_case): Don't set deleted fields. Set bindings field.
520 (do_case): Rework order of tests. Don't check blocked_stmt_expr
521 or blocked_vm. Call c_check_switch_jump_warnings.
522 (c_finish_case): Don't test blocked_stmt_expr field. Call
523 c_release_switch_bindings.
524 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
525 c_switch_stack. Don't walk label_context_stack_se labels. Don't
526 set label_context_stack_se. Call c_bindings_start_stmt_expr.
527 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
528 c_switch_stack. Don't walk label_context_stack_se labels. Don't
529 set label_context_stack_se. Call c_bindings_end_stmt_expr.
530 (c_begin_vm_scope, c_end_vm_scope): Don't define.
531 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
532 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
533 (C_DECL_UNJUMPABLE_VM): Don't define.
534 (C_DECL_UNDEFINABLE_VM): Don't define.
535 (struct c_label_list): Don't define.
536 (struct c_label_context_se): Don't define.
537 (struct c_label_context_vm): Don't define.
538 (struct c_spot_bindings): Declare.
539 (c_bindings_start_stmt_expr): Declare.
540 (c_bindings_end_stmt_expr): Declare.
541 (lookup_label_for_goto): Declare.
542 (c_get_switch_bindings, c_release_switch_bindings): Declare.
543 (c_check_switch_jump_warnings): Declare.
544 (label_context_stack_se, label_context_stack_vm): Don't declare.
545 (c_finish_goto_label): Update declaration.
546 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
547 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
548 (Warning Options): Document -Wjump-misses-init.
549
98a129b9
JJ
5502009-06-15 Jakub Jelinek <jakub@redhat.com>
551
552 * tree-object-size.c (addr_object_size): Fix a pasto in the last
553 change.
554
19751f1f
RAE
5552009-06-15 Rafael Avila de Espindola <espindola@google.com>
556
557 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
558
d40eb158
AH
5592009-06-15 Aldy Hernandez <aldyh@redhat.com>
560
561 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
562
5632009-06-15 Aldy Hernandez <aldyh@redhat.com>
564
565 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
566
fc26fae3
RAE
5672009-06-15 Rafael Avila de Espindola <espindola@google.com>
568
569 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
570 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
571 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
572 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
573 * dwarf2asm.c (dw2_force_const_mem): Update call to
574 make_decl_one_only.
fc26fae3
RAE
575 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
576 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
577 * langhooks.c (lhd_comdat_group): Remove.
578 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
579 * tree.h (DECL_COMDAT_GROUP): New.
580 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
581 (tree_decl_with_vis): Add comdat_group. Remove one_only.
582 (make_decl_one_only): Change signature.
583 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
584 make_decl_one_only.
585 (make_decl_one_only): Change signature.
586 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
587
0eb92735
RG
5882009-06-15 Richard Guenther <rguenther@suse.de>
589
590 PR middle-end/40439
591 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
592
0ab352d5
AK
5932009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
594
595 * tree-ssa-math-opts.c: Remove extra divide.
596
677fbff4
AK
5972009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
598
599 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
600
03bd2f1a
AK
6012009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
602
603 * passes.c: Add bswap pass.
604 * tree-pass.h: Add pass_optimize_bswap declaration.
605 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
606 Include rtl.h, expr.h and optabs.h for optab_handler check.
607 (struct symbolic_number, pass_optimize_bswap): New definition.
608 (do_shift_rotate, verify_symbolic_number_p): New functions.
609 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
610 (gate_optimize_bswap): New function.
611 * tree.c (widest_int_cst_value): New function.
612 * tree.h (widest_int_cst_value): Prototype added.
613
fb4c4640
SB
6142009-06-14 Steven Bosscher <steven@gcc.gnu.org>
615
616 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
617 REG_EQUAL/REG_EQUIV notes.
618
1d24fdd9
RG
6192009-06-14 Richard Guenther <rguenther@suse.de>
620
621 PR middle-end/40389
622 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
623 has its address taken if NRV was applied and it is addressable.
624 * tree-ssa-structalias.c (get_constraint_for_address_of): New
625 function split out from ...
626 (get_constraint_for_1): ... here.
627 (handle_rhs_call): Use it to mark the return slot escaped if
628 it is addressable and NRV was applied.
629
4b29c5e5
AH
6302009-06-13 Aldy Hernandez <aldyh@redhat.com>
631
632 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
633 Change first argument type to location_t.
634 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
635 Do not set input_location.
636 Use loc instead of input_location throughout.
637
e1e6dc73
RG
6382009-06-13 Richard Guenther <rguenther@suse.de>
639
1d24fdd9 640 PR tree-optimization/40421
e1e6dc73
RG
641 * tree-predcom.c (should_unroll_loop_p): Remove.
642 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
643
8012b923
MM
6442009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
645
646 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
647 Add location argument.
648
4c4bde29
AH
6492009-06-13 Aldy Hernandez <aldyh@redhat.com>
650
651 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
652 build_decl.
653 * config/s390/s390.c (s390_build_builtin_va_list): Same.
654 (s390_gimplify_va_arg): Pass location to create_artificial_label.
655 * config/spu/spu-protos.h: Add location to
656 spu_resolve_overloaded_builtin.
657 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
658 spu_build_builtin_va_list.
659 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
660 argument. Pass location to build_function_call_vec.
661 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
662 build_decl.
663 (emit_fpu_switch): Same.
664 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
665 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
666 to build_decl and create_artificial_label.
667 (xtensa_gimplify_va_arg_expr): Same.
668 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
669 (xstormy16_gimplify_va_arg_expr): Same.
670 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
671 * config/arm/arm.c (arm_build_builtin_va_list): Same.
672 * config/mips/mips.c (mips_build_builtin_va_list): Same.
673 (mips16_build_function_stub): Same.
674 (mips16_build_call_stub): Same.
675
81beb031
RE
6762009-06-13 Richard Earnshaw <rearnsha@arm.com>
677
678 PR target/40327
679 * arm/constraints.md (Pa, Pb): New constraints.
680 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
681 split pattern to deal with them.
682
98f6c600
JS
6832009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
684
685 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
686 fix index entry for -Xpreprocessor.
687
71856685
AH
6882009-06-12 Aldy Hernandez <aldyh@redhat.com>
689
690 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
691 Add location argument to build_decl call.
692 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
693 (rs6000_init_builtins): Same.
694 (spe_init_builtins): Same.
695 (rs6000_gimplify_va_arg): Add location argument to
696 create_artificial_label call.
697
756b65f5
SB
6982009-06-12 Steven Bosscher <steven@gcc.gnu.org>
699
700 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
701 * combine-stack-adj.c (pass_stack_adjustments): Use it.
702 * Makefile.in: Fix GGC dependency for gcse.o.
703
c2255bc4
AH
7042009-06-12 Aldy Hernandez <aldyh@redhat.com>
705
706 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
707 * gimple-pretty-print.c (dump_gimple_stmt): Same.
708 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
709 created.
710 * c-parser.c (c_parser_binary_expression): Use current column while
711 building binary operations.
712 * common.opt (fshow-column): Enable by default.
713 * tree-vrp.c (check_array_ref): Use warning_at.
714 (check_array_bounds): Use location from call back if expr has no
715 location.
716 * tree.h: Add location argument to maybe_fold_*.
717 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
718 (maybe_fold_offset_to_array_ref): Add location argument and use it.
719 (maybe_fold_offset_to_component_ref): Same.
720 (maybe_fold_offset_to_reference): Same.
721 (maybe_fold_offset_to_address): Same.
722 (maybe_fold_stmt_indirect): Same.
723 (maybe_fold_stmt_addition): Same.
724 (fold_stmt_r): Pass location to maybe_fold_*.
725 (fold_gimple_assign): Same.
726 * c-tree.h: Add location argument to finish_decl,
727 default_function_array_conversion, store_init_value.
728 * c-decl.c (define_label): Use error_at.
729 (c_make_fname_decl): Pass location to finish_decl.
730 (finish_decl): New location argument.
731 (build_compound_literal): Pass location to store_init_value.
732 (grokdeclarator): Pass location to finish_decl.
733 (grokfield): Same.
734 * c-typeck.c (array_to_pointer_conversion): New location argument.
735 (function_to_pointer_conversion): Same.
736 (default_function_array_conversion): Same.
737 (parser_build_unary_op): Pass location to overflow_warning.
738 (parser_build_binary_op): Same. Use warning_at.
739 (build_unary_op): Pass location to array_to_pointer_conversion.
740 (build_c_cast): Pass location to digest_init.
741 (build_modify_expr): New location argument.
742 (convert_for_assignment): Same.
743 (store_init_value): Same.
744 (digest_init): Same.
745 (output_init_element): Pass location to digest_init and
746 array_to_pointer_conversion.
747 (c_finish_return): Pass location to convert_for_assignment.
748 * gimplify.c (gimplify_conversion): Pass location to
749 maybe_fold_offset_to_address.
750 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
751 to maybe_fold_stmt_addition.
752 * c-omp.c (c_finish_omp_atomic): Pass new location to
753 build_modify_expr.
754 (c_finish_omp_for): Same.
755 * c-common.c (overflow_warning): New argument.
756 * c-common.h: New argument to build_modify_expr, overflow_warning.
757 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
758 finish_decl.
759 (c_parser_initializer): Pass location to
760 default_function_array_conversion.
761 (c_parser_initelt): Same.
762 (c_parser_initval): Same.
763 (c_parser_asm_operands): Same.
764 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
765 (c_parser_conditional_expression): Same.
766 (c_parser_binary_expression): Add location info to stack. Use it.
767 (c_parser_unary_expression): Pass location to
768 default_function_array_conversion, parser_build_unary_op,
769 build_indirect_ref, c_parser_postfix_expression_after_primary.
770 (c_parser_postfix_expression_after_primary): New location argument.
771 Use it.
772 (c_parser_expression_conv): Pass location to
773 default_function_array_conversion.
774 (c_parser_expr_list): Same.
775 (c_parser_omp_atomic): Same.
776 (c_parser_omp_for_loop): Same.
777 * c-tree.h: (struct c_declarator): Add comment to id_loc.
778 (build_array_declarator): New argument.
779 * c-decl.c (build_array_declarator): Add location argument.
780 (grokdeclarator): Set id_loc for cdk_array.
781 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
782 build_array_declarator.
783 * tree.c (build_omp_clause): Add location argument.
784 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
785 (OMP_CLAUSE_LOCATION): New macro.
786 (struct tree_omp_clause): Add location field.
787 (build_omp_clause): Add argument.
788 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
789 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
790 build_omp_clause.
791 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
792 (cp_parser_omp_clause_collapse): Same.
793 (cp_parser_omp_clause_default): Same.
794 (cp_parser_omp_clause_if): Same.
795 (cp_parser_omp_clause_nowait): Same.
796 (cp_parser_omp_clause_num_threads): Same.
797 (cp_parser_omp_clause_ordered): Same.
798 (cp_parser_omp_clause_schedule): Same.
799 (cp_parser_omp_clause_untied): Same.
800 (cp_parser_omp_for_loop): Same.
801 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
802 * c-tree.h (c_start_case): Add location argument.
803 (c_process_expr_stmt): Same.
804 (c_finish_goto_*): Same.
805 * tree-parloops.c (initialize_reductions): Pass location to
806 build_omp_clause.
807 (create_parallel_loop): Same.
808 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
809 (gfc_trans_omp_reduction_list): Same.
810 (gfc_trans_omp_clauses): Same.
811 (gfc_trans_omp_do): Same.
812 * c-typeck.c (c_finish_goto_label): Same.
813 (c_finish_goto_ptr): New location argument.
814 (c_start_case): Same.
815 (emit_side_effect_warnings): Same.
816 (c_process_expr_stmt): Same.
817 (c_finish_stmt_expr): Same.
818 (c_finish_omp_clauses): Use error_at instead of error.
819 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
820 build_omp_clause.
821 * c-omp.c (c_split_parallel_clauses): New location argument.
822 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
823 to build_omp_clause.
824 (convert_local_reference_stmt): Same.
825 (convert_gimple_call): Same.
826 * c-common.h (c_split_parallel_clauses): New argument.
827 * c-parser.c (c_parser_statement_after_labels): Pass location to
828 c_finish_goto_label.
829 (c_parser_switch_statement): Pass location to c_start_case.
830 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
831 and c_process_expr_stmt.
832 (c_parser_omp_variable_list): Add location argument.
c637b0fa 833 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
834 (c_parser_omp_clause_default): Same.
835 (c_parser_omp_clause_if): Same.
836 (c_parser_omp_clause_num_threads): Same.
837 (-c_parser_omp_clause_ordered): Same.
838 (c_parser_omp_clause_reduction): Pass location to
839 c_parser_omp_variable_list.
840 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
841 (c_parser_omp_clause_untied): Same.
842 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 843 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
844
845 * c-tree.h (check_for_loop_decls, undeclared_variable,
846 build_component_ref, build_array_ref, build_external_ref,
847 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
848 build_conditional_expr, build_compound_expr, c_cast_expr,
849 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
850 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
851 argument.
852 * c-semantics.c (build_stmt): Same.
853 (build_case_label): Same.
854 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
855 (undeclared_variable): New argument.
856 (make_label): Same.
857 (lookup_label): Pass location on down.
858 (define_label): Same.
859 (finish_decl): Same.
860 (build_compound_literal): Same.
861 (finish_struct): Same.
862 (finish_function): Do not set location here.
863 (check_for_loop_decls): New argument.
864 * tree.c (save_expr): Set location.
865 (build_empty_stmt): New argument.
866 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
867 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
868 * builtins.c (gimplify_va_arg_expr): Use locations.
869 (expand_builtin_sync_operation): Same.
870 * c-typeck.c (build_component_ref): New argument.
871 (build_array_ref): Same.
872 (build_external_ref): Same.
873 (c_expr_sizeof_expr): Same.
874 (c_expr_sizeof_type): Same.
875 (parser_build_unary_op): Same.
876 (build_conditional_expr): Same.
877 (build_compound_expr): Pass location on down.
878 (build_compound_expr): New argument.
879 (build_c_cast): Same.
880 (c_cast_expr): Same.
881 (build_asm_expr): Same.
882 (c_finish_return): Same.
883 (c_process_expr_stmt): Pass location on down.
884 (c_finish_stmt_expr): New argument.
885 (push_clenaup): Same.
886 (c_finish_omp_parallel): Same.
887 (c_finish_omp_task): Same.
888 * gimplify.c (gimplify_call_expr): Pass location on down.
889 * c-omp.c (c_finish_omp_master): New argument.
890 (c_finish_omp_critical): Same.
891 (c_finish_omp_ordered): Same.
892 (c_finish_omp_barrier): Same.
893 (-c_finish_omp_taskwait): Same.
894 (c_finish_omp_atomic): Same.
895 (c_finish_omp_flush): Same.
896 * tree-inline.c (copy_tree_body_r): Pass location on down.
897 (inline_forbidden_p): Remove use of input_location.
898 * c-gimplify.c (c_build_bind_expr): New argument.
899 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
900 (c_sizeof_or_alignof_type): New argument.
901 (c_alignof_expr): Same.
902 (build_va_arg): Same.
903 (c_add_case_label): Same.
904 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
905 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
906 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
907 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
908 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
909 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
910 New argument.
911 * stub-objc.c (objc_build_selector_expr): Same.
912 (objc_build_throw_stmt): Same.
913 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
914 (c_parser_initelt): Same.
915 (c_parser_compound_statement): Same.
916 (c_parser_compound_statement_nostart): Same.
917 (c_parser_label): Same.
918 (c_parser_statement_after_labels): Same.
919 (c_parser_if_body): Same.
920 (c_parser_else_body): Same.
921 (c_parser_if_statement): Same.
922 (c_parser_switch_statement): Same.
923 (c_parser_while_statement): Same.
924 (c_parser_do_statement): Same.
925 (c_parser_for_statement): Same.
926 (c_parser_asm_statement): Same.
927 (c_parser_conditional_expression): Same.
928 (c_parser_binary_expression): Same.
929 (c_parser_cast_expression): Same.
930 (c_parser_unary_expression): Same.
931 (c_parser_sizeof_expression): Same.
932 (c_parser_alignof_expression): Same.
933 (c_parser_postfix_expression): Same.
934 (c_parser_expression): Same.
935 (c_parser_objc_receiver): Same.
936 (c_parser_omp_variable_list): Same.
937 (c_parser_omp_structured_block): Same.
938 (c_parser_omp_atomic): New argument.
939 (c_parser_omp_barrier): Same.
940 (c_parser_omp_critical): Same.
941 (c_parser_omp_flush): Pass location on down.
942 (c_parser_omp_for_loop): New argument.
943 (c_parser_omp_for): Same.
944 (c_parser_omp_master): Same.
945 (c_parser_omp_ordered): Same.
946 (c_parser_omp_sections_scope): Same.
947 (c_parser_omp_sections): Same.
948 (c_parser_omp_parallel): Same.
949 (c_parser_omp_single): Same.
950 (c_parser_omp_task): Same.
951 (c_parser_omp_taskwait): Pass location on down.
952 (c_parser_omp_construct): Same.
953 (c_parser_omp_threadprivate): Same.
954 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
955 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
956 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
957 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
958 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
959 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
960 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
961 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
962 config/i386/i386.c, stmt.c:
963 Add location argument to the following function definitions and/or
964 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
965 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
966 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
967 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
968 do_case, c_finish_bc_stmt, build_compound_literal,
969 build_function_call.
970 * c-decl.c (build_compound_literal): Add location argument.
971 Make all diagnostic calls use location.
972 (start_struct): Same.
973 (finish_struct): Same.
974 (start_enum): Same.
975 (build_enumerator): Same.
976 (start_function): Same.
977 (grokdeclarator): Make all diagnostic calls use location.
978 (store_parm_decls_oldstyle): Same.
979 * c-typeck.c (build_function_call): Add location argument.
980 Make all diagnostic calls use location.
981 (do_case): Same.
982 (c_finish_bc_stmt): Same.
983 * tree-nested.c (get_trampoline_type): Add argument.
984 Pass location to build_decl.
985 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
986 * rtl.h (RTL_LOCATION): New.
987 * c-common.c (c_add_case_label): Add location argument.
988 Make all diagnostic calls use location.
989 * c-common.h: Add location argument to make_fname_decl, do_case,
990 c_add_case_label, build_function_call, resolve_overloaded_builtin.
991 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
992 Set it appropriately for every case. Pass enum_loc to start_enum
993 call. Pass value_loc first to build_enumerator. Pass enum_loc to
994 parser_xref_tag.
995 (c_parser_struct_or_union_specifier): Save location. Use it for
996 start_struct, finish_struct, and parser_xref_tag.
997
3d8b2a98
ILT
9982009-06-12 Ian Lance Taylor <iant@google.com>
999
c637b0fa 1000 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1001
1002 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1003 cpp_opts->warn_cxx_operator_names.
1004
737142ce
AP
10052009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1006
1007 PR tree-opt/38865
1008 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1009 is returns NULL and OP is a VCE, look through the VCE.
1010
d3a0d55d
ILT
10112009-06-12 Ian Lance Taylor <iant@google.com>
1012
1013 PR bootstrap/40430
1014 * collect2.c (main): Use CONST_CAST2 in code inside #if
1015 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1016
f85882d8
JY
10172009-06-12 Joey Ye <joey.ye@intel.com>
1018
1019 PR middle-end/39146
1020 * cfgexpand.c (get_decl_align_unit): Update
1021 max_used_stack_slot_alignment with align instead of
1022 stack_alignment_needed.
1023
1024 * function.c (assign_stack_local_1): Update
1025 max_used_stack_slot_alignment with alignment_in_bits instead
1026 of stack_alignment_needed.
1027 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1028 here.
1029
fc9f468b
JJ
10302009-06-12 Jakub Jelinek <jakub@redhat.com>
1031
1032 * dwarf2out.c (last_var_location_insn): New variable.
1033 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1034 (dwarf2out_var_location): Don't record anything after last real
1035 insn. Only change labels if there were any real instructions
1036 in between last note and this one, or if changed sections.
1037
7c1db202
RH
10382009-06-11 Richard Henderson <rth@redhat.com>
1039
f85882d8 1040 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1041 note when storing the frame pointer in a register.
1042 (FRP): Don't redefine to nothing for epilogue.
1043 (alpha_expand_epilogue): Mark register and sp restores.
1044 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1045
7c1db202
RH
1046 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1047 when gen_lowpart is needed.
1048
f2ae7631
RH
10492009-06-11 Richard Henderson <rth@redhat.com>
1050
42755c21
RH
1051 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1052
f2ae7631
RH
1053 * dwarf2out.c (need_data_align_sf_opcode): New.
1054 (div_data_align): Move earlier.
1055 (def_cfa_1, reg_save): Use it.
1056
8ed0ce99
L
10572009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1058
1059 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1060 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1061 (ix86_handle_option): Handle OPT_mcrc32.
1062 (ix86_target_string): Add -mcrc32.
1063 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1064
1065 * config/i386/i386.h (TARGET_CRC32): New.
1066
c637b0fa 1067 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1068 (sse4_2_crc32di): Likewise.
1069
c637b0fa 1070 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1071
1072 * doc/invoke.texi: Document -mcrc32.
1073
9fd68a1f
RH
10742009-06-11 Richard Henderson <rth@redhat.com>
1075
8ed0ce99 1076 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1077 * doc/invoke.texi (gdwarf-): Update docs.
1078 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1079 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1080 version level, and record it.
1081
1082 * dwarf2.h (DW_CIE_VERSION): Remove.
1083 * dwarf2out.c (DWARF_VERSION): Remove.
1084 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1085 (output_call_frame_info): Use CIE version 3 for dwarf3,
1086 or if the return register column is out of range for version 1.
1087 (dwarf_stack_op_name): Add all dwarf3 values.
1088 (DEBUG_PUBTYPES_SECTION): New.
1089 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1090 encoding change for dwarf3.
1091 (output_die) [dw_val_class_die_ref]: Likewise.
1092 (output_compilation_unit_header): Emit correct version for dwarf3.
1093 (output_line_info): Likewise.
1094 (output_pubnames): Update for DWARF_VERSION removal.
1095 (output_aranges): Likewise.
1096 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1097 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1098 (dwarf2out_finish): Likewise.
1099
4de8ce3b
DD
11002009-06-11 David Daney <ddaney@caviumnetworks.com>
1101
1102 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1103 in r148403.
1104
468059bc
DD
11052009-06-11 David Daney <ddaney@caviumnetworks.com>
1106
1107 PR c/39252
1108 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1109 * builtins.c (expand_builtin_unreachable): New function.
1110 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1111 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1112 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1113 successors.
1114 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1115 searching for missing barriers.
1116
b5a6e96f
FXC
11172009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1118
1119 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1120 when -fprofile-generate* was passed.
1121 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1122
6be6462e
AG
11232009-06-11 Anthony Green <green@moxielogic.com>
1124
c637b0fa 1125 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1126 (rCC): Define.
1127 (*b<cond:code>): Support limited branch ranges for new PC-relative
1128 branch instructions.
1129 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1130
caaabe0a
JJ
11312009-06-11 Jakub Jelinek <jakub@redhat.com>
1132
e5219642
JJ
1133 * config/i386/i386.c (min_insn_size): Use get_attr_length
1134 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1135 For __asm return 0.
1136
caaabe0a
JJ
1137 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1138 instead of emit_insn_before.
1139
a567fa6a
ILT
11402009-06-10 Ian Lance Taylor <iant@google.com>
1141
1142 PR bootstrap/40408
1143 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1144 GIMPLE_SWITCH.
1145
6a753d5f
RE
11462009-06-10 Revital Eres <eres@il.ibm.com>
1147
1148 * passes.c (init_optimization_passes): Reschedule
1149 predictive-commoning pass before complete unroll pass.
1150
a550d677
MJ
11512009-06-10 Martin Jambor <mjambor@suse.cz>
1152
1153 * cgraph.c (cgraph_node_can_be_local_p): New function.
1154 (cgraph_make_node_local): New function.
1155 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1156 (cgraph_make_node_local): Declare.
1157
d8259b07
NF
11582009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1159
1160 * tree.h (tree_base): Add packed_flag and user_align fields.
1161 Decrease size of spare field.
1162 (TYPE_USER_ALIGN): Use user_align from tree_base.
1163 (DECL_USER_ALIGN): Likewise.
1164 (TYPE_PACKED): Use packed_flag from tree_base.
1165 (DECL_PACKED): Likewise.
1166 (tree_type): Delete packed_flag and user_align fields. Widen
1167 precision field. Widen mode field and shuffle fields to align
1168 mode on an 8-bit boundary.
1169 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1170 Renumber decl_flag_* fields. Fix comments. Widen
1171 decl_common_unused field.
c637b0fa 1172 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1173 (DECL_EXTERNAL): Likewise.
1174 (DECL_BIT_FIELD): Likewise.
1175 (DECL_NONADDRESSABLE_P): Likewise.
1176 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1177 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1178
c2569604
ILT
11792009-06-10 Ian Lance Taylor <iant@google.com>
1180
1181 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1182 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1183 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1184 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1185 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1186 DEF_VEC_ALLOC_FUNC_P.
1187 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1188 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1189 DEF_VEC_ALLOC_FUNC_O.
1190 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1191 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1192 DEF_VEC_ALLOC_FUNC_I.
1193 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1194 (vec_stack_p_reserve_exact_1): Declare.
1195 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1196 (vec_stack_free): Declare.
1197 (VEC_stack_alloc): Define.
1198 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1199 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1200 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1201 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1202 for void_p.
1203 (stack_vecs): New static variable.
1204 (vec_stack_p_reserve_exact_1): New function.
1205 (vec_stack_o_reserve_1): New static function.
1206 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1207 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1208 (vec_stack_free): New function.
1209 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1210 (VEC_df_ref_stack_alloc): Define.
1211 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1212 DEF_VEC_ALLOC_P_STACK.
1213 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1214 (struct df_collection_rec): Change _vec fields to VEC. Remove
1215 _use fields.
1216 (df_free_collection_rec): Adjust for new fields.
1217 (df_insn_rescan): Use new df_collection_rec fields.
1218 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1219 (df_ref_create_structure, df_ref_record): Likewise.
1220 (df_get_conditional_uses, df_get_call_refs): Likewise.
1221 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1222 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1223 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 1224 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
1225 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1226 Remove count parameter. Change return type to void. Change all
1227 callers.
1228 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1229 Remove count parameter. Change return type to void. Change all
1230 callers.
1231 (df_install_refs): Change old_vec parameter to VEC. Remove count
1232 parameter. Change all callers.
1233 (df_install_mws): Change old_vec parameter to VEC. Remove count
1234 parameter. Change all callers.
1235 (df_refs_verify): Change new_rec parameter to VEC. Change call
1236 callers.
1237 (df_mws_verify): Likewise.
1238
e7aae3e8
AO
12392009-06-10 Alexandre Oliva <aoliva@redhat.com>
1240
1241 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1242
412ac8d5
L
12432009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1244
1245 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1246
cceb575c
AG
12472009-06-10 Anthony Green <green@moxielogic.com>
1248
1249 * config/moxie/crti.asm: New file.
1250 * config/moxie/crtn.asm: New file.
1251 * config/moxie/moxie.c: New file.
1252 * config/moxie/moxie.h: New file.
1253 * config/moxie/sfp-machine.h: New file.
1254 * config/moxie/moxie-protos.h: New file.
1255 * config/moxie/t-moxie: Created.
1256 * config/moxie/t-moxie-softfp: Created.
1257 * config/moxie/moxie.md: Created.
1258 * config/moxie/constraints.md: Created.
1259 * config.gcc: Add moxie support.
1260 * doc/md.texi (Machine Constraints): Add moxie constraints.
1261 * doc/contrib.texi (Contributors): Mention moxie port.
1262 * doc/install.texi (Specific): Mention the moxie port.
1263
bf406687
ILT
12642009-06-09 Ian Lance Taylor <iant@google.com>
1265
1266 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1267 compiling with C++.
1268 * optabs.c (optab_table): Only use designated initializers if
1269 HAVE_DESIGNATED_INITIALIZERS is defined.
1270 (convert_optab_table): Likewise.
1271 (init_optabs): Always call init_insn_codes if
1272 HAVE_DESIGNATED_INITIALIZERS is not defined.
1273
744aa42f
ILT
12742009-06-09 Ian Lance Taylor <iant@google.com>
1275
1276 * targhooks.c (default_builtin_vectorized_function): Change fn
1277 parameter to unsigned int.
1278 (default_builtin_vectorized_conversion): Change code parameter to
1279 unsigned int.
1280 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1281 * targhooks.h: Update declarations.
1282 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1283 parameter to unsigned int.
1284
1285 * c-typeck.c (comptypes_check_enum_int): New static function.
1286 (comptypes_internal): Add enum_and_int_p parameter. Change all
1287 callers.
1288 (comp_target_types): Add location parameter. Change all callers.
1289 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1290 Change all callers.
1291 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1292 (build_conditional_expr): Add colon_loc parameter. Change all
1293 callers.
c637b0fa 1294 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
1295 * c-parser.c (c_parser_conditional_expression): Pass location of
1296 colon to build_conditional_expr.
1297 * c-tree.h (build_conditional_expr): Update declaration.
1298
bcbe3b25
SP
12992009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1300
1301 * graphite.c: Revert previous patch.
1302
dc2a6925
SP
13032009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1304
1305 PR bootstrap/40103
1306 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1307
d81f5387
GS
13082009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1309
8ed0ce99
L
1310 * tree-ssa-loop-prefetch.c
1311 (loop_prefetch_arrays): Fixed a portability problem in printf format
1312 string.
d81f5387 1313
8056eb4f
MJ
13142009-06-09 Martin Jambor <mjambor@suse.cz>
1315
1316 PR tree-optimization/40351
c637b0fa
UB
1317 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1318 refrence to a potential artifical subaccess can be constructed.
8056eb4f 1319
bd9a3465
KK
13202009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1321
1322 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1323 (sh_override_options): Likewise.
1324 * config/sh/sh.c: Include params.h.
1325 (sh_optimization_options): New.
1326 (sh_override_options): Likewise.
1327 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1328 (OVERRIDE_OPTIONS): Use sh_override_options.
1329
8845deab
JJ
13302009-06-08 Jakub Jelinek <jakub@redhat.com>
1331
1332 * dwarf2out.c (emit_cfa_remember): New variable.
1333 (add_fde_cfi): If emit_cfa_remember, recurse to add
1334 DW_CFA_remember_state first.
1335 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1336 instead just set emit_cfa_remember.
1337
9ea81b0c
JH
13382009-06-08 Jan Hubicka <jh@suse.cz>
1339
1340 PR debug/40126
1341 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1342
21ecdec5
JH
13432009-06-08 Jan Hubicka <jh@suse.cz>
1344
1345 PR middle-end/39834
c637b0fa
UB
1346 * cgraphunit.c (save_inline_function_body): Do not copy transform
1347 hooks for saved inline bodies.
21ecdec5
JH
1348 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1349 for given function.
1350
72e48218
AN
13512009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1352
1353 * jump.c (returnjump_p): Handle delayed branches. Add missing
1354 function comment.
1355
6ce2002b
JH
13562009-06-08 Jan Hubicka <jh@suse.cz>
1357
1358 PR middle-end/40102
1359 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1360 original node might've been modified.
1361 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1362
eb9ed98a
JJ
13632009-06-08 Jakub Jelinek <jakub@redhat.com>
1364
1365 * tree-object-size.c (addr_object_size): Add OSI argument.
1366 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1367 (compute_builtin_object_size, expr_object_size): Adjust callers.
1368 (plus_stmt_object_size): Call addr_object_size instead of
1369 compute_builtin_object_size.
1370
db34470d 13712009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1372 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1373
1374 * tree-ssa-loop-prefetch.c
1375 (gather_memory_references): Introduced a counter for the number of
1376 memory references.
1377 (anything_to_prefetch_p): Introduced a counter for the number of
1378 prefetches.
1379 (is_loop_prefetching_profitable): New function with a cost model
1380 for prefetching.
1381 (loop_prefetch_arrays): Use the new cost model to determine if
1382 prefetching is profitable.
1383 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1384 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1385 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1386 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1387 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1388 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1389
eb7adebc
MM
13902009-06-08 Michael Matz <matz@suse.de>
1391
1392 PR debug/40012
eb7adebc
MM
1393 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1394 partitions use the same.
1395 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1396 for basevars of SSA_NAMEs.
1397 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1398 to not expand them twice.
1399 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1400 multiple places.
1401
2153915d
AO
14022009-06-08 Alexandre Oliva <aoliva@redhat.com>
1403
1404 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1405 (fdump-final-insns=, gtoggle): New.
1406 * doc/invoke.texi: Document them.
1407 * final.c (rest_of_clean_state): Dump final insn stream.
1408 * gcc.c (invoke_as): Hook in -fcompare-debug.
1409 (static_spec_functions): Add compare-debug-dump-opt,
1410 compare-debug-self-opt and compare-debug-auxbase-opt.
1411 (compare_debug, compare_debug_second, compare_debug_opt): New.
1412 (switches_debug_check, n_switches_debug_check): New.
1413 (debug_auxbase_opt, debug_check_temp_file): New.
1414 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1415 -fcompare-debug=*.
1416 (do_self_spec): Handle arguments after switches.
1417 (do_spec_1): Add .gk extension to temp file basenames for compare.
1418 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1419 (cc1_options): Use it instead of normal auxbase computation for
1420 the second compare-debug compilation.
1421 (compare_files): New.
1422 (main): Set up and implement compare debug mode.
1423 (compare_debug_dump_opt_spec_function): New.
1424 (compare_debug_self_opt_spec_function): New.
1425 (compare_debug_auxbase_opt_spec_function): New.
1426 * toplev.c (process_options): Handle flag_gtoggle,
1427 flag_dump_final_insns.
1428 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1429 during -fcompare-debug-second compilation.
1430
cdb88468
ILT
14312009-06-07 Ian Lance Taylor <iant@google.com>
1432
c637b0fa 1433 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
1434 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1435
1436 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1437 with no default node. Change warning with %H to warning_at.
1438 Don't clear warn_switch around case checking.
1439 * doc/invoke.texi (Warning Options): Clarify distinction between
1440 -Wswitch and -Wswitch-enum.
1441
4fe8e1a2
BRF
14422009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1443
1444 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1445
69952c1d
BRF
14462009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1447
1448 * gbl-ctors.h: Add header guard.
1449
b2ad0284
BRF
14502009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1451
1452 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1453 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1454 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1455 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1456 prototypes for removed functions.
1457 (expressions_equal_p): Move to ...
1458 * tree-ssa-sccvn.h: ... here and ...
1459 * matrix-reorg.c: ... adjust includes.
1460
c3df55f9
BRF
14612009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1462
1463 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1464
b5a7159f
BRF
14652009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1466
1467 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1468 (finish_function): Remove erroneous whitespace.
1469
95bca6b0
BRF
14702009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1471
2cd713a0
BRF
1472 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1473 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1474
14752009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1476
1477 * errors.c (internal_error): Commentary typo fix.
1478 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1479 * tree-ssa-pre.c: Ditto.
95bca6b0 1480
2cd713a0
BRF
14812009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1482
1483 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1484 them is supposed to hold actual statements.
1485
5bca4e80
ILT
14862009-06-06 Ian Lance Taylor <iant@google.com>
1487
1488 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1489 empty statements can now have attributes.
1490
47ac44d6
SZ
14912009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1492
1493 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1494 * config/mips/mips.md: Ditto.
1495
19b905ce
NF
14962009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1497
1498 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1499 _RELOCATABLE.
1500 (__eabi_uconvert): Likewise.
1501
16702e19
NF
15022009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1503
1504 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1505 CFI_* definitions with IN_GCC.
1506
a735afd1
DE
15072009-06-05 David Edelsohn <edelsohn@gnu.org>
1508
1509 * xcoffout.h (xcoffout_source_line): Update prototype.
1510
26a347c5
KG
15112009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1512
1513 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1514 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1515
9f706f23
JJ
15162009-06-05 Jakub Jelinek <jakub@redhat.com>
1517
1518 PR middle-end/40340
1519 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1520 inlined_function_outer_scope_p blocks for artificial inlines
1521 even at -g0/-g1.
1522 * tree.c (tree_nonartificial_location): Rewrite using
1523 block_nonartificial_location.
1524
8f439681
RE
15252009-06-05 Revital Eres <eres@il.ibm.com>
1526 Leehod Baruch <leehod@il.ibm.com>
1527
1528 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1529 (expand_expr_real_1): Remove comment.
1530 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1531 Vectorize misaligned access when the target supports it.
c637b0fa 1532 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
1533 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1534 and remove asset.
1535
b89f8e3c
JB
15362009-06-05 Julian Brown <julian@codesourcery.com>
1537
1538 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1539 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1540
47d1f191
RG
15412009-06-05 Richard Guenther <rguenther@suse.de>
1542
1543 PR bootstrap/40350
1544 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1545 as possibly unused.
1546
9f706f23 15472009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1548
1549 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1550 (save_gprs): Don't tell unwinder when a global register is saved.
1551 (s390_emit_epilogue): Emit needed epilogue unwind info.
1552
90f06248
AO
15532009-06-05 Alexandre Oliva <aoliva@redhat.com>
1554
1555 * dwarf2out.c (deferred_asm_name): New.
1556 (add_name_and_src_coords_attributes): Defer creation of
1557 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1558 computed yet.
1559 (move_linkage_attr): New.
1560 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1561 right place.
1562
c10348e5
AO
15632009-06-05 Alexandre Oliva <aoliva@redhat.com>
1564
1565 * tree-nested.c (finalize_nesting_tree_1): Declare the
1566 frame_decl in the binding tree.
1567
6c52e687
CC
15682009-06-04 Cary Coutant <ccoutant@google.com>
1569
1570 * basic-block.h (struct basic_block_def): Add discriminator field.
1571 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1572 callers.
1573 * debug.c (do_nothing_debug_hooks): Add additional entry.
1574 (debug_nothing_int_charstar_int): New function.
c637b0fa 1575 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
1576 (debug_nothing_int_charstar_int): New declaration.
1577 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1578 discriminator value in .loc directive.
1579 * final.c (last_discriminator): New variable.
1580 (discriminator): New variable.
1581 (final_start_function): Initialize above variables, pass current
1582 discriminator to debug hook.
1583 (notice_source_line): Check for discriminator change.
1584 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1585 * sdbout.c (sdbout_source_line): New parameter.
1586 * tree-cfg.c (struct locus_discrim_map): New structure type.
1587 (discriminator_per_locus): New hash table.
1588 (build_gimple_cfg): Allocate and free discriminator hash table.
1589 (make_edges): Call assign_discriminator.
1590 (locus_map_hash): New function.
1591 (locus_map_eq): New function.
1592 (next_discriminator_for_locus): New function.
1593 (same_line_p): New function.
1594 (assign_discriminator): New function.
1595 (make_cond_expr_edges): Call assign_discriminator.
1596 (make_gimple_switch_edges): Likewise.
1597 (first_non_label_stmt): New function.
1598 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1599 all callers.
1600 * xcoffout.c (xcoffout_source_line): Add new parameter.
1601
1602 * configure.ac (gcc_cv_as_discriminator): New configury check for
1603 gas support for discriminator.
1604 * configure: Regenerate.
1605 * config.in: Regenerate.
1606
e07e020b
RR
16072009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1608
1609 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1610 val after checking for integers.
1611
72fa3605
UB
16122009-06-04 Uros Bizjak <ubizjak@gmail.com>
1613
1614 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1615 X64_REGPARM_MAX.
1616 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1617 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1618 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1619 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1620 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1621 X64_SSE_REGPARM_MAX.
1622 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1623 X64_SSE_REGPARM_MAX.
1624
bdde878c
AO
16252009-06-04 Alexandre Oliva <aoliva@redhat.com>
1626
1627 * gcc.c (report_times_to_file): New.
1628 (execute): Implement it.
1629 (process_command): Support -time=.
1630 * doc/invoke.texi: Document it.
1631
2ce59df7
AO
16322009-06-04 Alexandre Oliva <aoliva@redhat.com>
1633
1634 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1635 that have value exprs.
1636
78bd9046
AO
16372009-06-04 Alexandre Oliva <aoliva@redhat.com>
1638
1639 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1640 declarations for constants until...
1641 (dw2_output_indirect_constant_1): ... this point.
1642
e63d4106
RE
16432009-06-04 Richard Earnshaw <rearnsha@arm.com>
1644
1645 PR target/10242
1646 * arm.md (arm_addsi3): Don't try to split an add with an
1647 eliminable register until after reload has completed.
1648
6bc7bc14
ILT
16492009-06-03 Ian Lance Taylor <iant@google.com>
1650
1651 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1652 * genattrtab.c (write_length_unit_log): Likewise.
1653 * genchecksum.c (dosum): Likewise.
1654 * gengtype.c (write_rtx_next): Likewise.
1655 (finish_root_table, write_roots): Likewise.
1656 * gimple.c (gimple_ops_offset_): Likewise.
1657 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1658 * config/arc/arc.c (arc_attribute_table): Likewise.
1659 * config/arm/arm.c (arm_attribute_table): Likewise.
1660 * config/avr/avr.c (avr_attribute_table): Likewise.
1661 * config/crx/crx.c (crx_attribute_table): Likewise.
1662 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1663 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1664 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1665 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1666 * config/sh/sh.c (sh_attribute_table): Likewise.
1667 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1668 * config/spu/spu.c (spu_attribute_table): Likewise.
1669 * config/v850/v850.c (v850_attribute_table): Likewise.
1670
1671 * config/alpha/alpha.c (vms_attribute_table): Make static.
1672 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1673 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1674 * config/mips/mips.c (mips_attribute_table): Likewise.
1675
1676 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1677 $(SYSTEM_H).
1678 (cc1-checksum.o): Likewise.
1679
19d892fd
SE
16802009-06-03 Steve Ellcey <sje@cup.hp.com>
1681
1682 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1683
679f3354
JJ
16842009-06-03 Jakub Jelinek <jakub@redhat.com>
1685
ff35822b
JJ
1686 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1687 insn if it is changing sp. Use gen_add3_insn instead of
1688 conditionally gen_addsi3 and gen_adddi3.
1689 (offset_below_red_zone_p): New static inline function.
1690 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1691 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1692 * config/rs6000/ppc-asm.h: Include auto-host.h.
1693 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1694 CFI_RESTORE): Define.
1695 * config/rs6000/crtresxgpr.asm: Add unwind info.
1696 * config/rs6000/crtresxfpr.asm: Likewise.
1697 * config/rs6000/crtresgpr.asm: Likewise.
1698 * config/rs6000/crtresfpr.asm: Likewise.
1699 * config/rs6000/crtsavgpr.asm: Likewise.
1700 * config/rs6000/crtsavfpr.asm: Likewise.
1701
679f3354
JJ
1702 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1703 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1704
2e94c12d
JB
17052009-06-03 Julian Brown <julian@codesourcery.com>
1706
1707 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1708 words or less (including TImode) in core registers.
1709
3111cce0
RG
17102009-06-03 Richard Guenther <rguenther@suse.de>
1711
1712 PR middle-end/40328
1713 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1714
5e1b50f6
AB
17152009-06-03 Andrey Belevantsev <abel@ispras.ru>
1716
1717 * statistics.c (statistics_counter_event): Do not record event
1718 in pass dump if its number == -1.
1719 (curr_statistics_hash): Add assert that we never get passes
1720 with static number == -1.
1721
6f11d690
RG
17222009-06-03 Richard Guenther <rguenther@suse.de>
1723 Andrey Belevantsev <abel@ispras.ru>
1724
1725 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1726 non-BLKmode arrays addressable.
1727
88961471
MK
17282009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1729
1730 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1731 * config/m68k/m68k.h: ... here.
1732 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1733 m68k and fido.
1734
9961eb45
MJ
17352009-06-03 Martin Jambor <mjambor@suse.cz>
1736
1737 PR tree-optimization/40323
1738 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1739 assignment.
1740
2f2c62a0
RG
17412009-06-03 Richard Guenther <rguenther@suse.de>
1742
1743 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1744 consistently.
1745
d6ced3b7
SZ
17462009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1747
1748 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1749 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1750 JUMP_TABLE_DATA_P where applicable.
1751 * config/sh/sh.c: Ditto.
1752 * config/sh/sh.h: Ditto.
1753 * config/sh/sh.md: Ditto.
1754 * config/sh/symbian.c: Ditto.
1755
f3afc8a7
UB
17562009-06-03 Uros Bizjak <ubizjak@gmail.com>
1757
1758 * config/i386/driver-i386.c (describe_cache): Optimize
1759 concatenation of strings. Use snprintf instead of sprintf.
1760 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1761 target when not compiling with GCC.
1762
1964788a
KK
17632009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1764
1765 * config/sh/sh.c: Revert last change.
1766 (sh_expand_epilogue): Emit a blockage insn before the frame
1767 pointer adjustment unconditionally.
1768
8633c315
RS
17692009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1770
1771 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1772 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1773 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1774 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1775 to COLLECT_GCC_OPTIONS.
1776
781a1758
RS
17772009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1778
1779 * collect2.c (target_system_root): New variable.
1780 (main): Handle --sysroot=.
1781 (ignore_library): Strip the sysroot from the library path.
1782
dfb636dc
RS
17832009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1784
1785 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1786 (collect2.o): Depend on collect2-aix.h.
1787 (collect2-aix.o): New rule.
1788 * collect2-aix.h: New file.
1789 * collect2-aix.c: Likewise.
1790 * collect2.c: Include collect2-aix.h. Don't undefine
1791 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1792 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1793 Use TARGET_AIX_VERSION instead of _AIX51.
1794 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1795 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1796 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1797 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1798 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1799
51136ae8
RS
18002009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1801
1802 * collect2.c (ignore_library): Avoid premature post-increment
1803 and null deference.
1804
7f142d33
RS
18052009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1806
1807 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1808 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1809 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1810 CROSS_DIRECTORY_STRUCTURE too.
1811 (LINK_LIBG_SPEC): Likewise.
1812 (LIB_SPEC): Add %R to sysroot paths.
1813 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1814 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1815 * config/rs6000/aix51.h: As for aix43.h.
1816 * config/rs6000/aix52.h: Likewise.
1817 * config/rs6000/aix53.h: Likewise.
1818 * config/rs6000/aix61.h: Likewise.
1819 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1820 to the beginning of sysroot paths.
1821
9e74b7d2
AO
18222009-06-02 Alexandre Oliva <aoliva@redhat.com>
1823
1824 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1825 INSN_LISTs that are out of the REG_NOTE range.
1826
a9f6ecee
AO
18272009-06-02 Alexandre Oliva <aoliva@redhat.com>
1828
1829 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1830 (struct var_to_expand): Likewise.
1831 (struct opt_info): Add head and tail for linked lists of the above.
1832 (analyze_insn_to_expand_var): Initialize next.
1833 (analyze_iv_to_split_insn): Likewise.
1834 (analyze_insns_in_loop): Create linked lists.
1835 (allocate_basic_variable): Simplify for use without hash table.
1836 (insert_var_expansion_initialization): Likewise, make it type-safer.
1837 (combine_var_copies_in_loop_exit): Likewise.
1838 (apply_opt_in_copies): Walk lists rather than hash tables.
1839 (release_var_copies): Simplified and inlined by hand into...
1840 (free_opt_info): ... this function.
1841
69596c69
RG
18422009-06-02 Richard Guenther <rguenther@suse.de>
1843
1844 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1845 for field decls.
1846
fe8a7779
AO
18472009-06-02 Alexandre Oliva <aoliva@redhat.com>
1848
1849 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1850 only for builtins that are not overridden.
1851
1bcca2c5
AO
18522009-06-02 Alexandre Oliva <aoliva@redhat.com>
1853
1854 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1855 label string.
1856
8588f797
AO
18572009-06-02 Alexandre Oliva <aoliva@redhat.com>
1858
1859 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1860
45f39d78
AO
18612009-06-02 Alexandre Oliva <aoliva@redhat.com>
1862
1863 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1864
2aa7c49b
AO
18652009-06-02 Alexandre Oliva <aoliva@redhat.com>
1866
1867 * common.opt (fdump-unnumbered-links): New.
1868 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1869 * print-rtl.c (flag_dump_unnumbered_links): New.
1870 (print_rtx): Test it.
1871
55b2829b
RE
18722009-06-02 Richard Earnshaw <rearnsha@arm.com>
1873
1874 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1875 push/pop multiple to 8-byte alignment.
e63d4106 1876
6c0d7021
JJ
18772009-06-01 Jakub Jelinek <jakub@redhat.com>
1878
0aa34d44
JJ
1879 * config/i386/i386.c (queued_cfa_restores): New static variable.
1880 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1881 functions.
1882 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1883 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1884 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1885 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1886 note unconditionally.
1887 (ix86_emit_restore_regs_using_mov): Likewise.
1888 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1889 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1890 it through to ix86_emit_restore_reg_using_pop.
1891 (ix86_emit_leave): Add RED_OFFSET argument. Call
1892 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1893 instead of adding REG_CFA_OFFSET note unconditionally.
1894 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1895 the above functions. Call ix86_add_queued_cfa_restore_notes when
1896 needed.
1897
1898 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1899 force output of the label even for dwarf2out_do_cfi_asm.
1900 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1901 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1902 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1903 caller.
1904 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1905 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1906 dwarf2out_cfi_label callers.
1907 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1908 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1909 Adjust dwarf2out_cfi_label callers.
1910 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1911
604a6be9
JJ
1912 * config/i386/i386.h (struct machine_cfa_state,
1913 struct machine_function): Guard with ifndef USED_FOR_TARGET
1914 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1915
df0026a7
JJ
1916 PR other/40024
1917 * emutls.c (__emutls_get_address): Change arr->size to mean number
1918 of allocated arr->data entries instead of # of slots + 1.
1919
6c0d7021
JJ
1920 PR middle-end/40316
1921 * recog.c (peep2_reinit_state): New function.
1922 (peephole2_init_state): Use it at the end of a basic block and also
1923 when seeing a RTX_FRAME_RELATED_P insn.
1924
49df2fb8
SE
19252009-06-01 Steve Ellcey <sje@cup.hp.com>
1926
1927 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1928 fixuns_truncrfdi2): New.
1929 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1930 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1931 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1932 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1933 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1934 *recip_approx): Remove.
1935 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1936 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1937 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1938 move to div.md.
1939 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1940 setf_exp_rf): New.
1941
67165eb3
ILT
19422009-06-01 Ian Lance Taylor <iant@google.com>
1943
1944 * attribs.c (register_attribute): Use CONST_CAST.
1945 * collect2.c (main): Use CONST_CAST2.
1946 (scan_prog_file): Likewise.
1947 * gcc.c (process_command, main): Likewise.
1948 * toplev.c (toplev_main): Likewise.
1949
1950 * c-typeck.c (handle_warn_cast_qual): New static function,
1951 partially broken out of build_c_cast.
1952 (build_c_cast): Call handle_warn_cast_qual.
1953 * doc/invoke.texi (Warning Options): Document new effect of
1954 -Wcast-qual.
1955
e74fe492
AH
19562009-06-01 Aldy Hernandez <aldyh@redhat.com>
1957
1958 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1959 (diagnostic_report_current_module): Print columns.
1960 * common.opt (flag_show_column): Enable by default.
1961
7eba2d1f
LM
19622009-06-01 Luis Machado <luisgpm@br.ibm.com>
1963
1964 * alias.c (find_base_term): Check for NULL term before returning.
1965
ee88d9aa
MK
19662009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1967
1968 Revert due to PR40320:
ee88d9aa
MK
1969 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1970 * calls.c (emit_library_call_value_1): Don't force_operand for move
1971 and push insns.
1972
324c9b02 19732009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1974 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1975
1976 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1977 to be processed as a bitfield for constructor output purposes.
1978 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1979 new function.
1980 * varasm.c (oc_local_state): New type, output_constructor
1981 local state to support communication with helpers.
1982 (oc_outer_state): New type, output_constructor outer state of
1983 relevance in recursive calls.
1984 (output_constructor_array_range): New output_constructor helper,
1985 extracted code for an array range element.
1986 (output_constructor_regular_field): New output_constructor helper,
1987 extracted code for an element that is not a bitfield.
1988 (output_constructor_bitfield): New output_constructor helper,
1989 extracted code for a bitfield element. Accept an OUTER state
1990 argument for recursive processing. Recurse on record or array
1991 CONSTRUCTOR values, possibly past noop conversions.
62295314 1992 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1993 VALUE is a valid constant-valued expression for use in a static
1994 bit-field initializer.
62295314
OH
1995 (output_constructor): Rework to use helpers. Accept and honor an
1996 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1997 prepared for nested constructors initializing bitfields.
1998 (output_constant): Feed OUTER in calls to output_constructor.
1999
0980d7fe
MK
20002009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2001
2002 * calls.c (emit_library_call_value_1): Don't force_operand for move
2003 and push insns.
2004
29661412
NC
20052009-06-01 Nick Clifton <nickc@redhat.com>
2006
2007 * doc/invoke.texi (IA-64 Options): Fix typo.
2008
e9dbe7bb
IR
20092009-06-01 Ira Rosen <irar@il.ibm.com>
2010
2011 PR tree-optimization/39129
2012 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2013 printed message.
2014 (vect_do_peeling_for_loop_bound): Use
2015 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2016 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2017 (vect_loop_versioning): Likewise.
2018 (vect_create_cond_for_alias_checks): Fix indentation.
2019 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2020 macros.
2021 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2022 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2023 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2024 "control flow in loop".
2025 (vect_estimate_min_profitable_iters): Use
2026 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2027 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2028 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2029 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2030 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2031 statement belongs to a group of strided accesses with the exact code
2032 check.
2033 (vectorizable_load): Likewise.
2034 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2035 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2036
5ac69a80
GP
20372009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2038
2039 * config/freebsd-stdint.h: New file.
2040 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2041 Add freebsd-stdint.h to tm_file.
2042
54b2b460
RE
20432009-06-01 Richard Earnshaw <rearnsha@arm.com>
2044
2045 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2046 (thumb2_extendhidi2): Likewise.
2047
a7ca77cf
ILT
20482009-05-31 Ian Lance Taylor <iant@google.com>
2049
f3afc8a7 2050 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2051
20522009-05-31 Ian Lance Taylor <iant@google.com>
2053
f3afc8a7 2054 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2055 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2056 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2057
1aec401e
JM
20582009-05-31 Jason Merrill <jason@redhat.com>
2059
2060 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2061 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2062 (dump_generic_node): Adjust.
2063 * diagnostic.h: Declare print_call_name.
2064 * gimple-pretty-print.c (dump_gimple_call): Use it.
2065
ed7910bb
KK
20662009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2067
2068 * config/sh/sh.md (ashldi3_std): New define_expand.
2069 (ashldi3): Use it.
2070
47ea8d4e
KK
20712009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2072
2073 PR target/40313
2074 * config/sh/sh.c: Include debug.h.
2075 (sh_expand_epilogue): Emit a blockage insn before the frame
2076 pointer adjustment also when dwarf2out_do_frame returns true.
2077
405e8b49
RE
20782009-05-31 Richard Earnshaw <rearnsha@arm.com>
2079
2080 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2081 (thumb2_extendqidi2): New pattern.
2082
71ece343
IR
20832009-05-31 Ira Rosen <irar@il.ibm.com>
2084
2085 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2086 mark phis for renaming.
2087 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2088 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2089 Call mark_sym_for_renaming.
2090 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2091 * tree-vect-loop.c (vect_transform_loop): Remove
2092 vect_memsyms_to_rename initialization and a call to
2093 mark_set_for_renaming.
71ece343 2094
b3041944
JJ
20952009-05-31 Jakub Jelinek <jakub@redhat.com>
2096
2097 PR middle-end/40304
2098 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2099 frame related even if !set_cfa && style < 0.
2100
a1bda0d7
KT
21012009-05-30 Kai Tietz <kai.tietz@onevision.com>
2102
2103 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2104 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2105 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2106 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2107
acd26225
KG
21082009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2109
2110 * configure.ac: Add MPC support.
2111
2112 * config.in, configure: Regenerate.
2113
cd9c1ca8
RH
21142009-05-29 Richard Henderson <rth@redhat.com>
2115
2116 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2117 NOTE_INSN_BASIC_BLOCK.
2118 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2119 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2120 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2121 to be deleted.
2122 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2123 add in_use field.
2124 (add_cfi): Disable check redefining cfa away from drap.
2125 (lookup_cfa_1): Add remember argument; handle remember/restore.
2126 (lookup_cfa): Pass remember argument.
2127 (cfa_remember): New.
2128 (compute_barrier_args_size_1): Remove sibcall check.
2129 (dwarf2out_frame_debug_def_cfa): New.
2130 (dwarf2out_frame_debug_adjust_cfa): New.
2131 (dwarf2out_frame_debug_cfa_offset): New.
2132 (dwarf2out_frame_debug_cfa_register): New.
2133 (dwarf2out_frame_debug_cfa_restore): New.
2134 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2135 (dwarf2out_begin_epilogue): New.
2136 (dwarf2out_frame_debug_restore_state): New.
2137 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2138 DW_CFA_restore_state.
2139 (output_cfi_directive): Likewise.
2140 (convert_cfa_to_fb_loc_list): Likewise.
2141 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2142 * dwarf2out.h: Update.
2143 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2144 (copy_insn_1): Early out for null.
2145 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2146 and dwarf2out_frame_debug_restore_state.
2147 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2148 (prologue_insn_hash, epilogue_insn_hash): New.
2149 (free_after_compilation): Adjust freeing accordingly.
2150 (record_insns): Create hash table if needed; push insns into
2151 hash instead of array.
2152 (maybe_copy_epilogue_insn): New.
2153 (contains): Search hash table instead of array.
2154 (sibcall_epilogue_contains): Remove.
2155 (thread_prologue_and_epilogue_insns): Split eh_return insns
2156 and mark them as epilogues.
2157 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2158 scanning in terms of basic blocks.
2159 * insn-notes.def (CFA_RESTORE_STATE): New.
2160 * jump.c (returnjump_p_1): Accept EH_RETURN.
2161 (eh_returnjump_p_1, eh_returnjump_p): New.
2162 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2163 CFA_REGISTER, CFA_RESTORE): New.
2164 * rtl.def (EH_RETURN): New.
2165 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2166
2167 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2168 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2169
2170 * config/i386/i386.c (gen_push): Update cfa state.
2171 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2172 add a CFA_ADJUST_CFA note.
2173 (ix86_dwarf_handle_frame_unspec): Remove.
2174 (ix86_expand_prologue): Update cfa state.
2175 (ix86_emit_restore_reg_using_pop): New.
2176 (ix86_emit_restore_regs_using_pop): New.
2177 (ix86_emit_leave): New.
2178 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2179 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2180 * config/i386/i386.h (struct machine_cfa_state): New.
2181 (ix86_cfa_state): New.
2182 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2183 (eh_return_internal): Merge from eh_return_<mode>,
2184 use eh_return rtx, split w/ epilogue.
2185
72b5577d
ILT
21862009-05-29 Ian Lance Taylor <iant@google.com>
2187
2188 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2189 enum type.
2190 * calls.c (emit_library_call_value_1): Likewise.
2191
2192 * c-typeck.c (c_build_va_arg): New function.
2193 * c-tree.h (c_build_va_arg): Declare.
2194 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2195 instead of build_va_arg.
2196
7a2faca1
EB
21972009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2198
2199 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2200 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2201 (ptr_difference_cost): Use affine combinations to compute it.
2202 (difference_cost): Likewise.
2203 (get_computation_cost_at): Compute more accurate cost for addresses
2204 if the ratio is a multiplier allowed in addresses.
2205 For non-addresses, consider that an additional offset or symbol is
2206 added only once.
2207
725fd454
JJ
22082009-05-29 Jakub Jelinek <jakub@redhat.com>
2209
a0987204
JJ
2210 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2211 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2212
725fd454
JJ
2213 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2214 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2215 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2216 if MODE_DI.
2217 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2218 to 1 for TYPE_SSE{IADD1,CVT1}.
2219 (prefix_vex_imm8): Removed.
2220 (length_vex): Only pass 1 as second argument to
2221 ix86_attr_length_vex_default if prefix_extra is 0.
2222 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2223 (length): For prefix vex computation use length_immediate
2224 attribute instead of prefix_vex_imm8.
2225 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2226 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2227 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2228 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2229 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2230 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2231 a space in between the operands.
2232 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2233 if one operand is 0xff and the other one si, di, bp or sp.
2234 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2235 other one si, di, bp or sp.
2236 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2237 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2238 type and mode attributes.
2239 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2240 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2241 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2242 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2243 prefix_data16 attribute iff MODE_DF.
2244 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2245 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2246 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2247 constm128_operand in length_immediate computation.
2248 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2249 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2250 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2251 length_immediate attribute to 1.
2252 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2253 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2254 for certain alternatives.
2255 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2256 prefix_data16 attribute if MODE_V1DF.
2257 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2258 length_immediate to 1.
2259 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2260 length_address to 4, set mode attribute to MODE_DI.
2261 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2262 (fxam<mode>2_i387): Set length attribute to 4.
2263 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2264 *prefetch_3dnow_rex): Override length_address attribute.
2265 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2266 attributes.
2267 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2268 (constm128_operand): Removed.
2269 * config/i386/i386.c (memory_address_length): For
2270 disp && !index && !base in 64-bit mode account for SIB byte if
2271 print_operand_address can't optimize disp32 into disp32(%rip)
2272 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2273 for fs: or gs: segment.
2274 (ix86_attr_length_immediate_default): When checking if shortform
2275 is possible, truncate immediate to the length of the non-shortened
2276 immediate.
2277 (ix86_attr_length_address_default): Ignore MEM_P operands
2278 with X constraint.
2279 (ix86_attr_length_vex_default): Only check for DImode on
2280 GENERAL_REG_P operands.
2281 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2282 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2283 (sse_cvttps2pi): Clear prefix_rep attribute.
2284 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2285 attribute.
2286 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2287 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2288 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2289 iff operand 2 is const_int_operand.
2290 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2291 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2292 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2293 instead of vex.
2294 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2295 prefix_data16.
2296 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2297 prefix_data16 attribute for movlpd and movhpd instructions.
2298 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2299 length_immediate for shufpd instruction.
2300 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2301 (avx_cmpp<avxmodesuffixf2c><mode>3,
2302 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2303 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2304 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2305 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2306 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2307 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2308 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2309 prefix_data16 attribute for the first alternative to 1.
2310 (*avx_loadlps): Override length_immediate for the first alternative.
2311 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2312 attributes for second alternative.
2313 (*vec_concatv2sf_sse4_1): Override length_immediate and
2314 prefix_data16 attributes for second alternative.
2315 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2316 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2317 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2318 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2319 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2320 prefix_data16 and length_immediate to 1.
2321 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2322 to 1.
2323 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2324 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2325 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2326 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2327 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2328 *sse4_1_pextrd): Set length_immediate to 1.
2329 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2330 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2331 to 1.
2332 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2333 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2334 length_immediate to 1 for second alternative.
2335 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2336 prefix_extra and length_immediate attributes for the first
2337 alternative.
2338 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2339 first alternative.
2340 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2341 to 1 for the first and third alternative.
2342 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2343 alternative.
2344 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2345 attribute.
2346 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2347 attribute to 0.
2348 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2349 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2350 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2351 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2352 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2353 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2354 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2355 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2356 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2357 (ssse3_palignrti): Override length_immediate to 1.
2358 (ssse3_palignrdi): Override length_immediate to 1, override
2359 prefix_rex attribute.
f3afc8a7 2360 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2361 (sse4a_extrqi): Override length_immediate to 2.
2362 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2363 (sse4a_insertq): Override prefix_data16 to 0.
2364 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2365 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2366 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2367 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2368 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2369 and length_immediate to 1.
2370 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2371 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2372 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2373 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2374 and length_immediate to 1.
2375 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2376 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2377 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2378 avx_ptest256): Override prefix_extra to 1.
2379 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2380 Override prefix_data16 and length_immediate to 1.
2381 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2382 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2383 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2384 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2385 prefix_data16 to 0 and prefix_extra to 2.
2386 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2387 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2388 attribute.
2389 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2390 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2391 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2392 and prefix_extra to 2.
2393 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2394 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2395 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2396 avx_vpermilvar<mode>3,
2397 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2398 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2399 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2400 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2401 Override prefix_extra to 1.
2402 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2403 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2404 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2405 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2406 prefix_extra and length_immediate to 1.
2407 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2408 modrm to 0.
2409 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2410 to 1 for the first alternative.
2411 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2412 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2413 cases.
2414 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2415 *movv2sf_internal_avx, *movv2sf_internal): Override
2416 prefix_rep attribute for certain alternatives.
2417 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2418 attributes for certain alternatives.
2419 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2420 attributes for certain alternatives.
2421 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2422 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2423 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2424 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2425 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2426 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2427 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2428 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2429 length_immediate to 1 if operand 2 is const_int_operand.
2430 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2431 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2432 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2433 using old 3DNOW insn rather than SSE/3DNOW_A.
2434 (mmx_emms, mmx_femms): Clear modrm attribute.
2435
0674b9d0
MJ
24362009-05-29 Martin Jambor <mjambor@suse.cz>
2437
2438 * tree-sra.c: New implementation of SRA.
2439
2440 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2441 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2442 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2443 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2444 (SRA_MAX_STRUCTURE_COUNT): Removed.
2445 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2446 * doc/invoke.texi (sra-max-structure-size): Removed.
2447 (sra-field-structure-ratio): Removed.
2448
616f21df
JJ
24492009-05-29 Jakub Jelinek <jakub@redhat.com>
2450
2451 PR middle-end/40291
2452 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2453 before expansion.
2454
da7ba240
AB
24552009-05-29 Andrey Belevantsev <abel@ispras.ru>
2456
2457 PR rtl-optimization/40101
2458 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2459 seqno. Adjust comment.
2460 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2461 inserting bookkeeping before a jump, the jump is not scheduled.
2462 When no positive seqno found, provide a value. Add comment.
2463
71dcd609
RG
24642009-05-29 Richard Guenther <rguenther@suse.de>
2465
2466 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2467 short-cutting on the first component.
2468
a900ae6b
JJ
24692009-05-29 Jakub Jelinek <jakub@redhat.com>
2470
2471 PR middle-end/39958
2472 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2473 for trees other than decls/types.
2474
821bb7f8
RG
24752009-05-29 Richard Guenther <rguenther@suse.de>
2476
2477 * tree-ssa-operands.c (get_expr_operands): Do not handle
2478 INDIRECT_REFs in the handled-component case. Remove
2479 unused get_ref_base_and_extent case.
2480 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2481 tree_low_cst and host_integerp where possible.
2482 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2483 codes for equivalence.
2484 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2485
e997fb9c
DB
24862009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2487
2488 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2489 to tmake_file for i[34567]86-*-cygwin*.
2490
58195b74
JJ
24912009-05-29 Jakub Jelinek <jakub@redhat.com>
2492
2493 PR target/40017
2494 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2495 (altivec_categorize_keyword, init_vector_keywords,
2496 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2497 similar to bool.
2498
055df276
KT
24992009-05-29 Kai Tietz <kai.tietz@onevision.com>
2500
2501 * tree.c (handle_dll_attribute): Check if node is
2502 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2503
f5939ef3
RE
25042009-05-29 Richard Earnshaw <rearnsha@arm.com>
2505
2506 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2507 component.
2508 (thumb2_zero_extendqidi2): Likewise.
2509
c185de40
KK
25102009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2511
2512 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2513 instead of gen_movrt.
2514 * config/sh/sh.md (movrt): Remove.
2515
bf3c6caf
SE
25162009-05-28 Steve Ellcey <sje@cup.hp.com>
2517
f3afc8a7 2518 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2519 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2520 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2521 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2522 -msched-prefer-non-control-spec-insns,
2523 -msched-stop-bits-after-every-cycle,
2524 -msched-count-spec-in-critical-path,
2525 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2526 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2527 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2528 and -msched-spec-verbose.
2529
8a66e987
JM
25302009-05-28 Joseph Myers <joseph@codesourcery.com>
2531
f3afc8a7 2532 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2533 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2534 error if used.
2535 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2536
b45d2719
RG
25372009-05-28 Richard Guenther <rguenther@suse.de>
2538
2539 * tree-ssa-alias.c (ao_ref_init): New function.
2540 (ao_ref_base): Likewise.
2541 (ao_ref_base_alias_set): Likewise.
2542 (ao_ref_alias_set): Likewise.
2543 (refs_may_alias_p_1): Change signature.
2544 (refs_may_alias_p): Adjust.
2545 (refs_anti_dependent_p): Likewise.
2546 (refs_output_dependent_p): Likewise.
2547 (call_may_clobber_ref_p_1): Change signature.
2548 (call_may_clobber_ref_p): Adjust.
2549 (stmt_may_clobber_ref_p_1): New function split out from ...
2550 (stmt_may_clobber_ref_p): ... here.
2551 (maybe_skip_until): Adjust signature.
2552 (get_continuation_for_phi): Likewise.
2553 (walk_non_aliased_vuses): Likewise.
2554 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2555 (ao_ref_init): Declare.
2556 (ao_ref_base): Likewise.
2557 (ao_ref_alias_set): Likewise.
2558 (stmt_may_clobber_ref_p_1): Likewise.
2559 (walk_non_aliased_vuses): Adjust.
2560 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2561 (get_ref_from_reference_ops): remove.
2562 (vn_reference_lookup_2): Adjust signature.
2563 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2564 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2565 (vn_reference_lookup): Adjust.
2566 (vn_reference_insert): Likewise.
2567 (vn_reference_insert_pieces): Adjust signature.
2568 (visit_reference_op_call): Adjust.
2569 * tree-ssa-pre.c (get_expr_type): Simplify.
2570 (phi_translate_1): Adjust.
2571 (compute_avail): Likewise.
2572 (translate_vuse_through_block): Do not re-build trees.
2573 (value_dies_in_block_x): Likewise.
2574 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2575 fields.
2576 (vn_reference_lookup_pieces): Adjust declaration.
2577 (vn_reference_insert_pieces): Likewise.
2578
554223b6
BK
25792009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2580
2581 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2582 with checking disabled.
2583
233215fe
DK
25842009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2585
2586 PR target/37216
2587
2588 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2589 macro definition for support of three-operand format aligned
2590 .comm directive in assembler on cygwin/pe/mingw target OS.
2591 * configure: Regenerate.
2592 * config.h: Regenerate.
2593
2594 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2595 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2596 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2597
2598 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2599 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2600
24adb18f
IR
26012009-05-28 Ira Rosen <irar@il.ibm.com>
2602
2603 PR tree-optimization/40254
2604 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2605 in analysis of basic blocks.
2606
2c5bfdf7
AN
26072009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2608
2609 PR middle-end/33699
f3afc8a7 2610 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2611 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2612 (TARGET_INITIALIZER): Use it.
2613 * cse.c (CHEAPER): Move it up to the other macros.
2614 (insert): Rename this ...
2615 (insert_with_costs): ... to this. Add cost parameters. Update
2616 function comment.
2617 (insert): New function. Call insert_with_costs.
2618 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2619 find_reg_offset_for_const, try_const_anchors): New functions.
2620 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2621 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2622 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2623 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2624
9e6aced0
AO
26252009-05-28 Alexandre Oliva <aoliva@redhat.com>
2626
2627 * tree-inline.c (remap_decls): Enable nonlocalized variables
2628 when not optimizing.
2629
89fbbe4e
AO
26302009-05-28 Alexandre Oliva <aoliva@redhat.com>
2631
2632 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2633 Simplify other tests involving optimize.
2634
e455776a
TT
26352009-05-27 Tom Tromey <tromey@redhat.com>
2636
2637 * unwind-dw2.c (_Unwind_DebugHook): New function.
2638 (uw_install_context): Call _Unwind_DebugHook.
2639
cea32bca
TT
26402009-05-27 Tom Tromey <tromey@redhat.com>
2641
2642 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2643
c607156f
ILT
26442009-05-27 Ian Lance Taylor <iant@google.com>
2645
2646 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2647 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2648 (ALL_LINKERFLAGS): Define.
2649 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2650 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2651 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2652 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2653 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2654 $(LINKER_FOR_BUILD).
2655 (build/gcov-iov$(build_exeext)): Likewise.
2656
ec0a1343
JB
26572009-05-27 Julian Brown <julian@codesourcery.com>
2658
2659 * gcse.c (target.h): Include.
2660 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2661 copy of argument to a pseudo register.
2662
ac80ba07
DN
26632009-05-27 Diego Novillo <dnovillo@google.com>
2664
2665 * tree-ssa-live.c (dump_scope_block): Document arguments.
2666 (dump_scope_blocks): Document.
2667 (debug_scope_blocks): New.
2668 * tree-flow.h (debug_scope_blocks): Declare.
2669
d1803a17
DC
26702009-05-21 Denis Chertykov <denisc@overta.ru>
2671
f3afc8a7 2672 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2673
51fb7760 26742009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2675
2676 * expr.c (target_align): New function. Alignment the TARGET of an
2677 assignment may be assume to have.
2678 (highest_pow2_factor_for_target): Use it instead of relying on
2679 immediate tree attributes of TARGET, not necessarily honored when
2680 intermediate bitfields are involved.
2681
634fa334
L
26822009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2683
2684 PR target/40266
2685 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2686 AVX, SSE4, AES, PCLMUL and POPCNT.
2687
65332587
DN
26882009-05-27 Diego Novillo <dnovillo@google.com>
2689
2690 * tree-pretty-print.c (dump_location): New.
2691 (dump_generic_node): Call it.
2692 Factor code to handle BLOCK nodes ...
2693 (dump_block_node): ... here.
2694
3e17e31d
RAE
26952009-05-27 Rafael Avila de Espindola <espindola@google.com>
2696
f3afc8a7
UB
2697 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2698 with it.
3e17e31d
RAE
2699 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2700 included.
2701 * gcc-plugin.h: Include config.h and system.h.
2702 (IN_GCC): Define if not defined.
2703
5e370570
HPN
27042009-05-27 Hans-Peter Nilsson <hp@axis.com>
2705
2706 PR middle-end/40249
2707 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2708 with -fno-inline.
2709
d000f0d9
SZ
27102009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2711
2712 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2713 applicable.
2714 * config/m32r/m32r.h: Ditto.
2715 * config/m32r/m32r.md: Ditto.
2716 * config/m32r/predicates.md: Ditto.
2717
82f331ff
AO
27182009-05-27 Alexandre Oliva <aoliva@redhat.com>
2719
2720 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2721
ae2392a9
BS
27222009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2723
2724 * doc/plugins.texi
2725 (Loading plugins): typo.
2726 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2727 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2728 (Interacting with the GCC Garbage Collector): Added new section.
2729 (Giving information about a plugin): Added new section for
2730 PLUGIN_INFO.
ae2392a9
BS
2731 * ggc.h (ggc_register_root_tab): Added declaration.
2732 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2733 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2734 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2735 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2736 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2737 (ggc_register_root_tab) Added new routine.
2738 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2739 PLUGIN_GGC_MARKING event.
2740 * ggc-zone.c: Include plugin.h.
2741 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2742 * ggc-page.c: Include plugin.h.
2743 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2744 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2745 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2746 (register_callback): check lack of callbacks for
2747 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2748 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2749 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2750 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2751 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2752 dependency on plugin.h.
2753 (plugin.o): Added dependency on ggc.h...
2754
f0cfd3a8
RG
27552009-05-26 Richard Guenther <rguenther@suse.de>
2756
2757 PR middle-end/40248
2758 Revert
2759 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2760 with mismatched comparison modes.
2761
2762 * expr.c (expand_expr_real_1): Expand the operand of a
2763 VIEW_CONVERT_EXPR in its natural mode.
2764
7980bfb8
ILT
27652009-05-26 Ian Lance Taylor <iant@google.com>
2766
2767 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2768 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2769 (ALL_COMPILERFLAGS): Define.
2770 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2771 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2772 (collect2$(exeext), collect2.o): Likewise.
2773 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2774 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2775 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2776 (libbackend.o, intl.o, cppdefault.o): Likewise.
2777 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2778 (build/%.o): Use $(COMPILER_FOR_BUILD).
2779 (build/gen%$(build_exeext)): Likewise.
2780 (build/gcov-iov$(build_exeext)): LIkewise.
2781 * config/t-darwin (darwin.o): Use $(COMPILER).
2782 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2783 * config/t-sol2 (sol2-c.o): Likewise.
2784 (sol2.o): Likewise.
2785 * config/t-vxworks (vxworks.o): Likewise.
2786 * config/x-darwin (host-darwin.o): Likewise.
2787 * config/x-hpux (host-hpux.o): Likewise.
2788 * config/x-linux (host-linux.o): Likewise.
2789 * config/x-solaris (host-solaris.o): Likewise.
2790 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2791 * config/arm/t-arm (arm-c.o): Likewise.
2792 * config/arm/t-pe (pe.o): Likewise.
2793 * config/arm/t-wince-pe (pe.o): Likewise.
2794 * config/i386/t-cygming (winnt.o): Likewise.
2795 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2796 * config/i386/t-cygwin (cygwin1.o): Likewise.
2797 (cygwin2.o): Likewise.
2798 * config/i386/t-i386 (i386-c.o): Likewise.
2799 * config/i386/t-interix (winnt.o): Likewise.
2800 * config/i386/t-netware (netware.o): Likewise.
2801 * config/i386/t-nwld (nwld.o): Likewise.
2802 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2803 * config/i386/x-i386 (driver-i386.o): Likewise.
2804 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2805 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2806 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2807 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2808 * config/mips/x-native (driver-native.o): Likewise.
2809 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2810 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2811 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2812 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2813 * config/score/t-score-elf (score7.o): Likewise.
2814 (score3.o): Likewise.
2815 * config/sh/t-sh (sh-c.o): Likewise.
2816 * config/sh/t-symbian (sh-c.o): Likewise.
2817 (symbian.o): Likewise.
2818 * config/spu/t-spu-elf (spu-c.o): Likewise.
2819 * config/v850/t-v850 (v850-c.o): Likewise.
2820 * config/v850/t-v850e (v850-c.o): Likewise.
2821
23977d3c
RG
28222009-05-26 Richard Guenther <rguenther@suse.de>
2823
2824 PR tree-optimization/40122
2825 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2826 VECTOR_CSTs if possible.
2827 (fold_gimple_assign): Likewise.
2828
3d62b895
RG
28292009-05-26 Richard Guenther <rguenther@suse.de>
2830
2831 PR middle-end/40252
2832 * fold-const.c (fold_binary): Use the correct types for building
2833 rotates.
2834
12346147
RG
28352009-05-26 Richard Guenther <rguenther@suse.de>
2836
2837 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2838 redundant calls to merge_alias_info.
2839 (bump_vector_ptr): Likewise.
2840 * tree-ssa-copy.c (merge_alias_info): Remove.
2841 (replace_exp_1): Remove call to merge_alias_info.
2842 (propagate_tree_value): Likewise.
2843 (fini_copy_prop): Propagate points-to info.
2844 * tree-flow.h (merge_alias_info): Remove.
2845
807d5e6f
HS
28462009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2847
2848 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2849
85057983
JH
28502009-05-25 Jan Hubicka <jh@suse.cz>
2851
2852 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2853 * cgraph.h (struct inline_summary): New filed self_wize,
2854 size_inlining_benefit, self_time and time_inlining_benefit.
2855 (struct cgraph_global_info): Replace insns by time ans size fields.
2856 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2857 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2858 (ipcp_update_callgraph): Do not touch function bodies.
2859 * ipa-inline.c: Include except.h
2860 (MAX_TIME): New constant.
2861 (overall_insns): Remove.
2862 (leaf_node_p): New.
2863 (overall_size, max_benefit): New static variables.
2864 (cgraph_estimate_time_after_inlining): New function.
2865 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2866 (cgraph_clone_inlined_nodes): Update size.
2867 (cgraph_mark_inline_edge): Update size.
2868 (cgraph_estimate_growth): Use size info.
2869 (cgraph_check_inline_limits): Check size.
2870 (cgraph_default_inline_p): Likewise.
2871 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2872 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2873 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2874 and times.
85057983
JH
2875 (cgraph_decide_inlining): Likewise.
2876 (cgraph_decide_inlining_incrementally): Likewise; honor
2877 PARAM_EARLY_INLINING_INSNS.
2878 (likely_eliminated_by_inlining_p): New predicate.
2879 (estimate_function_body_sizes): New function.
2880 (compute_inline_parameters): Use it.
2881 * except.c (must_not_throw_labels): New function.
2882 * except.h (must_not_throw_labels): Declare.
2883 * tree-inline.c (init_inline_once): Kill inlining_weigths
2884 * tree-ssa-structalias.c: Avoid uninitialized warning.
2885 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2886 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2887 (PARAM_INLINE_CALL_COST): Remove.
2888 (PARAM_EARLY_INLINING_INSNS): New.
2889
01df5c8a
RG
28902009-05-25 Richard Guenther <rguenther@suse.de>
2891
2892 PR tree-optimization/36327
2893 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2894 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2895 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2896 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2897 for union COMPONENT_REFs.
2898 (vn_reference_lookup_3): New callback. Lookup from memset
2899 and CONSTRUCTOR assignment, translate through struct copies.
2900 (vn_reference_lookup_pieces): Make sure to not free the
2901 passed operands array. Adjust walk_non_aliased_vuses call.
2902 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2903 make sure we do not leak memory.
2904
6b8ed145
RG
29052009-05-25 Richard Guenther <rguenther@suse.de>
2906
2907 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2908 * tree-inline.c (expand_call_inline): Reset the escaped and
2909 callused solutions.
2910 * tree-ssa-structalias.c (pass_build_ealias): New.
2911 * tree-pass.h (pass_build_ealias): Declare.
2912 * passes.c (init_optimization_passes): Add PTA during
2913 early optimizations.
2914 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2915 and CALLUSED solutions.
2916 (dump_points_to_solution): New function, split out from ...
2917 (dump_points_to_info_for): ... here.
2918 * tree-parloops.c (parallelize_loops): Reset the escaped and
2919 callused solutions.
2920
0adcf178
RO
29212009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2922
2923 PR bootstrap/40027
2924 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2925 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2926
12aaf609
IR
29272009-05-25 Ira Rosen <irar@il.ibm.com>
2928
2929 PR tree-optimization/40238
2930 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2931 statements after basic block's labels.
2932 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2933 to free the allocated memory.
2934
7f9a14e3
KK
29352009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2936
2937 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2938 return address with a USE.
2939
b842d478
RG
29402009-05-24 Richard Guenther <rguenther@suse.de>
2941
2942 PR middle-end/40233
2943 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2944 array type from the main variant of the inner type.
2945
8db7b33f
JBG
29462009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2947
2948 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2949 definition to bool (from int) to un-break build.
2950 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2951
cff4e50d
PB
29522009-05-24 Paolo Bonzini <bonzini@gnu.org>
2953
2954 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2955 discard_stmt_changes): Delete.
2956 * tree-ssa-operands.c (scb_stack): Delete.
2957 (init_ssa_operands): Do not initialize it.
2958 (fini_ssa_operands): Do not free it.
2959 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2960
2961 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2962 update_stmt, remove the others. Fix comments.
2963 * tree-dfa.c (optimize_stack_restore): Likewise.
2964 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2965 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2966 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2967 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2968 Likewise.
2969 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2970 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2971 (dom_opt_finalize_block): Likewise, adjusting access to
2972 stmts_to_rescan.
cff4e50d
PB
2973 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2974 (stmts_to_rescan): Change item type to gimple.
2975 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2976
a70d6342
IR
29772009-05-24 Ira Rosen <irar@il.ibm.com>
2978
2979 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2980 * tree-pass.h (pass_slp_vectorize): New pass.
2981 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2982 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2983 * tree-vectorizer.c (timevar.h): Include.
2984 (user_vect_verbosity_level): Declare.
2985 (vect_location): Fix comment.
2986 (vect_set_verbosity_level): Update user_vect_verbosity_level
2987 instead of vect_verbosity_level.
2988 (vect_set_dump_settings): Add an argument. Ignore user defined
2989 verbosity if dump flags require higher level of verbosity. Print to
2990 stderr only for loop vectorization.
2991 (vectorize_loops): Update call to vect_set_dump_settings.
2992 (execute_vect_slp): New function.
2993 (gate_vect_slp): Likewise.
2994 (struct gimple_opt_pass pass_slp_vectorize): New.
2995 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2996 access its members.
2997 (vec_info_for_bb): New function.
2998 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2999 (VECTORIZATION_ENABLED): New macro.
3000 (SLP_ENABLED, SLP_DISABLED): Likewise.
3001 (vect_is_simple_use): Add bb_vec_info argument.
3002 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3003 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3004 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3005 vect_schedule_slp, vect_analyze_slp): Likewise.
3006 (vect_analyze_stmt): Add slp_tree argument.
3007 (find_bb_location): Declare.
3008 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3009 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3010 (vect_analyze_loop_operations, vect_analyze_loop,
3011 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3012 vect_finalize_reduction, vectorizable_reduction,
3013 vectorizable_live_operation, vect_transform_loop): Likewise.
3014 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3015 skip evolution analysis if analyzing a basic block.
3016 (dr_analyze_indices): Likewise.
3017 (initialize_data_dependence_relation): Skip the test whether the
3018 object is invariant for basic blocks.
3019 (compute_all_dependences): Skip dependence analysis for data
3020 references in basic blocks.
3021 (find_data_references_in_stmt): Don't fail in case of invariant
3022 access in basic block.
3023 (find_data_references_in_bb): New function.
3024 (find_data_references_in_loop): Move code to
782dc37a 3025 find_data_references_in_bb and add a call to it.
a70d6342
IR
3026 (compute_data_dependences_for_bb): New function.
3027 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3028 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3029 that STEP is 0.
3030 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3031 unknown dependence in basic block and fail in case of dependence in
3032 basic block.
3033 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3034 dependence instances from either loop or basic block vectorization
3035 info.
3036 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3037 before calling nested_in_vect_loop_p.
3038 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3039 dependence instances from either loop or basic block vectorization
3040 info.
3041 (vect_verify_datarefs_alignment): Likewise.
3042 (vect_enhance_data_refs_alignment): Adjust function calls.
3043 (vect_analyze_data_refs_alignment): Likewise.
3044 (vect_analyze_group_access): Fix printing. Skip different checks if
3045 DR_STEP is 0. Keep strided stores either in loop or basic block
3046 vectorization data structure. Fix indentation.
3047 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3048 basic blocks.
3049 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3050 dependence instances from either loop or basic block vectorization
3051 info.
3052 (vect_analyze_data_refs): Update comment. Call
3053 compute_data_dependences_for_bb to analyze basic blocks.
3054 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3055 case of loop vectorization. In case of basic block vectorization use
782dc37a 3056 data-ref itself as a base.
a70d6342
IR
3057 (vect_create_data_ref_ptr): In case of basic block vectorization:
3058 don't advance the pointer, add new statements before the current
3059 statement. Adjust function calls.
3060 (vect_supportable_dr_alignment): Support only aligned accesses in
3061 basic block vectorization.
3062 * common.opt (ftree-slp-vectorize): New flag.
3063 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3064 (vect_pattern_recog_1): Likewise.
3065 * tree-vect-stmts.c (process_use): Likewise.
3066 (vect_init_vector): Add new statements in the beginning of the basic
3067 block in case of basic block SLP.
3068 (vect_get_vec_def_for_operand): Adjust function calls.
3069 (vect_finish_stmt_generation): Likewise.
3070 (vectorizable_call): Add assert that it is loop vectorization, adjust
3071 function calls.
3072 (vectorizable_conversion, vectorizable_assignment): Likewise.
3073 (vectorizable_operation): In case of basic block SLP, take
3074 vectorization factor from statement's type and skip the relevance
3075 check. Adjust function calls.
3076 (vectorizable_type_demotion): Add assert that it is loop
3077 vectorization, adjust function calls.
3078 (vectorizable_type_promotion): Likewise.
3079 (vectorizable_store): Check for outer loop only in case of loop
3080 vectorization. Adjust function calls. For basic blocks, skip the
3081 relevance check and don't advance pointers.
3082 (vectorizable_load): Likewise.
3083 (vectorizable_condition): Add assert that it is loop vectorization,
3084 adjust function calls.
3085 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3086 that it is not reduction, get vector type, call only supported
782dc37a 3087 functions, skip loop specific parts.
a70d6342
IR
3088 (vect_transform_stmt): Check for outer loop only in case of loop
3089 vectorization.
3090 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3091 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3092 for external definition.
3093 * passes.c (pass_slp_vectorize): New pass.
3094 * tree-vect-slp.c (find_bb_location): New function.
3095 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3096 check for patterns only in loops.
3097 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3098 case of multiple types in basic block SLP.
3099 (vect_mark_slp_stmts_relevant): New function.
3100 (vect_supported_load_permutation_p): Fix comment.
3101 (vect_analyze_slp_instance): Add argument. In case of basic block
3102 SLP, take vectorization factor from statement's type, check that
3103 unrolling factor is 1. Adjust function call. Save SLP instance in
3104 either loop or basic block vectorization structure. Return FALSE,
3105 if SLP failed.
3106 (vect_analyze_slp): Add argument. Get strided stores groups from
3107 either loop or basic block vectorization structure. Return FALSE
3108 if basic block SLP failed.
3109 (new_bb_vec_info): New function.
3110 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3111 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3112 (vect_schedule_slp): Add argument. Get SLP instances from either
3113 loop or basic block vectorization structure. Set vectorization factor
3114 to be 1 for basic block SLP.
3115 (vect_slp_transform_bb): New function.
3116 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3117
0676c393
MM
31182009-05-23 Mark Mitchell <mark@codesourcery.com>
3119
3120 * final.c (shorten_branches): Do not align labels for jump tables.
3121 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3122
94324dae
EB
31232009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3124
3125 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3126 Remove outdated reference to flow.c and fix nits.
3127 * doc/gccint.texi: Tweak RTL description.
3128 * doc/rtl.texi: Likewise.
3129
92bffc14
DC
31302009-05-23 Denis Chertykov <chertykov@gmail.com>
3131
3132 * config/avr/avr.c: Change my email address.
3133 * config/avr/avr.h: Likewise.
3134 * config/avr/avr.md: Likewise.
3135 * config/avr/avr-protos.h: Likewise.
3136 * config/avr/libgcc.S: Likewise.
3137
eec9405e
TS
31382009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3139
3140 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3141 (spu_split_load, spu_split_store): Change return type to int.
3142 (spu_split_convert): Declare.
3143 * config/spu/predicates.md (spu_mem_operand): Remove.
3144 (spu_mov_operand): Update.
3145 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3146 * config/spu/spu.c (regno_aligned_for_load): Remove.
3147 (reg_aligned_for_addr, spu_expand_load): Define.
3148 (spu_expand_extv): Reimplement and handle MEM.
3149 (spu_expand_insv): Handle MEM.
3150 (spu_sched_reorder): Handle insn's with length 0.
3151 (spu_legitimate_address_p): Reimplement.
3152 (store_with_one_insn_p): Return TRUE for any mode with size
3153 larger than 16 bytes.
3154 (address_needs_split): Define.
3155 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3156 operands.
3157 (spu_convert_move): Define.
782dc37a 3158 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3159 (spu_split_store): Change all MEM's to TImode.
3160 (spu_init_expanders): Preallocate registers that correspond to
3161 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3162 mark_reg_pointer.
3163 (spu_split_convert): Define.
3164 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3165 (_move<mode>, _movdi, _movti): Update predicate and condition.
3166 (load, store): Change to define_split.
3167 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3168 extend<mode>ti2.
3169 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3170 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3171 define_insn_and_split of lshr<mode>3.
3172 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3173 (<v>ashr<mode>3_imm): Define.
3174 (extv, extzv, insv): Allow MEM operands.
3175 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3176 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3177 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3178 (_spu_convert2): Change to define_insn_and_split and remove the
3179 corresponding define_peephole2.
3180 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3181 Change predicates to memory_operand.
3182
7d31a807
MM
31832009-05-22 Mark Mitchell <mark@codesourcery.com>
3184
3185 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3186
d021d274
MM
31872009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3188
3189 PR tree-optimization/40219
3190 * tree.c (iterative_hash_expr): Make sure the builtin function is
3191 a normal builtin function and not a front end or back end builtin
3192 before indexing into the built_in_decls array.
3193
4d7a65ea
RG
31942009-05-22 Richard Guenther <rguenther@suse.de>
3195
3196 PR middle-end/38964
3197 * alias.c (write_dependence_p): Do not use TBAA for answering
3198 anti-dependence or output-dependence.
782dc37a 3199 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3200 (emit_pointer_definition): Remove.
3201 (emit_alias_warning): Likewise.
3202 (find_what_var_points_to): Remove TBAA pruning code.
3203 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3204 violations.
3205 (compute_points_to_sets): Remove code computing the set of
3206 dereferenced pointers.
3207 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3208 oracle for querying anti and output dependencies.
3209 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3210 if TBAA may be applied.
3211 (refs_anti_dependent_p): New function.
3212 (refs_output_dependent_p): Likewise.
3213 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3214 (refs_output_dependent_p): Likewise.
3215 * doc/tree-ssa.texi (Memory model): New section.
3216 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3217 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3218 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3219 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3220 * expr.c (expand_expr_real_1): Likewise.
3221 * gimple-low.c (lower_stmt): Likewise.
3222 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3223 (dump_gimple_cdt): Remove.
3224 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3225 (gimple_size): Likewise.
3226 (walk_gimple_op): Likewise.
3227 (is_gimple_stmt): Likewise.
3228 (walk_stmt_load_store_addr_ops): Likewise.
3229 (gimple_build_cdt): Remove.
3230 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3231 * gimple.h (gimple_cdt_new_type): Remove.
3232 (gimple_cdt_new_type_ptr): Likewise.
3233 (gimple_cdt_set_new_type): Likewise.
3234 (gimple_cdt_location): Likewise.
3235 (gimple_cdt_location_ptr): Likewise.
3236 (gimple_cdt_set_location): Likewise.
3237 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3238 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3239 GIMPLE_CHANGE_DYNAMIC_TYPE.
3240 (verify_types_in_gimple_stmt): Likewise.
3241 * tree-inline.c (estimate_num_insns): Likewise.
3242 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3243 (copy_decl_to_var): Likewise.
3244 (copy_result_decl_to_var): Likewise.
3245 * tree-pretty-print.c (dump_generic_node): Do not handle
3246 CHANGE_DYNAMIC_TYPE_EXPR.
3247 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3248 * tree-ssa-operands.c (get_expr_operands): Likewise.
3249 * tree-ssa-structalias.c (struct variable_info): Remove
3250 no_tbaa_pruning member.
3251 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3252 (unify_nodes): Do not copy it.
3253 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3254 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3255 (set_uids_in_ptset): Do not check it.
3256 (find_what_var_points_to): Likewise.
3257 (compute_tbaa_pruning): Remove.
3258 (compute_points_to_sets): Do not call it.
3259 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3260 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3261 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3262 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3263 (DECL_NO_TBAA_P): Likewise.
3264 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3265 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3266 (expand_omp_atomic_pipeline): Do not set it.
3267 * print-tree.c (print_node): Do not dump it.
3268 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3269 redundant check.
3270
83a6ac60
VM
32712009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3272
3273 PR target/39856
3274 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3275 for clobber.
3276
fe2978fb
MM
32772009-05-22 Mark Mitchell <mark@codesourcery.com>
3278
3279 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3280 non-external.
3281
134ef638
BE
32822009-05-22 Ben Elliston <bje@au.ibm.com>
3283
3284 * Makefile.in (bversion.h, s-bversion): New targets.
3285 (TOPLEV_H): Add bversion.h.
3286 * toplev.h: Include "bversion.h".
3287 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3288 the __format__ attribute only if compiling with the same version
3289 of GCC as the sources (the "build version").
3290
52fc669d
BE
32912009-05-22 Ben Elliston <bje@au.ibm.com>
3292
3293 * c-format.c (handle_format_attribute): Fix comment typo.
3294
583ca921
SE
32952009-05-21 Steve Ellcey <sje@cup.hp.com>
3296
3297 PR target/37846
3298 * config/ia64/ia64.opt (mfused-madd): New.
3299 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3300 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3301 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3302 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3303 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3304 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3305 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3306 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3307 instruction if !TARGET_FUSED_MADD.
3308 (fpma, fpms): Remove colon from name.
3309
150e3929
RG
33102009-05-22 Richard Guenther <rguenther@suse.de>
3311
3312 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3313 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3314 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3315 TARGET_MEM_REF.
3316 (create_expression_by_pieces): Only convert if necessary.
3317 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3318 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3319
9a2b090c
AN
33202009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3321
3322 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3323 regular pattern from a template and rename it ...
3324 (*extzv_truncsi_exts): ... to this.
3325
33b92c9d
RG
33262009-05-21 Richard Guenther <rguenther@suse.de>
3327
3328 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3329 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3330 (cgraph_default_inline_p): Likewise.
3331 (cgraph_decide_inlining_incrementally): Likewise.
3332
cabf85c3
L
33332009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3334 Uros Bizjak <ubizjak@gmail.com>
3335
3336 * config/i386/cpuid.h (bit_MOVBE): New.
3337
3338 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3339
3340 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3341 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3342 (ix86_handle_option): Handle OPT_mmovbe.
3343 (ix86_target_string): Add -mmovbe.
3344 (pta_flags): Add PTA_MOVBE.
3345 (processor_alias_table): Add PTA_MOVBE to "atom".
3346 (override_options): Handle PTA_MOVBE.
3347
3348 * config/i386/i386.h (TARGET_MOVBE): New.
3349
3350 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3351 (*bswapsi_movbe): New.
3352 (*bswapdi_movbe): Likewise.
3353 (bswapdi2): Renamed to ...
3354 (*bswapdi_1): This.
3355 (bswapdi2): New expander.
3356
3357 * config/i386/i386.opt (mmovbe): New.
3358
3359 * doc/invoke.texi: Document -mmovbe.
3360
9fefa0aa
TG
33612009-05-21 Taras Glek <tglek@mozilla.com>
3362
3363 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3364 * gcc-plugin.h (plugin_init): Updated signature.
3365 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3366 * doc/plugins.texi (plugin_init): Updated documention to reflect
3367 API change.
9fefa0aa
TG
3368 * doc/plugins.texi (plugin_name_args): Added to documention.
3369
1ea9fe56
MM
33702009-05-21 Mark Mitchell <mark@codesourcery.com>
3371
3372 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3373 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3374
52f84254
SZ
33752009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3376
3377 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3378 JUMP_TABLE_DATA_P predicates where applicable.
3379 * config/i386/predicates.md: Ditto.
3380 * config/i386/sse.md: Ditto.
3381
a952487c
JJ
33822009-05-21 Jakub Jelinek <jakub@redhat.com>
3383
93cac287
JJ
3384 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3385 operand2 -128 override length_immediate attribute to 1.
3386 * config/i386/predicates.md (constm128_operand): New predicate.
3387
a952487c
JJ
3388 * config/i386/i386.c (memory_address_length): Handle %r12
3389 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3390 also check REGNO.
3391 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3392 mode look through optional ZERO_EXTEND and SUBREG.
3393 * config/i386/i386.md (R12_REG): New define_constant.
3394 (prefix_data16): For sse unit set also for MODE_TI insns.
3395 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3396 insns set if operand 1 is ext_QIreg_operand.
3397 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3398 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3399 immediate.
3400 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3401 mode from MODE_DI to MODE_SI.
3402 (movdi_1_rex64): Override modrm and length_immediate attributes
3403 only for movabs (TYPE_IMOV, alternative 2).
3404 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3405 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3406 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3407 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3408 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3409 prefix_rex attribute if DImode.
3410 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3411 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3412 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3413 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3414 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3415 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3416 Likewise. For TYPE_IMOV clear length_immediate attribute.
3417 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3418 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3419 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3420 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3421 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3422 or one operand TYPE_ISHIFT.
3423 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3424 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3425 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3426 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3427 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3428 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3429 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3430 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3431 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3432 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3433 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3434 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3435 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3436 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3437 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3438 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3439 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3440 set mode attribute, don't override length attribute.
3441 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3442 to 1.
3443 (return_internal_long): Set length attribute to 2 instead of 1.
3444 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3445 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3446 prefix_rex attribute.
782dc37a
UB
3447 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3448 New predicates.
3449 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3450
64af62c2
RR
34512009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3452
3453 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3454
c166b898
ILT
34552009-05-20 Ian Lance Taylor <iant@google.com>
3456
3457 * tree.c (build_tree_list_vec_stat): New function.
3458 (ctor_to_vec): New function.
3459 (build_nt_call_vec): New function.
3460 (build_call_array): Change args to be a const pointer.
3461 (build_call_vec): New function.
3462 * tree.h (build_nt_call_vec): Declare.
3463 (build_tree_list_vec_stat): Declare.
3464 (build_tree_list_vec): Define.
3465 (build_call_array): Update declaration.
3466 (build_call_vec): Declare.
3467 (ctor_to_vec): Declare.
3468 * c-common.c (tree_vector_cache): New static variable.
3469 (make_tree_vector): New function.
3470 (release_tree_vector): New function.
3471 (make_tree_vector_single): New function.
3472 (make_tree_vector_copy): New function.
3473 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3474 (make_tree_vector_single, make_tree_vector_copy): Declare.
3475 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3476 (c_parser_expr_list): Don't manage cache here, instead call
3477 make_tree_vector.
3478 (c_parser_release_expr_list): Remove static function.
3479 (c_parser_vec_to_tree_list): Remove static function.
3480 (c_parser_attributes): Call build_tree_list_vec instead of
3481 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3482 c_parser_release_expr_list.
3483 (c_parser_postfix_expression_after_primary): Likewise.
3484 (c_parser_objc_keywordexpr): Likewise.
3485
40449a90
SL
34862009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3487
3488 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3489 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3490 TARGET_CONVERT_TO_TYPE.
3491 * hooks.c (hook_tree_const_tree_null): Define.
3492 * hooks.h (hook_tree_const_tree_null): Declare.
3493 * target.h (struct gcc_target): Add invalid_parameter_type,
3494 invalid_return_type, promoted_type, and convert_to_type fields.
3495 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3496 (TARGET_INVALID_RETURN_TYPE): Define.
3497 (TARGET_PROMOTED_TYPE): Define.
3498 (TARGET_CONVERT_TO_TYPE): Define.
3499 (TARGET_INITIALIZER): Update for new fields.
3500 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3501 (grokparms): Check targetm.invalid_parameter_type.
3502 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3503 * c-convert.c (convert): Check targetm.convert_to_type.
3504
642d97ff
AN
35052009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3506
3507 * config/mips/mips.md (*extenddi_truncate<mode>,
3508 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3509 defintions.
3510 (*extendhi_truncateqi): New define_insn_and_sptit.
3511
776248b8
JJ
35122009-05-20 Jakub Jelinek <jakub@redhat.com>
3513
3514 PR middle-end/40204
3515 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3516 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3517
d98e8686
EB
35182009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3519
3520 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3521 the operand of VIEW_CONVERT_EXPR.
3522
37c50435
L
35232009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3524
3525 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3526 extended family and model for Intel processors. Support Intel Atom.
37c50435 3527
dbb6088f
OH
35282009-05-20 Olivier Hainque <hainque@adacore.com>
3529
3530 * gstab.h (stab_code_type): Define, to be used instead of the
3531 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3532 notice.
3533 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3534 occurrences by stab_code_type.
3535 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3536
7ec49257
MJ
35372009-05-20 Martin Jambor <mjambor@suse.cz>
3538
3539 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3540 (sra_insert_before): Likewise.
3541 (sra_insert_after): Likewise.
3542 (sra_init_cache): Likewise.
3543 (sra_type_can_be_decomposed_p): Likewise.
3544 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3545 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3546 (sra_insert_before): Likewise.
3547 (sra_insert_after): Likewise.
3548 (sra_init_cache): Likewise.
3549 (insert_edge_copies_seq): Made static and moved upwards.
3550
3551 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3552 case.
3553
3554 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3555
3556 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3557 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3558 simple copies.
3559
0328ae4d
RG
35602009-05-20 Richard Guenther <rguenther@suse.de>
3561
3562 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3563 with mismatched comparison modes.
3564
a7994a57 35652009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3566
a7994a57 3567 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3568 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3569 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3570 with shifts for Thumb2.
3571 (orsi_notsi): New for orn.
3572 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3573 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3574 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3575 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3576 Don't invert remainder for IOR.
a7994a57 3577
e36dc339
ZD
35782009-05-19 Zdenek Dvorak <ook@ucw.cz>
3579
3580 PR tree-optimization/40087
3581 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3582 number_of_iterations_ne): Rename never_infinite argument.
3583 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3584 number_of_iterations_le): Handle pointer-type ivs when
3585 exit_must_be_taken is false.
3586 (number_of_iterations_cond): Do not always assume that
3587 exit_must_be_taken if the control variable is a pointer.
3588
5cfd5d9b
AP
35892009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3590
3591 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3592 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3593
2f1c7156
L
35942009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3595
3596 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3597 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3598
7bb27074
MLI
35992009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3600
3601 PR c/40172
3602 * c.opt (Wlogical-op): Disabled by default.
3603 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3604 Wextra.
3605 * doc/invoke.texi (Wlogical-op): Likewise.
3606
5aefc6a0
EB
36072009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3608
3609 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3610 into CASE_CONVERT.
3611 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3612 Propagate the type of the first operand.
3613 <ASSERT_EXPR>: Simplify.
3614 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3615 Rewrite using the RHS code as discriminant.
3616 <NOP_EXPR>: Turn into CASE_CONVERT.
3617 <PLUS_EXPR>: Propagate the type of the first operand.
3618
f3a83111
SE
36192009-05-19 Steve Ellcey <sje@cup.hp.com>
3620
3621 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3622 (ia64_dconst_0_375): New.
3623 * config/ia64/ia64.c (ia64_override_options): Remove
3624 -minline-sqrt-min-latency warning.
3625 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3626 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3627 * config/ia64/ia64.md (*sqrt_approx): Remove.
3628 (sqrtsf2): Remove #if 0.
3629 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3630 (sqrtdf): Remove assert.
3631 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3632 (sqrtxf2): Remove #if 0.
3633 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3634 * div.md (sqrt_approx_rf): New.
3635 (sqrtsf2_internal_thr): New implementation.
3636 (sqrtsf2_internal_lat): New.
3637 (sqrtdf2_internal_thr: New implementation.
3638 (sqrtxf2_internal): New implementation.
3639
1ffc7157
FXC
36402009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3641 Hans-Peter Nilsson <hp@axis.com>
3642
3643 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3644 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3645 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3646 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3647 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3648 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3649 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3650 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3651 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3652 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3653 * c-common.c: ...from here.
3654
db91d9ef
MLI
36552009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3656
f3afc8a7 3657 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3658
bbb9d91f
KG
36592009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3660
3661 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3662
ce883f54
BE
36632009-05-19 Ben Elliston <bje@au.ibm.com>
3664
3665 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3666 assignments with memcpy calls.
3667 (add_fdes): Likewise.
3668 (binary_search_unencoded_fdes): Likewise.
3669 (linear_search_fdes): Eliminate type puns.
3670
377f099a
RG
36712009-05-19 Richard Guenther <rguenther@suse.de>
3672
3673 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3674 not falsely claim to have propagated into all uses.
3675
848bc769
BE
36762009-05-19 Ben Elliston <bje@au.ibm.com>
3677
3678 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3679 version to v3.0.
3680
1bb99877
KK
36812009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3682
3683 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3684 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3685 (TARGET_LEGITIMATE_ADDRESS_P): New.
3686 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3687 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3688
82725547
DS
36892009-05-18 Dodji Seketeli <dodji@redhat.com>
3690
3691 PR debug/40109
3692 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3693 child of the containing namespace's DIE.
3694
f6a1e430
AN
36952009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3696
3697 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3698 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3699 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3700 extend patterns.
3701
6a90d232
L
37022009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3703
3704 PR target/39942
3705 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3706 gen_align with gen_pad.
3707 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3708 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3709
3710 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3711 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3712
3713 * config/i386/i386.md (align): Renamed to ...
3714 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3715 ASM_OUTPUT_MAX_SKIP_PAD.
3716
c4406f74
AS
37172009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3718
06555043
AS
3719 * config.gcc: Fix variable syntax.
3720
c4406f74
AS
3721 PR target/39531
3722 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3723 before calling exact_log2.
3724 (output_iorsi3): Likewise.
3725 (output_xorsi3): Likewise.
3726
99052692
KK
37272009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3728
3729 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3730 for the none zero constant operand except for EQ and NE
3731 comprisons even when the first operand is R0.
3732
f4aa3848
AK
37332009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3734
3735 * config/s390/2064.md: Remove trailing whitespaces.
3736 * config/s390/2084.md: Likewise.
3737 * config/s390/constraints.md: Likewise.
3738 * config/s390/fixdfdi.h: Likewise.
3739 * config/s390/libgcc-glibc.ver: Likewise.
3740 * config/s390/s390-modes.def: Likewise.
3741 * config/s390/s390-protos.h: Likewise.
3742 * config/s390/s390.c: Likewise.
3743 * config/s390/s390.h: Likewise.
3744 * config/s390/s390.md: Likewise.
3745 * config/s390/tpf-unwind.h: Likewise.
3746
ab7256e4
MK
37472009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3748
3749 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3750
75df395f
MK
37512009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3752
3753 M68K TLS support.
3754 * configure.ac (m68k-*-*): Check if binutils support TLS.
3755 * configure: Regenerate.
3756 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3757 * config/m68k/constraints.md (Cu): New constraint.
3758 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3759 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3760 (movsi): Handle TLS symbols.
3761 (addsi3_5200): Handle XTLS symbols, indent.
3762 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3763 (m68k_tls_reference_p): Declare.
3764 (m68k_legitimize_address): Declare.
3765 (m68k_unwrap_symbol): Declare.
3766 * config/m68k/m68k.opt (mxtls): New option.
3767 * config/m68k/m68k.c (ggc.h): Include.
3768 (m68k_output_dwarf_dtprel): Implement hook.
3769 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3770 (m68k_expand_prologue): Load GOT pointer when function needs it.
3771 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3772 (m68k_legitimate_constant_address_p): Same.
3773 (m68k_decompose_address): Handle TLS references.
3774 (m68k_get_gp): New static function.
3775 (enum m68k_reloc): New contants.
3776 (TLS_RELOC_P): New macro.
3777 (m68k_wrap_symbol): New static function.
3778 (m68k_unwrap_symbol): New function.
3779 (m68k_final_prescan_insn_1): New static function.
3780 (m68k_final_prescan_insn): New function.
3781 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3782 functions.
3783 (legitimize_pic_address): Handle TLS references..
3784 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3785 (m68k_libcall_value_in_a0_p)
3786 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3787 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3788 (m68k_legitimize_tls_address): Handle TLS references.
3789 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3790 New functions.
3791 (m68k_legitimize_address): Handle TLS symbols.
3792 (m68k_get_reloc_decoration): New static function.
3793 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3794 UNSPEC_RELOC32.
3795 (m68k_output_dwarf_dtprel): Implement hook.
3796 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3797 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3798 m68k_call_* routines.
3799 (sched_attr_op_type): Handle TLS symbols.
3800 (gt-m68k.h): Include.
3801 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3802 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3803
8b75fc9b
MJ
38042009-05-18 Martin Jambor <mjambor@suse.cz>
3805
3806 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3807 (visit_store_addr_for_mod_analysis): New function.
3808 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3809 (determine_cst_member_ptr): Use gimple_assign_single_p.
3810 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3811 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3812 operands. Don't check number of operands of a NOP_EXPR.
3813
f133d4a2
EF
38142009-05-18 Eric Fisher <joefoxreal@gmail.com>
3815
3816 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3817
ae8af500
L
38182009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3819
3820 PR c/40172
3821 * c-common.c (warn_logical_operator): Don't warn if one of
3822 expression isn't always true or false.
3823
25e8fde8
KT
38242009-05-17 Kai Tietz <kai.tietz@onevision.com>
3825
ae8af500
L
3826 * config/i386/biarch32.h: New file.
3827 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3828
ef67af22
AN
38292009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3830
3831 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3832 *zero_extend<mode>_truncqi): Merge these into ...
3833 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3834 Name the pattern following this as *zero_extendhi_truncqi.
3835
e2d87023
BL
38362009-05-16 Brad Lucier <lucier@math.purdue.edu>
3837
3838 PR middle-end/39301
3839 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3840 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3841 (output_info): Make field HOST_WIDEST_INT.
3842 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3843 (dump_bitmat_statistics): Same.
3844
428ddbf0
FXC
38452009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3846
3847 * config.gcc (use_gcc_stdint): Set to wrap.
3848 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3849 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3850 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3851 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3852 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3853 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3854 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3855 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3856
1ab8a8c2
JM
38572009-05-16 Joseph Myers <joseph@codesourcery.com>
3858
3859 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3860 tune_64.
3861 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3862 Move definitions earlier.
3863 (OPT_ARCH64, OPT_ARCH32): Define.
3864 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3865 and tune_64.
3866
70544f44
RE
38672009-05-16 Richard Earnshaw <rearnsha@arm.com>
3868
3869 PR target/40153
3870 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3871 implies.
3872
6241ded1
RE
38732009-05-16 Richard Earnshaw <rearnsha@arm.com>
3874
3875 * arm.md (movdi2): Copy non-reg values to DImode registers.
3876
a99c6711
JJ
38772009-05-16 Jakub Jelinek <jakub@redhat.com>
3878
40a8f07a
JJ
3879 PR target/39942
3880 * final.c (label_to_max_skip): New function.
3881 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3882 CODE_LABEL_NUMBER <= max_labelno.
3883 * output.h (label_to_max_skip): New prototype.
3884 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3885 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3886 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3887 Handle CODE_LABELs with >= 16 byte alignment or with
3888 max_skip == (1 << align) - 1.
3889 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3890 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3891
a99c6711
JJ
3892 PR target/39942
3893 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3894 .p2align 3 if MAX_SKIP is smaller than 7.
3895 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3896
7e5487a2
ILT
38972009-05-15 Ian Lance Taylor <iant@google.com>
3898
3899 * alias.c (struct alias_set_entry_d): Rename from struct
3900 alias_set_entry. Change all uses.
3901 * except.c (struct call_site_record_d): Rename from struct
3902 call_site_record. Change all uses.
3903 * except.h (struct eh_region_d): Rename from struct eh_region.
3904 Change all uses.
3905 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3906 Change all uses.
3907 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3908 ivtype_map_elt. Change all uses.
3909 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3910 Change all uses.
3911 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3912 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3913 Change all uses.
3914 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3915 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3916 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3917 * optabs.h (struct optab_d): Rename from struct optab. Change all
3918 uses.
3919 (struct convert_optab_d): Rename from struct convert_optab.
3920 Change all uses.
3921 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3922 ipa_opt_pass. Change all uses.
3923 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3924 all uses.
3925
3926 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3927 defined as a typedef.
3928 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3929 defined as a tag.
3930
a243fb4a
MLI
39312009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3932
3933 PR 16302
3934 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3935 declaration to...
3936 (merge_ranges): Returns bool.
3937 * tree.h (make_range): .. to here.
3938 (build_range_check): Likewise.
3939 (merge_ranges): Likewise. Renamed from merge_ranges.
3940 * c-typeck.c (parser_build_binary_op): Update calls to
3941 warn_logical_operator.
3942 * c-common.c (warn_logical_operator): Add new warning.
3943 * c-common.h (warn_logical_operator): Update declaration.
3944
1b53c5f3
MLI
39452009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3946
782dc37a 3947 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3948
c128599a
KG
39492009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3950
f9bab007
KG
3951 * doc/install.texi: Document MPC requirements, flags etc.
3952
c128599a
KG
3953 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3954 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3955 Evaluate constant arguments.
3956 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3957 (fold_builtin_1): Likewise, also evaluate constant arguments.
3958 Remove superfluous break.
3959 (do_mpc_ckconv): New.
3960 * real.h: Include mpc.h.
3961 * toplev.c (print_version): Output MPC version info if available.
3962
d33e4b70
SL
39632009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3964
782dc37a 3965 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3966
a02ab464
L
39672009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3968
3969 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3970 only once.
3971
796bda22
JH
39722009-05-15 Jan Hubicka <jh@suse.cz>
3973
3974 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3975 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3976 (try_inline): Fix return value.
3977 (cgraph_decide_inlining_incrementally): Honor new value.
3978 (cgraph_early_inlining): Handle indirect inlining.
3979 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3980
d88e5c37
JH
39812009-05-15 Jan Hubicka <jh@suse.cz>
3982
3983 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3984 * cgraphunit.c (cgraph_finalize_function): Set it.
3985 (cgraph_expand_function): Use it.
3986
ae63687c
SL
39872009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3988
3989 * real.c (encode_ieee_half): Define.
3990 (decode_ieee_half): Define.
3991 (ieee_half_format): Define.
3992 (arm_half_format): Define.
3993 * real.h (ieee_half_format): Declare.
3994 (arm_half_format): Declare.
3995
1bd74ad9
SL
39962009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3997
3998 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3999 swapped, and reversed optabs exist before trying to use them.
4000
dc34db56
PB
40012009-05-15 Paul Brook <paul@codesourcery.com>
4002 Sandra Loosemore <sandra@codesourcery.com>
4003
dc34db56
PB
4004 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4005 loads. Allow PRE_DEC.
4006 (output_move_neon): Handle PRE_DEC.
4007 (arm_print_operand): Add 'A' for neon structure loads.
4008 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4009 * config/arm/neon.md (neon_mov): Update comment.
4010 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4011 calls.
4012 (Um): New constraint.
4013
1d405d7b
JH
40142009-05-15 Jan Hubicka <jh@suse.cz>
4015
4016 Revert the following patch until testsuite fallout is fixed:
4017 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4018 * cgraph.h (struct inline_summary): New filed self_wize,
4019 size_inlining_benefit, self_time and time_inlining_benefit.
4020 (struct cgraph_global_info): Replace insns by time ans size fields.
4021 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4022 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4023 (ipcp_update_callgraph): Do not touch function bodies.
4024 * ipa-inline.c: Include except.h
782dc37a 4025 (MAX_TIME): New constant.
1d405d7b
JH
4026 (overall_insns): Remove
4027 (overall_size, max_benefit): New static variables.
4028 (cgraph_estimate_time_after_inlining): New function.
4029 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4030 (cgraph_clone_inlined_nodes): Update size.
4031 (cgraph_mark_inline_edge): Update size.
4032 (cgraph_estimate_growth): Use size info.
4033 (cgraph_check_inline_limits): Check size.
4034 (cgraph_default_inline_p): Likewise.
4035 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4036 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4037 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4038 and times.
1d405d7b 4039 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4040 (cgraph_decide_inlining_incrementally): Likewise; honor
4041 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4042 (likely_eliminated_by_inlining_p): New predicate.
4043 (estimate_function_body_sizes): New function.
4044 (compute_inline_parameters): Use it.
4045 * except.c (must_not_throw_labels): New function.
4046 * except.h (must_not_throw_labels): Declare.
4047 * tree-inline.c (init_inline_once): Kill inlining_weigths
4048 * tree-ssa-structalias.c: Avoid uninitialized warning.
4049 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4050 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4051 (PARAM_INLINE_CALL_COST): Remove.
4052 (PARAM_EARLY_INLINING_INSNS): New.
4053
7ffa47ca
RG
40542009-05-15 Richard Guenther <rguenther@suse.de>
4055
4056 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4057 not TODO_update_ssa.
4058
828552ed
RG
40592009-05-15 Richard Guenther <rguenther@suse.de>
4060
4061 PR tree-optimization/39999
4062 * gimple.h (gimple_expr_type): Use the expression type looking
4063 through useless conversions.
4064 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4065 (vn_nary_op_insert_stmt): Likewise.
4066 (simplify_binary_expression): Likewise.
4067
248fc9f3
RG
40682009-05-15 Richard Guenther <rguenther@suse.de>
4069
4070 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4071 New options, enabled by default.
4072 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4073 Document.
4074 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4075 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4076 * tree-ssa-structalias.c (gate_tree_pta): New function.
4077 (pass_build_alias): Use it.
4078
16b29cc4
JM
40792009-05-15 Joseph Myers <joseph@codesourcery.com>
4080
4081 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4082 recurse on an invariant address if a conversion from a pointer
4083 type to a wider integer type is involved.
4084
125cae84
JH
40852009-05-15 Jan Hubicka <jh@suse.cz>
4086
4087 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4088 * cgraph.h (struct inline_summary): New filed self_wize,
4089 size_inlining_benefit, self_time and time_inlining_benefit.
4090 (struct cgraph_global_info): Replace insns by time ans size fields.
4091 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4092 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4093 (ipcp_update_callgraph): Do not touch function bodies.
4094 * ipa-inline.c: Include except.h
782dc37a 4095 (MAX_TIME): New constant.
125cae84
JH
4096 (overall_insns): Remove
4097 (overall_size, max_benefit): New static variables.
4098 (cgraph_estimate_time_after_inlining): New function.
4099 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4100 (cgraph_clone_inlined_nodes): Update size.
4101 (cgraph_mark_inline_edge): Update size.
4102 (cgraph_estimate_growth): Use size info.
4103 (cgraph_check_inline_limits): Check size.
4104 (cgraph_default_inline_p): Likewise.
4105 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4106 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4107 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4108 and times.
125cae84 4109 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4110 (cgraph_decide_inlining_incrementally): Likewise; honor
4111 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4112 (likely_eliminated_by_inlining_p): New predicate.
4113 (estimate_function_body_sizes): New function.
4114 (compute_inline_parameters): Use it.
4115 * except.c (must_not_throw_labels): New function.
4116 * except.h (must_not_throw_labels): Declare.
4117 * tree-inline.c (init_inline_once): Kill inlining_weigths
4118 * tree-ssa-structalias.c: Avoid uninitialized warning.
4119 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4120 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4121 (PARAM_INLINE_CALL_COST): Remove.
4122 (PARAM_EARLY_INLINING_INSNS): New.
4123 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4124 (inline-call-cost): Remove.
4125 (early-inlining-insns): New.
4126
84fb43a1
EB
41272009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4128
4129 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4130 for bounds.
4131 (print_int_cst_bounds_in_octal_p): Likewise.
4132 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4133 with subtypes.
4134 * dwarf2out.c (base_type_die): Likewise.
4135 (is_subrange_type): Delete.
4136 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4137 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4138 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4139 if the destination type is boolean.
84fb43a1
EB
4140 (build_range_check): Do not special-case subtypes.
4141 (fold_sign_changed_comparison): Likewise.
4142 (fold_unary): Likewise.
4143 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4144 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4145 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4146 * tree.c (subrange_type_for_debug_p): New predicate based on the
4147 former is_subrange_type.
84fb43a1
EB
4148 * tree.h (subrange_type_for_debug_p): Declare.
4149 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4150 (convert_affine_scev): Remove call to above function.
4151 (chrec_convert_aggressive): Likewise.
4152 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4153 false for conversions involving subtypes.
4154 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4155 (vrp_val_min): Likewise.
4156 (needs_overflow_infinity): Likewise.
4157 (extract_range_from_unary_expr): Likewise.
4158
331d9186
PB
41592009-05-15 Paolo Bonzini <bonzini@gnu.org>
4160
e9351712
L
4161 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4162 * config/frv/frv.c: Likewise.
4163 * config/s390/s390.c: Likewise.
4164 * config/sparc/sparc.h: Likewise.
4165 * config/i386/i386.h: Likewise.
4166 * config/i386/i386.c: Likewise.
4167 * config/crx/crx.c: Likewise.
4168 * config/m68hc11/m68hc11.h: Likewise.
4169 * config/iq2000/iq2000.c: Likewise.
4170 * config/mn10300/mn10300.h: Likewise.
4171 * config/mn10300/mn10300.c: Likewise.
4172 * config/m68k/m68k.c: Likewise.
4173 * config/rs6000/rs6000.c: Likewise.
4174 * config/rs6000/xcoff.h: Likewise.
4175 * config/rs6000/linux64.h: Likewise.
4176 * config/rs6000/sysv4.h: Likewise.
4177 * config/score/score3.c: Likewise.
4178 * config/score/score7.c: Likewise.
4179 * config/score/score.c: Likewise.
4180 * config/arm/arm.md: Likewise.
4181 * config/mips/mips.c: Likewise.
4182 * config/mips/mips.md: Likewise.
4183 * config/bfin/bfin.h: Likewise.
4184 * config/pa/pa.c: Likewise.
4185 * config/pa/constraints.md: Likewise.
4186
4187 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4188 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4189 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4190
09639a83
ILT
41912009-05-14 Ian Lance Taylor <iant@google.com>
4192
4193 * passes.c (finish_optimization_passes): Change i to int.
4194 * plugin.c (plugins_active_p): Change event to int.
4195 (dump_active_plugins): Likewise.
4196 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4197 Add cast.
4198 * tree.c (tree_range_check_failed): Change c to unsigned int.
4199 (omp_clause_range_check_failed): Likewise.
4200 (build_common_builtin_nodes): Change mode to int. Add cast.
4201 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4202 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4203
4204 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4205 ++ or -- with a variable of enum type.
4206
c04a56bf
SB
42072009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4208
4209 PR driver/40144
4210 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4211
237ee620
SB
42122009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4213
4214 * store-motion.c: Do not include params.h
4215 * Makefile.in: Fix dependencies for various files.
4216
1154c4fa
SB
42172009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4218
4219 * auto-inc-dec.c: Fix pass description, remove apparent
4220 accidental duplication.
4221
61c27353
L
42222009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4223
4224 PR middle-end/40147
4225 * ipa-utils.h (memory_identifier_string): Moved to ...
4226 * tree.h (memory_identifier_string): Here. Add GTY(()).
4227
c6c3dba9
PB
42282009-05-14 Paolo Bonzini <bonzini@gnu.org>
4229
4230 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4231 in the former documentation of...
4232 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4233 * ira-conflicts.c (get_dup_num): Use address_operand.
4234 * targhooks.c (default_legitimate_address_p): New.
4235 * targhooks.h (default_legitimate_address_p): New.
4236 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4237 Call hook.
4238 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4239 * target.h (struct target): Add legitimate_address_p.
4240 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4241 (TARGET_INITIALIZER): Include it.
4242
4243 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4244 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4245 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4246 (TARGET_LEGITIMATE_ADDRESS_P): New.
4247
4248 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4249 (REG_OK_STRICT_P): Delete.
4250 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4251 (frv_legitimate_address_p_1): ... this.
4252 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4253 (frv_legitimate_address_p_1): ... the renamed old
4254 frv_legitimate_address_p.
4255 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4256 (TARGET_LEGITIMATE_ADDRESS_P): New.
4257
4258 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4259 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4260 * config/s390/s390.c (legitimate_address_p): Rename to...
4261 (s390_legitimate_address_p): ... this, make static.
4262 (legitimize_address): Adjust call.
4263 (TARGET_LEGITIMATE_ADDRESS_P): New.
4264 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4265
4266 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4267 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4268 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4269 (TARGET_LEGITIMATE_ADDRESS_P): New.
4270
4271 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4272 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4273 * config/spu/spu.c (spu_legitimate_address): Rename to...
4274 (spu_legitimate_address_p): ... this, make static.
4275 (TARGET_LEGITIMATE_ADDRESS_P): New.
4276
4277 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4278 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4279 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4280 (sparc_legitimate_address_p): ... this, make static and return bool.
4281 (legitimize_address): Adjust call.
4282 (TARGET_LEGITIMATE_ADDRESS_P): New.
4283
4284 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4285 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4286 * config/i386/i386.c (legitimate_address_p): Rename to...
4287 (ix86_legitimate_address_p): ... this, make static.
4288 (constant_address_p): Move after it, adjust call.
4289 (TARGET_LEGITIMATE_ADDRESS_P): New.
4290
4291 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4292 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4293 * config/avr/avr.c (legitimate_address_p): Rename to...
4294 (avr_legitimate_address_p): ... this, make static.
4295 (legitimize_address): Adjust call.
4296 (TARGET_LEGITIMATE_ADDRESS_P): New.
4297
4298 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4299 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4300 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4301 (TARGET_LEGITIMATE_ADDRESS_P): New.
4302
4303 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4304 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4305 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4306 (TARGET_LEGITIMATE_ADDRESS_P): New.
4307
4308 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4309 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4310 Remove.
4311 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4312 Make static.
4313 (TARGET_LEGITIMATE_ADDRESS_P): New.
4314
4315 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4316 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4317 Remove.
4318 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4319 Rename to...
4320 (m68hc11_legitimate_address_p): ... this, make static.
4321 (go_if_legitimate_address_internal): Rename to...
4322 (m68hc11_legitimate_address_p_1): ... this.
4323 (legitimize_address): Adjust call.
4324 (TARGET_LEGITIMATE_ADDRESS_P): New.
4325
4326 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4327 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4328 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4329 (TARGET_LEGITIMATE_ADDRESS_P): New.
4330
4331 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4332 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4333 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4334 (mn10300_legitimate_address_p): ... this, make static.
4335 (TARGET_LEGITIMATE_ADDRESS_P): New.
4336
4337 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4338 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4339 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4340 (TARGET_LEGITIMATE_ADDRESS_P): New.
4341
4342 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4343 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4344 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4345 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4346 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4347 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4348 (rs6000_legitimate_address_p): ... this, make static.
4349 (TARGET_LEGITIMATE_ADDRESS_P): New.
4350 (REG_MODE_OK_FOR_BASE_P): Delete.
4351 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4352
4353 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4354 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4355 Delete.
4356 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4357 static, adjust types.
4358 (TARGET_LEGITIMATE_ADDRESS_P): New.
4359
4360 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4361 * config/score/score.c (score_address_p): Rename to...
4362 (score_legitimate_address_p): ... this.
4363 (TARGET_LEGITIMATE_ADDRESS_P): New.
4364 * config/score/score3.c (score3_address_p): Rename to...
4365 (score3_legitimate_address_p): ... this.
4366 * config/score/score7.c (score7_address_p): Rename to...
4367 (score7_legitimate_address_p): ... this.
4368
4369 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4370 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4371 GO_IF_LEGITIMATE_ADDRESS): Delete.
4372 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4373 thumb2_legitimate_address_p): Delete.
4374 (arm_legitimate_address_p): Rename to...
4375 (arm_legitimate_address_outer_p): ... this.
4376 * config/arm/constraints.md ("Uq"): Adjust call.
4377 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4378 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4379 to...
c6c3dba9 4380 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4381 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4382 static.
c6c3dba9
PB
4383 (TARGET_LEGITIMATE_ADDRESS_P): New.
4384
4385 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4386 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4387 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4388 (TARGET_LEGITIMATE_ADDRESS_P): New.
4389
4390 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4391 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4392 * config/vax/vax.c (legitimate_address_p): Rename to...
4393 (vax_legitimate_address_p): ... this, make static.
4394 (TARGET_LEGITIMATE_ADDRESS_P): New.
4395
4396 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4397 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4398 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4399 (TARGET_LEGITIMATE_ADDRESS_P): New.
4400
4401 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4402 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4403 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4404 (mmix_legitimate_address_p): ... this, make static.
4405 (TARGET_LEGITIMATE_ADDRESS_P): New.
4406
4407 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4408 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4409 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4410 (TARGET_LEGITIMATE_ADDRESS_P): New.
4411
3bd0d9c8
PB
44122009-05-14 Paolo Bonzini <bonzini@gnu.org>
4413
4414 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4415 of MODE_COMPLEX_INT.
4416
fe049033
RO
44172009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4418
4419 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4420 LCT_NORMAL in function call.
4421 * mips-tdump.c (print_file_desc): Add cast to enum type.
4422 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4423 (mark_stabs): Add casts to enum types.
4424 (parse_stabs_common): Add casts to enum types.
16f7ad42 4425
b0907a6c
AN
44262009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4427
4428 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4429 Check for invalid values of LETTER.
4430
d1c8e08a
TG
44312009-05-13 Taras Glek <tglek@mozilla.com>
4432
f3afc8a7
UB
4433 * attribs.c (register_attribute): moved out attribute registration
4434 into register_attribute.
4435 * doc/plugins.texi: Documented register_attribute and
4436 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4437 * gcc-plugin.h: Added forward decl for register_attribute.
4438 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4439 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4440 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4441
4ed7f970
DK
44422009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4443
4444 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4445 values even in sentinel and empty entries.
4446 (ms_printf_flag_specs): Likewise.
4447 (ms_scanf_flag_specs): Likewise.
4448 (ms_strftime_flag_specs): Likewise.
4449 (ms_print_char_table): Likewise.
4450 (ms_scan_char_table): Likewise.
4451 (ms_time_char_table): Likewise.
4452
3d8fa148
DK
44532009-05-13 Doug Kwan <dougkwan@google.com>
4454
4455 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4456
f06257d3
AN
44572009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4458
4459 * config/mips/mips.md (store): Add attributes for QI and HI.
4460 Update comment.
4461 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4462 (truncdi<mode>2): ... this new pattern.
4463
fb201767
BH
44642009-05-13 Brad Hards <bradh@kde.org>
4465
4466 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4467
c7bda60e 44682009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4469 Ben Elliston <bje@au.ibm.com>
4470
4471 PR middle-end/40035
4472 * dse.c (check_mem_read_rtx): Guard against width == -1.
4473
ce985b43
MM
44742009-05-13 Michael Matz <matz@suse.de>
4475
4476 PR middle-end/39976
4477 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4478 (trivially_conflicts_p): New function.
4479 (insert_backedge_copies): Use it.
4480
7de1d221
JJ
44812009-05-13 Janis Johnson <janis187@us.ibm.com>
4482
4483 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4484 (handle_stdc_pragma): Use new enum constant names.
4485 (handle_pragma_float_const_decimal64): Ditto.
4486
bfefafc6
ILT
44872009-05-13 Ian Lance Taylor <iant@google.com>
4488
4489 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4490 tree.def.
4491
286c4fcb
NS
44922009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4493
4494 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4495 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4496 multilibs.
4497 * config/m68k/m68k.h (FL_UCLINUX): Define.
4498
ebaa6ea7
JH
44992009-05-13 Jan Hubicka <jh@suse.cz>
4500
4501 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4502
2b703e1a
KK
45032009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4504
4505 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4506 unless -fschedule-insns is specified.
4507
c3537723
KK
45082009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4509
4510 PR target/39561
4511 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4512 TARGET_EXPAND_CBRANCHDI4.
4513 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4514 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4515 (cmpeqdi): Fix comment.
4516
cdeed45a
KK
45172009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4518
4519 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4520 (sh_legitimate_address_p): Likewise.
4521 * config/sh/sh.c (sh_legitimate_index_p): New.
4522 (sh_legitimate_address_p): Likewise.
4523 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4524 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4525 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4526 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4527 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4528 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4529 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4530 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4531 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4532
02f0b13a
JH
45332009-05-12 Jan Hubicka <jh@suse.cz>
4534
4535 * tree-inline.c (estimate_operator_cost): Add operands;
4536 when division happens by constant, it is cheap.
4537 (estimate_num_insns): Loads and stores are not having cost of 0;
4538 EH magic stuff is cheap; when computing runtime cost of switch,
4539 use log2 base of amount of its cases; builtin_expect has cost of 0;
4540 compute cost for moving return value of call.
4541 (init_inline_once): Initialize time_based flags.
4542 * tree-inline.h (eni_weights_d): Add time_based flag.
4543
ecb7f6de
PB
45442009-05-12 Paolo Bonzini <bonzini@gnu.org>
4545
4546 * df-core.c: Update head documentation.
4547
c24151ce
MM
45482009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4549
4550 PR bootstrap/40118
4551 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4552 shadowing exisiting variable op1.
4553
fbdf817d
UB
45542009-05-12 Uros Bizjak <ubizjak@gmail.com>
4555
704bf7c8 4556 PR target/37179
fbdf817d
UB
4557 * config/i386/driver-i386.c (processor_signatures): New enum.
4558 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4559 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4560 processor signature to detect geode processor.
4561
5e8d1826
PB
45622009-05-12 Paolo Bonzini <bonzini@gnu.org>
4563
4564 Revert:
4565
4566 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4567
4568 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4569 causes spurious differences between trunk and cond-optab branch.
4570
f90b7a5a
PB
45712009-05-12 Paolo Bonzini <bonzini@gnu.org>
4572
fbdf817d
UB
4573 * dojump.c (compare_from_rtx): Delete.
4574 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4575 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4576 if the comparison does not satisfy the predicate; test predicates for
4577 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4578 further if one existing pattern fails.
fbdf817d 4579 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4580 (prepare_operand): Declare it.
fbdf817d 4581 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4582 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4583 HAVE_conditional_trap, emit_cmp_insn): Delete.
4584 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4585 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4586 Accept other parameters by value.
4587 (prepare_operand): Make non-static.
4588 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4589 other parameters by value. Try to widen operands here based on
4590 an optab_methods argument and looking at cbranch_optab.
4591 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4592 loop. Use cbranch_optab directly.
4593 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4594 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4595 assertion.
4596 (emit_conditional_move, emit_conditional_add): Inline what's needed
4597 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4598 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4599 with COMPARE. Move cmov_optab and cstore_optab above
4600 with cbranch_optab, move cmp_optab down with ucmp_optab,
4601 remove tst_otpab. Do not initialize trap_rtx.
4602 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4603 for trap code. Do not check HAVE_conditional_trap. Use
4604 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4605 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4606 (OTI_ctrap, ctrap_optab): New.
4607 (tst_optab): Delete.
4608 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4609 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4610 with lookup of ctrap_optab.
f3afc8a7
UB
4611 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4612 Delete.
fbdf817d
UB
4613 (ctrap_optab): New.
4614
4615 * combine.c (combine_simplify_rtx, simplify_set): Do not
4616 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4617 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4618 COMPARE on cc0 machines.
4619 (simplify_relational_operation): Return a new expression when
4620 a COMPARE could be removed.
fbdf817d
UB
4621 * final.c (final_scan_insn): Compare cc_status values
4622 against LHS of a (compare FOO (const_int 0)) cc0 source.
4623 Also check if cc_status.value is the full compare.
f90b7a5a 4624
fbdf817d
UB
4625 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4626 (cstoreMM4): Document.
f90b7a5a 4627 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4628 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4629 (Dependent Patterns): Eliminate obsolete information referring to
4630 the old jump optimization phase.
fbdf817d 4631 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4632 of compares with 0 on cc0 machines.
4633 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4634 avoiding references to cc0. Remove text about storing operands
4635 in cmpMM.
4636 * doc/tm.texi (Condition Codes): Include blurb on different
4637 condition code representations, separate into subsections for
4638 CC0, MODE_CC and conditional execution.
4639
fbdf817d
UB
4640 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4641 alpha_emit_setcc): Accept operands and a machine mode.
4642 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4643 Get code/op0/op1 from operands, use machine mode argument
4644 instead of alpha_compare.fp_p. Emit the branch here.
4645 (alpha_emit_setcc): Likewise, and return boolean.
4646 (alpha_emit_conditional_move): Likewise. Assert that
4647 cmp_op_mode == cmp_mode, and simplify accordingly.
4648 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4649 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4650 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4651 Delete.
4652 (stack probe test): Use cbranchdi4.
4653 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4654
4655 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4656 * config/arc/arc.h (movsicc, movsfcc): Use it.
4657 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4658 (cbranchsi4, cstoresi4): New.
4659 (cmpsi, bCC and sCC expanders): Remove.
4660
4661 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4662 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4663 * config/arm/predicates.md (arm_comparison_operator): Only include
4664 floating-point operators if there is a hardware floating-point unit.
4665 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4666 deferring to cbranch_cc and cstore_cc respectively.
4667 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4668 cbranch_cc, cstore_cc): New.
4669 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4670 arm_compare_op1.
fbdf817d
UB
4671 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4672
4673 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4674 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4675 as an argument.
4676 (adjust_insn_length): Adjust calls.
4677 (avr_reorg): Handle (compare (foo) (const_int 0)).
4678 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4679 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4680 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4681 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4682 (bCC): Remove.
4683 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4684 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4685
fbdf817d
UB
4686 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4687 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4688 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4689 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4690 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4691 (bfin_optimize_loop): Use cbranch expander.
4692 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4693 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4694 (bfin_bimode_comparison_operator): ... this.
4695 (bfin_direct_comparison_operator): New.
f90b7a5a 4696
fbdf817d
UB
4697 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4698 inside (compare FOO (const_int 0)).
4699 (cris_rtx_costs): Handle ZERO_EXTRACT.
4700 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4701 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4702 (*tstdi_v32): Delete.
4703 (*cmpdi_non_v32): Add M alternative for operand 1.
4704 (cmpsi, cmp<mode>): Make private.
4705 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4706 with COMPARE.
4707 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4708
4709 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4710 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4711 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4712 (cc_reg_operand): New.
4713 (any_cond): Delete.
fbdf817d
UB
4714 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4715 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4716 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4717 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4718 crx_expand_scond): Delete.
4719
4720 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4721 (cbranchsi4): New.
4722 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4723 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4724
4725 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4726 cstoresi4, cstoresf4, cstoredf4): New.
4727 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4728 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4729 Receive the entire operands array.
4730 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4731 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4732 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4733 Get test/op0/op1 from the operands array.
4734 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4735
4736 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4737 (h8300_expand_store): New.
4738 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4739 (const_int 0)).
4740 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4741 (h8300_expand_store): New.
4742 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4743 or do not try to produce (set (cc0) REG).
4744 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4745 change a compare into a move to a scratch register. Disable some
4746 peepholes when comparing with zero.
4747 (tstsi, tsthi, tstsi, cmpqi): Make private.
4748 (cmphi): Delete.
4749 (bCC, sCC): Delete.
4750 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4751 cstoresi4): New.
f90b7a5a
PB
4752
4753 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4754 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4755 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4756 (ix86_emit_i387_log1p): Use cbranchxf2.
4757 (ix86_expand_setcc): Return void.
4758 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4759 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4760 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4761 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4762 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4763 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4764 (sCC and bCC expanders): Remove.
4765 (stack_protect_test): Use cbranchcc4.
4766
fbdf817d
UB
4767 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4768 Delete.
4769 (ia64_expand_compare): Accept three rtx by reference and return void.
4770 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4771 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4772 from *expr. Update *expr with the BImode comparison to do.
4773 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4774 cmptf, bCC, sCC, conditional_trap): Delete.
4775 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4776 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4777 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4778 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4779 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4780
4781 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4782 type of last argument.
4783 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4784 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4785 use machine mode argument instead of branch_type. Remove dead
4786 code for floating-point comparisons.
4787 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4788 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4789 Remove.
4790 (cbranchsi4, cstoresi4): New.
4791 * config/iq2000/predicates.md (reg_or_const_operand): New.
4792
4793 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4794 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4795 (b<code>_op): Rewrite to...
4796 (bcc_op): ... this, using match_operator.
4797 (s<code>_op): Rewrite to...
4798 (scc_op): ... this, using match_operator.
4799 (s<code>_24_op): Rewrite to...
4800 (scc_op_24): ... this, using match_operator.
4801 (s<code>_<mode>): Rewrite to...
4802 (cstore<mode>4): ... this, using match_operator.
4803 (s<code>_<mode>_24): Rewrite to...
4804 (cstore<mode>4_24): ... this, using match_operator.
4805 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4806 m32c_unpend_compare, m32c_expand_scc): Delete.
4807 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4808 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4809 (m32c_expand_movcc): Change NE to EQ if necessary.
4810 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4811
4812 * config/m32r/m32r-protos.h (gen_cond_store): New.
4813 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4814 (gen_cond_store): New, from sCC patterns.
4815 (m32r_expand_block_move): Use cbranchsi4.
4816 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4817 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4818 (cbranchsi4, cstoresi4): New.
4819
4820 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4821 Delete.
4822 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4823 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4824 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4825 Delete.
4826 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4827 cmphi, cmpqi, bCC): Delete.
4828 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4829 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4830 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4831 sets with COMPARE.
4832
4833 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4834 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4835 * config/m68k/constraints.md (H): New.
4836 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4837 the define_insn below.
4838 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4839 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4840 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4841 patterns): Wrap RHS with COMPARE.
4842 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4843 (*cmpdi_internal): Name this pattern.
4844 (cmpdi): Change to define_insn.
4845 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4846 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4847 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4848 predicate.
4849 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4850 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4851 (conditional_trap): Change to...
4852 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4853 (*conditional_trap): Use the ordered_comparison_operator and
4854 const1_operand predicates.
4855 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4856 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4857 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4858 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4859
4860 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4861 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4862 (mcore_gen_compare): New.
4863 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4864 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4865 (mcore_gen_compare): ... this.
4866 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4867 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4868 (stack probe pattern): Use cbranchsi4.
4869
4870 * config/mips/predicates.md (mips_cstore_operator): New.
4871 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4872 * config/mips/mips.md (any_cond): Delete.
4873 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4874 always succeed.
4875 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4876 fixuns_truncsfdi2): Use cbranch patterns.
4877 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4878 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4879 Adjust call to mips_expand_conditional_branch.
4880 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4881 cstore<GPR:mode>4.
4882 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4883 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4884 * config/mips/mips.c (cmp_operands): Delete.
4885 (mips_emit_compare): Get comparison operands from *op0/*op1.
4886 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4887 that it succeeds. Use op0/op1 instead of cmp_operands.
4888 (mips_expand_conditional_branch, mips_expand_conditional_move,
4889 mips_expand_conditional_trap): Likewise.
4890 (mips_block_move_loop): Use cbranch patterns.
4891 * config/mips/mips.h (cmp_operands): Delete.
4892
4893 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4894 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4895 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4896 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4897 (*cmpcc_folded): Rename to...
4898 (*cmpdi_folded): this.
4899 (*cmpcc): Rename to...
4900 (*cmps): ... this.
4901 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4902 (bCC): Remove.
4903 (cbranchdi4): New.
4904 (cbranchdf4): New. Handle invalid comparisons here.
4905 * config/mmix/predicates.md (float_comparison_operator): New.
4906
4907 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4908 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4909 * config/mn10300/mn10300.md (tst): Delete.
4910 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4911 Name these patterns and wrap RHS in a compare.
4912 (*cmpsi): Make this pattern private. Include tst.
4913 (*cmpsf): Make this pattern private.
4914 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4915 (compare with zero peepholes): Likewise.
4916 (bCC): Remove.
4917 (cbranchsi4, cbranchsf4): New.
4918 (casesi): Use cbranchsi4.
4919
4920 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4921 hppa_branch_type): Delete.
4922 (return_addr_rtx): Use cbranchsi4.
4923 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4924 Emit CCFPmode comparison here.
4925 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4926 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4927 hppa_branch_type): Delete.
4928 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4929 (movsicc, movdicc): Remove references to hppa_compare_op0,
4930 hppa_compare_op1 and compare_from_rtx.
4931 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4932 (casesi): Use cbranchsi4.
4933
4934 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4935 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4936 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4937 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4938 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4939 (bCC): Delete.
4940 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4941 (*branch, *branch_inverted): New.
4942
4943 * config/picochip/picochip.md (cbranchhi4): Use
4944 ordered_comparison_operator.
4945 (cmphi, bCC): Remove.
4946
4947 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4948 (trap_comparison_operator): Delete.
4949 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4950 rs6000_emit_cbranch): Accept mode and operands.
4951 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4952 rs6000_compare_fp_p): Delete.
4953 (rs6000_generate_compare): Accept mode and comparison. Extract code
4954 and op0/op1 from there. Replace references to rs6000_compare_op0
4955 and rs6000_compare_op1.
4956 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4957 extract result from passed operands.
4958 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4959 extract loc from passed operands.
4960 (rs6000_emit_cmove): Likewise.
4961 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4962 rs6000_compare_fp_p): Delete.
4963 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4964 (cbranch<GPR>4, cbranch<FP>4): New.
4965 (cstore<mode>4): New. Consolidate here all choices about when to use
4966 portable or specialized sCC sequences.
4967 (stack_protect_test): Use cbranchsi4.
4968 (conditional_trap): Replace with ctrap<GPR>4.
4969 (conditional trap insn): Replace trap_comparison_operator with
4970 ordered_comparison_operator.
4971
4972 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4973 (s390_emit_prologue): Use ctrap.
4974 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4975 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4976 New predicates replacing...
4977 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4978 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4979 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4980 (add<mode>cc): Do not use s390_compare_op0/op1.
4981 (s<code>): Change to...
4982 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4983 (seq): Change to...
4984 (cstorecc4): ... this. Handle EQ or NE equally.
4985 (*sne): Un-privatize for use in cstorecc4.
4986 (b<code>): Change to...
4987 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4988 (conditional_trap): Replace with...
4989 (ctrap<GPR>4, ctrap<FP>4): ... these.
4990 (stack_protect): Use cbranchcc4.
4991
4992 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4993 * config/score/score-protos.h (score_gen_cmp): Delete.
4994 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4995 (score_block_move-loop): Use cbranchsi4.
4996 * config/score/score.md (cbranchsi4): New.
4997 (cmpsi, bCC): Delete.
4998 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4999 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5000 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5001 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5002 * config/score/score3.h (score3_gen_cmp): Delete.
5003 * config/score/score7.h (score7_gen_cmp): Delete.
5004
5005 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5006 (sh_emit_scc_to_t): ... this. Return void.
5007 (from_compare): Rename to...
5008 (sh_emit_compare_and_branch): ... this.
5009 (sh_emit_compare_and_set): New.
5010 (sh_expand_t_scc): Accept operands.
5011 * config/sh/predicates.md (sh_float_comparison_operator): New.
5012 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5013 (prepare_scc_operands): Rename to...
5014 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5015 arguments.
5016 (sh_emit_cheap_store_flag): New.
f90b7a5a 5017 (sh_emit_set_t_insn): New.
fbdf817d
UB
5018 (from_compare): Rename to...
5019 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5020 handling of TARGET_SH2E floating point to avoid recursive call.
5021 Generate branch here.
5022 (sh_emit_compare_and_set): New.
5023 (sh_expand_t_scc): Get op0/op1 from arguments.
5024 (sh_emit_cheap_store_flag): New.
5025 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5026 cases.
f90b7a5a 5027 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5028 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5029 (movsicc, movdicc): Do nothing when it recreated operands from
5030 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5031 prepare_scc_operands (now sh_emit_scc_to_t).
5032 (udivdi3): Use cstoresi4.
5033 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5034 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5035 (cbranchint4_media, cbranchfp4_media): New.
5036 (casesi): Use cbranchdi4.
5037 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5038 Delete.
5039 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5040 (movnegt): Remove second operand.
5041 (cbranchsf4, cbranchdf4): New.
5042 (stack_protect): Use cbranchdi4/cbranchsi4.
5043
5044 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5045 (gen_compare_reg): Accept comparison, extract part of it to...
5046 (gen_compare_reg_1): ... this.
5047 (gen_compare_operator): Delete.
5048 (gen_v9_scc): Accept separate destination, comparison code and arms.
5049 Do not use sparc_compare_op0/sparc_compare_op1.
5050 (emit_scc_insn, emit_conditional_branch_insn): New.
5051 (emit_v9_brxx): Make static. Remove useless assertion.
5052 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5053 emit_cmp_insn.
5054 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5055 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5056 sparc_emit_float_lib_cmp): Adjust prototype.
5057 (emit_scc_insn, emit_conditional_branch_insn): New.
5058 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5059 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5060 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5061 iterators to the top.
5062 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5063 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5064 snedi_special_trunc): Delete.
fbdf817d 5065 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5066 and snedi_special_trunc.
fbdf817d
UB
5067 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5068 cbranchdi4, cbranch<F:mode>4): New.
5069 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5070 here. Use gen_compare_reg instead of gen_compare_operator.
5071 (conditional_trap): Replace with...
5072 (ctrapsi4, ctrapdi4): ... this.
5073 (stack_protect_test): Use cbranchcc4.
5074
5075 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5076 argument to rtx.
5077 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5078 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5079 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5080 from operands[0] or operands[3] depending on is_set.
5081 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5082 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5083 cmpdf, bCC), sCC: Remove.
5084 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5085 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5086 cstoredf4): New.
5087 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5088 spu_emit_branch_or_set.
5089
5090 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5091 Add two arguments.
5092 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5093 xstormy16_compare_op1): Delete.
5094 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5095 xstormy16_compare_op1): Delete.
5096 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5097 Adjust calls.
5098 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5099 (cmphi, cmpsi, bCC): Remove.
5100
5101 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5102 (*cmpsi): ... this one.
5103 (cbranchsi4, cstoresi4): New.
5104 (bCC expanders): Delete.
5105 (sCC insns): Fold into...
5106 (*setcc): ... this one.
5107 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5108 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5109 (movsicc): Simplify.
5110 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5111
fbdf817d
UB
5112 * config/vax/vax-protos.h (cond_name): New.
5113 (vax_output_conditional_branch): Remove.
5114 * config/vax/vax.c (cond_name): New.
5115 (vax_output_conditional_branch): Remove.
5116 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5117 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5118 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5119 (bit<VAXint>): Wrap source with (compare).
5120 (b<code> and following unnamed pattern): Rename to *branch and
5121 *branch_reversed. Change macroization to match_operator.
5122 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5123
5124 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5125 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5126 Change last argument to machine_mode.
5127 (xtensa_expand_scc): Add machine_mode argument.
5128 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5129 (gen_conditional_move, xtensa_expand_conditional_branch,
5130 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5131 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5132 Adjust operand numbers.
5133 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5134 Delete.
5135 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5136 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5137 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5138
16670495
PB
51392009-05-12 Paolo Bonzini <bonzini@gnu.org>
5140
5141 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5142 causes spurious differences between trunk and cond-optab branch.
5143
4a4a4e99
AO
51442009-05-12 Alexandre Oliva <aoliva@redhat.com>
5145
5146 PR target/37137
5147 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5148
72b9acff
AO
51492009-05-12 Alexandre Oliva <aoliva@redhat.com>
5150
5151 * tree.c (iterative_hash_pointer): Delete.
5152 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5153 Hash UIDs and versions of SSA names. Don't special-case built-in
5154 function declarations.
5155
b7dd69ac
ILT
51562009-05-11 Ian Lance Taylor <iant@google.com>
5157
5158 PR bootstrap/40103
5159 * graphite.c: Force -Wc++-compat to only be a warning before
5160 #including "cloog/cloog.h".
5161
ed102b70
MJ
51622009-05-11 Martin Jambor <mjambor@suse.cz>
5163
5164 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5165
08f1af2e
JH
51662009-05-11 Jan Hubicka <jh@suse.cz>
5167
5168 * tree-ssa-loop-ivcanon.c: Include target.h
5169 (struct loop_size): new structure.
5170 (constant_after_peeling): New predicate.
5171 (tree_estimate_loop_size): New function.
5172 (estimated_unrolled_size): Rewrite for new estimates.
5173 (try_unroll_loop_completely): Use new estimates.
5174 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5175
a7d39bd3
AP
51762009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5177
5178 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5179 libcpp interface change.
5180 (spu_macro_to_expand): Likewise.
5181
f5a1f0d0
PB
51822009-05-11 Paolo Bonzini <bonzini@gnu.org>
5183
5184 PR tree-optimization/40026
5185 * gimplify.c (gimplify_init_constructor): Change initial conditional
5186 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5187 optimize_compound_literals_in_ctor.
5188
c260f01f
NS
51892009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5190
5191 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5192 New devices.
5193 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5194
df398a37
L
51952009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5196
5197 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5198 HOST_WIDE_INT for gap.
5199
4da39468
IR
52002009-05-11 Ira Rosen <irar@il.ibm.com>
5201
5202 PR tree-optimization/40074
5203 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5204 account in group size and step comparison.
5205
4effdf02
RG
52062009-05-11 Richard Guenther <rguenther@suse.de>
5207
5208 * passes.c (init_optimization_passes): Strip now incorrect comment.
5209 (execute_function_todo): Do not set PROP_alias.
5210 * tree-pass.h (PROP_alias): Remove.
5211 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5212 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5213 * tree-nrv.c (pass_return_slot): Likewise.
5214 * tree-object-size.c (pass_object_sizes): Likewise.
5215 * tree-ssa-dom.c (pass_dominator): Likewise.
5216 (pass_phi_only_cprop): Likewise.
5217 * tree-ssa-dse.c (pass_dse): Likewise.
5218 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5219 (pass_cselim): Likewise.
5220 * tree-ssa-pre.c (pass_pre): Likewise.
5221 (pass_fre): Likewise.
5222 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5223 * tree-ssa-sink.c (pass_sink_code): Likewise.
5224 * tree-stdarg.c (pass_stdarg): Likewise.
5225 * tree-tailcall.c (pass_tail_calls): Likewise.
5226 * tree-vrp.c (pass_vrp): Likewise.
5227
24b97832
ILT
52282009-05-10 Ian Lance Taylor <iant@google.com>
5229
5230 * basic-block.h (enum profile_status): Break out of struct
5231 control_flow_graph.
5232 * cgraph.h (struct inline_summary): Break out of struct
5233 cgraph_local_info.
5234 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5235 of struct cgraph_order_sort.
fbdf817d 5236 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5237 * cse.c (struct branch_path): Break out of struct
5238 cse_basic_block_data.
5239 * except.h (enum eh_region_type): Break out of struct eh_region.
5240 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5241 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5242 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5243 ggc_pch_data.
fbdf817d
UB
5244 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5245 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5246 * sched-int.h (enum post_call_group): New enum, broken out of
5247 struct deps.
5248 (struct deps_reg): Break out of struct deps.
5249 * target.h (struct asm_int_op): Break out of struct gcc_target.
5250 * tree-eh.c (struct goto_queue_node): Break out of struct
5251 leh_tf_state.
5252 * tree-inline.h (enum copy_body_cge_which): Break out of
5253 copy_body_data.
5254 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5255
5256 * c-decl.c (in_struct, struct_types): New static variables.
5257 (pushtag): Add loc parameter. Change all callers.
5258 (lookup_tag): Add ploc parameter. Change all callers.
5259 (check_compound_literal_type): New function.
5260 (parser_xref_tag): Add loc parameter. Change all callers. If
5261 -Wc++-compat, warn about struct/union/enum types defined within a
5262 struct or union.
5263 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5264 and loc parameters. Change all callers. Change error calls to
5265 error_at, using loc. For a redefinition, if the location of the
5266 original definition is known, report it. Set in_struct and
fbdf817d 5267 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5268 (finish_struct): Add new parameters enclosing_in_struct and
5269 enclosing_struct_types. Change all callers. Set
5270 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5271 in the struct. If in a struct, add this struct to struct_types.
5272 (start_enum): Add loc parameter. Change all callers. Use
5273 error_at for errors, using loc. For a redefinition, if the
5274 location of the original definition is known, report it. If in a
5275 struct, add this enum type to struct_types. If -Wc++-compat warn
5276 if in sizeof, typeof, or alignof.
fbdf817d
UB
5277 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5278 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5279 (c_parser_enum_specifier): Get enum location for start_enum.
5280 (c_parser_struct_or_union_specifier): Get struct location for
5281 start_struct. Save in_struct and struct_types status between
5282 start_struct and finish_struct.
5283 (c_parser_cast_expression): Get location of cast.
5284 (c_parser_alignof_expression): Get location of type.
5285 (c_parser_postfix_expression): Likewise.
5286 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5287 parameter. Change all callers. Call check_compound_literal_type.
5288 Use type_loc for error about variable size type.
5289 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5290 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5291 (c_cast_expr): Add loc parameter. Change all callers. If
5292 -Wc++-compat, warn about defining a type in a cast.
5293 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5294 (start_enum, start_struct, finish_struct): Update declarations.
5295 (parser_xref_tag, c_cast_expr): Update declarations.
5296 (check_compound_literal_type): Declare.
5297
7a2738fa
BE
52982009-05-11 Ben Elliston <bje@au.ibm.com>
5299
5300 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5301 for recent libcpp interface change.
5302 (rs6000_macro_to_expand): Likewise.
5303
af618949
MM
53042009-05-10 Michael Matz <matz@suse.de>
5305
5306 PR target/40031
5307 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5308 not at entry of function.
5309
b7d7a473
RG
53102009-05-10 Richard Guenther <rguenther@suse.de>
5311
5312 PR tree-optimization/40081
5313 Revert
5314 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5315 using the main variant of the element type. Do not fiddle with
5316 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5317
5318 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5319 structs with volatile fields.
5320
078c3644
JH
53212009-05-10 Jan Hubicka <jh@suse.cz>
5322
5323 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5324 (estimate_move_cost): Assert that it does not get called for
5325 VOID_TYPE_P.
078c3644
JH
5326 (estimate_num_insns): Skip VOID types in argument handling.
5327 (optimize_inline_calls): Delete unreachable blocks and verify that
5328 callgraph is valid.
5329
39ff5a96
JH
53302009-05-10 Jan Hubicka <jh@suse.cz>
5331
5332 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5333 * cgraph.c (cgraph_mark_address_taken_node): New function.
5334 (dump_cgraph_node): Dump new flag.
5335 * cgraph.h (struct cgraph_node): Add address_taken.
5336 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5337 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5338 since new direct calls can be born.
5339
9a0c6187
JM
53402009-05-10 Joseph Myers <joseph@codesourcery.com>
5341
5342 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5343 tok->val.node.node.
5344
4b685e14
JH
53452009-05-10 Jan Hubicka <jh@suse.cz>
5346
5347 PR middle-end/40084
fb0be169
EB
5348 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5349 argument; rewrite.
4b685e14
JH
5350 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5351 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5352 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5353 (fold_marked_statements): Update call to
5354 cgraph_update_edges_for_call_stmt.
4b685e14 5355
29d08eba
JM
53562009-05-10 Joseph Myers <joseph@codesourcery.com>
5357
5358 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5359 identifiers in diagnostics.
5360 * config/arm/arm.c (arm_handle_fndecl_attribute,
5361 arm_handle_isr_attribute): Likewise.
5362 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5363 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5364 * config/bfin/bfin.c (handle_int_attribute,
5365 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5366 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5367 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5368 Likewise.
5369 * config/darwin.c (darwin_handle_kext_attribute,
5370 darwin_handle_weak_import_attribute): Likewise.
5371 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5372 h8300_handle_eightbit_data_attribute,
5373 h8300_handle_tiny_data_attribute): Likewise.
5374 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5375 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5376 * config/i386/winnt.c (ix86_handle_shared_attribute,
5377 ix86_handle_selectany_attribute): Likewise.
5378 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5379 * config/m32c/m32c.c (function_vector_handler): Likewise.
5380 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5381 m68hc11_handle_fntype_attribute): Likewise.
5382 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5383 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5384 * config/mips/mips.c (mips_insert_attributes,
5385 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5386 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5387 rs6000_handle_struct_attribute): Likewise.
5388 * config/sh/sh.c (sh_insert_attributes,
5389 sh_handle_resbank_handler_attribute,
5390 sh_handle_interrupt_handler_attribute,
5391 sh2a_handle_function_vector_handler_attribute,
5392 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5393 Likewise.
5394 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5395 * config/spu/spu.c (spu_handle_fndecl_attribute,
5396 spu_handle_vector_attribute): Likewise.
5397 * config/stormy16/stormy16.c
5398 (xstormy16_handle_interrupt_attribute): Likewise.
5399 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5400 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5401
f41c4af3
JM
54022009-05-10 Joseph Myers <joseph@codesourcery.com>
5403
782dc37a 5404 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5405 (pp_translate_identifiers): New.
5406 (pp_identifier): Only conditionally translate identifier to locale
5407 character set.
5408 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5409 (pp_base_tree_identifier): Only conditionally translate identifier
5410 to locale character set.
5411 * c-pretty-print.c (M_): Define.
5412 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5413 fragments for conditional translation with M_.
5414 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5415 identifier translation.
5416
896d7dbd
RG
54172009-05-10 Richard Guenther <rguenther@suse.de>
5418
5419 PR tree-optimization/40081
5420 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5421 using the main variant of the element type. Do not fiddle with
5422 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5423
9a23acef
JH
54242009-05-09 Jan Hubicka <jh@suse.cz>
5425
5426 PR middle-end/40080
5427 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5428 indirect calls; verify cgraph afterwards.
5429
d563610d
JH
54302009-05-09 Jan Hubicka <jh@suse.cz>
5431
5432 PR bootstrap/40082
5433 * ipa.c (update_inlined_to_pointer): New function.
5434 (cgraph_remove_unreachable_nodes): Use it.
5435
f08a18d0
JH
54362009-05-09 Jan Hubicka <jh@suse.cz>
5437
5438 * tree-eh.c (struct leh_state): Remove prev_try.
5439 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5440 not track prev_try.
5441 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5442 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5443 remove_eh_handler_and_replace, foreach_reachable_handler,
5444 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5445 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5446 (gen_eh_region_cleanup): Update prototype.
5447
0afd7219
JH
54482009-05-09 Jan Hubicka <jh@suse.cz>
5449
5450 PR middle-end/40043
5451 * except.c (copy_eh_region): Always set prev_try.
5452 (redirect_eh_edge_to_label): Find outer try.
5453 (foreach_reachable_handler): When looking for prev try
5454 handle case where previous try is not going to be taken.
5455
ad6c0864
MM
54562009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5457
5458 PR tree-optimization/40049
5459 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5460 only vector/vector shifts, convert the type of the constant to the
5461 appropriate type to avoid building incorrect trees, which
5462 eventually have problems with garbage collection.
5463
c94f9067
JM
54642009-05-08 Joseph Myers <joseph@codesourcery.com>
5465
5466 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5467 -1 for complex floating-point types if honoring signed zeros.
5468
9187e02d
JH
54692009-05-08 Jan Hubicka <jh@suse.cz>
5470
20acb8a2
EB
5471 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5472 argument; handle correctly when profile is absent.
9187e02d
JH
5473 (build_cgraph_edges): Update.
5474 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5475 * cgraph.c: Do not include varray.h.
5476 (cgraph_set_call_stmt_including_clones): New function.
5477 (cgraph_create_edge_including_clones): Likewise
5478 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5479 (cgraph_update_edges_for_call_stmt): Handle clones.
5480 (cgraph_remove_node): Handle clone tree.
5481 (cgraph_remove_node_and_inline_clones): New function.
5482 (dump_cgraph_node): Dump clone tree.
5483 (cgraph_clone_node): Handle clone tree.
20acb8a2 5484 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5485 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5486 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5487 (cgraph_clone_info): New function.
9187e02d 5488 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5489 (cgraph_remove_node_and_inline_clones,
5490 cgraph_set_call_stmt_including_clones,
5491 cgraph_create_edge_including_clones,
5492 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5493 (cgraph_function_versioning): Use VEC argument.
5494 (compute_call_stmt_bb_frequency): Update prototype.
5495 (cgraph_materialize_all_clones): New function.
5496 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5497 (ipcp_create_replace_map): Update to VECtors.
5498 (ipcp_update_callgraph): Use virtual clones.
5499 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5500 (ipcp_update_profiling): Do not update local profiling.
5501 (ipcp_insert_stage): Use VECtors and virtual clones.
5502 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5503 (clone_of_p): New function.
5504 (cgraph_preserve_function_body_p): Use clone tree.
5505 (cgraph_optimize): Materialize clones.
5506 (cgraph_function_versioning): Update for VECtors.
5507 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5508 (cgraph_materialize_clone): New function.
5509 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5510 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5511 * ipa.c: Include gimple.h.
5512 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5513 * ipa-prop.c (ipa_note_param_call): Update call to
5514 compute_call_stmt_bb_frequencycall.
9187e02d 5515 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5516 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5517 (copy_bb): Handle updating of clone tree; add new edge when new call
5518 appears.
5519 (expand_call_inline): Be strict about every call having edge.
5520 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5521 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5522 (tree_function_versioning): Use VECtors; always remove unreachable
5523 blocks and fold conditionals.
5524 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5525 (tree_function_versioning): Remove.
5526 * Makefile.in (GTFILES): Remove tree-inline.c
5527 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5528 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5529 tree.
9187e02d 5530
9b86d6bb
L
55312009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5532 Andrew Morrow <acm@google.com>
5533
5534 PR c/36892
5535 * c-common.c (c_common_attribute_table): Permit deprecated
5536 attribute to take an optional argument.
5537 (handle_deprecated_attribute): If the optional argument to
5538 __attribute__((deprecated)) is not a string ignore the attribute
5539 and emit a warning.
5540
5541 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5542 * c-typeck.c (build_component_ref): Likewise.
5543 (build_external_ref): Likewise.
5544
5545 * toplev.c (warn_deprecated_use): Add an attribute argument.
5546 Emit the message associated with __attribute__((deprecated)).
5547
5548 * toplev.h (warn_deprecated_use): Updated.
5549
5550 * doc/extend.texi: Document new optional parameter to
5551 __attribute__((deprecated))
5552
82ad047f
ME
55532009-05-08 Michael Eager <eager@eagercon.com>
5554
5555 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5556 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5557
788d3075
RG
55582009-05-08 Richard Guenther <rguenther@suse.de>
5559
5560 PR tree-optimization/40062
5561 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5562 Avoid exponential behavior.
5563
00952e97
PB
55642009-05-08 Paolo Bonzini <bonzini@gnu.org>
5565
5566 PR rtl-optimization/33928
5567 PR 26854
5568 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5569 process_uses, build_single_def_use_links): New.
5570 (update_df): Update use_def_ref.
5571 (forward_propagate_into): Use get_def_for_use instead of use-def
5572 chains.
5573 (fwprop_init): Call build_single_def_use_links and let it initialize
5574 dataflow.
5575 (fwprop_done): Free use_def_ref.
5576 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5577 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5578 df_rd_simulate_one_insn): New.
5579 (df_rd_bb_local_compute_process_def): Update head comment.
5580 (df_chain_create_bb): Use the new RD simulation functions.
5581 * df.h (df_rd_simulate_artificial_defs_at_top,
5582 df_rd_simulate_one_insn): New.
5583 * opts.c (decode_options): Enable fwprop at -O1.
5584 * doc/invoke.texi (-fforward-propagate): Document this.
5585
2ca862e9
JM
55862009-05-08 Joseph Myers <joseph@codesourcery.com>
5587
5588 PR c/24581
5589 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5590 and one complex operand specially.
5591 * tree-complex.c (some_nonzerop): Do not identify a real value as
5592 zero if flag_signed_zeros.
5593
3e807ffc
PB
55942009-05-08 Paolo Bonzini <bonzini@gnu.org>
5595
5596 PR rtl-optimization/33928
7925c06c 5597 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5598
1bfdbb29
PB
55992009-05-08 Paolo Bonzini <bonzini@gnu.org>
5600
5601 PR rtl-optimization/33928
e913423f
EB
5602 * loop-invariant.c (struct use): Add addr_use_p.
5603 (struct def): Add n_addr_uses.
5604 (struct invariant): Add cheap_address.
5605 (create_new_invariant): Set cheap_address.
5606 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5607 (record_uses): Pass df_ref to record_use.
5608 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5609 used only as such.
1bfdbb29 5610
702cb2a0
KK
56112009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5612
5613 * config/sh/sh.c: Do not include c-pragma.h.
5614
5e8df753
AP
56152009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5616
5617 * config/spu/spu.c: Remove include of c-common.h.
5618
6ec637a4
JJ
56192009-05-07 Janis Johnson <janis187@us.ibm.com>
5620
5621 PR c/39037
5622 * c-common.h (mark_valid_location_for_stdc_pragma,
5623 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5624 clear_float_const_decimal64, float_const_decimal64_p): New.
5625 * c.opt (Wunsuffixed-float-constants): New.
5626 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5627 unsuffixed float constant, handle new warning.
5628 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5629 * c-decl.c (c_scope): New flag float_const_decimal64.
5630 (set_float_const_decimal64, clear_float_const_decimal64,
5631 float_const_decimal64_p): New.
5632 (push_scope): Set new flag.
5633 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5634 to use STDC pragmas.
5635 (c_parser_external_declaration): Ditto.
5636 (c_parser_compound_statement_nostart): Ditto.
5637 * c-pragma.c (valid_location_for_stdc_pragma,
5638 mark_valid_location_for_stdc_pragma,
5639 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5640 handle_pragma_float_const_decimal64): New.
5641 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5642 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5643 set_float_const_decimal64, clear_float_const_decimal64,
5644 float_const_decimal64_p): New dummy functions.
5645 * doc/extend.texi (Decimal Float): Remove statement that the
5646 pragma, and suffix for double constants, are not supported.
5647 * doc/invoke.texi (Warning Options): List new option.
5648 (-Wunsuffixed-float-constants): New.
5649
45b9b2e9
SB
56502009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5651
5652 * config/i386/i386.c: Do not include c-common.h.
5653
e71da632
MH
56542009-05-07 Mark Heffernan <meheff@google.com>
5655
5656 * doc/invoke.texi (Debugging Options): Document change of debugging
5657 dump location.
e913423f 5658 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5659 aux_base_name directory.
5660
fe4c7bc6
HS
56612009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5662
5663 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5664 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5665
3b3e44eb
RAE
56662009-05-07 Rafael Avila de Espindola <espindola@google.com>
5667
5668 * Makefile.in (install-plugin): Simplify a bit.
5669
fac41238
PB
56702009-05-07 Paolo Bonzini <bonzini@gnu.org>
5671
5672 * Makefile.in (OBJS-common): Add regcprop.o.
5673 (regcprop.o): New.
5674 * timevar.def (TV_CPROP_REGISTERS): New.
5675 * regrename.c (regrename_optimize): Return 0.
5676 (rest_of_handle_regrename): Delete.
5677 (pass_rename_registers): Point to regrename_optimize.
5678 (struct value_data_entry, struct value_data,
5679 kill_value_one_regno, kill_value_regno, kill_value,
5680 set_value_regno, init_value_data, kill_clobbered_value,
5681 kill_set_value, kill_autoinc_value, copy_value,
5682 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5683 replace_oldest_value_reg, replace_oldest_value_addr,
5684 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5685 debug_value_data, validate_value_data): Move...
5686 * regcprop.c: ... here.
5687 (rest_of_handle_cprop): Delete.
5688 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5689
472e0df9
JJ
56902009-05-07 Jakub Jelinek <jakub@redhat.com>
5691
5692 PR middle-end/40057
5693 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5694 GEN_INT for 1 << bitnum.
5695 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5696 build_int_cst_type.
5697
0d50d55a
UB
56982009-05-07 Uros Bizjak <ubizjak@gmail.com>
5699
5700 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5701 Remove wrong description of "nand" operation.
0d50d55a 5702
22f597f1
RG
57032009-05-06 Richard Guenther <rguenther@suse.de>
5704 Adam Nemet <anemet@caviumnetworks.com>
5705
5706 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5707 comment. Add that if LHS is not a gimple register, then RHS1 has
5708 to be a single object (GIMPLE_SINGLE_RHS).
5709
641cac0b
AN
57102009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5711
5712 * expr.c (get_def_for_expr): Move it up in the file.
5713 (store_field): When expanding a bit-field store, look at the
5714 defining gimple stmt for the masking conversion.
5715
5a5c6435
JJ
57162009-05-06 Janis Johnson <janis187@us.ibm.com>
5717
5718 PR middle-end/39986
5719 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5720 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5721 32-bit memcpy into long.
5722
96474f36
JJ
57232009-05-06 Jakub Jelinek <jakub@redhat.com>
5724
5725 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5726 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5727 new_reg_loc_descr.
5728 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5729 instead of appending DW_OP_deref*.
5730
529ff441
MM
57312009-05-06 Michael Matz <matz@suse.de>
5732
5733 PR middle-end/40021
5734 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5735 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5736
9419a9fd
RAE
57372009-05-06 Rafael Avila de Espindola <espindola@google.com>
5738
5739 * Makefile.in (install-plugin): Fix srcdir handling.
5740
fff1894c
AB
57412009-05-06 Andrey Belevantsev <abel@ispras.ru>
5742
5743 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5744 when processing for not_regs_needed bitmap.
5745 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5746 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5747 handling it for rhs.
5748
700ae70c
L
57492009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5750
ab3426a7 5751 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5752 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5753 * config/i386/predicates.md (incdec_operand): Likewise.
5754 (aligned_operand): Likewise.
5755 * config/i386/sse.md (divv8sf3): Likewise.
5756 (sqrtv8sf2): Likewise.
5757
67341fb5
L
57582009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5759
5760 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5761
5762 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5763
87946f42
L
57642009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5765
5766 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5767 ssemodesuffixf2c with avxmodesuffixf2c.
5768
1202aec1
JM
57692009-05-06 Joseph Myers <joseph@codesourcery.com>
5770
5771 PR c/40032
aa016ff7 5772 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5773
6e57a01d
JJ
57742009-05-05 Jakub Jelinek <jakub@redhat.com>
5775
5776 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5777 (struct tree_base): Adjust spacing for 8 bit boundaries.
5778 (struct tree_decl_common): Add decl_by_reference_flag bit.
5779 (DECL_BY_REFERENCE): Adjust.
5780 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5781 print DECL_BY_REFERENCE bit.
5782 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5783 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5784 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5785 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5786 unconditionally.
5787
32f579f6
JJ
5788 PR middle-end/39666
5789 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5790 range of the type, but default label is missing, add it with one
5791 of the existing labels instead of adding a new label for it.
5792
617ab743
JM
57932009-05-05 Joseph Myers <joseph@codesourcery.com>
5794
5795 * dwarf.h: Remove.
5796
bf016de8
RAE
57972009-05-05 Rafael Avila de Espindola <espindola@google.com>
5798
5799 * Makefile.in (enable_plugin, plugin_includedir): New.
5800 (install): Depend on install-plugin.
5801 (PLUGIN_HEADERS): New.
5802 (install-plugin): New.
5803 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5804
7f8fdb9f
RG
58052009-05-05 Richard Guenther <rguenther@suse.de>
5806
5807 PR tree-optimization/40022
5808 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5809 the only vuse.
5810 (phivn_valid_p): Fix tuplification error, simplify.
5811 (phiprop_insert_phi): Add dumps.
5812 (propagate_with_phi): Simplify.
5813
8d972839
RG
58142009-05-05 Richard Guenther <rguenther@suse.de>
5815
5816 PR middle-end/40023
aa016ff7 5817 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5818
66ba9b0b
SZ
58192009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5820
5821 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5822 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5823 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5824 block_ultimate_origin): Rearrange the declarations line to match the
5825 comment that indicates the .c file which the functions are defined.
5826 (dwarf2out_*, set_decl_rtl): Add comment.
5827 (get_base_address): Adjust comment.
5828 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5829 declarations line and add comment.
5830 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5831
4f1e4960
JM
58322009-05-04 Joseph Myers <joseph@codesourcery.com>
5833
5834 * attribs.c (decl_attributes): Use %qE for identifiers in
5835 diagnostics.
5836 * cgraphunit.c (verify_cgraph_node): Translate function names to
5837 locale character set in diagnostics.
5838 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5839 diagnostics.
5840 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5841 Document that functions are named in UTF-8.
5842 * expr.c (expand_expr_real_1): Translate function names to locale
5843 character set in diagnostics.
5844 * gimplify.c (omp_notice_variable, omp_is_private,
5845 gimplify_scan_omp_clauses): Use %qE for identifiers in
5846 diagnostics.
5847 * langhooks.c (lhd_print_error_function): Translate function names
5848 to locale character set.
5849 * langhooks.h (decl_printable_name): Document that return value is
5850 in internal character set.
5851 * stmt.c: Include pretty-print.h
5852 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5853 diagnostics.
5854 (resolve_operand_name_1): Translate named operand name to locale
5855 character set.
5856 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5857 diagnostics.
5858 * toplev.c (announce_function): Translate function names to locale
5859 character set.
5860 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5861 (default_tree_printer): Use pp_identifier or translate identifiers
5862 to locale character set. Mark "<anonymous>" for translation.
5863 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5864 for identifiers in diagnostics.
5865 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5866 diagnostics.
5867 * varasm.c (output_constructor): Use %qE for identifiers in
5868 diagnostics.
5869
40540e68
RAE
58702009-05-04 Rafael Avila de Espindola <espindola@google.com>
5871
5872 * configure.ac: use ` ` instead of $()
5873 * configure: Regenerate.
5874
33fc884c
BE
58752009-05-05 Ben Elliston <bje@au.ibm.com>
5876
5877 * config/pa/linux-atomic.c: Eliminate conditional include of
5878 errno.h on non-LP64 systems to simplify build requirements.
5879
88388a52
JM
58802009-05-04 Joseph Myers <joseph@codesourcery.com>
5881
5882 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5883 diagnostics.
5884 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5885 and pass value to identifier_to_locale.
5886 (warn_variable_length_array): Make name a tree.
5887 (grokdeclarator): Separate diagnostic texts for named and unnamed
5888 declarators. Use %qE for named declarators.
5889 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5890 diagnostics.
5891 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5892 identifiers in diagnostics.
5893 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5894 identifier_to_locale. Mark "anonymous" strings for translation.
5895
960c5c79
ME
58962009-05-04 Michael Eager <eager@eagercon.com>
5897
5898 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5899 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5900
d083fbba
ME
59012009-05-04 Michael Eager <eager@eagercon.com>
5902
5903 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5904 TARGET_SINGLE_FLOAT check.
5905
c3ba8d32
ME
59062009-05-04 Michael Eager <eager@eagercon.com>
5907
5908 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5909
edce9f18
ME
59102009-05-04 Michael Eager <eager@eagercon.com>
5911
5912 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5913 * config/rs6000/t-xilinx: New
5914
506d7b68
PB
59152009-05-04 Paolo Bonzini <bonzini@gnu.org>
5916
e913423f 5917 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5918 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5919 * gcc/explow.c (memory_address): Use target hook.
5920 * gcc/targhooks.c (default_legitimize_address): New.
5921 * gcc/targhooks.h (default_legitimize_address): New.
5922 * gcc/target.h (legitimize_address): New.
5923 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5924 (TARGET_INITIALIZER): Include it.
5925 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5926
5927 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5928 * config/bfin/bfin.c (legitimize_address): Remove.
5929 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5930 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5931 Remove.
506d7b68
PB
5932 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5933 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5934
5935 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5936 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5937 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5938 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5939 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5940 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5941 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5942 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5943 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5944 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5945 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5946 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5947 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5948 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5949 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5950 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5951 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5952 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5953 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5954 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5955 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5956 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5957 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5958
5959 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5960 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5961 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5962 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5963 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5964 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5965 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5966 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5967 (thumb_legitimize_address): Delete.
5968 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5969 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5970 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5971 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5972 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5973 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5974 Delete.
5975 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5976 Delete.
506d7b68
PB
5977
5978 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5979 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5980 * config/m32r/m32r.c (m32r_legitimize_address): New.
5981 * config/m68k/m68k.c (m68k_legitimize_address): New.
5982 * config/score/score.c (score_legitimize_address): Standardize.
5983 * config/score/score3.c (score3_legitimize_address): Standardize.
5984 * config/score/score3.h (score3_legitimize_address): Adjust.
5985 * config/score/score7.c (score7_legitimize_address): Standardize.
5986 * config/score/score7.h (score7_legitimize_address): Adjust.
5987 * config/sh/sh.c (sh_legitimize_address): New.
5988 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5989
5990 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5991 (s390_legitimize_address): ... this.
5992 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5993 (sparc_legitimize_address): ... this.
5994 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5995 (ix86_legitimize_address): ... this.
5996 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5997 (avr_legitimize_address): ... this.
5998 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5999 (mn10300_legitimize_address): ... this.
6000 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6001 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6002 (alpha_expand_mov): Adjust call.
6003
6004 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6005 * config/spu/spu.c (spu_legitimize_address): Likewise.
6006 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6007 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6008
a3af5087
JM
60092009-05-04 Joseph Myers <joseph@codesourcery.com>
6010
6011 * intl.c (locale_encoding, locale_utf8): New.
6012 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6013 * intl.h (locale_encoding, locale_utf8): Declare.
6014 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6015 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6016 New.
6017 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6018 argument.
6019 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6020 (pp_base_tree_identifier): Declare as function.
6021 (identifier_to_locale): Declare.
6022 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6023 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6024
ea5cd5f1
RG
60252009-05-04 Richard Guenther <rguenther@suse.de>
6026
6027 PR middle-end/40015
6028 * builtins.c (fold_builtin_memory_op): Do not decay to element
6029 type if the size matches the whole array.
6030
ddc2690a
KH
60312009-05-04 Kazu Hirata <kazu@codesourcery.com>
6032
6033 * expmed.c (synth_mult): When trying out a shift, pass the result
6034 of a signed shift.
6035
ef268d34
KH
60362009-05-04 Kazu Hirata <kazu@codesourcery.com>
6037
6038 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6039 (shiftsub1_cost): New.
6040 (init_expmed): Compute shiftsub1_cost.
6041 (synth_mult): Optimize multiplications by constants of the form
6042 -(2^^m-1) for some constant positive integer m.
6043
255d3827
RG
60442009-05-03 Richard Guenther <rguenther@suse.de>
6045
6046 PR c/39983
6047 * c-typeck.c (array_to_pointer_conversion): Do not built
6048 ADDR_EXPRs of arrays of pointer-to-element type.
6049 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6050 up wrong ADDR_EXPRs after-the-fact.
6051 * c-common.c (strict_aliasing_warning): Strip pointer
6052 conversions for obtaining the original type.
6053 * builtins.c (fold_builtin_memset): Handle array types.
6054 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6055 and array types
6056
16c33770
RG
60572009-05-03 Richard Guenther <rguenther@suse.de>
6058
6059 PR middle-end/23329
6060 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6061 Do not lose casts from array types with unknown extent to array
6062 types with known extent.
6063 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6064 alias set compatibility.
6065
62a67c94
MLI
60662009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6067
6068 * flags.h (extra_warnings): Delete.
6069 * toplev.c (process_options): Handle Wuninitialized here.
6070 * opts.c (extra_warnings): Delete.
6071 (set_Wextra): Delete.
6072 (common_handle_option): -Wextra can be handled automatically.
6073 * c-opts.c (c_common_handle_option): Delete obsolete code.
6074 (c_common_post_options): Simplify comment.
6075 * common.opt (W): Add Var.
6076 (Wextra): Add Var.
6077 (Wuninitialized): Initialize to -1.
6078
8c7926c4
AN
60792009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6080 Richard Guenther <rguenther@suse.de>
6081
6082 * expr.c (get_def_for_expr): New function.
6083 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6084 SSA rather than trees.
6085 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6086 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6087
fa5da7de
JM
60882009-05-03 Joseph Myers <joseph@codesourcery.com>
6089
6090 * c-common.c (reswords): Add _Imaginary.
6091 * c-common.c (enum rid): Add RID_IMAGINARY.
6092
2ddd5020
PB
60932009-05-03 Paolo Bonzini <bonzini@gnu.org>
6094
6095 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6096 Patch by Richard Guenther.
6097
aea88c05
AS
60982009-05-03 Anatoly Sokolov <aesok@post.ru>
6099
6100 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6101 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6102 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6103 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6104 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6105 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6106 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6107 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6108 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6109 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6110 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6111 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6112 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6113 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6114 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6115 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6116 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6117 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6118
85e59f3a
RG
61192009-05-02 Richard Guenther <rguenther@suse.de>
6120
6121 PR tree-optimization/39940
6122 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6123 doing so.
6124
4636b850
RG
61252009-05-02 Richard Guenther <rguenther@suse.de>
6126
6127 PR middle-end/40001
6128 * tree-ssa.c (execute_update_addresses_taken): Properly check
6129 if we can mark a variable DECL_GIMPLE_REG_P.
6130 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6131 back to the end of the function.
6132 (is_gimple_reg_type): Remove complex type special casing.
6133 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6134 if not optimizing.
6135
5e10cb5a
BE
61362009-05-02 Ben Elliston <bje@au.ibm.com>
6137
6138 * doc/collect2.texi (Collect2): Document search path behaviour
6139 when configured with --with-ld.
6140
048bf48b
JH
61412009-05-02 Jan Hubicka <jh@suse.cz>
6142
6143 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6144 parameter; update callers.
aa016ff7
UB
6145 (coalesce_cost_edge): EH edges are costier because they needs
6146 splitting even if not critical and even more costier when there are
6147 multiple EH predecestors.
048bf48b 6148
d5c5f9ab
JH
61492009-05-02 Jan Hubicka <jh@suse.cz>
6150
6151 * except.c (remove_eh_handler_and_replace): Handle updating after
6152 removing TRY blocks.
6153
2ed1959a
EB
61542009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6155
6156 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6157
d363a7e7
SB
61582009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6159
6160 * varasm.c: Do not include c-pragma.h.
6161 * attribs.c: Do not incude c-common.h.
6162
9c3d55b4
MM
61632009-05-01 Michael Matz <matz@suse.de>
6164
6165 * calls.c (initialize_argument_information): Handle SSA names like
6166 decls with a non MEM_P DECL_RTL.
6167
ea264ca5
SB
61682009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6169
6170 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6171 * ipa-utils.c: Likewise.
6172 * ipa-type-escape.c: Likewise.
6173 * cgraphunit.c Do not include c-common.h.
6174 * ipa-pure-const.c: Likewise.
6175 * tree-if-conv.c: Likewise.
6176 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6177 * ipa-struct-reorg.c: Likewise.
6178 * tree-nomudflap.c: Likewise.
6179 * tree-ssa-structalias.c: Likewise.
6180
6c5d4d1a
SB
61812009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6182
6183 * store-motion.c: Many cleanups to make this pass a first-class
6184 citizen instead of an appendix to gcse load motion. Add TODO list
6185 to make this pass faster/cleaner/better.
6186
6187 (struct ls_expr): Post gcse.c-split cleanups.
6188 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6189 "stores" field to "avail_stores".
6190 (pre_ldst_mems): Rename to store_motion_mems.
6191 (pre_ldst_table): Rename to store_motion_mems_table.
6192 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6193 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6194 (ldst_entry): Rename to st_expr_entry, update users.
6195 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6196 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6197 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6198 update caller.
6c5d4d1a
SB
6199 (first_ls_expr): Rename to first_st_expr, update users.
6200 (next_ls_expr): Rename to next_st_expr, update users.
6201 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6202 fields properly for store motion instead of names inherited from load
6203 motion in gcse.c.
6204 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6205 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6206 are done with it.
6207
6208 (ae_kill): Rename to st_kill, update users.
6209 (ae_gen): Rename to st_avloc, update users.
6210 (transp): Rename to st_transp, update users.
6211 (pre_insert_map): Rename to st_insert_map, update users.
6212 (pre_delete_map): Rename to st_delete_map, update users.
6213 (insert_store, build_store_vectors, free_store_memory,
6214 one_store_motion_pass): Update for abovementioned changes.
6215
6216 (gcse_subst_count, gcse_create_count): Remove.
6217 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6218 and "n_stores_created", local variables.
6219
6220 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6221 use for_each_rtx.
6222
6223 (regvec, compute_store_table_current_insn): Remove.
6224 (reg_set_info, reg_clear_last_set): Remove.
6225 (compute_store_table): Use DF caches instead of local dataflow
6226 solvers.
6227
b02cec6e
JM
62282009-05-01 Joseph Myers <joseph@codesourcery.com>
6229
6230 * c-objc-common.c (c_tree_printer): Print identifiers with
6231 pp_identifier, not pp_string. Mark "({anonymous})" for
6232 translation.
6233 * c-pretty-print.c (pp_c_ws_string): New.
6234 (pp_c_cv_qualifier, pp_c_type_specifier,
6235 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6236 pp_c_storage_class_specifier, pp_c_function_specifier,
6237 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6238 pp_c_primary_expression, pp_c_postfix_expression,
6239 pp_c_unary_expression, pp_c_shift_expression,
6240 pp_c_relational_expression, pp_c_equality_expression,
6241 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6242 use pp_string and pp_c_ws_string in place of pp_identifier and
6243 pp_c_identifier for non-identifiers. Mark English strings for
6244 translation.
6245 * c-pretty-print.h (pp_c_ws_string): Declare.
6246
cd533689
PP
62472009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6248 Roland McGrath <roland@redhat.com>
6249
aa016ff7 6250 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6251 (ENABLE_LD_BUILDID): New configuration option.
6252 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6253 (LINK_BUILDID_SPEC): New macro.
6254 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6255 link_spec.
6256 * doc/install.texi: Document --enable-linker-build-id option.
6257 * configure: Rebuild.
6258 * config.in: Rebuild.
6259
ba6adec4
AN
62602009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6261
6262 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6263 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6264 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6265 MIPS_GP_SAVE_AREA_SIZE.
6266 * config/mips/mips.c (struct mips_frame_info): Update comment
6267 before arg_pointer_offset and hard_frame_pointer_offset.
6268 (mips_compute_frame_info): Update diagram before function: to
6269 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6270 indicate the position of frame_pointer_rtx with -fstack-protector and
6271 to show args_size. Don't allocate cprestore area for leaf functions
6272 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6273 cprestore_size.
6274 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6275
48f5b722
MM
62762009-04-30 Michael Matz <matz@suse.de>
6277
ba6adec4
AN
6278 PR tree-optimization/39955
6279 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6280
b65d6744
DK
62812009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6282
6283 * ira.c (setup_cover_and_important_classes): Use safe macro
6284 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6285 directly.
6286 * genpreds.c (write_tm_preds_h): Output suitable definition of
6287 REG_CLASS_FOR_CONSTRAINT.
6288
f136c8ae
RAE
62892009-04-30 Rafael Avila de Espindola <espindola@google.com>
6290
6291 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6292 instead of an int.
6293 * bitmap.c (bitmap_descriptor): Likewise.
6294 * ggc-common.c (loc_descriptor): Likewise.
6295 * varray.c (varray_descriptor): Likewise.
6296 * vec.c (vec_descriptor): Likewise.
6297
43fcece8 62982009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6299
6300 * Makefile.in (dce.o): Add $(EXCEPT_H).
6301 * dce.c: Include except.h and delete redundant vector definitions.
6302 (deletable_insn_p): Return false for non-call insns that can throw
6303 if DF is running.
6304
df35c271
SB
63052009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6306
6307 * gcse.c (ae_gen): Remove.
6308 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6309 and make non-static function to make it available in store-motion.c.
6310 Update call sites with search-and-replace.
6311 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6312 extract_mentioned_regs, extract_mentioned_regs_helper,
6313 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6314 store_killed_in_insn, store_killed_after, store_killed_before,
6315 build_store_vectors, insert_insn_start_basic_block, insert-store,
6316 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6317 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6318 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6319 * store-motion.c: ...new file. Also copy data structures from gcse.c
6320 and clean up to remove parts not used by store motion.
6321 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6322 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6323
f711a87a
RR
63242009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6325
6326 PR target/38571
6327 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6328 when optimizing for size.
6329
fa5ed76e
HPN
63302009-04-30 Hans-Peter Nilsson <hp@axis.com>
6331
6332 * gcse.c (gcse_constant_p): Fix typo in last change.
6333
0acbbdb0
RAE
63342009-04-30 Rafael Avila de Espindola <espindola@google.com>
6335
6336 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6337
82f5c05d
AK
63382009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6339
6340 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6341
6d8f135b
JW
63422009-04-29 James E. Wilson <wilson@codesourcery.com>
6343
6344 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6345 CONST_HIGH_PART result.
6346
c21ca196
AS
63472009-04-29 Anatoly Sokolov <aesok@post.ru>
6348
6349 * config/avr/avr.c (initial_elimination_offset): Rename to
6350 avr_initial_elimination_offset.
6351 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6352 change return type to bool.
6353 (avr_can_eliminate): New function.
6354 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6355 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6356 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6357 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6358 avr_initial_elimination_offset.
6359 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6360 (avr_initial_elimination_offset): Define.
6361
2a34bece 63622009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6363 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6364
6365 PR rtl-optimization/39938
6366 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6367 * cfgrtl.c: Include insn-attr.h.
6368 (rest_of_pass_free_cfg): New function.
6369 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6370 * resource.c (init_resource_info): Remove call to df_analyze.
6371
5dc7911e
RG
63722009-04-29 Richard Guenther <rguenther@suse.de>
6373
6374 PR target/39943
6375 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6376 allow conversion to signed integers.
6377
1fe479fd
RG
63782009-04-29 Richard Guenther <rguenther@suse.de>
6379
6380 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6381 shifts of floating point vectors if the shift amount is
6382 a constant multiple of the element size.
6383
8e001680
AK
63842009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6385 Michael Matz <matz@suse.de>
6386
6387 PR middle-end/39927
6388 PR bootstrap/39929
6389 * tree-outof-ssa.c (emit_partition_copy): New function.
6390 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6391 insert_part_to_rtx_on_edge): Perform the partition base var
6392 copy using emit_partition_copy.
6393 (insert_value_copy_on_edge): Convert constants to the right mode.
6394 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6395 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6396
e50e3081
BS
63972009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6398
6399 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6400 scan backwards to try to find a constant to initialize it.
6401
4e5d521b
BS
6402 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6403 insn before the loop_end instruction, don't look past labels.
6404
7c90021d
RG
64052009-04-29 Richard Guenther <rguenther@suse.de>
6406
6407 PR middle-end/39937
6408 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6409 loose type conversions.
6410 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6411 stmts only if there are no uses of its definition.
6412
97a988bc
BS
64132009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6414
6415 * config/bfin/bfin.h (splitting_loops): Declare.
6416 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6417 Reorder bit definitions to be ascending.
6418 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6419 * config/bfin/bfin.c (splitting_loops): New variable.
6420 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6421 (struct loop_info): Remove members INIT and LOOP_INIT.
6422 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6423 the LSETUP sequence. Allow LC to be loaded from any register, but
6424 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6425 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6426 set to 1.
6427 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6428 of reload_completed.
aa016ff7 6429
97a988bc
BS
6430 From Jie Zhang:
6431 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6432
0c463e16
RAE
64332009-04-29 Rafael Avila de Espindola <espindola@google.com>
6434
6435 * Makefile.in (PLUGIN_VERSION_H): New.
6436 (OBJS-common): Remove plugin-version.o.
6437 (plugin.o): Depend on (PLUGIN_VERSION_H).
6438 (plugin-version.o): Remove.
6439 * configure: Regenerate
6440 * configure.ac: Create plugin-version.h.
6441 * gcc-plugin.h (plugin_gcc_version): Remove.
6442 (plugin_default_version_check): Change signature.
6443 * plugin-version.c: Remove.
6444 * plugin.c: Include plugin-version.h.
6445 (str_plugin_gcc_version_name): Remove.
6446 (try_init_one_plugin): Pass gcc version to plugin_init.
6447 (plugin_default_version_check): Both gcc and plugin versions are now
6448 arguments.
6449
307e7eab
BS
64502009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6451
6452 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6453 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6454 Remove special case testing for last insn of inner loops. Don't fail
6455 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6456
c5d96723
BS
6457 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6458 DREGS rather than comparing directly. Remove code that tries to
6459 account for latencies.
6460
de0b4ad5
RG
64612009-04-29 Richard Guenther <rguenther@suse.de>
6462
6463 PR tree-optimization/39941
6464 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6465 eliminating an indirect call.
6466
3a19701a
RG
64672009-04-29 Richard Guenther <rguenther@suse.de>
6468
6469 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6470 parameter. Allow invariants as base if !require_lvalue.
6471 (verify_gimple_assign_single): Adjust.
6472
a0a31d1e
BS
64732009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6474
6475 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6476 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6477 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6478 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6479 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6480 a VEC_SELECT.
aa016ff7
UB
6481 * config/bfin/bfin.c (bfin_expand_builtin,
6482 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6483
795bd26a
RG
64842009-04-28 Richard Guenther <rguenther@suse.de>
6485
6486 * tree-vect-loop.c (get_initial_def_for_induction): Use
6487 correct types for pointer increment.
6488
04be270f
KG
64892009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6490
6491 * toplev.c (print_version): Update GMP version string calculation.
6492
e1a3b85c
EB
64932009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6494
6495 PR rtl-optimization/39938
6496 * resource.c (init_resource_info): Add call to df_analyze.
6497
8224166e
UB
64982009-04-28 Uros Bizjak <ubizjak@gmail.com>
6499
6500 * config/alpha/alpha.md (usegp): Cast the result of
6501 alpha_find_lo_sum_using_gp to enum attr_usegp.
6502 * config/alpha/alpha.c (override_options): Remove end-of-structure
6503 marker element from cpu_table. Use array size of cpu_table to handle
6504 -mcpu and -mtune options.
6505 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6506
c5f0fe67
JM
65072009-04-28 Joseph Myers <joseph@codesourcery.com>
6508
6509 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6510 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6511 tune_32 and tune_64.
6512 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6513 support on PowerPC.
6514 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6515 * config/rs6000/option-defaults.h: ... here. New file.
6516 (OPT_64, OPT_32): Define.
6517 (MASK_64BIT): Define to 0 if not already defined.
6518 (OPT_ARCH64, OPT_ARCH32): Define.
6519 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6520 and tune_64.
6521
0c48a567
RR
65222009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6523
6524 * config/arm/arm.c (arm_override_options): Emit error on using
6525 fpa with AAPCS.
6526
f1028b9d
UB
65272009-04-28 Uros Bizjak <ubizjak@gmail.com>
6528
6529 PR rtl-optimization/39914
6530 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6531 registers for allocnos created from user-defined variables only
6532 when not optimizing.
6533
e0dd989a
RG
65342009-04-28 Richard Guenther <rguenther@suse.de>
6535
6536 PR middle-end/39937
6537 * fold-const.c (fold_binary): Use distribute_real_division only
6538 on float types.
6539
9a17c91d
SE
65402009-04-28 Steve Ellcey <sje@cup.hp.com>
6541
6542 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6543 add hpux-stdint.h to tm_file.
6544 (hppa[12]*-*-hpux11*): Ditto.
6545 (ia64*-*-hpux*): Ditto.
6546 * config/hpux-stdint.h: New.
60839f5d 6547 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6548 __STDC_EXT__ for all compiles.
60839f5d
EB
6549 * config/pa/pa-hpux.h: Ditto.
6550 * config/pa/pa-hpux10.h: Ditto.
6551 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6552
af04e659
CM
65532009-04-28 Catherine Moore <clm@codesourcery.com>
6554
6555 * debug.h (set_name): Add comment.
6556
04ef80ce
AP
65572009-04-28 Andrew Pinski <pinskia@gmail.com>
6558
6559 PR target/39929
6560 * config/darwin.c (machopic_gen_offset): Check
6561 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6562 * config/arm/arm.c (require_pic_register): Likewise.
6563
65ad77af
PB
65642009-04-28 Paolo Bonzini <bonzini@gnu.org>
6565
8224166e
UB
6566 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6567 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6568 m32c_promote_prototypes): Delete.
65ad77af 6569
1b15a008
MM
65702009-04-28 Michael Matz <matz@suse.de>
6571
6572 PR middle-end/39922
6573 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6574 constants.
6575
7569a6cc
RG
65762009-04-28 Richard Guenther <rguenther@suse.de>
6577
f1028b9d 6578 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6579
ead204d9
RR
65802009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6581
6582 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6583 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6584 * config/arm/arm-tune.md: Regenerate.
6585
f2c45f08 65862009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6587
f2c45f08
AM
6588 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6589 block if there are complex incoming edges.
6590 (sel_merge_blocks): Remove useless assert.
6591 (sel_redirect_edge_and_branch): Check that edge was redirected.
6592 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6593 (sel_find_rgns): Delete declaration.
6594 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6595 the region when it is not a preheader.
6596
7a00d767
UB
65972009-04-28 Uros Bizjak <ubizjak@gmail.com>
6598
6599 PR c/39323
6600 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6601
448ee662
RG
66022009-04-28 Richard Guenther <rguenther@suse.de>
6603
6604 * tree.h (SSA_NAME_VALUE): Remove.
6605 (struct tree_ssa_name): Remove value_handle member.
6606 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6607 array for jump threading.
6608 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6609 SSA_NAME_VALUEs.
6610 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6611 * tree-flow.h (threadedge_initialize_values): Declare.
6612 (threadedge_finalize_values): Likewise.
6613 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6614 (SSA_NAME_VALUE): Define.
6615 (threadedge_initialize_values): New function.
6616 (threadedge_finalize_values): Likewise.
6617 * tree-ssa-dom.c (ssa_name_values): New global variable.
6618 (SSA_NAME_VALUE): Define.
f1028b9d 6619 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6620
8644a673
IR
66212009-04-28 Ira Rosen <irar@il.ibm.com>
6622
6623 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6624 Use REPORT_VECTORIZED_LOCATIONS instead
6625 REPORT_VECTORIZED_LOOPS.
6626 * tree-vectorizer.c (vect_verbosity_level): Make static.
6627 (vect_loop_location): Rename to vect_location.
6628 (vect_set_verbosity_level): Update comment.
6629 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6630 and vect_location.
6631 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6632 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6633 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6634 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6635 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6636 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6637 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6638 REPORT_UNVECTORIZED_LOCATIONS.
6639 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6640 and vect_used_in_loop and to vect_unused_in_scope and
6641 vect_used_in_scope.
6642 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6643 (vect_verbosity_level): Remove declaration.
6644 (vect_analyze_operations): Likewise.
6645 (vect_analyze_stmt): Declare.
6646 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6647 REPORT_UNVECTORIZED_LOCATIONS.
6648 (vect_get_loop_niters): Fix indentation.
6649 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6650 (vect_analyze_loop_operations): New function.
6651 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6652 vect_analyze_operations.
6653 (vect_is_simple_reduction): Use new names.
6654 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6655 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6656 to specify whether the data references can be a part of interleaving
6657 chain.
8644a673
IR
6658 (vect_analyze_data_ref_dependence): Use new names.
6659 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6660 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6661 * tree-vect-patterns.c (widened_name_p): Use new names.
6662 (vect_recog_dot_prod_pattern): Likewise.
6663 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6664 (process_use, vect_mark_stmts_to_be_vectorized,
6665 vect_model_simple_cost, vect_model_store_cost,
6666 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6667 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6668 vectorizable_operation, vectorizable_type_demotion,
6669 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6670 vectorizable_condition): Likewise.
6671 (vect_analyze_operations): Split into vect_analyze_loop_operations
6672 and ...
6673 (vect_analyze_stmt): ... new function.
6674 (new_stmt_vec_info): Use new names.
6675 (vect_is_simple_use): Use new names and fix comment.
6676 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6677 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6678
b91322f2
UB
66792009-04-28 Uros Bizjak <ubizjak@gmail.com>
6680
6681 PR target/39911
6682 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6683 and integer modes for x87 operands. Do not ICE for unsupported size,
6684 generate error instead. Generate error for unsupported operand types.
6685 ['z']: Do not handle HImode memory operands specially. Warning
6686 for floating-point operands. Fallthru to 'Z' for unsupported operand
6687 types. Do not ICE for unsupported size, generate error instead.
6688 (output_387_binary_op): Use %Z to output operands.
6689 (output_fp_compare): Ditto.
6690 (output_387_reg_move): Ditto.
6691
b2ed71b6
BE
66922009-04-28 Ben Elliston <bje@au.ibm.com>
6693
6694 PR c++/35652
6695 Revert:
6696
6697 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6698
6699 * builtins.c (c_strlen): Do not warn here.
6700 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6701 * c-common.c (pointer_int_sum): Take an explicit location.
6702 Warn about offsets out of bounds.
6703 * c-common.h (pointer_int_sum): Adjust declaration.
6704
81f40b79
ILT
67052009-04-27 Ian Lance Taylor <iant@google.com>
6706
6707 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6708 names to symkind.
6709 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6710 * df-core.c (df_set_flags): Change return type to int. Change
6711 type of old_flags to int.
6712 (df_clear_flags): Likewise.
6713 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6714 (df_get_conditional_uses): Likewise.
6715 * df.h (df_set_flags, df_clear_flags): Update declarations.
6716 * dwarf2out.c (struct indirect_string_node): Change type of form
6717 field to enum dwarf_form.
6718 (AT_string_form): Change return type to enum dwarf_form.
6719 * fixed-value.c (fixed_compare): Add cast to enum type.
6720 * fwprop.c (update_df): Change 0 to VOIDmode.
6721 * gensupport.c: Change 0 to UNKNOWN.
6722 * gimple.h (gimple_cond_code): Add cast to enum type.
6723 * haifa-sched.c (reemit_notes): Add cast to enum type.
6724 * hooks.c (hook_int_void_no_regs): Remove function.
6725 * hooks.h (hook_int_void_no_regs): Remove declaration.
6726 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6727 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6728 * real.c (real_arithmetic): Add cast to enum type.
6729 (real_compare): Likewise.
6730 * target.h (struct gcc_target): Change return type of
6731 branch_target_register_class to enum reg_class.
6732 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6733 default_branch_target_register_class.
7a00d767 6734 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6735 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6736 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6737 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6738 cast to int.
6739 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6740 ERROR_MARK.
6741 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6742 vect_uninitialized_def. Change 0 to ERROR_MARK.
6743 * tree-vect-stmts.c (supportable_widening_operation): Don't
6744 initialize icode1 and icode2.
7a00d767 6745 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6746 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6747 and to STD_C89.
6748 (cmn_err_flag_specs): Change 0 to STD_C89.
6749 (cmn_err_char_table): Likewise.
6750 * config/arm/arm.c (get_arm_condition_code): Change type of code
6751 to enum arm_cond_code.
6752 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6753 (IWMMXT_BUILTIN2): Likewise.
6754 (neon_builtin_type_bits): Don't define typedef.
6755 (neon_builtin_datum): Change type of bits field to int.
6756 (arm_expand_neon_args): Add cast to enum type.
6757 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6758 TLS_MODEL_NONE.
6759 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6760 casts to enum type.
6761 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6762 MIPS_FP_COND_f.
6763 * config/mips/mips.md (jal_macro): Return enum constant.
6764 (single_insn): Likewise.
6765 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6766 CODE_FOR_nothing.
6767 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6768 casts to enum type.
6769 * config/s390/s390.c (s390_tune_flags): Change type to int.
6770 (s390_arch_flags): Likewise.
7a00d767 6771 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6772 * config/s390/s390.h (s390_tune_flags): Update declaration.
6773 (s390_arch_flags): Likewise.
6774 * config/sh/sh.c (prepare_move_operands): Compare
6775 tls_symbolic_operand result with enum constant.
6776 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6777 (sh_expand_prologue): Add cast to enum type.
6778 (sh_expand_epilogue): Likewise.
6779 (tls_symbolic_operand): Change return type to enum tls_model.
6780 (fpscr_set_from_mem): Add cast to enum type.
6781 (legitimize_pic_address): Compare tls_symbolic_operand result with
6782 enum constant.
6783 (sh_target_reg_class): Change return type to enum reg_class.
6784 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6785 PROCESSOR_xxx.
7a00d767
UB
6786 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6787 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6788 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6789 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6790 (delayed_branch, tls_call_delay): Likewise.
6791 (eligible_for_sibcall_delay): Likewise.
6792 (eligible_for_return_delay): Likewise.
6793 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6794 (spu_expand_builtin_1): Likewise.
6795
6796 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6797 for all types of conversions.
6798 (output_init_element): Issue -Wc++-compat warning if needed when
6799 initializing a bitfield with enum type.
6800 * c-parser.c (c_parser_expression): Set original_type to
6801 original_type of right hand operand of comman operator.
6802
e4ae5e77
RW
68032009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6804
6805 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6806 grammar nits.
7a00d767 6807 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6808 * doc/cpp.texi (Standard Predefined Macros)
6809 (Implementation-defined behavior): Likewise.
7a00d767 6810 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6811 * doc/gimple.texi (GIMPLE Exception Handling)
6812 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6813 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6814 * doc/invoke.texi (Warning Options, Optimize Options)
6815 (AVR Options, Darwin Options): Likewise.
6816 (Optimize Options): Reformulate -fwhole-program description.
6817 * doc/loop.texi (Lambda): Likewise.
6818 * doc/md.texi (Output Template, Define Constraints)
6819 (Standard Names, Insn Splitting): Likewise.
6820 * doc/options.texi (Option properties): Likewise.
6821 * doc/passes.texi (Tree-SSA passes): Likewise.
6822 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6823 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6824 (File Names and DBX): Likewise.
6825 * doc/trouble.texi (Incompatibilities): Likewise.
6826
1883802f 68272009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6828
6829 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6830 instruction is correct.
6831
1883802f 68322009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6833
6834 Allow non-constant arguments to conversion intrinsics.
6835 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6836 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6837 * spu.c (print_operand): Handle 'v' and 'w'.
6838 (exp2_immediate_p, spu_gen_exp2): Define.
6839 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6840 spu_convtf_1): Update parameter descriptions.
7a00d767 6841 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6842 * constraints.md ('v', 'w'): New.
6843 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6844 Remove.
6845 (i2f, I2F): New define_mode_attr.
6846 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6847 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6848 fixuns_truncv4sfv4si2): Update to use mode attribute.
6849 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6850 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6851 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6852 patterns for combine.
6853
5f39ad47
SB
68542009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6855
6856 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6857 (cprop, hoist, pre, store_motion): New debug counters.
6858 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6859 is not an RTL pass anymore.
6860 (pass_profiling): Remove extern decl for pass removed in 2005.
6861 (pass_gcse, pass_jump_bypass): Remove.
6862 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6863 to 0 for clean state.
6864 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6865 * cse.c (gate_handle_cse_after_global_opts,
6866 rest_of_handle_cse_after_global_opts): New functions.
6867 (pass_cse_after_global_opts): New pass, does local CSE.
6868 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6869 (TV_CPROP): New timevar.
6870 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6871 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6872 (gcse_main, recompute_all_luids): Remove.
6873 (compute_hash_table_work): Call max_reg_num instead of reading
6874 max_gcse_regno.
6875 (cprop_jump): Don't set run_jump_opt_after_gcse.
6876 (constprop_register): Always allow to alter jumps.
6877 (cprop_insn): Likewise.
6878 (do_local_cprop): Likewise.
6879 (local_cprop_pass): Likewise. Return non-zero if something changed.
6880 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6881 (find_implicit_sets): Add note about missed optimization opportunity.
6882 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6883 pass_rtl_cprop execute function.
6884 Don't bother tracking the pass number, each pass gets its own dumpfile
6885 now anyway.
6886 Always allow to alter jumpsand bypass jumps.
6887 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6888 will just find no suitable set.
6889 (pre_edge_insert): Fix dumping, this function is for PRE only.
6890 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6891 pass_rtl_pre execute function.
6892 (hoist_code): Return non-zero if something changed. Keep track of
6893 substitutions and insertions for statistics gathering similar to PRE.
6894 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6895 called from the pass_rtl_hoist execute function. Show pass statistics.
6896 (compute_store_table): Use max_reg_num directly instead of using the
6897 formerly global max_gcse_regno.
6898 (build_store_vectors): Likewise.
6899 (replace_store_insn): Fix dumping.
6900 (store_motion): Rename to ...
6901 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6902 pass, called from the pass_rtl_store_motion execute function. Keep
6903 track of substitutions and insertions for statistics gathering similar
6904 to PRE.
6905 (bypass_jumps): Remove, fold interesting bits into ...
6906 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6907 from the pass_rtl_cprop execute function.
6908 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6909 pass_jump_bypass): Remove.
6910 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6911 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6912 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6913 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6914 (gate_rtl_store_motion, execute_rtl_store_motion,
6915 pass_rtl_store_motion): New.
6916 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6917 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6918 * passes.c (init_optimization_passes): Remove pass_gcse and
6919 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6920 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6921 instead of pass_jump_bypass.
6922
c685de4a
RG
69232009-04-27 Richard Guenther <rguenther@suse.de>
6924
6925 PR middle-end/39928
6926 * gimplify.c (gimplify_expr): If we are required to create
6927 a temporary make sure it ends up as register.
6928
72d41f29
L
69292009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6930
6931 PR target/39903
6932 * config/i386/i386.c (construct_container): Don't call
6933 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6934 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6935
e97809c6
MM
69362009-04-27 Michael Matz <matz@suse.de>
6937
6938 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6939 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6940 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6941 (dump_replaceable_exprs): Take a bitmap.
6942 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6943 array.
6944 (expand_gimple_basic_block): Likewise.
6945 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6946 replaceable_expressions member a bitmap.
6947 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6948 (mark_replaceable): Likewise.
6949 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6950 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6951
211ca15c
RG
69522009-04-27 Richard Guenther <rguenther@suse.de>
6953
6954 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6955 (verify_stmts): Dispatch to gimple/type verification code.
6956 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6957 issue with call argument types.
6958
fca5f3d1
MM
69592009-04-27 Michael Matz <matz@suse.de>
6960
6961 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6962 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6963 to above.
6964
a1fa3e79 69652009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6966 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6967
6968 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6969 a label's basic block.
6970 (mark_target_live_regs): Tidy and rework obsolete comments.
6971 Change back DF problem to LIVE. If a label starts a basic block,
6972 assume that all registers that used to be live then still are.
6973 (init_resource_info): If a label starts a basic block, set its
6974 BLOCK_FOR_INSN accordingly.
6975 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6976
33b223c0
RG
69772009-04-27 Richard Guenther <rguenther@suse.de>
6978
6979 * tree-flow-inline.h (function_ann): Remove.
6980 (get_function_ann): Likewise.
6981 * tree-dfa.c (create_function_ann): Remove.
6982 * tree-flow.h (struct static_var_ann_d): Remove.
6983 (struct function_ann_d): Likewise.
6984 (union tree_ann_d): Remove fdecl member.
6985 (function_ann_t): Remove.
6986 (function_ann, get_function_ann, create_function_ann): Remove
6987 declarations.
6988
e3136fa2
UB
69892009-04-27 Uros Bizjak <ubizjak@gmail.com>
6990
6991 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6992
f87c9042
JH
69932009-04-27 Jan Hubicka <jh@suse.cz>
6994
6995 * ipa-pure-const.c (struct funct_state_d): New fields
6996 state_previously_known, looping_previously_known; remove
6997 state_set_in_source.
6998 (analyze_function): Use new fields.
6999 (propagate): Avoid assumption that state_set_in_source imply
7000 nonlooping.
7001
7002 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7003 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7004 * cfgloop.h (finite_loop_p): Declare.
7005
33abd718
MM
70062009-04-26 Michael Matz <matz@suse.de>
7007
e3136fa2 7008 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7009
ddc34084
MM
70102009-04-26 Michael Matz <matz@suse.de>
7011
7012 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7013 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7014 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7015 pass_mark_used_blocks): Remove.
7016 * tree-optimize.c (pass_free_datastructures,
7017 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7018 * passes.c (init_optimization_passes): Don't call
7019 pass_mark_used_blocks, remove dead code.
7020
1fec7ed4
L
70212009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7022
7023 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7024 * tree-ssa-live.h (register_ssa_partition): Likewise.
7025
4e3825db
MM
70262009-04-26 Michael Matz <matz@suse.de>
7027
7028 Expand from SSA.
7029 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7030 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7031 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7032 SSA names.
7033 (compare_pairs): Swap cost comparison.
7034 (coalesce_ssa_name): Don't use change_partition_var.
7035 * tree-nrv.c (struct nrv_data): Add modified member.
7036 (finalize_nrv_r): Set it.
7037 (tree_nrv): Use it to update statements.
7038 (pass_nrv): Require PROP_ssa.
7039 * tree-mudflap.c (mf_decl_cache_locals,
7040 mf_build_check_statement_for): Use make_rename_temp.
7041 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7042 * alias.c (find_base_decl): Handle SSA names.
7043 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7044 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7045 * rtl.h (set_reg_attrs_for_parm): Declare.
7046 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7047 to "optimized", remove unused locals at finish.
7048 (execute_free_datastructures): Make global, call
7049 delete_tree_cfg_annotations.
7050 (execute_free_cfg_annotations): Don't call
7051 delete_tree_cfg_annotations.
7052
7053 * ssaexpand.h: New file.
7054 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7055 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7056 (expand_expr_real_1): Expand SSA names.
7057 * cfgexpand.c (toplevel): Include ssaexpand.h.
7058 (SA): New global variable.
7059 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7060 (SSAVAR): New macro.
7061 (set_rtl): New helper function.
7062 (add_stack_var): Deal with SSA names, use set_rtl.
7063 (expand_one_stack_var_at): Likewise.
7064 (expand_one_stack_var): Deal with SSA names.
7065 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7066 before unique numbers.
7067 (expand_stack_vars): Use set_rtl.
7068 (expand_one_var): Accept SSA names, add asserts for them, feed them
7069 to above subroutines.
7070 (expand_used_vars): Expand all partitions (without default defs),
7071 then only the local decls (ignoring those expanded already).
7072 (expand_gimple_cond): Remove edges when jumpif() expands an
7073 unconditional jump.
7074 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7075 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7076 SSA name.
7077 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7078 members of SA; deal with PARM_DECL partitions here; expand
7079 all PHI nodes, free tree datastructures and SA. Commit instructions
7080 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7081 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7082 info and statements at start, collect garbage at finish.
7083 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7084 (VAR_ANN_PARTITION) Remove.
7085 (change_partition_var): Don't declare.
7086 (partition_to_var): Always return SSA names.
7087 (var_to_partition): Only accept SSA names.
7088 (register_ssa_partition): Only check argument.
7089 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7090 member.
7091 (delete_var_map): Don't free it.
7092 (var_union): Only accept SSA names, simplify.
7093 (partition_view_init): Mark only useful SSA names as used.
7094 (partition_view_fini): Only deal with SSA names.
7095 (change_partition_var): Remove.
7096 (dump_var_map): Use ssa_name instead of partition_to_var member.
7097 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7098 basic blocks.
7099 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7100 (struct _elim_graph): New member const_dests; nodes member vector of
7101 ints.
7102 (set_location_for_edge): New static helper.
7103 (create_temp): Remove.
7104 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7105 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7106 (new_elim_graph): Allocate const_dests member.
7107 (clean_elim_graph): Truncate const_dests member.
7108 (delete_elim_graph): Free const_dests member.
7109 (elim_graph_size): Adapt to new type of nodes member.
7110 (elim_graph_add_node): Likewise.
7111 (eliminate_name): Likewise.
7112 (eliminate_build): Don't take basic block argument, deal only with
7113 partition numbers, not variables.
7114 (get_temp_reg): New static helper.
7115 (elim_create): Use it, deal with RTL temporaries instead of trees.
7116 (eliminate_phi): Adjust all calls to new signature.
7117 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7118 (rewrite_trees): Only do checking.
7119 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7120 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7121 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7122 contains_tree_r, MAX_STMTS_IN_LATCH,
7123 process_single_block_loop_latch, analyze_edges_for_bb,
7124 perform_edge_inserts): Remove.
7125 (expand_phi_nodes): New global function.
7126 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7127 functions, initialize new parameter, remember partitions having a
7128 default def.
7129 (finish_out_of_ssa): New global function.
7130 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7131 don't reset in_ssa_p here, don't disable TER when mudflap.
7132 (pass_del_ssa): Remove.
7133 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7134 partition members.
7135 (execute_free_datastructures): Declare.
7136 * Makefile.in (SSAEXPAND_H): New variable.
7137 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7138 * basic-block.h (commit_one_edge_insertion): Declare.
7139 * passes.c (init_optimization_passes): Move pass_nrv and
7140 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7141 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7142 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7143 (redirect_branch_edge): Deal with super block when expanding, split
7144 out jump patching itself into ...
7145 (patch_jump_insn): ... here, new static helper.
7146
17c665a9
MM
71472009-04-26 Michael Matz <matz@suse.de>
7148
7149 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7150 beyond num_ssa_names.
7151 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7152 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7153
92061771
JJ
71542009-04-26 Jakub Jelinek <jakub@redhat.com>
7155
ce372372
JJ
7156 PR inline-asm/39543
7157 * fwprop.c (forward_propagate_asm): New function.
7158 (forward_propagate_and_simplify): Propagate also into __asm, if it
7159 doesn't increase the number of referenced registers.
7160
92061771
JJ
7161 PR c/39889
7162 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7163
71642009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7165
7166 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7167 note_nonlocal_vla_type for nonlocal VLAs.
7168 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7169 contains_remapped_vars, remap_vla_decls): New functions.
7170 (convert_nonlocal_reference_stmt): If not optimizing, call
7171 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7172 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7173 if it wasn't found in var_map.
7174 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7175 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7176 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7177 declare_vars.
7178 * gimplify.c (nonlocal_vlas): New variable.
7179 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7180 referenced VLAs.
7181 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7182
4561e242
JJ
7183 * dwarf2out.c (loc_descr_plus_const): New function.
7184 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7185 mem_loc_descriptor, loc_descriptor_from_tree_1,
7186 descr_info_loc, gen_variable_die): Use it.
7187
a9548ddf
JJ
7188 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7189 !TREE_STATIC VAR_DECLs.
7190 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7191 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7192 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7193 DECL_BY_REFERENCE is valid.
7194 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7195 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7196 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7197 Copy DECL_BY_REFERENCE.
7198 (struct nesting_copy_body_data): New type.
7199 (nesting_copy_decl): New function.
7200 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7201 if they have variable length.
7202
10555d08
MM
72032009-04-26 Michael Matz <matz@suse.de>
7204
7205 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7206 mark new temporaries for renaming.
7207
e11187cc
JM
72082009-04-26 Joseph Myers <joseph@codesourcery.com>
7209
7210 PR c/39581
7211 * c-decl.c (global_bindings_p): Return negative value.
7212 (c_variable_size): New. Based on variable_size from
7213 stor-layout.c.
7214 (grokdeclarator): Call c_variable_size not variable_size.
7215
f6a51d31
UB
72162009-04-26 Uros Bizjak <ubizjak@gmail.com>
7217
7218 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7219
4b97723d
KT
72202009-04-26 Kai Tietz <kai.tietz@onevision.com>
7221
7222 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7223 Redefine it to just use mingw/include.
7224 (ASM_SPEC): Rules for -m32 and -m64.
7225 (LINK_SPEC): Use Likewise.
7226 (SPEC_32): New define.
7227 (SPEC_64): Likewise.
7228 (SUB_LINK_SPEC): Likewise.
7229 (MULTILIB_DEFAULTS): New define.
7230 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7231 Add multilib options.
7232 (MULTILIB_DIRNAMES): Likewise.
7233 (MULTILIB_OSDIRNAMES): Likewise.
7234 (LIBGCC): Likewise.
7235 (INSTALL_LIBGCC): Likewise.
7236
991d6621
JM
72372009-04-26 Joseph Myers <joseph@codesourcery.com>
7238
7239 PR c/39556
7240 * c-tree.h (enum c_inline_static_type): New.
7241 (record_inline_static): Declare.
7242 * c-decl.c (struct c_inline_static, c_inline_statics,
7243 record_inline_static, check_inline_statics): New.
7244 (pop_file_scope): Call check_inline_statics.
7245 (start_decl): Call record_inline_static instead of pedwarning
7246 directly for static in inline function.
7247 * c-typeck.c (build_external_ref): Call record_inline_static
7248 instead of pedwarning directly for static referenced in inline
7249 function.
7250
4a81774c
SB
72512009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7252
7253 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7254 not new but only being rescanned.
7255 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7256 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7257 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7258 record_set_info, compute_set, grealloc): Remove.
7259 (recompute_all_luids): New function.
7260 (gcse_main): Don't compute sets, and don't do related memory
7261 allocations/free-ing. If something changed before the end of the
7262 pass, update LUIDs using recompute_all_luids.
7263 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7264 (free_gcse_mem): Don't free it either.
7265 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7266 Use the df insn LUIDs.
7267 (load_killed_in_block): Likewise.
7268 (compute_hash_table_work): Don't compute reg_set_in_block.
7269 (compute_transp): Use DF_REG_DEF_CHAINs.
7270 (local_cprop_pass): Don't use compute_sets and related functions.
7271 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7272 Use get_max_uid() instead of max_cuid.
7273 (insert_insn_end_basic_block, pre_insert_copy_insn,
7274 update_ld_motion_stores): Don't try to
7275 keep reg_set tables up to date.
7276 (pre_insert_copies): Use df insn LUIDs.
7277 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7278 (reg_set_info): Don't use extra bitmap argument.
7279 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7280 information to compute regs_set_in_block.
7281 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7282 (bypass_jumps): Don't use compute_sets and friends.
7283
e8f99a9d
RW
72842009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7285
7286 PR testsuite/39710
7287 * opts.c (undocumented_msg): Do not leave blank even with
7288 ENABLE_CHECKING.
7289
6895bac8
JM
72902009-04-25 Joseph Myers <joseph@codesourcery.com>
7291
7292 * c-decl.c (build_enumerator): Allow values folding to integer
7293 constants but not integer constant expressions with a pedwarn if
7294 pedantic.
7295
24070fcb
JM
72962009-04-25 Joseph Myers <joseph@codesourcery.com>
7297
7298 PR c/39582
7299 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7300 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7301 type is an integer constant.
7302
d6d89aa1
UB
73032009-04-25 Uros Bizjak <ubizjak@gmail.com>
7304
7305 PR target/39897
7306 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7307 HImode operands.
7308
92f6fd0b
JM
73092009-04-25 Joseph Myers <joseph@codesourcery.com>
7310
7311 PR c/39564
7312 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7313 with variably modified return type and no storage class
7314 specifiers, except for the case of nested functions. Distinguish
7315 extern declarations of functions with variably modified return
7316 types from those of objects with variably modified types.
7317
a3710436
JH
73182009-04-25 Jan Hubicka <jh@suse.cz>
7319
7320 * tree.c (list_equal_p): New function.
7321 * tree.h (list_equal_p): Declare.
7322 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7323 basic_block_def, basic_block, const_basic_block): New.
7324 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7325 (redirect_eh_edge): New function.
7326 (make_eh_edge_update_phi): EH edges are not abnormal.
7327 * except.c: Include tree-flow.h.
7328 (list_match): New function.
7329 (eh_region_replaceable_by_p): New function.
7330 (replace_region): New function.
7331 (hash_type_list): New function.
7332 (hash_eh_region): New function.
7333 (eh_regions_equal_p): New function.
7334 (merge_peers): New function.
7335 (remove_unreachable_regions): Verify EH tree when checking;
7336 merge peers.
7337 (copy_eh_region_1): New function.
7338 (copy_eh_region): New function.
7339 (push_reachable_handler): New function.
7340 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7341 regions without label but with live RESX.
7342 * except.h (redirect_eh_edge_to_label): New.
7343 * tree-flow.h (redirect_eh_edge): New.
7344 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7345 basic_block_def, basic_block, const_basic_block): Remove.
7346 * Makefile.in (except.o): Add dependency on tree-flow.h
7347 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7348 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7349 Remove.
7350
3764d512
EB
73512009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7352
7353 PR bootstrap/39645
7354 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7355 on the destination of memcpy.
7356
1c62e8f2
PB
73572009-04-25 Paolo Bonzini <bonzini@gnu.org>
7358
7359 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7360 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7361 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7362
496a4ef5
JH
73632009-04-25 Jan Hubicka <jh@suse.cz>
7364
7365 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7366 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7367 to be reached by different label than left.
7368 (update_eh_edges): Update comment; remove edge_to_remove if possible
7369 and return true if suceeded.
7370 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7371 (cleanup_eh): Compute sharing map.
7372 * except.c (remove_eh_handler_and_replace): Add argument if we should
7373 update regions.
7374 (remove_unreachable_regions): Update for label sharing.
7375 (label_to_region_map): Likewise.
7376 (get_next_region_sharing_label): New function.
7377 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7378 prev_try pointers.
7379 (remove_eh_handler): Update.
7380 (remove_eh_region_and_replace_by_outer_of): New function.
7381 * except.h (struct eh_region): Add next_region_sharing_label.
7382 (remove_eh_region_and_replace_by_outer_of,
7383 get_next_region_sharing_label): Declare.
7384 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7385
73862009-04-25 Jan Hubicka <jh@suse.cz>
7387
7388 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7389 insert code even if they are not critical.
7390
73912009-04-25 Jan Hubicka <jh@suse.cz>
7392
7393 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7394 (gimple_can_remove_branch_p): EH edges won't remove branch by
7395 redirection.
7396 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7397 updating of non-abnormal EH edges.
7398 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7399 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7400 (split_critical_edges): Split also edges where emitting code on them
7401 will lead to splitting later.
7402
a3a5e3d1
UB
74032009-04-25 Uros Bizjak <ubizjak@gmail.com>
7404 H.J. Lu <hongjiu.lu@intel.com>
7405
7406 PR target/39590
7407 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7408 the configured assembler supports fildq and fistpq mnemonics.
7409 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7410 * configure: Regenerated.
7411 * config.in: Ditto.
7412
7413 * config/i386/i386.c (print_operand): Handle 'Z'.
7414 ['z']: Remove handling of special fild/fist suffixes.
7415 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7416 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7417 suffix of fild insn.
7418 (*floatsi<mode>2_vector_mixed): Ditto.
7419 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7420 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7421 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7422 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7423 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7424
23750d7f
BE
74252009-04-25 Ben Elliston <bje@au.ibm.com>
7426
7427 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7428 the source of a set operation.
7429
e6ff3083
AS
74302009-04-25 Anatoly Sokolov <aesok@post.ru>
7431
7432 * target.h (struct gcc_target): Add case_values_threshold field.
7433 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7434 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7435 * targhooks.c (default_case_values_threshold): New function.
7436 * targhooks.h (default_case_values_threshold): Declare function.
7437 * stmt.c (expand_case): Use case_values_threshold target hook.
7438 * expr.h (case_values_threshold): Remove declartation.
7439 * expr.c (case_values_threshold): Remove function.
7440 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7441
7442 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7443 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7444 (avr_case_values_threshold): Declare as static.
7445 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7446
7447 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7448 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7449 (mn10300_case_values_threshold): New function.
7450
569c72fc
L
74512009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7452
7453 * ira.c (setup_cover_and_important_classes): Add enum cast.
7454
ff3cb468
VM
74552009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7456
7457 * genpreds.c (write_enum_constraint_num): Output definition of
7458 CONSTRAINT_NUM_DEFINED_P macro.
7459 * ira.c (setup_cover_and_important_classes): Use
7460 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7461
4f7be849
DD
74622009-04-24 DJ Delorie <dj@redhat.com>
7463
7464 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7465 __SH2A_SINGLE_ONLY__ also.
7466
735b94a7
SE
74672009-04-24 Steve Ellcey <sje@cup.hp.com>
7468
7469 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7470 (movdf_internal): Ditto.
7471 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7472 SFmode and DFmode constants.
7473 (ia64_print_operand): Add 'G' format for printing
7474 floating point constants.
7475
77a30264
RG
74762009-04-24 Richard Guenther <rguenther@suse.de>
7477
7478 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7479 from unsigned additions.
7480
2b6da65c
JM
74812009-04-24 Joseph Myers <joseph@codesourcery.com>
7482
7483 * c-typeck.c (set_init_index): Allow array designators that are
7484 not integer constant expressions with a pedwarn if pedantic.
7485
f5a17c43
BS
74862009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7487
7488 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7489 zero if no overlap in nonzero bits between the operands.
7490
32e8bb8e
ILT
74912009-04-24 Ian Lance Taylor <iant@google.com>
7492
7493 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7494 (record_dead_and_set_regs): Likewise.
7495 * df.h (struct df_mw_hardreg): Change flags field to int.
7496 (struct df_base_ref): Likewise.
7497 (struct df): Change changeable_flags field to int.
7498 * df-scan.c (df_defs_record): Change clobber_flags to int.
7499 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7500 constants rather than #define macros.
7501 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7502 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7503 (enum dwarf_calling_convention): Likewise.
7504 (enum dwarf_line_number_x_ops): Likewise.
7505 (enum dwarf_call_frame_info): Likewise.
7506 (enum dwarf_source_language): Likewise.
7507 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7508 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7509 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7510 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7511 * genrecog.c (maybe_both_true_2): Change c to int.
7512 (write_switch): Likewise. Add cast to enum type.
7513 * gimplify.c (gimplify_omp_for): Handle return values from
7514 gimplify_expr using MIN rather than bitwise or.
7515 (gimplify_expr): Add cast to enum type.
7516 * ipa-prop.c (update_jump_functions_after_inlining): Change
7517 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7518 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7519 Add casts to enum type.
32e8bb8e
ILT
7520 (setup_cover_and_important_classes): Change cl to int. Add casts
7521 to enum type.
7522 (setup_class_translate): Change cl and mode to int.
7523 (ira_init_once): Change mode to int.
7524 (free_register_move_costs): Likewise.
7525 (setup_prohibited_mode_move_regs): Add casts to enum type.
7526 * langhooks.c (add_builtin_function_common): Rework assertion that
7527 value fits bitfield.
7528 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7529 * omega.c (omega_do_elimination): Avoid math on enum types.
7530 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7531 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7532 int local to handle integral_argment value.
7533 * regmove.c (try_auto_increment): Change PUT_MODE to
7534 PUT_REG_NOTE_KIND.
7535 * reload.c (push_secondary_reload): Add casts to enum type.
7536 (secondary_reload_class, find_valid_class): Likewise.
7537 * reload1.c (emit_input_reload_insns): Likewise.
7538 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7539 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7540 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7541 constant.
7542 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7543 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7544 enum type.
7545 (expand_complex_libcall): Add casts to enum type.
7546 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7547 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7548 with ERROR_MARK, not NUM_TREE_CODES.
7549 (vect_create_epilog_for_reduction): Likewise.
7550 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7551 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7552 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7553 enum machine_mode.
7554 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7555 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7556 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7557 * var-tracking.c (get_init_value): Change return type to enum
7558 var_init_status.
7559 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7560 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7561 arm_fp_model.
7562 (arm_override_options): Add casts to enum type.
7563 (arm_emit_tls_decoration): Likewise.
7564 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7565 to enum type.
7566 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7567 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7568 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7569 enum type.
7570 * config/s390/s390.c (code_for_builtin_64): Change to array of
7571 enum insn_code.
7572 (code_for_builtin_31): Likewise.
7573 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7574 const *.
7575 * config/sparc/sparc.c (sparc_override_options): Change value
7576 field in struct code_model to enum cmodel. In initializer change
7577 0 to NULL and add cast to enum type.
7578
7579 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7580 Change all callers. Issue a -Wc++-compat warning using
7581 lhs_origtype if necessary.
7582 (convert_for_assignment): Issue -Wc++-compat warnings about
7583 invalid conversions to enum type on assignment.
7584 * c-common.h (build_modify_expr): Update declaration.
7585
ac4fc08a
NC
75862009-04-24 Nick Clifton <nickc@redhat.com>
7587
7588 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7589 (function_arg_advance): Likewise.
7590 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7591 5th alternative.
7592
f22e891a
AK
75932009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7594
7595 * config/s390/constraints.md ('I', 'J'): Fix condition.
7596
ad58aabe
DN
75972009-04-24 Diego Novillo <dnovillo@google.com>
7598
7599 * gengtype-parse.c (parse_error): Add newline after message.
7600
879a4a01
L
76012009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7602
7603 * config/i386/sse.md (avxmodesuffixs): Removed.
7604 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7605 (*avx_pinsr<ssevecsize>): This.
7606
f63426af
BS
76072009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7608
7609 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7610 follow chains of regs with a single definition, and allow expressions
7611 that are function_invariant_p.
ce72fe6c 7612 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7613
30349c74
PB
76142009-04-24 Paolo Bonzini <bonzini@gnu.org>
7615
7616 PR middle-end/39867
7617 * fold-const.c (fold_cond_expr_with_comparison): When folding
7618 > and >= to MAX, make sure the MAX uses the same type as the
7619 comparison's operands.
7620
8d8256c1
NC
76212009-04-24 Nick Clifton <nickc@redhat.com>
7622
7623 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7624 addressing for DImode accesses.
7625 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7626 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7627
6216f94e
JJ
76282009-04-24 Jakub Jelinek <jakub@redhat.com>
7629
7630 PR rtl-optimization/39794
7631 * alias.c (canon_true_dependence): Add x_addr argument.
7632 * rtl.h (canon_true_dependence): Adjust prototype.
7633 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7634 * cselib.c (cselib_invalidate_mem): Likewise.
7635 * gcse.c (compute_transp): Likewise.
7636 * dse.c (scan_reads_nospill): Likewise.
7637 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7638 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7639 canon_base_addr of the group, plus optional offset.
7640 (struct group_info): Rename canon_base_mem to
7641 canon_base_addr.
7642 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7643 canon_rtx of base_mem.
7644
6de7a512
PB
76452009-04-23 Paolo Bonzini <bonzini@gnu.org>
7646
7647 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7648 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7649
4a3a2376
UW
76502009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7651
7652 * config/spu/spu-builtins.h: Delete file.
7653
7654 * config/spu/spu.h (enum spu_builtin_type): Move here from
7655 spu-builtins.h.
7656 (struct spu_builtin_description): Likewise. Add GTY marker.
7657 Do not use enum spu_function_code or enum insn_code.
7658 (spu_builtins): Add extern declaration.
7659
7660 * config/spu/spu.c: Do not include "spu-builtins.h".
7661 (enum spu_function_code, enum spu_builtin_type_index,
7662 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7663 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7664 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7665 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7666 (spu_builtin_types): Make static. Add GTY marker.
7667 (spu_builtins): Add extern declaration with GTY marker.
7668 Include "gt-spu.h".
7669
7670 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7671 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7672 Check programmatically whether all parameters are scalar.
7673
7674 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7675
bbaba73f
EB
76762009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7677
7678 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7679 assignment from the constructor either if the target is volatile.
7680
ee93c1c6
DJ
76812009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7682
7683 * config/arm/arm.md (insv): Do not share operands[0].
7684
b2f21330
NS
76852009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7686
7687 * config/vxlib-tls.c (active_tls_threads): Delete.
7688 (delete_hook_installed): New.
7689 (tls_delete_hook): Don't delete the delete hook.
7690 (tls_destructor): Delete it here.
7691 (__gthread_set_specific): Adjust installing the delete hook.
7692 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7693 __gthread_leave_tsd_dtor_context.
7694
4782dfa7
RAE
76952009-04-23 Rafael Avila de Espindola <espindola@google.com>
7696
7697 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7698
bf758008
UB
76992009-04-23 Uros Bizjak <ubizjak@gmail.com>
7700
7701 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7702 enum type.
7703 (alpha_rtx_costs): Ditto.
7704 (emit_unlikely_jump): Use add_reg_note.
7705 (emit_frame_store_1): Ditto.
7706 (alpha_expand_prologue): Ditto.
7707 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7708 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7709
7323a100
NC
77102009-04-23 Nick Clifton <nickc@redhat.com>
7711
7712 * config/v850/v850.md (epilogue): Remove suppressed code.
7713 (return): Rename to return_simple and remove test of frame size.
7714 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7715 to gen_return_simple.
7716
360032ba
JY
77172009-04-22 Jing Yu <jingyu@google.com>
7718
7719 PR testsuite/39781
7720 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7721
53650abe
AP
77222009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7723
7724 PR C/31499
7725 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7726 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7727 value is a VECTOR_CST, the element type is the element type of the
7728 vector.
7729
89043e8a
DD
77302009-04-22 DJ Delorie <dj@redhat.com>
7731
7732 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7733
023f059b
JJ
77342009-04-22 Jakub Jelinek <jakub@redhat.com>
7735
7736 * alias.c (find_base_term): Move around LO_SUM case, so that
7737 CONST falls through into PLUS/MINUS handling.
7738
2c0eba5a
JJ
7739 PR c/39855
7740 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7741 into 0, use omit_one_operand.
7742
9a461028
BE
77432009-04-23 Ben Elliston <bje@au.ibm.com>
7744
7745 * config/rs6000/linux-unwind.h (get_regs): Remove type
7746 puns. Change the type of `pc' to an array of unsigned ints and
7747 update all users. Constify frame24.
7748
653e2568
DD
77492009-04-22 DJ Delorie <dj@redhat.com>
7750
7751 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7752 declarations before code.
7753 (current_function_special_page_vector): Likewise.
7754 (m32c_expand_insv): Silence a warning.
7755
60839f5d 77562009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7757
7758 * alias.c: Update GTY annotations to new syntax.
7759 * basic-block.h: Likewise.
7760 * bitmap.h: Likewise.
7761 * c-common.h: Likewise.
7762 * c-decl.c: Likewise.
7763 * c-parser.c: Likewise.
7764 * c-pragma.c: Likewise.
7765 * c-tree.h: Likewise.
7766 * cfgloop.h: Likewise.
7767 * cgraph.h: Likewise.
7768 * config/alpha/alpha.c: Likewise.
7769 * config/arm/arm.h: Likewise.
7770 * config/avr/avr.h: Likewise.
7771 * config/bfin/bfin.c: Likewise.
7772 * config/cris/cris.c: Likewise.
7773 * config/darwin.c: Likewise.
7774 * config/frv/frv.c: Likewise.
7775 * config/i386/i386.c: Likewise.
7776 * config/i386/i386.h: Likewise.
7777 * config/i386/winnt.c: Likewise.
7778 * config/ia64/ia64.h: Likewise.
7779 * config/iq2000/iq2000.c: Likewise.
7780 * config/mips/mips.c: Likewise.
7781 * config/mmix/mmix.h: Likewise.
7782 * config/pa/pa.c: Likewise.
7783 * config/pa/pa.h: Likewise.
7784 * config/rs6000/rs6000.c: Likewise.
7785 * config/s390/s390.c: Likewise.
7786 * config/sparc/sparc.c: Likewise.
7787 * config/xtensa/xtensa.c: Likewise.
7788 * cselib.h: Likewise.
7789 * dbxout.c: Likewise.
7790 * dwarf2out.c: Likewise.
7791 * except.c: Likewise.
7792 * except.h: Likewise.
7793 * fixed-value.h: Likewise.
7794 * function.c: Likewise.
7795 * function.h: Likewise.
7796 * gimple.h: Likewise.
7797 * integrate.c: Likewise.
7798 * optabs.c: Likewise.
7799 * output.h: Likewise.
7800 * real.h: Likewise.
7801 * rtl.h: Likewise.
7802 * stringpool.c: Likewise.
7803 * tree-data-ref.c: Likewise.
7804 * tree-flow.h: Likewise.
7805 * tree-scalar-evolution.c: Likewise.
7806 * tree-ssa-address.c: Likewise.
7807 * tree-ssa-alias.h: Likewise.
7808 * tree-ssa-operands.h: Likewise.
7809 * tree.c: Likewise.
7810 * tree.h: Likewise.
7811 * varasm.c: Likewise.
7812 * varray.h: Likewise.
7813 * vec.h: Likewise.
bf758008 7814 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7815 * doc/gty.texi: Update GTY documentation to new syntax.
7816 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7817 annotations on structs.
7818 * gengtype-parse.c: Likewise.
7819
a123d175
MH
78202009-04-22 Mark Heffernan <meheff@google.com>
7821
bf758008 7822 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7823
4c7c486a
KH
78242009-04-22 Kazu Hirata <kazu@codesourcery.com>
7825
7826 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7827 where appropriate.
7828
6e782a29
KH
78292009-04-22 Kazu Hirata <kazu@codesourcery.com>
7830
7831 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7832 the same as a PLUS without a shift. Increase the cost of a
7833 CONST_INT in MULT.
7834
38d2336a
MLI
78352009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7836
7837 * Makefile.in: Update dependencies.
bf758008 7838 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7839 * errors.h: Remove bogus comment about compatibility.
7840 (warning): Update declaration.
7841 * genautomata.c: Update all calls to warning.
7842 * gimple.c: Do not include errors.h. Include toplev.h.
7843 * tree-ssa-structalias.c: Do not include errors.h.
7844 * omega.c: Likewise.
7845 * tree-ssa-reassoc.c: Likewise.
7846 * config/spu/spu-c.c: Likewise.
7847 * config/spu/t-spu-elf: Update dependencies.
7848
aea4deba
RG
78492009-04-22 Richard Guenther <rguenther@suse.de>
7850
7851 PR tree-optimization/39824
7852 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7853 make sure the types are compatible.
7854
cfc93532
MLI
78552009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7856
7857 PR c++/14875
7858 * c-common.c (c_parse_error): Take a token_flags parameter.
7859 Use token_type for the token type instead.
7860 Pass token_flags to cpp_type2name.
7861 * c-common.h (c_parse_error): Update declaration.
7862 * c-parser.c (c_parser_error): Pass 0 as token flags.
7863
8632d02a
AB
78642009-04-22 Andrey Belevantsev <abel@ispras.ru>
7865
7866 PR rtl-optimization/39580
7867 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7868
4c33221c
UW
78692009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7870
7871 * function.c (expand_function_end): Do not emit a jump to the "naked"
7872 return label for fall-through returns.
7873 * except.c (sjlj_emit_function_exit): Always place the call to the
7874 unregister function at the location installed by expand_function_end.
7875
9925bce0
RG
78762009-04-22 Richard Guenther <rguenther@suse.de>
7877
7878 PR tree-optimization/39845
7879 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7880 (gen_inbound_check): Likewise.
7881
24a40b35
NS
78822009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7883
7884 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7885 padding for PPC.
7886 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7887 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7888
6c34a092
PB
78892009-04-22 Paolo Bonzini <bonzini@gnu.org>
7890
7891 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7892 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7893 shift counts to avoid out-of-bounds array accesses.
7894
baa48dfa
PB
78952009-04-22 Paolo Bonzini <bonzini@gnu.org>
7896
7897 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7898 (Pmode): Move above.
7899
7d83f4f5
UB
79002009-04-22 Uros Bizjak <ubizjak@gmail.com>
7901
7902 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7903 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7904 GET_CODE macro. Use IN_RANGE macro where appropriate.
7905 * config/alpha/alpha.h: Ditto.
7906 * config/alpha/alpha.md: Ditto.
7907 * config/alpha/constraints.md: Ditto.
7908 * config/alpha/predicates.md: Ditto.
7909
3ad606bc
PB
79102009-04-22 Paolo Bonzini <bonzini@gnu.org>
7911
7912 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7913 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7914 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7915 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7916 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7917 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7918 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7919 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7920 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7921 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7922 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7923 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7924 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7925 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7926 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7927 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7928 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7929 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7930 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7931 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7932 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7933 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7934 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7935 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7936 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7937 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7938 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7939
3cabd6d1
LB
79402009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7941
7942 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7943 references from comments.
7944 * cfgbuild.c: (count_basic_blocks): Delete.
7945 (find_basic_blocks_1): Delete.
7946 (find_basic_blocks): Delete.
7947 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7948 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7949 * except.h (finish_eh_generation): Delete.
7950 * basic-block.h (find_basic_blocks): Delete.
7951 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7952
270d1bcd
DK
79532009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7954
7955 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7956 (sdbout_parms): Likewise.
7957
b757d36f
KK
79582009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7959
7960 * config/sh/sh.c (prepare_cbranch_operands): Use
7961 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7962 (expand_cbranchdi4): Likewise.
7963 (from_compare): Add cast to enum type.
7964 (expand_cbranchsi4): Use add_reg_note.
7965 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7966 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7967 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7968 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7969 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7970 instead of CODE_FOR_nothing.
7971 (cbranchdi4): Likewise. Fix the order of arguments for
7972 gen_rtx_fmt_ee.
7973 (push_fpscr): Use add_reg_note.
7974 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7975 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7976
ad41bd84
JM
79772009-04-21 Joseph Myers <joseph@codesourcery.com>
7978
7979 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7980 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7981 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7982 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7983 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7984 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7985 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7986 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7987 config/alpha/x-vms, config/arc/t-arc,
7988 config/arm/README-interworking, config/arm/arm-c.c,
7989 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7990 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7991 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7992 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7993 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7994 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7995 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7996 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7997 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7998 config/cris/t-elfmulti, config/crx/t-crx,
7999 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8000 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8001 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8002 config/h8300/t-h8300, config/i386/athlon.md,
8003 config/i386/darwin-libgcc.10.4.ver,
8004 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8005 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8006 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8007 config/i386/t-linux64, config/i386/t-nwld,
8008 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8009 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8010 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8011 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8012 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8013 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8014 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8015 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8016 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8017 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8018 config/m68k/t-uclinux, config/mcore/t-mcore,
8019 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8020 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8021 config/mips/crtn.asm, config/mips/irix-crti.asm,
8022 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8023 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8024 config/mips/mips-fixed.md, config/mips/sb1.md,
8025 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8026 config/mips/t-iris6, config/mips/t-isa3264,
8027 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8028 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8029 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8030 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8031 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8032 config/mn10300/t-linux, config/mn10300/t-mn10300,
8033 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8034 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8035 config/picochip/libgccExtras/clzsi2.asm,
8036 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8037 config/rs6000/darwin-libgcc.10.4.ver,
8038 config/rs6000/darwin-libgcc.10.5.ver,
8039 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8040 config/rs6000/t-aix43, config/rs6000/t-aix52,
8041 config/rs6000/t-darwin, config/rs6000/t-fprules,
8042 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8043 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8044 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8045 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8046 config/rs6000/t-rtems, config/rs6000/t-spe,
8047 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8048 config/score/t-score-elf, config/sh/divcost-analysis,
8049 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8050 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8051 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8052 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8053 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8054 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8055 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8056 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8057 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8058 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8059 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8060 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8061 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8062 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8063 * config/h8300/genmova.sh: Include copyright and license notices
8064 in generated output.
8065 * config/h8300/mova.md: Regenerate.
8066 * doc/install.texi2html: Include word "Copyright" in copyright
8067 notice and use name "Free Software Foundation, Inc.".
8068 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8069 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8070 ChangeLog-2007, ChangeLog-2008: Correct dates.
8071
ca80e52b
EB
80722009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8073
8074 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8075 NE_EXPR operations as well.
8076 * c-parser.c (c_parser_condition): Do not set location information on
8077 the condition.
8078 (c_parser_conditional_expression): Likewise.
8079 (c_parser_binary_expression): Set location information on operators.
8080 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8081 TRUTH_NOT_EXPR has been folded.
8082 * fold-const.c (fold_truth_not_expr): Copy location information from
8083 the incoming expression to the outgoing one.
8084 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8085 recursive calls on the LHS of the operator but pass that of the
8086 operator to recursive calls on the RHS of the operator. Set it
8087 on the COND_EXPR.
8088 (shortcut_cond_expr): Set the locus of the operator on the second
8089 COND_EXPR and that of the expression on the first in degenerate cases.
8090 Pass the locus of the expression to calls to shortcut_cond_r.
8091 Set the locus of the 'then' block on the associated jump, if any.
8092 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8093 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8094 expression to call to gimplify_boolean_expr.
8095
35091630
KT
80962009-04-21 Kai Tietz <kai.tietz@onevision.com>
8097
8098 * config.gcc: Add additional configuration for
8099 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8100 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8101 (CPP_SPEC): Redefine for allowing -municode option.
8102 (STARTFILE_SPEC): Likewise.
8103 * config/i386/t-mingw-w64: New.
8104 * config/i386/mingw-w64.opt: New.
8105 (municode): Add new target option.
8106 * doc/invoke.texi (municode): Add documentation for new option.
8107
0267afc4
ILT
81082009-04-21 Ian Lance Taylor <iant@google.com>
8109
8110 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8111 Correct test for number of arguments.
8112 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8113
2ba9daa7
AS
81142009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8115
8116 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8117 argument of emit_library_call.
8118
ad8a1ac0
RG
81192009-04-21 Richard Guenther <rguenther@suse.de>
8120
8121 PR middle-end/39829
8122 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8123 inside VIEW_CONVERT_EXPRs.
8124
7156c8ab
MJ
81252009-04-21 Martin Jambor <mjambor@suse.cz>
8126
8127 * tree-switch-conversion.c (build_constructors): Split a long line.
8128 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8129 (build_one_array): Create assigns of constants if possible, do not
8130 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8131 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8132 make_rename_temp. Do not call mark_symbols_for_renaming, call
8133 update_stmt.
8134 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8135 find_new_referenced_vars, call update_stmt.
8136 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8137 instead of calling make_rename_temp. Do not call
8138 find_new_referenced_vars or mark_symbols_for_renaming, call
8139 update_stmt.
8140
2970ccb3
RG
81412009-04-21 Richard Guenther <rguenther@suse.de>
8142
8143 PR tree-optimization/39827
7d83f4f5 8144 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8145 (tree_ssa_phiprop): Pass the correct array size.
8146
47f402d1
UB
81472009-04-21 Uros Bizjak <ubizjak@gmail.com>
8148
8149 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8150
1e4ae551
MLI
81512009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8152
8153 PR 16202
8154 * c-typeck.c (lvalue_p): Move declaration ...
8155 * c-common.h (lvalue_p): ... to here.
8156 * c-common.c (candidate_equal_p): New.
8157 (add_tlist): Use it.
8158 (merge_tlist): Use it.
8159 (warn_for_collisions_1): Likewise.
8160 (warning_candidate_p): Accept more candidates.
8161 (verify_tree): A warning candidate can be an expression. Use
8162 candidate_equal_p.
8163
244609a6
BE
81642009-04-21 Ben Elliston <bje@au.ibm.com>
8165
8166 PR target/5267
8167 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8168 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8169 options. Remove -mcall-solaris documentation.
8170
9c650d90
MLI
81712009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8172
8173 PR c++/13358
8174 * doc/invoke.texi (-Wlong-long): Update description.
8175 * c-lex (interpret_integer): Only warn if there was no previous
8176 overflow and -Wlong-long is enabled.
8177 * c-decl.c (declspecs_add_type): Drop redundant flags.
8178 * c.opt (Wlong-long): Init to -1.
8179 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8180 and front-end warn_long_long. Wlong-long only depends on other
8181 flags if it is uninitialized.
8182 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8183 the same for CPP and FE.
8184 (restore_extension_diagnostics): Likewise.
8185
bbbbb16a
ILT
81862009-04-20 Ian Lance Taylor <iant@google.com>
8187
8188 Fix enum conversions which are invalid in C++:
47f402d1
UB
8189 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8190 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8191 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8192 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8193 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8194 (dbxout_parms): Likewise.
47f402d1 8195 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8196 (df_clear_flags): Likewise.
8197 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8198 top_flag parameter to int.
8199 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8200 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8201 Remove cast.
bbbbb16a
ILT
8202 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8203 (df_ref_create_structure, df_def_record_1): Likewise.
8204 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8205 (df_notes_rescan): Change 0 to VOIDmode in function call.
8206 (df_get_call_refs, df_insn_refs_collect): Likewise.
8207 (df_bb_regs_collect): Likewise.
8208 (df_entry_block_defs_collect): Likewise.
8209 (df_exit_block_uses_collect): Likewise.
8210 * df.h: Update declarations.
8211 * double-int.c (double_int_divmod): Add cast to enum type.
8212 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8213 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8214 (based_loc_descr): Likewise.
8215 (loc_descriptor_from_tree_1): Change first_op and second_op to
8216 enum dwarf_location_atom. Add cast to enum type.
8217 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8218 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8219 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8220 (do_store_flag): Likewise.
8221 * fixed-value.h (struct fixed_value): Change mode to enum
8222 machine_mode.
47f402d1 8223 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8224 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8225 function call.
8226 (insert_insn_decl, insert_decl, insert_state): Likewise.
8227 (automata_list_finish): Likewise.
8228 * genrecog.c (process_define_predicate): Add cast to enum type.
8229 * gensupport.c (init_predicate_table): Add cast to enum type.
8230 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8231 function call.
8232 (gimple_build_call_1, gimple_build_label): Likewise.
8233 (gimple_build_goto, gimple_build_asm_1): Likewise.
8234 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8235 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8236 (enum fallback): Rename from enum fallback_t.
8237 (fallback_t): Typedef as int.
8238 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8239 GSI_SAME_STMT in function call.
8240 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8241 enum type.
8242 (setup_reg_class_relations): Likewise.
47f402d1 8243 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8244 (setup_prohibited_class_mode_regs): Add cast to enum type.
8245 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8246 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8247 (record_address_regs): Change i to enum reg_class.
8248 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8249 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8250 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8251 (GET_MODE_2XWIDER_MODE): Likewise.
8252 (GET_CLASS_NARROWEST_MODE): Likewise.
8253 * omp-low.c (expand_omp_for): Add cast to enum type.
8254 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8255 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8256 * postreload.c (reload_cse_simplify_operands): Change rclass local
8257 to enum reg_class.
8258 * predict.c (combine_predictions_for_insn): Change best_predictor
8259 and predictor to enum br_predictor.
8260 (combine_predictions_for_bb): Likewise.
8261 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8262 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8263 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8264 * reginfo.c (init_move_cost): Add casts to enum type.
8265 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8266 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8267 enum reg_class.
8268 * reload.c (find_valid_class): Add casts to enum type.
8269 (push_reload): Change 0 to NO_REGS in function call.
8270 (find_reloads): Change this_alternative to array of enum
8271 reg_class. Remove some now-unnecessary casts.
8272 (make_memloc): Change 0 to VOIDmode in function call.
8273 * reload1.c (reload): Change 0 to VOIDmode in function call.
8274 (eliminate_regs_1, elimination_effects): Likewise.
8275 (eliminate_regs_in_insn): Likewise.
8276 (emit_input_reload_insns): Add cast to enum type.
8277 (delete_output_reload): Change 0 to VOIDmode in function call.
8278 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8279 to enum type in function call.
8280 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8281 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8282 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8283 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8284 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8285 (dump_function): Likewise.
8286 * tree-dump.h: Update declarations.
8287 * tree-pass.h: Update declarations.
8288 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8289 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8290 enum type.
8291 (arm_rtx_costs_1): Correct parenthesization.
8292 (arm_rtx_costs): Add casts to enum type.
8293 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8294 (vfp_emit_fstmd): Use add_rg_note.
8295 (emit_multi_reg_push, emit_sfm): Likewise.
8296 (thumb_set_frame_pointer): Likewise.
8297 (arm_expand_prologue): Likewise.
8298 (arm_regno_class): Change return type to enum reg_class.
8299 (thumb1_expand_prologue): Use add_reg_note.
8300 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8301 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8302 in function call.
8303 * config/arm/gentune.sh: Add cast to enum type.
8304 * config/arm/arm-tune.md: Rebuild.
8305 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8306 (ix86_split_fp_branch, predict_jump): Likewise.
8307 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8308 insn_code to enum rtx_code.
8309 (ix86_builtin_vectorized_function): Add cast to enum type.
8310 * config/i386/i386.md (truncdfsf2): Change slot to enum
8311 ix86_stack_slot.
8312 (truncxf<mode>2, isinf<mode>2): Likewise.
8313 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8314 enum type.
8315 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8316 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8317 (insert_bundle_state): Change 1 to INSERT in function call.
8318 (ia64_add_bundle_selector_before): Likewise.
8319 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8320 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8321 (restore_stack_nonlocal): Likewise.
8322 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8323 function call.
8324 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8325 function call.
8326 (mips_rtx_costs): Likewise.
8327 (mips_override_options): Add casts to enum type.
8328 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8329 in function call.
8330 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8331 (store_reg, set_reg_plus_d): Likewise.
8332 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8333 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8334 cast to enum type.
8335 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8336 function call.
8337 (emit_unlikely_jump): Use add_reg_note.
8338 (rs6000_emit_allocate_stack): Likewise.
8339 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8340 (output_toc): Change 1 to INSERT in function call.
8341 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8342 (rs6000_initialize_trampoline): Likewise.
8343 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8344 function call.
8345 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8346 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8347 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8348 (save_gprs): Use add_reg_note.
8349 (s390_emit_prologue): Likewise.
47f402d1 8350 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8351 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8352 (sparc_fold_builtin): Add cast to enum type.
8353 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8354 enum insn_code.
8355 (spu_expand_prologue): Use add_reg_note.
47f402d1 8356 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8357
83582009-04-20 Ian Lance Taylor <iant@google.com>
8359
8360 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8361 (c_parser_postfix_expression_after_primary): Get VEC for list of
8362 arguments. Get original types of arguments. Call
8363 build_function_call_vec.
8364 (cached_expr_list_1, cached_expr_list_2): New static variables.
8365 (c_parser_expr_list): Change return type to VEC *. Add
8366 p_orig_types parameter. Change all callers.
8367 (c_parser_release_expr): New static function.
8368 (c_parser_vec_to_tree_list): New static function.
8369 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8370 call build_function_call_vec.
8371 (build_function_call_vec): New function, based on old
8372 build_function_call.
8373 (convert_arguments): Remove nargs and argarray parameters. Change
8374 values to a VEC. Add origtypes parameter.
47f402d1 8375 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8376 (convert_for_assignment): Add origtype parameter. Change all
8377 callers. If warn_cxx_compat, check for conversion to an enum
8378 type when calling a function.
8379 (store_init_value): Add origtype parameter. Change all callers.
8380 (digest_init): Likewise.
8381 (struct init_node): Add origtype field.
8382 (add_pending_init): Add origtype parameter. Change all callers.
8383 (output_init_element): Likewise.
8384 (output_pending_init_elements): Pass origtype from init_node to
8385 output_init_element.
f28a61ab 8386 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8387 output_init_element.
8388 (c_finish_return): Add origtype parameter. Change all callers.
8389 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8390 caller.
8391 (sync_resolve_params): Likewise.
47f402d1 8392 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8393 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8394 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8395 * c-decl.c (finish_decl): Add origtype parameter. Change all
8396 callers. Call build_function_call_vec rather than
8397 build_function_call for cleanup.
8398 * c-tree.h: Update declarations.
8399 * c-common.h: Update declarations.
8400 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8401 params to first_param.
8402 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8403 params parameter from tree to void *.
8404 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8405 Change arglist parameter to have type void *, and to be a pointer
8406 to a VEC.
8407 * config/rs6000/rs6000-protos.h
8408 (altivec_resolve_overloaded_builtin): Update declaration.
8409 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8410 fnargs parameter to have type void *, and to be a pointer to a
8411 VEC. Call build_function_call_vec instead of
8412 build_function_call.
47f402d1 8413 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8414
6ff078d4 84152009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8416 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8417 H.J. Lu <hongjiu.lu@intel.com>
8418
8419 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8420
8421 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8422 (IX86_LEA_PRIORITY): Likewise.
8423 (distance_non_agu_define): New function.
8424 (distance_agu_use): Likewise.
8425 (ix86_lea_for_add_ok): Likewise.
8426 (ix86_dep_by_shift_count): Likewise.
8427
8428 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8429 should split for LEA.
8430
8431 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8432 function.
8433 (ix86_dep_by_shift_count): Likewise.
8434
87a5b4cc
RG
84352009-04-20 Richard Guenther <rguenther@suse.de>
8436
8437 * expr.c (handled_component_p): Move ...
8438 * tree.h (handled_component_p): ... here.
8439 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8440 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8441 and REALPART_EXPR to be in one group.
8442
438c239d
RG
84432009-04-20 Richard Guenther <rguenther@suse.de>
8444
8445 * basic-block.h (get_all_dominated_blocks): Declare.
8446 * dominance.c (get_all_dominated_blocks): New function.
8447 * tree-cfg.c (get_all_dominated_blocks): Remove.
8448 (remove_edge_and_dominated_blocks): Adjust.
8449 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8450 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8451 instead of recursing.
8452
fed5ae11
DK
84532009-04-20 Doug Kwan <dougkwan@google.com>
8454
8455 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8456 (struct cgraph_node_set_def): New type.
8457 (cgraph_node_set) New type. Also declare vector functions.
8458 (struct cgraph_node_set_element_def): New type.
8459 (cgraph_node_set_element): Ditto.
8460 (cgraph_node_set_iterator): New iterator type.
8461 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8462 cgraph_node_set_remove, dump_cgraph_node_set,
8463 debug_cgraph_node_set): New prototypes.
8464 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8465 cgraph_node_set_size): New inlines.
8466 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8467 including cgraph.h.
8468 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8469 argument to function 'write_summary'.
8470 * ipa.c: Include ggc.h.
8471 (hash_cgraph_node_set_element,
8472 eq_cgraph_node_set_element, cgraph_node_set_new,
8473 cgraph_node_set_add, cgraph_node_set_remove,
8474 cgraph_node_set_find, dump_cgraph_node_set,
8475 debug_cgraph_node_set): New functions.
8476 * Makefile.in (ipa.o): Add dependency on GGC_H.
8477
c4551b28
IR
84782009-04-20 Ira Rosen <irar@il.ibm.com>
8479
8480 PR tree-optimization/39675
2ba9daa7 8481 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8482 check of the return code of vect_schedule_slp. Check that
8483 stmt_vec_info still exists for the statement, before checking its
8484 vectorization type.
c4551b28 8485
21a495fb
MM
84862009-04-20 Michael Matz <matz@suse.de>
8487
8488 * Makefile.in (generated_files): Take out $(simple_generated_c).
8489
8e208874
DK
84902009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8491
8492 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8493 (UINTPTR_TYPE): Likewise.
8494
a45e580b
JM
84952009-04-19 Joseph Myers <joseph@codesourcery.com>
8496
8497 PR c/37481
8498 * c-typeck.c (digest_init): Check for initializing an array with a
8499 string literal.
8500
20845d35
JM
85012009-04-19 Joseph Myers <joseph@codesourcery.com>
8502
8503 PR c/19771
8504 * c-semantics.c (pop_stmt_list): Propagate
8505 STATEMENT_LIST_HAS_LABEL to parent statement list.
8506
28143fdd
AN
85072009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8508
8509 * config/mips/mips.h (mips_tune_attr): New macro.
8510 * config/mips/mips.md (cpu): Use it.
8511
da377db9
JM
85122009-04-19 Joseph Myers <joseph@codesourcery.com>
8513
8514 PR c/38243
8515 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8516 declaring a tag.
8517
3baf459d
DN
85182009-04-19 Diego Novillo <dnovillo@google.com>
8519
8520 * toplev.c (compile_file): Move call to coverage_finish ...
8521 * cgraphunit.c (ipa_passes): ... here.
8522 Call cgraph_process_new_functions.
8523 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8524 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8525
b6fa5b01
JH
85262009-04-19 Jan Hubicka <jh@suse.cz>
8527
47f402d1
UB
8528 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8529 cfun.
b6fa5b01
JH
8530 (dump_cgraph_node): Dump can throw external flag.
8531 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8532
ca409efd
MLI
85332009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8534
8535 PR c/32061
8536 PR c++/36954
8537 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8538 * common.opt (Wlogical-op): Move from here...
8539 * c.opt (Wlogical-op): ... to here.
8540 * c-typeck.c (parser_build_binary_op): Update call to
8541 warn_logical_operator.
8542 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8543 extra_warnings.
8544 * c-common.c (warn_logical_op): Update.
8545 * c-common.h (warn_logical_op): Update declaration.
8546
9db4cdd3
EB
85472009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8548
8549 * tree.c (protected_set_expr_location): Fix formatting.
8550
f37acdf9
JM
85512009-04-18 Joseph Myers <joseph@codesourcery.com>
8552
8553 PR c/27676
8554 * c-typeck.c (readonly_warning): new.
8555 (build_unary_op, build_modify_expr): Use readonly_warning for
8556 storing into something readonly but not const-qualified.
8557
2b4b7036
JM
85582009-04-18 Joseph Myers <joseph@codesourcery.com>
8559
8560 PR c/22367
8561 * c-typeck.c (build_unary_op): Check for taking address of
8562 expression of type void.
8563
3ce62965
JM
85642009-04-18 Joseph Myers <joseph@codesourcery.com>
8565
8566 PR c/35210
8567 * c-typeck.c (build_function_call): Check for calling a function
8568 with qualified void return types. Call require_complete_type when
8569 generating a trap.
8570
2505c5ed
JH
85712009-04-18 Jan Hubicka <jh@suse.cz>
8572
8573 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8574 Set nothrow flag.
8575 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8576 can_throw_external flag.
8577 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8578 * ipa-pure-const.c (ignore_edge): New function.
8579 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8580 only over can_throw_external edges.
8581 (local_pure_const): Add nothrow flag.
8582 * ipa-utils.c (searchc): Add ignore_edge callback.
8583 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8584 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8585 (set_nothrow_function_flags): Update cgraph.
8586 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8587
2586ba4b
RG
85882009-04-18 Richard Guenther <rguenther@suse.de>
8589
8590 PR middle-end/39804
8591 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8592 (fold_stmt): ... this and ...
8593 (fold_stmt_inplace): ... this.
8594 (fold_stmt_1): Fold references in calls and asms.
8595 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8596
1eefab17
KH
85972009-04-18 Kazu Hirata <kazu@codesourcery.com>
8598
8599 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8600 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8601
aa424b01
KH
86022009-04-18 Kazu Hirata <kazu@codesourcery.com>
8603
8604 * tree.c (function_args_count): Remove.
8605 * tree.h: Remove the prototype for function_args_count.
8606
613a896b
KH
86072009-04-18 Kazu Hirata <kazu@codesourcery.com>
8608
8609 * tree-iterator.c (expr_only): Remove.
8610 * tree.h: Remove the prototype for expr_only.
8611
579e694c
KH
86122009-04-18 Kazu Hirata <kazu@codesourcery.com>
8613
8614 * reginfo.c (cannot_change_mode_set_regs): Remove.
8615 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8616
ee7e3ad3
AS
86172009-04-08 Anatoly Sokolov <aesok@post.ru>
8618
8619 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8620 whether operands 0 and 1 overlaps.
8621
92ef7fb1
MLI
86222009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8623
8624 PR middle-end/36902
8625 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8626 pointer. Use warning_at instead of warning.
8627 (search_for_addr_array): Likewise.
8628 (check_array_bounds): Likewise.
8629 (check_all_array_refs): Check that the incoming edge is not in the
8630 list of edges to be removed.
8631 (check_all_array_refs): Avoid the temporal pointer.
8632 (vrp_visit_cond_stmt): Fix typo.
8633 (simplify_switch_using_ranges): Handle the case where the switch
8634 index is an integer constant.
8635
0e097268
AN
86362009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8637
8638 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8639
c782f1dd
KH
86402009-04-18 Kazu Hirata <kazu@codesourcery.com>
8641
8642 * doc/extend.texi, doc/invoke.texi: Fix typos.
8643
668fb0e8
CC
86442009-04-17 Cary Coutant <ccoutant@google.com>
8645
8646 * tree-flow-inline.h (get_lineno): Fix inverted test.
8647
4d4014c1
DN
86482009-04-17 Diego Novillo <dnovillo@google.com>
8649
8650 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8651 assertion for AVAIL_OUT.
8652
2984e1b6
MF
86532009-04-17 Mike Frysinger <vapier@gentoo.org>
8654
8655 PR target/38627
8656 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8657 * config/sh/linux-atomic.asm: Likewise.
8658
9994a182
DN
86592009-04-17 Diego Novillo <dnovillo@google.com>
8660
8661 * except.c (debug_eh_tree): New.
8662 (struct eh_region, struct eh_status): Move ...
8663 * except.h: ... here.
8664 (add_type_for_runtime): Declare extern.
8665 (lookup_type_for_runtime): Likewise.
8666 (debug_eh_tree): Declare.
8667 * Makefile.in (GTFILES): List except.h before except.c
8668
07485407
DN
86692009-04-17 Diego Novillo <dnovillo@google.com>
8670
47f402d1 8671 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8672 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8673 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8674 (find_vars_r): ... here.
8675 * tree-flow.h (find_referenced_vars_in): Declare.
8676 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8677 that AVAIL_OUT exists for BLOCK.
8678 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8679 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8680 (tree-parloops.o): Likewise.
8681
4e53d196
SB
86822009-04-17 Simon Baldwin <simonb@google.com>
8683
8684 * toplev.c (default_tree_printer): Add handling for %E format.
8685
413d3aa8
DN
86862009-04-17 Diego Novillo <dnovillo@google.com>
8687
47f402d1
UB
8688 * tree-pretty-print.c (dump_generic_node): Add break after
8689 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8690 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8691 FUNCTION_TYPE together. Call print_struct_decl when printing
8692 structures and TDF_SLIM is not given.
413d3aa8
DN
8693 (print_struct_decl): Fix logic for detecting recursion.
8694
5a691e98
RAE
86952009-04-17 Rafael Avila de Espindola <espindola@google.com>
8696
8697 PR 31567
8698 * gcc.c (create_at_file): New.
8699 (compile_input_file_p): New.
8700 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8701 * main.c (main): Update call to toplev_main.
8702 * toplev.c (toplev_main): Change signature. Call expandargv.
8703 * toplev.h (toplev_main): Change signature.
8704
9eacf7a6
EB
87052009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8706
8707 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8708 if the latter is not constant.
8709
58298177
DE
87102009-04-17 David Edelsohn <edelsohn@gnu.org>
8711
8712 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8713
5b4c43d7
EB
87142009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8715
8716 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8717 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8718
b51605c4
RG
87192009-04-17 Richard Guenther <rguenther@suse.de>
8720
8721 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8722 Handle component references view-converting an invariant address.
8723
9e3be889
AN
87242009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8725
8726 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8727 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8728 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8729 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8730 Use @deftypevr rather than @deftypevar.
8731
7c3e9dc3
RG
87322009-04-17 Richard Guenther <rguenther@suse.de>
8733
47f402d1 8734 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8735 (get_prop_source_stmt): Likewise.
8736 (can_propagate_from): Likewise.
8737
aca600aa
AS
87382009-04-17 Andrew Stubbs <ams@codesourcery.com>
8739
8740 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8741 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8742 (--with-multilib-list): Add default value.
8743 * configure: Regenerate.
8744 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8745 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8746 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8747 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8748 Don't add default cpu to multilib list unnecessarily, but do enable
8749 the relevant compiler option..
8750 Add support for --with-multilib-list=<blank> and
8751 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8752 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8753 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8754 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8755 TM_MULTILIB_CONFIG.
8756 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8757 (MULTILIB_OSDIRNAMES): New variable.
8758 * config/sh/t-1e: Delete file.
8759 * config/sh/t-mlib-sh1: Delete file.
8760 * config/sh/t-mlib-sh2: Delete file.
8761 * config/sh/t-mlib-sh2a: Delete file.
8762 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8763 * config/sh/t-mlib-sh2a-single: Delete file.
8764 * config/sh/t-mlib-sh2a-single-only: Delete file.
8765 * config/sh/t-mlib-sh2e: Delete file.
8766 * config/sh/t-mlib-sh3e: Delete file.
8767 * config/sh/t-mlib-sh4: Delete file.
8768 * config/sh/t-mlib-sh4-nofpu: Delete file.
8769 * config/sh/t-mlib-sh4-single: Delete file.
8770 * config/sh/t-mlib-sh4-single-only: Delete file.
8771 * config/sh/t-mlib-sh4a: Delete file.
8772 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8773 * config/sh/t-mlib-sh4a-single: Delete file.
8774 * config/sh/t-mlib-sh4a-single-only: Delete file.
8775 * config/sh/t-mlib-sh4al: Delete file.
8776 * config/sh/t-mlib-sh5-32media: Delete file.
8777 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8778 * config/sh/t-mlib-sh5-64media: Delete file.
8779 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8780 * config/sh/t-mlib-sh5-compact: Delete file.
8781 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8782 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8783 * doc/install.texi (Options specification): Add
8784 --with-multilib-list and --with-endian.
8785
cf8aba7f
RAE
87862009-04-17 Rafael Avila de Espindola <espindola@google.com>
8787
8788 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8789 REVISION_c.
8790 (OBJS-common): Add plugin-version.o.
8791 (plugin-version.o): New.
8792 * gcc-plugin.h (plugin_gcc_version): New.
8793 (plugin_default_version_check): New.
8794 (plugin_init_func, plugin_init): Add version argument.
8795 * plugin-version.c: New.
8796 * plugin.c (str_plugin_gcc_version_name): New.
8797 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8798 pass it to the init function.
8799 (plugin_default_version_check): New.
8800
61e20b90
RG
88012009-04-17 Richard Guenther <rguenther@suse.de>
8802
8803 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8804 for decl-vs-decl disambiguation.
8805
90c6fd8a
AK
88062009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8807
8808 * config/s390/s390.h (s390_tune_attr): New macro definition.
8809 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8810
9fe9fe04
RG
88112009-04-17 Richard Guenther <rguenther@suse.de>
8812
8813 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8814 (fold_stmt_r): Likewise.
8815 (maybe_fold_reference): New function.
8816 (fold_gimple_assign): Handle cases fold_stmt_r did.
8817 (fold_stmt): Do not use fold_stmt_r.
8818 (fold_stmt_inplace): Likewise.
8819
7e673273
RG
88202009-04-17 Richard Guenther <rguenther@suse.de>
8821
8822 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8823 (record_equivalences_from_stmt): Remove useless checks and
8824 simplifications.
8825 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8826 the type is already suitable.
8827
fabf2749
PB
88282009-04-17 Paolo Bonzini <bonzini@gnu.org>
8829
8830 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8831
68f7b061
UB
88322009-04-17 Uros Bizjak <ubizjak@gmail.com>
8833
8834 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8835 (CMPtype): Define as __gcc_CMPtype.
8836
532bfb0a
AJ
88372009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8838
8839 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8840 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8841
e3ac77ff
RG
88422009-04-17 Richard Guenther <rguenther@suse.de>
8843
8844 PR tree-optimization/39746
8845 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8846 special-casing for builtins and static variable use/def.
8847 (call_may_clobber_ref_p_1): Likewise.
8848
7072a650
ILT
88492009-04-16 Ian Lance Taylor <iant@google.com>
8850
8851 * df.h: Include "timevar.h".
8852 (struct df_problem): Change tv_id field to timevar_id_t.
8853 * tree-pass.h: Include "timevar.h".
8854 (struct opt_pass): Change tv_id field to timevar_id_t.
8855 * timevar.h (timevar_id_t): Define TV_NONE.
8856 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8857 TV_NONE rather than tv_id != 0.
8858 (execute_one_pass): Likewise.
8859 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8860 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8861 dependencies to $(TREE_PASS_H).
8862 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8863 to TV_NONE.
8864 (pass_branch_target_load_optimize2): Likewise.
8865 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8866 (pass_outof_cfg_layout_mode): Likewise.
8867 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8868 (pass_rebuild_cgraph_edges): Likewise.
8869 (pass_remove_cgraph_callee_edges): Likewise.
8870 * df-core.c (pass_df_initialize_opt): Likewise.
8871 (pass_df_initialize_no_opt): Likewise.
8872 (pass_df_finish): Likewise.
8873 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8874 * except.c (pass_set_nothrow_function_flags): Likewise.
8875 (pass_convert_to_eh_region_ranges): Likewise.
8876 * final.c (pass_compute_alignments): Likewise.
8877 * function.c (pass_instantiate_virtual_regs): Likewise.
8878 (pass_init_function): Likewise.
8879 (pass_leaf_regs): Likewise.
8880 (pass_match_asm_constraints): Likewise.
8881 * gimple-low.c (pass_lower_cf): Likewise.
8882 (pass_mark_used_blocks): Likewise.
8883 * init-regs.c (pass_initialize_regs): Likewise.
8884 * integrate.c (pass_initial_value_sets): Likewise.
8885 * ira.c (pass_ira): Likewise.
8886 * jump.c (pass_cleanup_barriers): Likewise.
8887 * omp-low.c (pass_expand_omp): Likewise.
8888 (pass_lower_omp): Likewise.
8889 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8890 * recog.c (pass_split_all_insns): Likewise.
8891 (pass_split_after_reload): Likewise.
8892 (pass_split_before_regstack): Likewise.
8893 (pass_split_before_sched2): Likewise.
8894 (pass_split_for_shorten_branches): Likewise.
8895 * reginfo.c (pass_reginfo_init): Likewise.
8896 (pass_subregs_of_mode_init): Likewise.
8897 (pass_subregs_of_mode_finish): Likewise.
8898 * passes.c (pass_postreload): Likewise.
8899 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8900 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8901 (pass_warn_function_return): Likewise.
8902 (pass_warn_function_noreturn): Likewise.
8903 * tree-complex.c (pass_lower_complex): Likewise.
8904 (pass_lower_complex_O0): Likewise.
8905 * tree-if-conv.c (pass_if_conversion): Likewise.
8906 * tree-into-ssa.c (pass_build_ssa): Likewise.
8907 * tree-mudflap.c (pass_mudflap_1): Likewise.
8908 (pass_mudflap_2): Likewise.
8909 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8910 (pass_mudflap_2): Likewise.
8911 * tree-nrv.c (pass_return_slot): Likewise.
8912 * tree-object-size.c (pass_object_sizes): Likewise.
8913 * tree-optimize.c (pass_all_optimizations): Likewise.
8914 (pass_early_local_passes): Likewise.
8915 (pass_all_early_optimizations): Likewise.
8916 (pass_cleanup_cfg): Likewise.
8917 (pass_cleanup_cfg_post_optimizing): Likewise.
8918 (pass_free_datastructures): Likewise.
8919 (pass_free_cfg_annotations): Likewise.
8920 (pass_fixup_cfg): Likewise.
8921 (pass_init_datastructures): Likewise.
8922 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8923 (pass_late_warn_uninitialized): Likewise.
8924 (pass_update_address_taken): Likewise.
8925 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8926 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8927 (pass_cse_sincos): Likewise.
8928 (pass_convert_to_rsqrt): Likewise.
8929 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8930 * tree-stdarg.c (pass_stdarg): Likewise.
8931 * tree-tailcall.c (pass_tail_recursion): Likewise.
8932 (pass_tail_calls): Likewise.
8933 * tree-vect-generic.c (pass_lower_vector): Likewise.
8934 (pass_lower_vector_ssa): Likewise.
8935 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8936
0051ef59
JM
89372009-04-16 Joseph Myers <joseph@codesourcery.com>
8938
8939 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8940 XLR entry.
8941 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8942 Handle -march=xlr.
8943 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8944 logical and signext.
8945
b3f8558a
KK
89462009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8947
8948 PR target/39767
8949 * config/sh/predicates.md (arith_operand): Check if the operand
8950 of TRUNCATE is a REG.
8951
f57597d9
KH
89522009-04-16 Kazu Hirata <kazu@codesourcery.com>
8953
8954 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8955 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8956
b172d063
KH
89572009-04-16 Kazu Hirata <kazu@codesourcery.com>
8958
8959 * tree-iterator.c (tsi_split_statement_list_after,
8960 tsi_split_statement_list_before): Remove.
8961 * tree-iterator.h: Remove the prototypes for
532bfb0a 8962 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8963
78fe4f1f
KH
89642009-04-16 Kazu Hirata <kazu@codesourcery.com>
8965
8966 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8967 * tree-ssa-propagate.h: Remove the prototype for
8968 stmt_makes_single_load.
8969
43dd3201
KH
89702009-04-16 Kazu Hirata <kazu@codesourcery.com>
8971
8972 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8973 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8974
4252a4aa
KH
89752009-04-16 Kazu Hirata <kazu@codesourcery.com>
8976
8977 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8978
bfb69968
KH
89792009-04-16 Kazu Hirata <kazu@codesourcery.com>
8980
8981 * except.c (eh_region_outer_p): Remove.
8982 * except.h: Remove the prototype for eh_region_outer_p.
8983
c7db7fa5
KH
89842009-04-16 Kazu Hirata <kazu@codesourcery.com>
8985
8986 * function.c (current_function_assembler_name): Remove.
8987 * function.h: Remove the prototype for
8988 current_function_assembler_name.
8989
efc0b2bd
ILT
89902009-04-16 Ian Lance Taylor <iant@google.com>
8991
532bfb0a 8992 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8993 (add_reg_note): Call alloc_reg_note.
8994 * rtl.h (alloc_reg_note): Declare.
8995 * combine.c (try_combine): Use alloc_reg_note.
8996 (recog_for_combine, move_deaths): Likewise.
8997 (distribute_notes): Use alloc_reg_note and add_reg_note.
8998 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8999 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9000 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9001
6080348f
VM
90022009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9003
9004 PR rtl-optimization/39762
9005 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9006 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9007 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9008
6080348f
VM
9009 * ira-conflicts.c (process_regs_for_copy): Use function
9010 ira_get_register_move_cost instead of global
9011 ira_register_move_cost.
9012
9013 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9014 color_pass, move_spill_restore, update_curr_costs): Ditto.
9015
9016 * ira-lives.c (process_single_reg_class_operands): Ditto.
9017
9018 * ira-emit.c (emit_move_list): Ditto.
9019
9020 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9021 (record_reg_classes): Ditto. Use functions
9022 ira_get_register_move_cost and ira_get_may_move_cost instead of
9023 global vars ira_register_move_cost, ira_may_move_out_cost and
9024 ira_may_move_in_cost.
9025 (record_address_regs): Don't call ira_init_register_move_cost.
9026 Use function ira_get_may_move_cost instead of global
9027 ira_may_move_in_cost.
9028 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9029 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9030 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9031
646bea10
RG
90322009-04-16 Richard Guenther <rguenther@suse.de>
9033
9034 * tree-cfg.c (verify_gimple_assign_binary):
9035 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9036 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9037 (create_general_new_stmt): Note that this function is broken.
9038
02e819ff
RAE
90392009-04-16 Rafael Avila de Espindola <espindola@google.com>
9040
9041 * common.opt (fhelp): Add Var(help_flag).
9042 * gcc-plugin.h (plugin_info): Add help.
9043 * plugin.c (plugin_name_args): Add help.
9044 (register_plugin_info): Set plugin->help.
9045 (print_help_one_plugin): New.
9046 (print_plugins_help): New.
9047 * plugin.h (print_plugins_help): New.
9048 * toplev.c (toplev_main): Call print_plugins_help if needed.
9049
ccacdf06
RG
90502009-04-16 Richard Guenther <rguenther@suse.de>
9051
9052 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9053 (gimple_ior_addresses_taken_1): New function.
9054 (gimple_ior_addresses_taken): Likewise.
9055 * gimple.h (struct gimple_statement_with_ops_base): Remove
9056 addresses_taken member.
9057 (gimple_ior_addresses_taken): Declare.
9058 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9059 gimple_set_addresses_taken): Remove.
9060 * ipa-reference.c (mark_address): New function.
9061 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9062 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9063 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9064 (gimple_add_to_addresses_taken): Remove.
9065 (get_tmr_operands): Call mark_address_taken.
9066 (get_asm_expr_operands): Likewise.
9067 (get_expr_operands): Likewise.
9068 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9069 (free_stmt_operands): Do not free it.
9070 * tree-ssa.c (delete_tree_ssa): Likewise.
9071 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9072
346ef3fa
RG
90732009-04-16 Richard Guenther <rguenther@suse.de>
9074
9075 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9076 (walk_stmt_load_store_ops): Likewise.
9077 * gimple.c (get_base_loadstore): New function.
9078 (walk_stmt_load_store_addr_ops): Likewise.
9079 (walk_stmt_load_store_ops): Likewise.
9080 * ipa-pure-const.c (check_op): Simplify.
9081 (check_load, check_store): New functions.
9082 (check_stmt): Use walk_stmt_load_store_ops.
9083 * ipa-reference.c (mark_load): Adjust signature.
9084 (mark_store): Likewise.
9085 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9086
44e9f006
RAE
90872009-04-16 Rafael Avila de Espindola <espindola@google.com>
9088
9089 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9090 (plugin_info): New.
9091 * opts.c (common_handle_option): Don't call print_version.
9092 * plugin.c (plugin_name_args): Add version.
9093 (register_plugin_info): New.
9094 (register_callback): Handle PLUGIN_INFO.
9095 (try_init_one_plugin): New.
9096 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9097 if failed to init.
9098 (finalize_one_plugin): New.
9099 (finalize_plugins): New.
9100 (print_one_plugin): New.
9101 (print_plugins_versions): New.
9102 * plugin.h (print_plugins_versions): New.
9103 (finalize_plugins): New.
9104 * toplev.c (compile_file): Don't call initialize_plugins.
9105 (print_version): Call print_plugins_versions.
9106 (toplev_main): Call initialize_plugins. Print version if needed.
9107 Call finalize_plugins.
9108
41fd0f9b
RAE
91092009-04-16 Rafael Avila de Espindola <espindola@google.com>
9110
9111 * common.opt (fversion): New.
9112 * gcc.c (print_version): New.
9113 (process_command): Don't print the version. Just set print_version.
9114 (main): Print version. Call subprocesses if print_version and
9115 verbose_flag are set.
9116 * opts.c (common_handle_option): Handle OPT_fversion.
9117
550918ca 91182009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9119 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9120
9121 PR tree-optimization/39698
9122 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9123 type of the reduction variable. Only generate the def if
9124 it is needed.
9125
9126 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9127 make sure to first convert to an integer of the same precision.
9128 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9129 the type of the evolution correctly in computing the new
9130 induction variable base.
9131
54634841
RG
91322009-04-16 Richard Guenther <rguenther@suse.de>
9133
9134 PR middle-end/39625
9135 * tree-cfg.c (make_blocks): Split statements with to-be
9136 abnormal SSA names on the lhs.
9137
b6fc2cdb
PB
91382009-04-16 Paolo Bonzini <bonzini@gnu.org>
9139
9140 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9141 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9142 * c-typeck.c (really_start_incremental_init): Likewise.
9143 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9144 (TARGET_INITIALIZER): Remove it.
9145 * target.h (struct target): Remove vector_opaque_p.
9146 * tree.c (build_opaque_vector_type): New.
9147 * tree.h (TYPE_VECTOR_OPAQUE): New.
9148 (build_opaque_vector_type): Declare.
9149 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9150 * config/rs6000/rs6000.c (build_opaque_vector_type,
9151 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9152 (rs6000_init_builtins): Use build_opaque_vector_type for
9153 opaque_V4SI_type_node.
9154
a417cdd9
CM
91552009-04-15 Catherine Moore <clm@codesourcery.com>
9156
532bfb0a
AJ
9157 * debug.h (set_name): Declare.
9158 * dwarf2out.c (dwarf2out_set_name): Declare.
9159 (dwarf2_debug_hooks): Add set_name.
9160 (find_AT_string): New.
9161 (add_AT_string): Call find_AT_string.
9162 (dwarf2out_set_name): New.
9163 * cp/decl.c (grokdeclarator): Call set_name.
9164 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9165 * debug.c (do_nothing_debug_hooks): Likewise.
9166 * dbxout.c (dbx_debug_hooks): Likewise.
9167 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9168
60839f5d 91692009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9170
532bfb0a
AJ
9171 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9172 reg for single-precision FPU.
9173 * config/rs6000/rs6000.md (movsi_internal1): Only for
9174 !TARGET_SINGLE_FPU.
9175 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9176 single-precision FP regs.
9177
ada39f0b
RG
91782009-04-15 Richard Guenther <rguenther@suse.de>
9179
9180 * omp-low.c (lower_rec_input_clauses): Build correct address
9181 expressions.
9182 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9183 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9184 (generate_memset_zero): Fix types.
9185 * tree-profile.c (prepare_instrumented_value): Correctly
9186 widen a pointer.
9187
6866c6e8
ILT
91882009-04-15 Ian Lance Taylor <iant@google.com>
9189
9190 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9191 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9192 for -Wall and for -Wc++-compat.
9193 (c_common_post_options): For C++, set warn_enum_compare if not
9194 already set.
9195 * c-tree.h (struct c_expr): Add field original_type.
9196 (build_external_ref): Update declaration.
9197 * c-parser.c (c_parser_braced_init): Set original_type.
9198 (c_parser_initelt): Likewise.
9199 (c_parser_expr_no_commas): Likewise.
9200 (c_parser_conditional_expression): Likewise.
9201 (c_parser_cast_expression): Likewise.
9202 (c_parser_unary_expression): Likewise. Pull setting of
9203 original_code to top of function.
9204 (c_parser_sizeof_expression): Set original_type.
9205 (c_parser_alignof_expression): Likewise.
9206 (c_parser_postfix_expression): Likewise. Pull setting of
9207 original_code to top of function.
532bfb0a 9208 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9209 (c_parser_postfix_expression_after_primary): Likewise.
9210 (c_parser_expression): Likewise.
9211 * c-typeck.c (build_external_ref): Add type parameter. Change all
9212 callers.
9213 (c_expr_sizeof_expr): Set original_type field.
9214 (parser_build_unary_op): Likewise.
9215 (parser_build_binary_op): Likewise. Optionally warn about
9216 comparisons of enums of different types.
9217 (digest_init): Set original_type field.
9218 (really_start_incremental_init): Likewise.
9219 (push_init_level, pop_init_level): Likewise.
9220 * doc/invoke.texi (Warning Options): -Wenum-compare now
9221 supported in C.
9222
f116fecf
RG
92232009-04-15 Richard Guenther <rguenther@suse.de>
9224
9225 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9226 out a necessary conversion.
9227 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9228 names we didn't value number.
9229 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9230
25e20805
RG
92312009-04-15 Richard Guenther <rguenther@suse.de>
9232
9233 PR tree-optimization/39764
9234 * tree-ssa-ccp.c (get_value): Canonicalize value with
9235 canonicalize_float_value.
9236
90cc3676
JH
92372009-04-15 Jan Hubicka <jh@suse.cz>
9238
9239 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9240 Wrong version of patch.
9241
6d14c006
JH
92422009-04-15 Jan Hubicka <jh@suse.cz>
9243
9244 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9245
5afaa917
NS
92462009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9247
9248 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9249 our distinct integral and vector types.
9250
3b482fca
RAE
92512009-04-15 Rafael Avila de Espindola <espindola@google.com>
9252
9253 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9254 * init.c (build_vtbl_address): Remove call to assemble_external.
9255
6cd1d2e2
DJ
92562009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9257
9258 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9259 output for other floating point modes.
9260
dab71827
DN
92612009-04-14 Diego Novillo <dnovillo@google.com>
9262
9263 * diagnostic.c (diagnostic_report_diagnostic): Do not
9264 warn about loaded plugins for DK_ERROR and DK_WARNING.
9265 * c-decl.c (declspecs_add_type): Move call to
9266 invoke_plugin_callbacks ...
9267 * c-parser.c (c_parser_declspecs): ... here.
9268 * plugin.c (dump_active_plugins): Tidy output.
9269
68a607d8
DN
92702009-04-14 Diego Novillo <dnovillo@google.com>
9271 Le-Chun Wu <lcwu@google.com>
9272
9273 * configure.ac: Add --enable-plugin support.
9274 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9275 * Makefile.in (PLUGIN_H): Define.
9276 Export ENABLE_PLUGIN and GMPINC to site.exp.
9277 Add PLUGINLIBS to link command.
9278 Add/modify dependencies for plugin.o and files including plugin.h.
9279 (plugin.o): New.
9280 * config.in: Regenerate.
2ba9daa7 9281
68a607d8
DN
9282 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9283 OPT_fplugin_arg_.
9284
92852009-04-14 Le-Chun Wu <lcwu@google.com>
9286
9287 * tree-pass.h (register_one_dump_file): Add a prototype for
9288 register_one_dump_file.
9289 * toplev.c (compile_file): Call initialize_plugins.
9290 (do_compile): Call invoke_plugin_callbacks.
9291 (toplev_main): Call invoke_plugin_callbacks.
9292 * common.opt: Add -fplugin= and -fplugin-arg-.
9293 * gcc-plugin.h: New public header file for plugins to include.
9294 * plugin.c: New source file.
9295 * plugin.h: New internal header file.
9296 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9297
68a607d8
DN
9298 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9299
93002009-04-14 Diego Novillo <dnovillo@google.com>
9301
9302 * doc/plugins.texi: New.
9303 * doc/gccint.texi: Add reference to Plugins chapter.
9304 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9305 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9306 loaded plugins, if any.
9307 * timevar.def (TV_PLUGIN_INIT): Define.
9308 (TV_PLUGIN_RUN): Define.
9309 * plugin.c: Include timevar.h
9310 (plugins_active_p): New.
9311 (dump_active_plugins): New.
9312 (debug_active_plugins): New.
9313
50617257
JM
93142009-04-14 Joseph Myers <joseph@codesourcery.com>
9315
9316 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9317 library paths.
9318 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9319
b32f6fff
KH
93202009-04-14 Kazu Hirata <kazu@codesourcery.com>
9321
9322 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9323 the same as a minus without a shift.
9324
85d04fa2
NC
93252009-04-14 Nick Clifton <nickc@redhat.com>
9326
9327 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9328 comparisons with small integers will always produce a short
9329 branch.
9330
e495a0c8
RAE
93312009-04-14 Rafael Avila de Espindola <espindola@google.com>
9332
9333 Merge:
e495a0c8
RAE
9334 2008-12-19 Diego Novillo <dnovillo@google.com>
9335
532bfb0a 9336 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9337
ad41bd84 93382009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9339
9340 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9341 verification.
9342 (verify_gimple_assign_binary): Likewise. Handle shifts and
9343 rotates correctly.
9344 (verify_gimple_phi): Print the mismatched argument position.
9345 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9346 Fix types.
9347 (vect_update_init_of_dr): Likewise.
9348 * matrix-reorg.c (transform_access_sites): Do what the
9349 comment suggests.
9350 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9351
60839f5d 93522009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9353
9354 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9355 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9356 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9357 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9358 remove duplicate config
9359
b0e2d008
DR
93602009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9361
9362 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9363 file_name:line_number type locator of the call site.
2ba9daa7 9364
1244a8b7
VM
93652009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9366
9367 * genautomata.c: Put blank after comma.
9368 (automaton_decls): New.
9369 (struct unit_usage): Add comments to member next.
9370 (store_alt_unit_usage): Keep the list ordered.
9371 (unit_present_on_list_p, equal_alternatives_p): New.
9372 (check_regexp_units_distribution): Check units distribution
9373 correctness correctly.
9374 (main): Don't write automata if error is found. Return correct
9375 exit code.
2ba9daa7 9376
1244a8b7
VM
9377 * config/m68k/cf.md (cfv4_ds): Remove.
9378 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9379 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9380
9381 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9382 power4-load-ext, power4-store, power4-store-update,
9383 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9384 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9385 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9386 power4-sqrt, power4-isync): Modify reservation to make correct
9387 unit distribution to automata.
9388
9389 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9390 power5-store-update, power5-two, power5-three, power5-lmul,
9391 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9392
f7dd1864
AN
93932009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9394
9395 * except.c (pass_set_nothrow_function_flags): Set name and add
9396 TODO_dump_func.
9397 (set_nothrow_function_flags): Mention in the dump file when
9398 changing a function to nothrow.
9399
59a1171f
OS
94002009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9401
9402 PR/39066
9403 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9404 instead of unsigned long.
9405
934c2060
RR
94062009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9407
f7dd1864
AN
9408 * config/arm/arm.c (return_used_this_function): Remove.
9409 (arm_output_function_prologue): Remove use of
934c2060 9410 return_used_this_function.
f7dd1864 9411 (output_return_instruction): Replace use of
934c2060
RR
9412 return_used_this_function
9413 by cfun->machine->return_used_this_function.
f7dd1864
AN
9414 (arm_output_epilogue): Likewise.
9415 (arm_output_function_epilogue): Likewise.
9416 (thumb_unexpanded_epilogue): Likewise.
9417 * config/arm/arm.h (struct machine_function):
934c2060 9418 New member return_used_this_function.
f7dd1864 9419
ae5cc016
MM
94202009-04-12 Mark Mitchell <mark@codesourcery.com>
9421
9422 * doc/install.texi: Correct description of default directory for
9423 --with-gxx-include-dir.
9424
a0ce68df 94252009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9426
9427 * fold-const.c (build_range_check): Properly deal with enumeral and
9428 boolean base types.
9429
3906a4a1
SB
94302009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9431
9432 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9433 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9434 * params.h (MAX_GCSE_PASSES): Remove.
9435 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9436 in sequence. Remove ability to run multiple passes.
9437 (bypass_jumps): Report run as third CPROP pass.
9438
efaadb93
AN
94392009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9440
9441 PR middle-end/39651
9442 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9443 when deciding whether the whole SEQUENCE can throw.
9444
4c48007b
UB
94452009-04-12 Uros Bizjak <ubizjak@gmail.com>
9446
9447 PR target/39740
9448 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9449 offseted label references.
9450
b4104018
JH
94512009-04-11 Jan Hubicka <jh@suse.cz>
9452
9453 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9454
32848948
RG
94552009-04-11 Richard Guenther <rguenther@suse.de>
9456
9457 PR middle-end/39732
9458 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9459 return variables as TREE_ADDRESSABLE.
9460
8810712e
RG
94612009-04-11 Richard Guenther <rguenther@suse.de>
9462
9463 PR tree-optimization/39713
9464 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9465 reference trees have SSA_NAME operands.
9466
fa78c0c1
RG
94672009-04-11 Richard Guenther <rguenther@suse.de>
9468
9469 PR c/39712
9470 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9471 address expressions.
9472
4d722130
DK
94732009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9474
9475 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9476 match changes in Cygwin 1.7
9477 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9478 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9479
567a90f5
PB
94802009-04-10 Paolo Bonzini <bonzini@gnu.org>
9481
9482 PR tree-optimization/39701
9483 * doc/invoke.texi (Optimization Options): Document change in
9484 meaning and initialization of -fdelete-null-pointer-checks.
9485
1ad2f450
L
94862009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9487
9488 PR middle-end/39701
9489 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9490
9491 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9492 here.
9493
9494 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9495
1afc5373
CF
94962009-04-10 Chao-ying Fu <fu@mips.com>
9497
9498 * doc/tm.texi (Instruction Output): Document
9499 TARGET_ASM_FINAL_POSTSCAN_INSN.
9500 * target.h (final_postscan_insn): New field in asm_out.
9501 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9502 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9503 * final.c (final_scan_insn): Call
9504 targetm.asm_out.final_postscan_insn after outputting
9505 an asm macro and a normal instruction.
9506
9507 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9508 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9509 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9510 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9511 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9512
4d35e75c
PB
95132009-04-10 Paolo Bonzini <bonzini@gnu.org>
9514
9515 PR middle-end/39701
1ad2f450
L
9516 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9517 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9518
62c49b83
L
95192009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9520
9521 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9522
80558628
L
95232009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9524
9525 PR target/39678
9526 * config/i386/i386.c (classify_argument): Handle SCmode with
9527 (bit_offset % 64) != 0.
9528
8c70d28b
SL
95292009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9530
9531 * doc/invoke.texi (Optimize Options): Add cross-reference to
9532 -Q --help=optimizers examples.
9533
e1ff19bf
BE
95342009-04-10 Ben Elliston <bje@au.ibm.com>
9535
9536 PR target/36800
9537 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9538 regalign for the reg == fpr and TDmode case.
9539
52daca75
DA
95402009-04-09 David Ayers <ayers@fsfe.org>
9541
9542 PR objc/29200
9543 * objc/objc-act.c (warn_with_method): Remove helper function.
9544 (check_duplicates): Call warning and inform directly.
9545 (really_start_method): Likewise.
9546
b45f0e58
PB
95472009-04-09 Paolo Bonzini <bonzini@gnu.org>
9548
9549 * expmed.c (expand_divmod): Always use a comparison for a division
9550 by a large unsigned integer.
9551
1ad2f450
L
9552 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9553 for things others than variables or functions as nonzero.
b45f0e58 9554
748086b7
JJ
95552009-04-09 Nick Clifton <nickc@redhat.com>
9556
9557 * unwind-compat.c: Change copyright header to refer to version
9558 3 of the GNU General Public License with version 3.1 of the
9559 GCC Runtime Library Exception and to point readers at the
7a715bba 9560 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9561 * config/alpha/crtfastmath.c: Likewise.
9562 * config/alpha/linux-unwind.h: Likewise.
9563 * config/alpha/qrnnd.asm: Likewise.
9564 * config/alpha/vms-crt0-64.c: Likewise.
9565 * config/alpha/vms-crt0.c: Likewise.
9566 * config/alpha/vms-dwarf2.asm: Likewise.
9567 * config/alpha/vms-dwarf2eh.asm: Likewise.
9568 * config/alpha/vms-psxcrt0-64.c: Likewise.
9569 * config/alpha/vms-psxcrt0.c: Likewise.
9570 * config/alpha/vms_tramp.asm: Likewise.
9571 * config/arc/initfini.c: Likewise.
9572 * config/arc/lib1funcs.asm: Likewise.
9573 * config/arm/bpabi-v6m.S: Likewise.
9574 * config/arm/bpabi.S: Likewise.
9575 * config/arm/bpabi.c: Likewise.
9576 * config/arm/crti.asm: Likewise.
9577 * config/arm/crtn.asm: Likewise.
9578 * config/arm/ieee754-df.S: Likewise.
9579 * config/arm/ieee754-sf.S: Likewise.
9580 * config/arm/lib1funcs.asm: Likewise.
9581 * config/arm/libunwind.S: Likewise.
9582 * config/arm/linux-atomic.c: Likewise.
9583 * config/arm/mmintrin.h: Likewise.
9584 * config/arm/pr-support.c: Likewise.
9585 * config/arm/unaligned-funcs.c: Likewise.
9586 * config/arm/unwind-arm.c: Likewise.
9587 * config/arm/unwind-arm.h: Likewise.
9588 * config/avr/libgcc.S: Likewise.
9589 * config/bfin/crti.s: Likewise.
9590 * config/bfin/crtlibid.s: Likewise.
9591 * config/bfin/crtn.s: Likewise.
9592 * config/bfin/lib1funcs.asm: Likewise.
9593 * config/bfin/linux-unwind.h: Likewise.
9594 * config/cris/arit.c: Likewise.
9595 * config/cris/cris_abi_symbol.c: Likewise.
9596 * config/darwin-64.c: Likewise.
9597 * config/darwin-crt2.c: Likewise.
9598 * config/darwin-crt3.c: Likewise.
9599 * config/darwin.h: Likewise.
9600 * config/dbxelf.h: Likewise.
9601 * config/dfp-bit.c: Likewise.
9602 * config/dfp-bit.h: Likewise.
9603 * config/elfos.h: Likewise.
9604 * config/fixed-bit.c: Likewise.
9605 * config/fixed-bit.h: Likewise.
9606 * config/fp-bit.c: Likewise.
9607 * config/fp-bit.h: Likewise.
9608 * config/fr30/crti.asm: Likewise.
9609 * config/fr30/crtn.asm: Likewise.
9610 * config/fr30/lib1funcs.asm: Likewise.
9611 * config/freebsd-spec.h: Likewise.
9612 * config/frv/cmovd.c: Likewise.
9613 * config/frv/cmovh.c: Likewise.
9614 * config/frv/cmovw.c: Likewise.
9615 * config/frv/frvbegin.c: Likewise.
9616 * config/frv/frvend.c: Likewise.
9617 * config/frv/lib1funcs.asm: Likewise.
9618 * config/glibc-stdint.h: Likewise.
9619 * config/h8300/clzhi2.c: Likewise.
9620 * config/h8300/crti.asm: Likewise.
9621 * config/h8300/crtn.asm: Likewise.
9622 * config/h8300/ctzhi2.c: Likewise.
9623 * config/h8300/fixunssfsi.c: Likewise.
9624 * config/h8300/lib1funcs.asm: Likewise.
9625 * config/h8300/parityhi2.c: Likewise.
9626 * config/h8300/popcounthi2.c: Likewise.
9627 * config/i386/ammintrin.h: Likewise.
9628 * config/i386/att.h: Likewise.
9629 * config/i386/avxintrin.h: Likewise.
9630 * config/i386/biarch64.h: Likewise.
9631 * config/i386/bmmintrin.h: Likewise.
9632 * config/i386/cpuid.h: Likewise.
9633 * config/i386/cross-stdarg.h: Likewise.
9634 * config/i386/crtfastmath.c: Likewise.
9635 * config/i386/crtprec.c: Likewise.
9636 * config/i386/cygming-crtbegin.c: Likewise.
9637 * config/i386/cygming-crtend.c: Likewise.
9638 * config/i386/cygwin.asm: Likewise.
9639 * config/i386/emmintrin.h: Likewise.
9640 * config/i386/gmm_malloc.h: Likewise.
9641 * config/i386/gthr-win32.c: Likewise.
9642 * config/i386/i386.h: Likewise.
9643 * config/i386/immintrin.h: Likewise.
9644 * config/i386/linux-unwind.h: Likewise.
9645 * config/i386/linux64.h: Likewise.
9646 * config/i386/mm3dnow.h: Likewise.
9647 * config/i386/mmintrin-common.h: Likewise.
9648 * config/i386/mmintrin.h: Likewise.
9649 * config/i386/nmmintrin.h: Likewise.
9650 * config/i386/pmm_malloc.h: Likewise.
9651 * config/i386/pmmintrin.h: Likewise.
9652 * config/i386/smmintrin.h: Likewise.
9653 * config/i386/sol2-c1.asm: Likewise.
9654 * config/i386/sol2-ci.asm: Likewise.
9655 * config/i386/sol2-cn.asm: Likewise.
9656 * config/i386/sol2-gc1.asm: Likewise.
9657 * config/i386/tmmintrin.h: Likewise.
9658 * config/i386/unix.h: Likewise.
9659 * config/i386/w32-unwind.h: Likewise.
9660 * config/i386/wmmintrin.h: Likewise.
9661 * config/i386/x86-64.h: Likewise.
9662 * config/i386/x86intrin.h: Likewise.
9663 * config/i386/xmmintrin.h: Likewise.
9664 * config/ia64/crtbegin.asm: Likewise.
9665 * config/ia64/crtend.asm: Likewise.
9666 * config/ia64/crtfastmath.c: Likewise.
9667 * config/ia64/crti.asm: Likewise.
9668 * config/ia64/crtn.asm: Likewise.
9669 * config/ia64/fde-glibc.c: Likewise.
9670 * config/ia64/lib1funcs.asm: Likewise.
9671 * config/ia64/linux-unwind.h: Likewise.
9672 * config/ia64/quadlib.c: Likewise.
9673 * config/ia64/unwind-ia64.c: Likewise.
9674 * config/linux.h: Likewise.
9675 * config/m32c/m32c-lib1.S: Likewise.
9676 * config/m32c/m32c-lib2-trapv.c: Likewise.
9677 * config/m32c/m32c-lib2.c: Likewise.
9678 * config/m32r/initfini.c: Likewise.
9679 * config/m68hc11/larith.asm: Likewise.
9680 * config/m68hc11/m68hc11-crt0.S: Likewise.
9681 * config/m68k/cf.md: Likewise.
9682 * config/m68k/crti.s: Likewise.
9683 * config/m68k/crtn.s: Likewise.
9684 * config/m68k/lb1sf68.asm: Likewise.
9685 * config/m68k/linux-unwind.h: Likewise.
9686 * config/mcore/crti.asm: Likewise.
9687 * config/mcore/crtn.asm: Likewise.
9688 * config/mcore/lib1.asm: Likewise.
9689 * config/mips/linux-unwind.h: Likewise.
9690 * config/mips/loongson.h: Likewise.
9691 * config/mips/mips16.S: Likewise.
9692 * config/mmix/crti.asm: Likewise.
9693 * config/mmix/crtn.asm: Likewise.
9694 * config/pa/fptr.c: Likewise.
9695 * config/pa/hpux-unwind.h: Likewise.
9696 * config/pa/lib2funcs.asm: Likewise.
9697 * config/pa/linux-atomic.c: Likewise.
9698 * config/pa/linux-unwind.h: Likewise.
9699 * config/pa/milli64.S: Likewise.
9700 * config/pa/quadlib.c: Likewise.
9701 * config/pa/stublib.c: Likewise.
9702 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9703 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9704 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9705 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9706 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9707 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9708 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9709 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9710 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9711 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9712 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9713 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9714 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9715 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9716 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9717 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9718 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9719 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9720 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9721 * config/rs6000/750cl.h: Likewise.
9722 * config/rs6000/altivec.h: Likewise.
9723 * config/rs6000/biarch64.h: Likewise.
9724 * config/rs6000/crtresfpr.asm: Likewise.
9725 * config/rs6000/crtresgpr.asm: Likewise.
9726 * config/rs6000/crtresxfpr.asm: Likewise.
9727 * config/rs6000/crtresxgpr.asm: Likewise.
9728 * config/rs6000/crtsavfpr.asm: Likewise.
9729 * config/rs6000/crtsavgpr.asm: Likewise.
9730 * config/rs6000/darwin-asm.h: Likewise.
9731 * config/rs6000/darwin-fallback.c: Likewise.
9732 * config/rs6000/darwin-fpsave.asm: Likewise.
9733 * config/rs6000/darwin-ldouble.c: Likewise.
9734 * config/rs6000/darwin-tramp.asm: Likewise.
9735 * config/rs6000/darwin-unwind.h: Likewise.
9736 * config/rs6000/darwin-vecsave.asm: Likewise.
9737 * config/rs6000/darwin-world.asm: Likewise.
9738 * config/rs6000/e500crtres32gpr.asm: Likewise.
9739 * config/rs6000/e500crtres64gpr.asm: Likewise.
9740 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9741 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9742 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9743 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9744 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9745 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9746 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9747 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9748 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9749 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9750 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9751 * config/rs6000/eabi-ci.asm: Likewise.
9752 * config/rs6000/eabi-cn.asm: Likewise.
9753 * config/rs6000/eabi.asm: Likewise.
9754 * config/rs6000/linux-unwind.h: Likewise.
9755 * config/rs6000/linux64.h: Likewise.
9756 * config/rs6000/paired.h: Likewise.
9757 * config/rs6000/paired.md: Likewise.
9758 * config/rs6000/ppc64-fp.c: Likewise.
9759 * config/rs6000/ppu_intrinsics.h: Likewise.
9760 * config/rs6000/rs6000.h: Likewise.
9761 * config/rs6000/si2vmx.h: Likewise.
9762 * config/rs6000/sol-ci.asm: Likewise.
9763 * config/rs6000/sol-cn.asm: Likewise.
9764 * config/rs6000/spe.h: Likewise.
9765 * config/rs6000/spu2vmx.h: Likewise.
9766 * config/rs6000/sysv4.h: Likewise.
9767 * config/rs6000/tramp.asm: Likewise.
9768 * config/rs6000/vec_types.h: Likewise.
9769 * config/s390/linux-unwind.h: Likewise.
9770 * config/s390/tpf-unwind.h: Likewise.
9771 * config/score/crti.asm: Likewise.
9772 * config/score/crtn.asm: Likewise.
9773 * config/sh/crt1.asm: Likewise.
9774 * config/sh/crti.asm: Likewise.
9775 * config/sh/crtn.asm: Likewise.
9776 * config/sh/divtab-sh4-300.c: Likewise.
9777 * config/sh/divtab-sh4.c: Likewise.
9778 * config/sh/divtab.c: Likewise.
9779 * config/sh/lib1funcs-4-300.asm: Likewise.
9780 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9781 * config/sh/lib1funcs.asm: Likewise.
9782 * config/sh/lib1funcs.h: Likewise.
9783 * config/sh/linux-atomic.asm: Likewise.
9784 * config/sh/linux-unwind.h: Likewise.
9785 * config/sh/shmedia.h: Likewise.
9786 * config/sh/sshmedia.h: Likewise.
9787 * config/sh/ushmedia.h: Likewise.
9788 * config/sparc/crtfastmath.c: Likewise.
9789 * config/sparc/linux-unwind.h: Likewise.
9790 * config/sparc/sol2-c1.asm: Likewise.
9791 * config/sparc/sol2-ci.asm: Likewise.
9792 * config/sparc/sol2-cn.asm: Likewise.
9793 * config/spu/divmodti4.c: Likewise.
9794 * config/spu/divv2df3.c: Likewise.
9795 * config/spu/float_disf.c: Likewise.
9796 * config/spu/float_unsdidf.c: Likewise.
9797 * config/spu/float_unsdisf.c: Likewise.
9798 * config/spu/float_unssidf.c: Likewise.
9799 * config/spu/mfc_multi_tag_release.c: Likewise.
9800 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9801 * config/spu/mfc_tag_release.c: Likewise.
9802 * config/spu/mfc_tag_reserve.c: Likewise.
9803 * config/spu/mfc_tag_table.c: Likewise.
9804 * config/spu/multi3.c: Likewise.
9805 * config/spu/spu_internals.h: Likewise.
9806 * config/spu/spu_intrinsics.h: Likewise.
9807 * config/spu/spu_mfcio.h: Likewise.
9808 * config/spu/vec_types.h: Likewise.
9809 * config/spu/vmx2spu.h: Likewise.
9810 * config/stormy16/stormy16-lib2.c: Likewise.
9811 * config/svr4.h: Likewise.
9812 * config/sync.c: Likewise.
9813 * config/v850/lib1funcs.asm: Likewise.
9814 * config/vxlib-tls.c: Likewise.
9815 * config/vxlib.c: Likewise.
9816 * config/vxworks-dummy.h: Likewise.
9817 * config/xtensa/crti.asm: Likewise.
9818 * config/xtensa/crtn.asm: Likewise.
9819 * config/xtensa/ieee754-df.S: Likewise.
9820 * config/xtensa/ieee754-sf.S: Likewise.
9821 * config/xtensa/lib1funcs.asm: Likewise.
9822 * config/xtensa/lib2funcs.S: Likewise.
9823 * config/xtensa/linux-unwind.h: Likewise.
9824 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9825 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9826 * coretypes.h: Likewise.
9827 * crtstuff.c: Likewise.
9828 * defaults.h: Likewise.
9829 * dwarf2.h: Likewise.
9830 * emutls.c: Likewise.
9831 * gbl-ctors.h: Likewise.
9832 * gcov-io.h: Likewise.
9833 * ginclude/float.h: Likewise.
9834 * ginclude/iso646.h: Likewise.
9835 * ginclude/stdarg.h: Likewise.
9836 * ginclude/stdbool.h: Likewise.
9837 * ginclude/stddef.h: Likewise.
9838 * ginclude/stdfix.h: Likewise.
9839 * ginclude/stdint-gcc.h: Likewise.
9840 * ginclude/tgmath.h: Likewise.
9841 * gthr-aix.h: Likewise.
9842 * gthr-dce.h: Likewise.
9843 * gthr-gnat.c: Likewise.
9844 * gthr-gnat.h: Likewise.
9845 * gthr-lynx.h: Likewise.
9846 * gthr-mipssde.h: Likewise.
9847 * gthr-nks.h: Likewise.
9848 * gthr-posix.c: Likewise.
9849 * gthr-posix.h: Likewise.
9850 * gthr-posix95.h: Likewise.
9851 * gthr-rtems.h: Likewise.
9852 * gthr-single.h: Likewise.
9853 * gthr-solaris.h: Likewise.
9854 * gthr-tpf.h: Likewise.
9855 * gthr-vxworks.h: Likewise.
9856 * gthr-win32.h: Likewise.
9857 * gthr.h: Likewise.
9858 * libgcc2.c: Likewise.
9859 * libgcc2.h: Likewise.
9860 * libgcov.c: Likewise.
9861 * tsystem.h: Likewise.
9862 * typeclass.h: Likewise.
9863 * unwind-c.c: Likewise.
9864 * unwind-compat.h: Likewise.
9865 * unwind-dw2-fde-compat.c: Likewise.
9866 * unwind-dw2-fde-darwin.c: Likewise.
9867 * unwind-dw2-fde-glibc.c: Likewise.
9868 * unwind-dw2-fde.c: Likewise.
9869 * unwind-dw2-fde.h: Likewise.
9870 * unwind-dw2.c: Likewise.
9871 * unwind-dw2.h: Likewise.
9872 * unwind-generic.h: Likewise.
9873 * unwind-pe.h: Likewise.
9874 * unwind-sjlj.c: Likewise.
9875 * unwind.inc: Likewise.
9876 * config/arm/neon-gen.ml: Change generated copyright header to
9877 refer to version 3 of the GNU General Public License with
9878 version 3.1 of the GCC Runtime Library Exception and to point
9879 readers at the COPYING3 and COPYING3.RUNTIME files and the
9880 FSF's license web page.
9881 * config/arm/arm_neon.h: Regenerate.
9882
98832009-04-09 Jakub Jelinek <jakub@redhat.com>
9884
9885 * config/cris/cris.md: Change copyright header to refer to version
9886 3 of the GNU General Public License.
9887 * doc/install.texi2html: Change copyright header to refer to version
9888 3 of the GNU General Public License and to point readers at the
9889 COPYING3 file and the FSF's license web page.
9890 * config/vax/linux.h: Likewise.
9891
4a77c72b
PB
98922009-04-09 Paolo Bonzini <bonzini@gnu.org>
9893
1ad2f450
L
9894 * config/i386/i386.md (cmpcc): New.
9895 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9896 (sync_compare_and_swap_cc*): Delete.
9897
9898 * config/s390/s390.c (s390_compare_emitted): Remove.
9899 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9900 s390_compare_emitted used to be handled. Assert that modes match.
9901 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9902 refer to sync_compare_and_swap_ccsi.
9903 * config/s390/s390.h (s390_compare_emitted): Remove.
9904 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9905 instead of s390_compare_emitted.
9906 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9907 instead of s390_compare_emitted.
9908 * config/s390/s390.md (cmpcc): New.
9909 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9910 CC_REGNUM, do not pretend it's set.
9911 (sync_compare_and_swap_cc*): Delete.
9912 * config/s390/predicates.md (cc_reg_operand): New.
9913
9914 * expr.c (sync_compare_and_swap_cc): Delete.
9915 * optabs.h (sync_compare_and_swap_cc): Delete.
9916 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9917 is being used with can_compare_p.
9918 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9919 (find_cc_set): New.
9920 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9921 look for a MODE_CC set instead. Use emit_store_flag.
9922 (expand_compare_and_swap_loop): Likewise, with some additional
9923 complication to avoid a force_reg when useless. Use
9924 emit_cmp_and_jump_insns.
9925 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9926 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9927 sync_compare_and_swap documentation.
4a77c72b 9928
0c0efb33
JH
99292009-04-09 Jan Hubicka <jh@suse.cz>
9930
9931 * except.c (find_prev_try): Break out from ....
9932 (duplicate_eh_regions): ... here; properly update prev_try pointers
9933 when duplication part of tree.
9934 (dump_eh_tree): Improve dumping.
9935 (verify_eh_region): New.
9936 (verify_eh_tree): Use it.
9937
22a65a54
RG
99382009-04-06 Richard Guenther <rguenther@suse.de>
9939
9940 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9941 &ARRAY addresses by adjusting their types and prepending
9942 a conversion.
9943 * tree-cfg.c (verify_gimple_assign_single): Verify that
9944 addresses are correct.
9945
f76968e6
RG
99462009-04-09 Richard Guenther <rguenther@suse.de>
9947
9948 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9949 indices into an array reference if possible.
9950 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9951 Fold POINTER_PLUS_EXPR statements with invariant address.
9952
c90c5fb5
AM
99532009-04-09 Alan Modra <amodra@bigpond.net.au>
9954
9955 PR target/39634
9956 * config.gcc (powerpc64-*-linux*): Always build biarch.
9957
17cede2e
JM
99582009-04-09 Joseph Myers <joseph@codesourcery.com>
9959
9960 PR c/39613
9961 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9962 it and pedwarn if this results in an INTEGER_CST.
9963
a3337ea2
KG
99642009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9965
9966 * doc/install.texi: Update minimum GMP version. Remove obsolete
9967 text in MPFR section.
9968
ce9ba79b
JJ
99692009-04-08 Jakub Jelinek <jakub@redhat.com>
9970
9971 * dwarf2out.c (class_scope_p): New static inline.
9972 (class_or_namespace_scope_p): Use it.
9973 (gen_variable_die): Use DW_TAG_member tag for static data member
9974 declarations instead of DW_TAG_variable.
9975
4f0ae266
JJ
9976 PR middle-end/39573
9977 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9978 variables.
9979
d27f0ddc
RG
99802009-04-08 Richard Guenther <rguenther@suse.de>
9981
9982 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9983 valueize random data.
9984
557cc596
DE
99852009-04-08 David Edelsohn <edelsohn@gnu.org>
9986
9987 * config.gcc (aix tm_file): Add aix-stdint.h.
9988 (aix tm clause use_gcc_stdint): Set to wrap.
9989 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9990
75ccc1e7
RG
99912009-04-08 Richard Guenther <rguenther@suse.de>
9992
9993 PR middle-end/36291
9994 * tree-dfa.c (add_referenced_var): Do not recurse into
9995 global initializers.
9996 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9997 exposed variables.
9998 (fold_const_aggregate_ref): Likewise.
9999
c6963675
PB
100002009-04-08 Paolo Bonzini <bonzini@gnu.org>
10001
6c44cf79
L
10002 * recog.c (ordered_comparison_operator): New.
10003 * gensupport.c (std_preds): Add it.
c6963675
PB
10004 * doc/md.texi (Machine-Independent Predicates): Document it.
10005
6d07ad98
JH
100062009-04-08 Jan Hubicka <jh@suse.cz>
10007
10008 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10009 * function.h (rtl_eh): Remove exception_handler_label_map.
10010 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10011 remove_exception_handler_label, for_each_eh_label_1): Remove.
10012 (rtl_remove_unreachable_regions): Remove.
10013 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10014 (find_exception_handler_labels): Don't build the hashtable.
10015 (maybe_remove_eh_handler): Remove.
10016 (for_each_eh_label): Rewrite to walk the tree.
10017 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10018 * except.h (maybe_remove_eh_handler): Remove.
10019 * passes.c (init_optimization_passes): Schedule second EH cleanup
10020 before out-of-ssa.
10021 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10022 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10023
7ddf71e3
PB
100242009-04-08 Paolo Bonzini <bonzini@gnu.org>
10025
10026 * genoutput.c (validate_optab_operands): New.
10027 (gen_insn, gen_expand): Call it.
10028
10029 * genflags.c (gen_insn): Detect misused iterators.
10030 (main): Pass line_no to gen_insn, exit with status 1 on error.
10031
10032 * genextract.c (line_no): Make global.
10033 (VEC_safe_set_locstr): Change assertion to error message.
10034 (main): Exit with status 1 on error.
10035
4d84fe7c
JM
100362009-04-08 Joseph Myers <joseph@codesourcery.com>
10037
10038 PR c/39614
10039 PR c/39673
10040 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10041 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10042 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10043 * c-convert.c (convert): Do not call fold on results of conversion
10044 functions when the result is a C_MAYBE_CONST_EXPR.
10045 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10046 of __builtin_choose_expr.
10047 * c-typeck.c (remove_c_maybe_const_expr): New.
10048 (build_unary_op, build_conditional_expr, build_compound_expr,
10049 build_binary_op, c_objc_common_truthvalue_conversion): Call
10050 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10051 integer operands.
10052
60839f5d 100532009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10054
2ba9daa7 10055 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10056 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10057
8e481a2c
DS
100582009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10059
10060 PR bootstrap/39660
10061 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10062 mix declarations and code.
10063
ee618c17
BE
100642009-04-08 Ben Elliston <bje@au.ibm.com>
10065
10066 * gcc.c: Replace `CC' with `GCC' throughout.
10067
f2a758a2
L
100682009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10069
10070 * doc/invoke.texi: Document Atom support.
10071
6ea2bd47
JM
100722009-04-07 Jason Merrill <jason@redhat.com>
10073
10074 PR c++/25185
10075 * c-common.h, c-common.c: Add flag_pretty_templates.
10076 * c-opts.c (c_common_handle_option): Set it.
10077 * c.opt: Add -fno-pretty-templates.
10078 * doc/invoke.texi (C++ Dialect Options): Likewise.
10079
fcb82ab0
UB
100802009-04-07 Uros Bizjak <ubizjak@gmail.com>
10081
10082 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10083 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10084 (ia64_expand_builtin): Likewise.
10085
dc5e7298
MJ
100862009-04-07 Martin Jambor <mjambor@suse.cz>
10087
10088 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10089 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10090 ADDR_EXPRS are include too.
10091
0609b355
RG
100922009-04-07 Richard Guenther <rguenther@suse.de>
10093
10094 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10095 decls are only used if passes as parameters or if they are
10096 local statics and the call is not to a builtin.
10097 (call_may_clobber_ref_p_1): Likewise.
10098
d8e535fa
PB
100992009-04-07 Paolo Bonzini <bonzini@gnu.org>
10100
10101 * expr.c (do_store_flag): Remove last argument. Simplify code
10102 to avoid duplication of tests already done by can_compare_p.
10103 (expand_expr_real_1): Adjust caller.
10104
c3c64f50
PB
101052009-04-07 Paolo Bonzini <bonzini@gnu.org>
10106
fcb82ab0
UB
10107 * optabs.c (can_compare_p): Test the predicate of a
10108 cbranch and cstore pattern.
c3c64f50 10109
9a53bc17
PB
101102009-04-07 Paolo Bonzini <bonzini@gnu.org>
10111
fcb82ab0
UB
10112 * expr.c (convert_move): Use emit_store_flag instead of
10113 "emulating" it.
9a53bc17 10114
67b8f1c1
PB
101152009-04-07 Paolo Bonzini <bonzini@gnu.org>
10116
fcb82ab0
UB
10117 * config/i386/i386.c (ix86_compare_emitted): Remove.
10118 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10119 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10120 * config/i386/i386.h (ix86_compare_emitted): Remove.
10121 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10122 instead of ix86_compare_emitted.
10123 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10124
44509946
AS
101252009-04-07 Andrew Stubbs <ams@codesourcery.com>
10126
10127 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10128 Add t-sysroot-suffix to tmake_file.
10129 * config/print-sysroot-suffix.sh: New file.
10130 * config/t-sysroot-suffix: New file.
10131
ca22d882
BE
101322009-04-07 Ben Elliston <bje@au.ibm.com>
10133
10134 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10135 as the latter produces a warning when the target does not support
10136 infinity.
10137
95aac11b
BE
101382009-04-07 Ben Elliston <bje@au.ibm.com>
10139
10140 * dfp.c: Replace type punning assignments with memcpy throughout.
10141 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10142
633dd061
AM
101432009-04-07 Alan Modra <amodra@bigpond.net.au>
10144
10145 PR target/39634
10146 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10147 Include soft-fp/t-softfp after rs6000/t-linux64.
10148
fe0a25ec
EB
101492009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10150
10151 * stor-layout.c (set_sizetype): Use the full precision of their
10152 machine mode for bitsize types.
10153
0c011bc3
L
101542009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10155
10156 * config/i386/i386.md: Revert 2 accidental checkins.
10157
b6837b94 101582009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10159 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10160 H.J. Lu <hongjiu.lu@intel.com>
10161
10162 Atom pipeline model, tuning and insn selection.
10163 * config.gcc (atom): Add atom config options and target.
10164
10165 * config/i386/atom.md: New.
10166
10167 * config/i386/i386.c (atom_cost): New cost.
10168 (m_ATOM): New macro flag.
10169 (initial_ix86_tune_features): Set m_ATOM.
10170 (x86_accumulate_outgoing_args): Likewise.
10171 (x86_arch_always_fancy_math_387): Likewise.
10172 (processor_target): Add Atom cost.
10173 (cpu_names): Add Atom cpu name.
10174 (override_options): Set Atom ISA.
10175 (ix86_issue_rate): New case PROCESSOR_ATOM.
10176 (ix86_adjust_cost): Likewise.
10177
10178 * config/i386/i386.h (TARGET_ATOM): New target macro.
10179 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10180 (TARGET_OPT_AGU): New target option.
10181 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10182 (processor_type): Add PROCESSOR_ATOM.
10183
10184 * config/i386/i386.md (cpu): Add new value "atom".
10185 (use_carry, movu): New attr.
10186 (atom.md): Include atom.md.
10187 (adddi3_carry_rex64): Set attr "use_carry".
10188 (addqi3_carry): Likewise.
10189 (addhi3_carry): Likewise.
10190 (addsi3_carry): Likewise.
10191 (*addsi3_carry_zext): Likewise.
10192 (subdi3_carry_rex64): Likewise.
10193 (subqi3_carry): Likewise.
10194 (subhi3_carry): Likewise.
10195 (subsi3_carry): Likewise.
10196 (x86_movdicc_0_m1_rex64): Likewise.
10197 (*x86_movdicc_0_m1_se): Likewise.
10198 (x86_movsicc_0_m1): Likewise.
10199 (*x86_movsicc_0_m1_se): Likewise.
10200 (*adddi_1_rex64): Emit add insn as much as possible.
10201 (*addsi_1): Likewise.
10202 (return_internal): Set atom_unit.
10203 (return_internal_long): Likewise.
10204 (return_pop_internal): Likewise.
10205 (*rcpsf2_sse): Set atom_sse_attr attr.
10206 (*qrt<mode>2_sse): Likewise.
10207 (*prefetch_sse): Likewise.
10208
10209 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10210 PROCESSOR_ATOM.
10211 (ix86_target_macros_internal): Likewise.
10212
10213 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10214 (*prefetch_sse_rex): Likewise.
10215 (sse_rcpv4sf2): Likewise.
10216 (sse_vmrcpv4sf2): Likewise.
10217 (sse_sqrtv4sf2): Likewise.
10218 (<sse>_vmsqrt<mode>2): Likewise.
10219 (sse_ldmxcsr): Likewise.
10220 (sse_stmxcsr): Likewise.
10221 (*sse_sfence): Likewise.
10222 (sse2_clflush): Likewise.
10223 (*sse2_mfence): Likewise.
10224 (*sse2_lfence): Likewise.
10225 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10226 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10227 (avx_movdqu<avxmodesuffix>): Likewise.
10228 (avx_lddqu<avxmodesuffix>): Likewise.
10229 (sse2_movntv2di): Change attr "type" to "ssemov".
10230 (sse2_movntsi): Likewise.
10231 (rsqrtv8sf2): Change attr "type" to "sseadd".
10232 (sse3_addsubv2df3): Set attr "atom_unit".
10233 (sse3_h<plusminus_insn>v4sf3): Likewise.
10234 (*sse2_pmaddwd): Likewise.
10235 (*vec_extractv2di_1_rex64): Likewise.
10236 (*vec_extractv2di_1_avx): Likewise.
10237 (sse2_psadbw): Likewise.
10238 (ssse3_phaddwv8hi3): Likewise.
10239 (ssse3_phaddwv4hi3): Likewise.
10240 (ssse3_phadddv4si3): Likewise.
10241 (ssse3_phadddv2si3): Likewise.
10242 (ssse3_phaddswv8hi3): Likewise.
10243 (ssse3_phaddswv4hi3): Likewise.
10244 (ssse3_phsubwv8hi3): Likewise.
10245 (ssse3_phsubwv4hi3): Likewise.
10246 (ssse3_phsubdv4si3): Likewise.
10247 (ssse3_phsubdv2si3): Likewise.
10248 (ssse3_phsubswv8hi3): Likewise.
10249 (ssse3_phsubswv4hi3): Likewise.
10250 (ssse3_pmaddubsw128): Likewise.
10251 (sse3_pmaddubsw: Likewise.
10252 (ssse3_palignrti): Likewise.
10253 (ssse3_palignrdi): Likewise.
10254
53e350d3
GP
102552009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10256
10257 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10258
439ef907
RG
102592009-04-06 Richard Guenther <rguenther@suse.de>
10260
10261 PR tree-optimization/28868
10262 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10263 of which PHI results we inserted.
10264 (insert_into_preds_of_block): Record inserted PHIs.
10265 (eliminate): Eliminate redundant PHI nodes.
10266 (init_pre): Init inserted_phi_names.
10267
4bad83f5
RG
102682009-04-06 Richard Guenther <rguenther@suse.de>
10269
10270 PR tree-optimization/39643
10271 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10272 IMAGPART_EXPRs of complex constants.
10273 (execute_fold_all_builtins): If we folded a call queue
10274 TODO_update_address_taken.
10275
570c4247
JH
102762009-04-06 Jan Hubicka <jh@suse.cz>
10277
10278 PR middle-end/39659
10279 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10280 flag.
10281
a460d7a1
AS
102822009-04-06 Andrew Stubbs <ams@codesourcery.com>
10283
10284 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10285 delay slot.
10286 (ic_invalidate_array): Likewise.
10287
60839f5d 102882009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10289
10290 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10291 alignment for library calls.
10292
7d253f6e
DS
102932009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10294
10295 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10296 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10297 * config/i386/mingw-stdint.h: New file.
10298
941c3614
RB
102992009-04-05 Richard Guenther <rguenther@suse.de>
10300
10301 PR tree-optimization/39648
10302 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10303 our &A vs. &A[0] IL deficiencies.
10304
12633413
JH
103052009-04-04 Jan Hubicka <jh@suse.cz>
10306
941c3614
RB
10307 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10308 removed toplevel regions.
12633413
JH
10309 (sjlj_mark_call_sites): Likewise.
10310
bb2aaded
DK
103112009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10312
10313 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10314 (cygwin tm clause use_gcc_stdint): Set to wrap.
10315 * config/i386/cygwin-stdint.h: New file.
10316
86290011
RG
103172009-04-04 Richard Guenther <rguenther@suse.de>
10318
10319 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10320 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10321 single-argument PHIs if we are in loop-closed SSA form.
10322 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10323 for the pre-condition.
10324 (slpeel_tree_peel_loop_to_edge): Likewise.
10325 (vect_build_loop_niters): Take an optional sequence to append stmts.
10326 (vect_generate_tmps_on_preheader): Likewise.
10327 (vect_do_peeling_for_loop_bound): Take extra guards for the
10328 pre-condition.
10329 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10330 the cost model check.
10331 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10332 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10333 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10334 (vect_do_peeling_for_loop_bound): Likewise.
10335 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10336 loop bound only record extra pre-conditions, do not apply loop
10337 versioning.
10338
5eeeac64
RG
103392009-04-04 Richard Guenther <rguenther@suse.de>
10340
10341 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10342 renaming code.
10343
1ff7d06b
JH
103442009-04-04 Jan Hubicka <jh@suse.cz>
10345
10346 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10347 last_basic_block for size of bb->index indexed array.
10348 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10349 compute_out, link_btr_uses, build_btr_def_use_webs,
10350 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10351
14925fcd
JH
103522009-04-04 Jan Hubicka <jh@suse.cz>
10353
10354 * except.c (remove_eh_handler_and_replace): Break out from ...
10355 (remove_eh_handler): ... here.
10356 (bring_to_root): New function.
10357 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10358 handled ones, bring others to root of tree.
10359
4e6d1743
JH
103602009-04-04 Jan Hubicka <jh@suse.cz>
10361
4cb735f7
JH
10362 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10363 (all_phis_safe_to_merge): New function.
10364 (update_info): New structure.
10365 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10366 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10367
c6803d43
RG
103682009-04-04 Richard Guenther <rguenther@suse.de>
10369
10370 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10371 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10372 (append_vuse): Likewise.
10373
54f5943c
JJ
103742009-04-04 Jakub Jelinek <jakub@redhat.com>
10375
10376 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10377 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10378 instead of REG_UNSAVED for DW_CFA_undefined.
10379 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10380 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10381 outermost frame.
10382
aad2bccb
RE
103832009-04-04 Richard Earnshaw <rearnsha@arm.com>
10384
10385 PR target/39501
10386 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10387 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10388 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10389
aa7069aa
RG
103902009-04-04 Richard Guenther <rguenther@suse.de>
10391
10392 PR tree-optimization/8781
10393 PR tree-optimization/37892
10394 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10395 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10396 (valueize_refs): Call it for *& valueizations.
10397 (shared_reference_ops_from_ref): Rename to ...
10398 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10399 (shared_reference_ops_from_call): Rename to ...
10400 (valueize_shared_reference_ops_from_call): ... this and valueize.
10401 (vn_reference_lookup): Update.
10402 (visit_reference_op_call): Likewise.
10403 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10404 (eliminate): Value-replace the call address in call statements.
10405
cd15ad3e
RG
104062009-04-04 Richard Guenther <rguenther@suse.de>
10407
10408 PR tree-optimization/39636
10409 * tree-ssa-forwprop.c
10410 (forward_propagate_addr_into_variable_array_index): Check for
10411 GIMPLE_ASSIGN before accessing the rhs code.
10412
462f3262
JM
104132009-04-03 Jason Merrill <jason@redhat.com>
10414
10415 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10416
6adb807e
SE
104172009-04-03 Steve Ellcey <sje@cup.hp.com>
10418
10419 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10420 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10421 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10422 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10423 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10424 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10425 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10426 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10427 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10428 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10429 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10430 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10431 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10432 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10433 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10434 Use fr_reg_or_fp01_operand instead of fr_register_operand
10435
10436 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10437 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10438 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10439
174b3107
VM
104402009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10441
b844e5d8
L
10442 PR rtl-optimization/39607
10443 PR rtl-optimization/39631
7a715bba
UB
10444
10445 Revert:
2ba9daa7 10446
174b3107
VM
10447 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10448 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10449 instead of DF_LR_OUT.
10450 * ira-lives.c (process_bb_node_lives): Ditto.
10451 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10452 instead of DF_LR_{OUT,IN}.
10453 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10454 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10455
535b544a
SB
104562009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10457
10458 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10459 (execute_lower_omp): Always run but take the short way out if -fopenmp
10460 is not given.
10461 (gate_lower_omp): Remove, forcing the pass manager to always run the
10462 pass and always set PROP_gimple_lomp.
10463 (pass_lower_omp): Remove gate function.
10464 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10465 PROP_trees. Instead, require it.
10466 * ipa-cp.c (pass_ipa_cp): Likewise.
10467 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10468 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10469 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10470 and PROP_gimple_leh.
10471
5006671f
RG
104722009-04-03 Richard Guenther <rguenther@suse.de>
10473
10474 PR middle-end/13146
10475 PR tree-optimization/23940
10476 PR tree-optimization/33237
10477 PR middle-end/33974
10478 PR middle-end/34093
10479 PR tree-optimization/36201
10480 PR tree-optimization/36230
10481 PR tree-optimization/38049
10482 PR tree-optimization/38207
10483 PR tree-optimization/38230
10484 PR tree-optimization/38301
10485 PR tree-optimization/38585
10486 PR middle-end/38895
10487 PR tree-optimization/38985
10488 PR tree-optimization/39299
10489 * tree-ssa-structalias.h: Remove.
10490 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10491 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10492 (struct vuse_element_d): Remove.
10493 (struct vuse_vec_d): Likewise.
10494 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10495 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10496 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10497 VUSE_ELEMENT_VAR): Likewise.
10498 (struct voptype_d): Likewise.
10499 (NUM_VOP_FREE_BUCKETS): Likewise.
10500 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10501 (struct stmt_operands_d): Remove.
10502 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10503 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10504 VDEF_NUM, VDEF_VECT): Likewise.
10505 (copy_virtual_operands): Remove.
10506 (operand_build_cmp): Likewise.
10507 (create_ssa_artificial_load_stmt): Likewise.
10508 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10509 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10510 vuse_index and mayuse_index members. Pack and move done and iter_type
10511 members to the front.
10512 (SSA_OP_VMAYUSE): Remove.
10513 (SSA_OP_VIRTUAL_USES): Adjust.
10514 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10515 (unlink_stmt_vdef): Declare.
10516 (add_to_addressable_set): Remove.
10517 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10518 (vrp_visit_stmt): Likewise.
10519 * doc/tree-ssa.texi (Alias analysis): Update.
10520 * doc/invoke.texi (max-aliased-vops): Remove docs.
10521 (avg-aliased-vops): Likewise.
10522 * tree-into-ssa.c (syms_to_rename): Remove.
10523 (need_to_update_vops_p): Likewise.
10524 (need_to_initialize_update_ssa_p): Rename to ...
10525 (update_ssa_initialized_fn): ... this. Track function we are
10526 initialized for.
10527 (symbol_marked_for_renaming): Simplify.
10528 (add_new_name_mapping): Do not set need_to_update_vops_p.
10529 (dump_currdefs): Use SYMS_TO_RENAME.
10530 (rewrite_update_stmt): Always walk all uses/defs.
10531 (dump_update_ssa): Adjust.
10532 (init_update_ssa): Take function argument. Track what we are
10533 initialized for.
10534 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10535 (create_new_def_for): Initialize for cfun, assert we are initialized
10536 for cfun.
10537 (mark_sym_for_renaming): Simplify.
10538 (mark_set_for_renaming): Do not initialize update-ssa.
10539 (need_ssa_update_p): Simplify. Take function argument.
10540 (name_mappings_registered_p): Assert we ask for the correct function.
10541 (name_registered_for_update_p): Likewise.
10542 (ssa_names_to_replace): Likewise.
10543 (release_ssa_name_after_update_ssa): Likewise.
10544 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10545 (dump_decl_set): Do not print a newline.
10546 (debug_decl_set): Do it here.
10547 (dump_update_ssa): And here.
10548 * tree-ssa-loop-im.c (move_computations): Adjust.
10549 (movement_possibility): Likewise.
10550 (determine_max_movement): Likewise.
10551 (gather_mem_refs_stmt): Likewise.
10552 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10553 or NAME_MEMORY_TAG.
10554 * tree-complex.c (update_all_vops): Remove.
10555 (expand_complex_move): Adjust.
10556 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10557 Simplify test for memory referencing statement. Exclude
10558 non-invariant ADDR_EXPRs.
10559 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10560 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10561 (rdg_flag_uses): Likewise.
10562 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10563 related code.
10564 (tree_optimize_tail_calls_1): Also split the
10565 edge from the entry block if we have degenerate PHI nodes in
10566 the first basic block.
10567 * tree.c (init_ttree): Remove memory-tag related code.
10568 (tree_code_size): Likewise.
10569 (tree_node_structure): Likewise.
10570 (build7_stat): Re-write to be build6_stat.
10571 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10572 (SSA_VAR_P): Adjust.
10573 (struct tree_memory_tag): Remove.
10574 (struct tree_memory_partition_tag): Likewise.
10575 (union tree_node): Adjust.
10576 (build7): Re-write to be build6.
10577 * tree-pass.h (pass_reset_cc_flags): Remove.
10578 (TODO_update_address_taken): New flag.
10579 (pass_simple_dse): Remove.
10580 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10581 * params.h (MAX_ALIASED_VOPS): Remove.
10582 (AVG_ALIASED_VOPS): Likewise.
10583 * omp-low.c (expand_omp_taskreg): Update SSA form.
10584 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10585 aliases the lhs in a copy stmt.
10586 * tree-ssa-dse.c (struct address_walk_data): Remove.
10587 (memory_ssa_name_same): Likewise.
10588 (memory_address_same): Likewise.
10589 (get_kill_of_stmt_lhs): Likewise.
10590 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10591 unused stores. Look through PHI nodes into post-dominated regions.
10592 (dse_optimize_stmt): Simplify. Properly remove stores.
10593 (tree_ssa_dse): Compute dominators.
10594 (execute_simple_dse): Remove.
10595 (pass_simple_dse): Likewise.
10596 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10597 gimple_loaded_syms and gimple_stored_syms computation.
10598 * toplev.c (dump_memory_report): Dump alias and pta stats.
10599 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10600 (vn_reference_eq): Likewise.
10601 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10602 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10603 valueize_vuses): Remove.
10604 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10605 (get_def_ref_stmt_vuse): ... this.
10606 (vn_reference_lookup_2): New function.
10607 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10608 walking equivalent vuses. Simplify.
10609 (vn_reference_lookup): Likewise.
10610 (vn_reference_insert): Likewise.
10611 (vn_reference_insert_pieces): Likewise.
10612 (visit_reference_op_call): Simplify.
10613 (visit_reference_op_load): Likewise.
10614 (visit_reference_op_store): Likewise.
10615 (init_scc_vn): Remove shared_lookup_vuses initialization.
10616 (free_scc_vn): Remove shared_lookup_vuses freeing.
10617 (sort_vuses, sort_vuses_heap): Remove.
10618 (get_ref_from_reference_ops): Export.
10619 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10620 vector with single vuse pointer.
10621 (vn_reference_lookup_pieces, vn_reference_lookup,
10622 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10623 (shared_vuses_from_stmt): Remove.
10624 (get_ref_from_reference_ops): Declare.
10625 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10626 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10627 memory-tag related code.
10628 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10629 (likely_value): Add comment, skip static-chain of call statements.
10630 (surely_varying_stmt_p): Adjust.
10631 (gimplify_and_update_call_from_tree): Likewise.
10632 (execute_fold_all_builtins): Do not rebuild alias info.
10633 (gimplify_and_update_call_from_tree): Properly update VOPs.
10634 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10635 (copy_ref_info): Remove memory-tag related code.
10636 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10637 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10638 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10639 computation.
10640 * tree-ssa-dom.c (gimple_p): Remove typedef.
10641 (eliminate_redundant_computations): Adjust.
10642 (record_equivalences_from_stmt): Likewise.
10643 (avail_expr_hash): Likewise.
10644 (avail_expr_eq): Likewise.
7a715bba 10645 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10646 (stmt_makes_single_load): Likewise.
10647 (stmt_makes_single_store): Likewise.
10648 * tree-ssa-alias.c: Rewrite completely.
10649 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10650 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10651 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10652 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10653 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10654 Remove public functions.
10655 (pass_reset_cc_flags): Remove.
10656 (pass_build_alias): Move ...
10657 * tree-ssa-structalias.c (pass_build_alias): ... here.
10658 * tree-ssa-alias.c (may_be_aliased): Move ...
10659 * tree-flow-inline.h (may_be_aliased): ... here.
10660 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10661 count_uses_and_derefs): Move ...
10662 * gimple.c: ... here.
10663 * gimple.h (count_uses_and_derefs): Declare.
10664 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10665 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10666 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10667 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10668 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10669 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10670 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10671 New functions.
10672 * tree-dfa.c (refs_may_alias_p): Move ...
10673 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10674 * tree-ssa-alias.h: New file.
10675 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10676 (statement_sink_location): Likewise.
10677 * opts.c (decode_options): Do not adjust max-aliased-vops or
10678 avg-aliased-vops values.
10679 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10680 (TV_CALL_CLOBBER): Likewise.
10681 (TV_FLOW_SENSITIVE): Likewise.
10682 (TV_FLOW_INSENSITIVE): Likewise.
10683 (TV_MEMORY_PARTITIONING): Likewise.
10684 (TV_ALIAS_STMT_WALK): New timevar.
10685 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10686 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10687 (get_address_description): Remove memory-tag related code.
10688 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10689 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10690 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10691 and immediate uses in statements. Document.
10692 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10693 (dump_symbols): Remove.
10694 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10695 * alias.c (get_deref_alias_set): New function split out from ...
10696 (get_alias_set): ... here.
10697 * alias.h (get_deref_alias_set): Declare.
10698 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10699 type parameter. Remove restrict pointer handling. Create a
10700 ref-all pointer in case type-based alias sets do not conflict.
10701 (vect_analyze_data_refs): Remove SMT related code.
10702 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10703 (vectorizable_load): Likewise.
10704 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10705 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10706 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10707 Ignore vops and SMTs.
10708 (dr_analyze_alias): Likewise..
10709 (free_data_ref): Likewise.
10710 (create_data_ref): Likewise.
10711 (analyze_all_data_dependences): Likewise.
10712 (get_references_in_stmt): Adjust.
10713 * tree-flow-inline.h (gimple_aliases_computed_p,
10714 gimple_addressable_vars, gimple_call_clobbered_vars,
10715 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10716 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10717 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10718 gimple_mem_ref_stats): Remove.
10719 (gimple_vop): New function.
10720 (op_iter_next_use): Remove vuses and mayuses cases.
10721 (op_iter_next_def): Remove vdefs case.
10722 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10723 (clear_and_done_ssa_iter): Do not set removed fields.
10724 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10725 Assert we are not iterating over vuses or vdefs if not also
10726 iterating over uses or defs.
10727 (op_iter_init_use): Likewise.
10728 (op_iter_init_def): Likewise.
10729 (op_iter_next_vdef): Remove.
10730 (op_iter_next_mustdef): Likewise.
10731 (op_iter_init_vdef): Likewise.
10732 (compare_ssa_operands_equal): Likewise.
10733 (link_use_stmts_after): Handle vuse operand.
10734 (is_call_used): Use is_call_clobbered.
10735 (is_call_clobbered): Global variables are always call clobbered,
10736 query the call-clobbers bitmap.
10737 (mark_call_clobbered): Ignore global variables.
10738 (clear_call_clobbered): Likewise.
10739 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10740 virtual operands sanity check.
10741 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10742 Remove.
10743 (TARGET_MEM_REF): Remove TMR_TAG operand.
10744 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10745 Remove call-clobber related code.
10746 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10747 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10748 partitions or escape reason.
10749 (get_single_def_stmt, get_single_def_stmt_from_phi,
10750 get_single_def_stmt_with_phi): Remove.
10751 (dump_referenced_vars): Tidy.
10752 (get_ref_base_and_extent): Allow bare decls.
10753 (collect_dfa_stats): Adjust.
10754 * graphite.c (rename_variables_in_stmt): Adjust.
10755 (graphite_copy_stmts_from_block): Likewise.
10756 (translate_clast): Likewise.
10757 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10758 (EXPR_DIES): New.
10759 (translate_vuse_through_block): Use the oracle.
10760 (phi_translate_1): Adjust.
10761 (value_dies_in_block_x): Use the oracle. Cache the outcome
10762 in EXPR_DIES.
10763 (valid_in_sets): Check if the VUSE for
10764 a REFERENCE is available.
10765 (eliminate): Do not remove stmts during elimination,
10766 instead queue and remove them afterwards.
10767 (do_pre): Do not rebuild alias info.
10768 (pass_pre): Run TODO_rebuild_alias before PRE.
10769 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10770 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10771 (mark_all_v_defs_stmt): Remove.
10772 (mark_all_v_defs_seq): Adjust.
10773 (sra_replace): Likewise.
10774 (scalarize_use): Likewise.
10775 (scalarize_copy): Likewise.
10776 (scalarize_init): Likewise.
10777 (scalarize_ldst): Likewise.
10778 (todoflags): Remove.
10779 (tree_sra): Do not rebuild alias info.
10780 (tree_sra_early): Adjust.
10781 (pass_sra): Run TODO_update_address_taken before SRA.
10782 * tree-predcom.c (set_alias_info): Remove.
10783 (prepare_initializers_chain): Do not call it.
10784 (mark_virtual_ops_for_renaming): Adjust.
10785 (mark_virtual_ops_for_renaming_list): Remove.
10786 (initialize_root_vars): Adjust.
10787 (initialize_root_vars_lm): Likewise.
10788 (prepare_initializers_chain): Likewise.
10789 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10790 (may_propagate_copy_into_stmt): Likewise.
10791 (merge_alias_info): Do nothing for now.
10792 (propagate_tree_value_into_stmt): Adjust.
10793 (stmt_may_generate_copy): Likewise.
10794 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10795 not mark symbols for renaming.
10796 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10797 with the same statement, make sure to update the new pointed-to one.
10798 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10799 call statements, do not mark symbols for renaming.
10800 (mark_operand_necessary): Dump something.
10801 (ref_may_be_aliased): New function.
10802 (mark_aliased_reaching_defs_necessary_1): New helper function.
10803 (mark_aliased_reaching_defs_necessary): Likewise.
10804 (mark_all_reaching_defs_necessary_1): Likewise.
10805 (mark_all_reaching_defs_necessary): Likewise.
10806 (propagate_necessity): Do not process virtual PHIs. For
10807 non-aliased loads mark all reaching definitions as necessary.
10808 For aliased loads and stores mark the immediate dominating
10809 aliased clobbers as necessary.
10810 (visited): New global static.
10811 (perform_tree_ssa_dce): Free visited bitmap after propagating
10812 necessity.
10813 (remove_dead_phis): Perform simple dead virtual PHI removal.
10814 (remove_dead_stmt): Properly unlink virtual operands when
10815 removing stores.
10816 (eliminate_unnecessary_stmts): Schedule PHI removal after
10817 stmt removal.
10818 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10819 (process_replaceable): Likewise.
10820 (find_replaceable_in_bb): Likewise.
10821 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10822 based on the single gimple vop.
10823 (verify_flow_insensitive_alias_info): Remove.
10824 (verify_flow_sensitive_alias_info): Likewise.
10825 (verify_call_clobbering): Likewise.
10826 (verify_memory_partitions): Likewise.
10827 (verify_alias_info): Likewise.
10828 (verify_ssa): Adjust..
10829 (execute_update_addresses_taken): Export. Update SSA
10830 manually. Optimize only when optimizing. Use a local bitmap.
10831 (pass_update_address_taken): Remove TODO_update_ssa, add
10832 TODO_dump_func.
10833 (pass_update_address_taken): Just use TODO_update_address_taken.
10834 (init_tree_ssa): Do not initialize addressable_vars.
10835 (verify_ssa): Verify new VUSE / VDEF properties.
10836 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10837 Do not call verify_alias_info.
10838 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10839 Do not free the loaded and stored syms bitmaps. Reset the escaped
10840 and callused solutions. Do not free addressable_vars.
10841 Remove memory-tag related code.
10842 (warn_uninitialized_var): Aliases are always available.
10843 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10844 * lambda-code.c (can_put_in_inner_loop): Adjust.
10845 (can_put_after_inner_loop): Likewise.
10846 (perfect_nestify): Likewise.
10847 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10848 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10849 (vectorizable_conversion): Do not mark symbols for renaming.
10850 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10851 (expand_call_inline): Unlink the calls virtual operands before
10852 replacing it.
10853 (tree_function_versioning): Do not call update_ssa if we are not
10854 updating clones. Simplify.
10855 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10856 (propagate_with_phi): Likewise..
10857 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10858 clobber code. Assert we are not aliased or global.
10859 * tree-flow.h: Include tree-ssa-alias.h
10860 (enum escape_type): Remove.
10861 (struct mem_sym_stats_d): Likewise.
10862 (struct mem_ref_stats_d): Likewise.
10863 (struct gimple_df): Add vop member. Remove global_var,
10864 call_clobbered_vars, call_used_vars, addressable_vars,
10865 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10866 escaped and callused members.
10867 (struct ptr_info_def): Remove all members, add points-to solution
10868 member pt.
10869 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10870 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10871 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10872 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10873 (tree-ssa-alias.o): Likewise.
10874 (toplev.o): Add tree-ssa-alias.h
10875 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10876 * gimple.c (gimple_set_bb): Fix off-by-one error.
10877 (is_gimple_reg): Do not handle memory tags.
10878 (gimple_copy): Also copy virtual operands.
10879 Delay updating the statement. Do not reset loaded and stored syms.
10880 (gimple_set_stored_syms): Remove.
10881 (gimple_set_loaded_syms): Likewise.
10882 (gimple_call_copy_skip_args): Copy the virtual operands
10883 and mark the new statement modified.
10884 * tree-ssa-structalias.c (may_alias_p): Remove.
10885 (set_uids_in_ptset): Take the alias set to prune with as
10886 parameter. Fold in the alias test of may_alias_p.
10887 (compute_points_to_sets): Compute whether a ptr is dereferenced
10888 in a local sbitmap.
10889 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10890 other ADDRESSOF constraints on the lhs.
10891 (get_constraint_for_component_ref): Assert that we don't get
10892 ADDRESSOF constraints from the base of the reference.
10893 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10894 (struct variable_info): Remove collapsed_to member.
10895 (get_varinfo_fc): Remove.
10896 (new_var_info): Do not set collapsed_to.
10897 (dump_constraint): Do not follow cycles.
10898 (dump_constraint_graph): Likewise.
10899 (build_pred_graph): Likewise.
10900 (build_succ_graph): Likewise.
10901 (rewrite_constraints): Likewise.
10902 (do_simple_structure_copy): Remove.
10903 (do_rhs_deref_structure_copy): Remove.
10904 (do_lhs_deref_structure_copy): Remove.
10905 (collapse_rest_of_var): Remove.
10906 (do_structure_copy): Re-implement.
10907 (pta_stats): New global variable.
10908 (dump_pta_stats): New function.
10909 (struct constraint_expr): Make offset signed.
10910 (UNKNOWN_OFFSET): Define special value.
10911 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10912 (solution_set_expand): New helper function split out from ...
10913 (do_sd_constraint): ... here.
10914 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10915 (do_ds_constraint): Likewise.
10916 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10917 and CALLUSED = *CALLUSED.
10918 (set_union_with_increment): Make inc argument signed.
10919 (type_safe): Remove.
10920 (get_constraint_for_ptr_offset): Handle unknown and negative
10921 constant offsets.
10922 (first_vi_for_offset): Handle offsets before start. Bail
10923 out early for offsets beyond the variable extent.
10924 (first_or_preceding_vi_for_offset): New function.
10925 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10926 Together with ESCAPED = *ESCAPED this properly computes reachability.
10927 (find_what_var_points_to): New function.
10928 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10929 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10930 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10931 pt_solutions_intersect): New functions.
10932 (compute_call_used_vars): Remove.
10933 (compute_may_aliases): New main entry into PTA computation.
10934 * gimple.h (gimple_p): New typedef.
10935 (struct gimple_statement_base): Remove references_memory_p.
10936 (struct gimple_statement_with_memory_ops_base): Remove
10937 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10938 members.
10939 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10940 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10941 gimple_set_references_memory): Remove.
10942 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10943 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10944 New functions.
10945 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10946 (verify_expr): Allow RESULT_DECL.
10947 (gimple_duplicate_bb): Do not copy virtual operands.
10948 (gimple_duplicate_sese_region): Adjust.
10949 (gimple_duplicate_sese_tail): Likewise.
10950 (mark_virtual_ops_in_region): Remove.
10951 (move_sese_region_to_fn): Do not call it.
10952 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10953 and pass_simple_dse.
10954 (execute_function_todo): Handle TODO_update_address_taken,
10955 call execute_update_addresses_taken for TODO_rebuild_alias.
10956 (execute_todo): Adjust.
10957 (execute_one_pass): Init dump files early.
10958 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10959 call-clobbered.
10960 (create_general_new_stmt): Clear vops.
10961 * tree-ssa-reassoc.c (get_rank): Adjust.
10962 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10963 symbols for renaming.
10964 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10965 (PARAM_AVG_ALIASED_VOPS): Likewise.
10966 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10967 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10968 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10969 (operand_build_cmp, copy_virtual_operands,
10970 create_ssa_artificial_load_stmt, add_to_addressable_set,
10971 gimple_add_to_addresses_taken): Remove public functions.
10972 (unlink_stmt_vdef): New function.
10973
457d1d00
AM
109742009-04-03 Alan Modra <amodra@bigpond.net.au>
10975
10976 * config.gcc (powerpc-*-linux*): Merge variants.
10977
e19da24c 109782009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10979 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10980
10981 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10982 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10983 cop0_sp_offset.
10984 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10985 keep_interrupts_masked_p, use_debug_exception_return_p.
10986 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10987 keep_interrupts_masked, use_debug_exception_return.
10988 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10989 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10990 New functions.
10991 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10992 (mips_print_operand): Process COP0 registers to print $0 .. $31
10993 correctly for GAS to process.
10994 (mips_interrupt_extra_call_saved_reg_p): New function.
10995 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10996 extra registers.
10997 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10998 (mips_compute_frame_info): Add supports for interrupt context that
10999 includes doubleword accumulators and COP0 registers.
11000 (mips_for_each_saved_acc): New function.
11001 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11002 mips_for_each_saved_reg.
11003 (mips_save_reg): Save accumulators.
11004 (mips_kernel_reg_p): A new for_each_rtx callback.
11005 (mips_expand_prologue): Support interrupt handlers.
11006 (mips_restore_reg): Restore accumulators.
11007 (mips_expand_epilogue): Support interrupt handlers.
11008 (mips_can_use_return_insn): Return false for interrupt handlers.
11009 (mips_epilogue_uses): New function.
11010 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11011 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11012 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11013 cop0_move): New instructions.
11014 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11015 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11016 defines.
11017 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11018 New defines.
11019 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11020 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11021 interrupt handlers, we use K0 as the temporary register.
11022 (EPILOGUE_USES): Change to a function call.
11023 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11024 handlers, we use K0 as the temporary register.
2ba9daa7 11025
e19da24c
CF
11026 * doc/extend.texi (Function Attributes): Document interrupt,
11027 use_shadow_register_set, keep_interrupts_masked,
11028 use_debug_exception_return for MIPS attributes.
11029
aa1ca044
AM
110302009-04-03 Alan Modra <amodra@bigpond.net.au>
11031
11032 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11033 Remove a number of t-files from tmake_file.
11034 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11035 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11036 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11037 target_prototype, not TARGET_PROTOTYPE.
11038 (LINK_OS_GNU_SPEC): Define.
11039 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11040 and darwin-ldoubdle.c.
11041
14fdc613
MM
110422009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11043
11044 PR driver/39293
11045 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11046 (cpp_options): Ditto.
11047 (default_compilers): Ditto.
11048 (display_help): Ditto.
11049 (process_command): Ditto.
11050 (do_spec_1): Ditto.
11051 (set_input): Use lbasename instead of duplicate code.
11052 (save_temps_prefix): New static for -save-temps=obj.
11053 (save_temps_length): Ditto.
2ba9daa7 11054
14fdc613
MM
11055 * doc/invoke.texi (-save-temps=obj): Document new variant to
11056 -save-temps switch.
11057
d3aa398e
JL
110582009-04-02 Jeff Law <law@redhat.com>
11059
11060 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11061 variable.
11062
83f0ccb8
L
110632009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11064
11065 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11066 * configure: Regenerated.
11067
dcb6e951
RAE
110682009-04-02 Rafael Avila de Espindola <espindola@google.com>
11069
11070 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11071 share the argument list.
11072
d85478c2
RAE
110732009-04-02 Rafael Avila de Espindola <espindola@google.com>
11074
11075 Merge
11076
11077 2009-02-12 Diego Novillo <dnovillo@google.com>
11078
83f0ccb8
L
11079 * varpool.c (debug_varpool): New.
11080 * cgraph.h (debug_varpool): Declare.
d85478c2 11081
34f42a49
JH
110822009-04-02 Jan Hubicka <jh@suse.cz>
11083
11084 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11085 pass.
11086
a4747b4a
L
110872009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11088
11089 * config/i386/i386.c (ix86_abi): Move initialization to ...
11090 (override_options): Here.
11091
63a9de54
CB
110922009-04-02 Christian Bruel <christian.bruel@st.com>
11093
11094 * config/sh/sh.c (sh_dwarf_register_span): New function.
11095 (TARGET_DWARF_REGISTER_SPAN): Define.
11096 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11097
2f0fa28e
IR
110982009-04-02 Ira Rosen <irar@il.ibm.com>
11099
11100 PR tree-optimization/39595
2ba9daa7 11101 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11102 interleaved loads group is not greater than the SLP group size.
11103
bbf7ce11
RAE
111042009-04-02 Rafael Avila de Espindola <espindola@google.com>
11105
11106 * builtins.c (is_builtin_name): New.
11107 (called_as_built_in): Use is_builtin_name.
11108 * tree.h (is_builtin_name): New.
11109 * varasm.c (incorporeal_function_p): Use is_builtin_name
11110
47e4dfcf
AS
111112009-04-02 Andrew Stubbs <ams@codesourcery.com>
11112
11113 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11114
d0940d56
DS
111152009-04-02 Dodji Seketeli <dodji@redhat.com>
11116
11117 PR c++/26693
532bfb0a 11118 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11119 * c-common.c (set_underlying_type): ... here.
11120 Also, make sure the function properly sets TYPE_STUB_DECL() on
11121 the newly created typedef variant type.
11122 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11123 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11124 points.
d0940d56 11125
bf1cbdc6
RG
111262009-04-02 Richard Guenther <rguenther@suse.de>
11127
11128 PR tree-optimization/37221
11129 * tree-flow.h (degenerate_phi_result): Declare.
11130 * tree-ssa-dom.c (degenerate_phi_result): Export.
11131 * tree-scalar-evolution.c (analyze_initial_condition): If
11132 the initial condition is defined by a degenerate PHI node
11133 use the degenerate value.
11134
87cfb32c
EB
111352009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11136
11137 PR rtl-optimization/39588
11138 * combine.c (merge_outer_ops): Do not set the constant when this
11139 is not necessary.
11140 (simplify_shift_const_1): Do not modify it either in this case.
11141
bbb6eae8
SB
111422009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11143
11144 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11145 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11146
839a3b8a
JJ
111472009-04-01 Janis Johnson <janis187@us.ibm.com>
11148
11149 PR c/29027
11150 * c-lex.c (interpret_float): Default (no suffix) is double.
11151
667e8acb
XDL
111522009-04-1 Xinliang David Li <davidxl@google.com>
11153
11154 * config/i386/i386.c (legitimate_constant_p): Recognize
11155 all one vector constant.
11156
60839f5d 111572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11158
60839f5d 11159 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11160 Change #include order to silence two warnings.
11161
60839f5d 111622009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11163
60839f5d 11164 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11165 (ASM_SPEC): Pass -k to the assembler for PIC code.
11166
60839f5d 111672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11168
60839f5d
EB
11169 * config.gcc: Add vax-*-linux* to the switch.
11170 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11171 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11172
60839f5d 111732009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11174
60839f5d 11175 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11176 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11177 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11178 ashlsi3, rotrsi3, <unnamed>): Likewise.
11179
60839f5d 111802009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11181
60839f5d 11182 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11183 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11184 * config/vax/constraints.md: Likewise.
11185 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11186 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11187 * config/vax/predicates.md: Likewise.
11188 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11189 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11190 * config/vax/vax.h: Likewise.
11191 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11192
60839f5d 111932009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11194
60839f5d 11195 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11196 (indirectable_address_p, adjacent_operands_p): Add spaces around
11197 braces.
60839f5d 11198 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11199
60839f5d 112002009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11201
60839f5d 11202 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11203 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11204 index_term_p, reg_plus_index_p, legitimate_address_p,
11205 vax_mode_dependent_address_p): Update comments to match functions
11206 modified by the recent int->bool conversion.
11207
60839f5d 112082009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11209
60839f5d
EB
11210 * config/vax/builtins.md: Update copyright message.
11211 * config/vax/constraints.md: Likewise.
11212 * config/vax/netbsd-elf.h: Likewise.
11213 * config/vax/predicates.md: Likewise.
11214 * config/vax/vax-protos.h: Likewise.
11215 * config/vax/vax.c: Likewise.
11216 * config/vax/vax.h: Likewise.
11217 * config/vax/vax.md: Likewise.
11218 * config/vax/vax.opt: Likewise.
c4e75102 11219
60839f5d 112202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11221
60839f5d 11222 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11223 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11224 * config/vax/constraints.md (B, R): Likewise.
11225 * config/vax/predicates.md (external_memory_operand,
c4e75102 11226 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11227 * config/vax/vax.c (vax_output_int_add): Likewise.
11228 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11229 untyped_call): Likewise.
11230
60839f5d 112312009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11232
7a715bba
UB
11233 * config/vax/predicates.md: New file.
11234 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11235 external_const_operand, nonsymbolic_operand, external_memory_operand,
11236 indirect_memory_operand, indexed_memory_operand,
11237 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11238 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11239 predicate.
7a715bba
UB
11240 * config/vax/constraints.md: New file.
11241 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11242 New constraint.
11243 * config/vax/builtins.md: New file.
11244 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11245 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11246 jbbccisi): Define.
c4e75102
MT
11247 * config/vax/vax.opt (mqmath): Add option.
11248 * config/vax/vax.md (isfx): Extend with DI.
11249 (VAXintQH, VAXintQHSD): Define.
11250 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11251 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11252 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11253 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11254 (movdi): Update constraints and use vax_output_int_move().
11255 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11256 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11257 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11258 nonlocal_goto): New.
11259 (mov<mode>): Extend accepted operand types.
11260 (subdi3_old): Rename from subdi3, change update constraints and use
11261 a new implementation.
60839f5d 11262 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11263 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11264 MOVE_RATIO, CLEAR_RATIO): Define.
11265 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11266 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11267 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11268 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11269 (split_quadword_operands): Make static and really allow variable
11270 splitting.
11271 (print_operand_address): Update for PIC generation.
11272 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11273 indexable_address_p, fixup_mathdi_operand,
11274 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11275 (vax_float_literal, legitimate_constant_p,
11276 indirectable_constant_address_p, index_term_p,
11277 reg_plus_index_p): Return bool instead of int.
11278 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11279 where needed.
11280 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11281 generation.
11282 (vax_output_conditional_branch): Indent.
11283 (legitimate_constant_address_p, indirectable_constant_address_p,
11284 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11285 vax_mode_dependent_address_p): Return bool instead of int, update for
11286 PIC generation.
11287 * config/vax/vax-protos.h (legitimate_constant_address_p,
11288 legitimate_constant_p, legitimate_address_p,
11289 vax_mode_dependent_address_p): Change declaration to bool.
11290 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11291 vax_expand_addsub_di_operands, vax_output_int_subtract,
11292 vax_output_movmemsi): Declare.
11293 (split_quadword_operands, vax_float_literal): Delete declaration.
11294 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11295 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11296 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11297 ASM_OUTPUT_DWARF_PCREL): Define.
11298 (ASM_SPEC): Change definition to allow PIC generation.
11299
9332c6eb
L
113002009-04-01 Steve Ellcey <sje@cup.hp.com>
11301
11302 * doc/sourcebuild.texi: Update front-end requirements.
11303
d93e052c
JJ
113042009-04-01 Jakub Jelinek <jakub@redhat.com>
11305
11306 PR target/39226
11307 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11308 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11309 (booldi3_internal3): Use boolean_or_operator instead of
11310 boolean_operator.
11311
6ccb2a4a
JM
113122009-04-01 Joseph Myers <joseph@codesourcery.com>
11313
11314 PR c/39605
11315 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11316 declarator whose size is not an integer constant expression but
11317 folds to an integer constant, then treat it as a constant
11318 subsequently.
11319
299b87f8
RG
113202009-04-01 Richard Guenther <rguenther@suse.de>
11321
11322 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11323 i * 4 + 2 to (i * 2 + 1) * 2.
11324
b85eb797
JJ
113252009-04-01 Jakub Jelinek <jakub@redhat.com>
11326
11327 PR c/37772
11328 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11329 return if c_parser_asm_string_literal returned NULL.
11330
235e1fe8
NC
113312009-04-01 Nick Clifton <nickc@redhat.com>
11332
11333 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11334 already defined.
11335 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11336 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11337 other typedefs to avoid conflicts with libgcc2.c. Define labels
11338 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11339 include it.
11340 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11341 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11342 then include it.
11343
d6868399
RAE
113442009-04-01 Rafael Avila de Espindola <espindola@google.com>
11345
7a715bba
UB
11346 * varasm.c (default_function_rodata_section): Declare DOT as
11347 const char*.
d6868399 11348
73d21f56 113492009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11350 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11351
11352 PR/39492
11353 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11354 Make object_name unique for each process.
11355
03742a9b
JJ
113562009-04-01 Jakub Jelinek <jakub@redhat.com>
11357
11358 PR other/39591
11359 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11360 addressable variables in the parallel that could go out of scope while
11361 running queued tasks.
11362
4223ff5f
AS
113632009-04-01 Anatoly Sokolov <aesok@post.ru>
11364
11365 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11366 (CASE_VALUES_THRESHOLD): Redefine.
11367 * config/avr/avr.c (avr_override_options): Remove initialization of
11368 avr_case_values_threshold variable.
11369 (avr_case_values_threshold): Remove variable. Add new function.
11370 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11371 * config/avr/avr.opt (mno-tablejump): Remove option.
11372 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11373
e893f6f3
DD
113742009-04-01 DJ Delorie <dj@redhat.com>
11375
11376 * varasm.c (default_function_rodata_section): Don't assume
11377 anything about where the first '.' in the section name is.
11378
b246d100
AM
113792009-04-01 Alan Modra <amodra@bigpond.net.au>
11380
11381 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11382 rs6000_emit_stack_tie.
11383
d3e37a9e
ILT
113842009-03-31 Ian Lance Taylor <iant@google.com>
11385
11386 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11387 gimple_code with GIMPLE_RESX, not RESX.
11388
c1b61fca
JM
113892009-03-31 Joseph Myers <joseph@codesourcery.com>
11390
11391 * c-common.c (c_get_ident): New.
7a715bba 11392 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11393
c2d2ad48
BE
113942009-04-01 Ben Elliston <bje@au.ibm.com>
11395
11396 * config/rs6000/sysv4.opt (msdata): Improve option description.
11397
13d1a6e7
SE
113982009-03-31 Steve Ellcey <sje@cup.hp.com>
11399
11400 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11401 (divdf3_internal_lat): Remove.
11402 (divxf3_internal_lat): Remove.
11403 (divxf3_internal_thr): Remove.
11404 (divxf): Use divxf3_internal.
11405 * config/ia64/div.md (divsf3_internal_lat): New.
11406 (divdf3_internal_lat): New.
11407 (divxf3_internal): New.
11408
207bf79d
JM
114092009-03-31 Joseph Myers <joseph@codesourcery.com>
11410
11411 PR c/448
11412 * Makefile.in (USE_GCC_STDINT): Define.
11413 (stmp-int-hdrs): Install stdint.h if applicable.
11414 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11415 if known.
11416 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11417 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11418 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11419 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11420 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11421 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11422 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11423 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11424 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11425 (c_common_nodes_and_builtins): Initialize
11426 underlying_wchar_type_node. Do not initialize
11427 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11428 nodes for new types.
11429 (c_stddef_cpp_builtins): Define macros for new types.
11430 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11431 Remove.
11432 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11433 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11434 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11435 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11436 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11437 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11438 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11439 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11440 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11441 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11442 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11443 int16_type_node, int32_type_node, int64_type_node,
11444 uint8_type_node, uint16_type_node, c_uint32_type_node,
11445 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11446 int_least32_type_node, int_least64_type_node,
11447 uint_least8_type_node, uint_least16_type_node,
11448 uint_least32_type_node, uint_least64_type_node,
11449 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11450 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11451 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11452 uintptr_type_node): Define.
11453 * c-cppbuiltin.c (builtin_define_constants,
11454 builtin_define_type_minmax): New.
11455 (builtin_define_stdint_macros): Define more macros.
11456 (c_cpp_builtins): Define more limit macros.
11457 (type_suffix): New.
11458 (builtin_define_type_max): Define in terms of
11459 builtin_define_type_minmax. Remove is_long parameter. All
11460 callers changed.
11461 * config.gcc (use_gcc_stdint): Define.
11462 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11463 Add newlib-stdint.h for generic targets.
11464 * config/glibc-stdint.h, config/newlib-stdint.h,
11465 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11466 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11467 * config/score/score.h (UINTPTR_TYPE): Define.
11468 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11469 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11470 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11471 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11472 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11473 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11474 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11475 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11476 * config/spu/spu.h (STDINT_LONG32): Define.
11477 * configure.ac (use_gcc_stdint): Substitute.
11478 * configure: Regenerate.
11479 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11480 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11481 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11482 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11483 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11484 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11485 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11486 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11487 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11488 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11489 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11490 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11491 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11492 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11493 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11494 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11495 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11496 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11497 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11498 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11499 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11500 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11501 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11502 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11503 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11504 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11505 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11506 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11507 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11508
ed853664
BS
115092009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11510
11511 * loop-iv.c (suitable_set_for_replacement): Renamed from
11512 simplify_using_assignment; changed to return bool and to accept new
11513 args DEST and SRC. Return true iff we find a source/destination pair
11514 that can be used to make a replacement, and fill SRC and DEST if so.
11515 Remove arg ALTERED. Don't deal with altered regs here. All callers
11516 changed.
11517 (simplify_using_initial_values): Deal with altered regs here and track
11518 more precisely the effect they have on the validity of our expression.
11519
1569e190
BS
11520 * loop-iv.c (simplify_using_condition): A condition of the form
11521 (EQ REG CONST) can be used to simply make a substitution.
11522 (simplify_using_initial_values): Keep track of conditions we have seen
11523 and keep using them to simplify new expressions, while applying the
11524 same substitutions to them as to the expression.
11525
1d1eb80c
BS
11526 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11527 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11528 GEU/LTU reversed.
11529
28af33b0
BS
11530 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11531 changed. Use this when trying to improve the upper bound.
11532 Generate the comparison by using simplify_gen_relational.
11533
b30321cd
BS
11534 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11535
60081874
BS
11536 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11537 functions.
2ba9daa7 11538 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11539 replace_in_expr to make replacements. Call replace_single_def_regs
11540 once on the initial version of the expression.
11541
bebc6e07
RR
115422009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11543
fcb82ab0 11544 PR target/27237
bebc6e07 11545 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11546
6b12efe9
RG
115472009-03-31 Richard Guenther <rguenther@suse.de>
11548
11549 PR middle-end/31029
11550 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11551 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11552
108f6c2f
RG
115532009-03-31 Richard Guenther <rguenther@suse.de>
11554
11555 * tree.h (div_if_zero_remainder): Declare.
11556 * fold-const.c (div_if_zero_remainder): Export.
11557 * tree-ssa-forwprop.c
11558 (forward_propagate_addr_into_variable_array_index): Handle
11559 constant array index addition outside of the variable index.
11560
8f612190
JM
115612009-03-31 Joseph Myers <joseph@codesourcery.com>
11562
11563 PR target/39592
11564 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11565 define_splits, floatunssi<mode>2): Require x87 conversions from
11566 DImode to be permitted.
11567
47580d22
JM
115682009-03-31 Joseph Myers <joseph@codesourcery.com>
11569
11570 PR preprocessor/15638
11571 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11572
ba4d8f9d
RG
115732009-03-31 Richard Guenther <rguenther@suse.de>
11574
11575 PR middle-end/23401
11576 PR middle-end/27810
11577 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11578 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11579 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11580 a separate statement.
11581 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11582 (lookup_tmp_var): Likewise.
11583 (is_gimple_formal_tmp_or_call_rhs): Remove.
11584 (is_gimple_reg_or_call_rhs): Rename to ...
11585 (is_gimple_reg_rhs_or_call): ... this.
11586 (is_gimple_mem_or_call_rhs): Rename to ...
11587 (is_gimple_mem_rhs_or_call): ... this.
11588 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11589 DECL_GIMPLE_REG_P only if is_formal is true.
11590 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11591 for non-proper post-modify expression gimplification.
11592 (gimplify_self_mod_expr): For post-modify expressions gimplify
11593 the lvalue to a minimal lvalue.
11594 (rhs_predicate_for): Remove formal temp case.
11595 (gimplify_modify_expr_rhs): Likewise.
11596 (gimplify_addr_expr): Use is_gimple_reg.
11597 (gimplify_expr): Remove formal temp cases.
11598 (gimple_regimplify_operands): Likewise.
11599 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11600 and FILTER_EXPR like constants.
11601 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11602 is_gimple_reg.
11603 (is_gimple_formal_tmp_rhs): Remove.
11604 (is_gimple_reg_rhs): Remove special casing.
11605 (is_gimple_mem_rhs): Fix.
11606 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11607 (is_gimple_formal_tmp_var): Remove.
11608 (is_gimple_formal_tmp_reg): Likewise.
11609 (is_gimple_min_lval): Allow invariant component ref parts.
11610 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11611 is_gimple_formal_tmp_reg): Remove declarations.
11612 * tree-cfg.c (verify_expr): Verify that variables with address
11613 taken do not have DECL_GIMPLE_REG_P set.
11614 * tree-mudflap.c (mf_build_check_statement_for): Use
11615 force_gimple_operand instead of gimplify_expr.
11616
8de9b877
AZ
116172009-03-31 Ayal Zaks <zaks@il.ibm.com>
11618
11619 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11620 schedulable rows to compute_split_row.
11621
b5e3caf2
BE
116222009-03-31 Ben Elliston <bje@au.ibm.com>
11623
11624 PR target/31635
11625 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11626 OPT_mvrsave.
11627
9752c4ad
AM
116282009-03-31 Alan Modra <amodra@bigpond.net.au>
11629
11630 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11631 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11632 * configure: Regenerate.
11633 * config.in: Regenerate.
11634 * config/rs6000/rs6000.opt (mtls-markers): Add.
11635 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11636 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11637 (tls_ld_aix, tls_ld_sysv): Likewise.
11638 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11639 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11640
b597d1b6
AM
116412009-03-31 Alan Modra <amodra@bigpond.net.au>
11642
11643 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11644
a203a221
JH
116452009-03-30 Jan Hubicka <jh@suse.cz>
11646
b597d1b6
AM
11647 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11648 out of RESX.
11649 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11650 detection and label handling.
a203a221 11651
5b0c0b2c
VM
116522009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11653
11654 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11655 left_conflicts_size.
11656 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11657 ALLOCNO_LEFT_CONFLICTS_SIZE.
11658
11659 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11660 remove_allocno_from_bucket_and_push,
11661 allocno_spill_priority_compare, push_allocnos_to_stack,
11662 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11663 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11664 (setup_allocno_left_conflicts_num): Ditto. Rename to
11665 setup_allocno_left_conflicts_size.
11666 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11667 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11668 setup_allocno_left_conflicts_size instead of
11669 setup_allocno_left_conflicts_num.
11670
11671 * ira-build.c (ira_create_allocno): Use
11672 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11673 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11674
9a48a93f
VM
116752009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11676
11677 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11678 instead of DF_LR_OUT.
11679
11680 * ira-lives.c (process_bb_node_lives): Ditto.
11681
11682 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11683 instead of DF_LR_{OUT,IN}.
11684
11685 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11686
11687 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11688
4c936d4f
JH
116892009-03-30 Jan Hubicka <jh@suse.cz>
11690
11691 * except.c (label_to_region_map): Fix thinko.
11692
f4d9f129
SE
116932009-03-30 Steve Ellcey <sje@cup.hp.com>
11694
11695 PR middle-end/38237
11696 * tree.h (tree_find_value): New declaration.
11697 * tree.c (tree_find_value): New function.
11698 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11699
b3f27c15
JJ
117002009-03-30 Jakub Jelinek <jakub@redhat.com>
11701
11702 PR debug/39563
11703 * c-decl.c (struct c_binding): Add locus field.
11704 (bind): Add locus argument, set locus field from it.
11705 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11706 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11707 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11708 implicitly_declare, undeclared_variable, lookup_label,
11709 declare_label, c_make_fname_decl, c_builtin_function,
11710 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11711 bind callers.
11712
ad41bd84 117132009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11714
11715 PR target/38781
11716 * config/i386/i386.c (classify_argument): Check total size of
11717 structure.
11718
133f9369
MJ
117192009-03-30 Martin Jambor <mjambor@suse.cz>
11720
11721 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11722 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11723 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11724 respectively.
11725
11726 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11727 seen_variable_array_ref while also traversing a union.
11728
11729 * tree-inline.c (optimize_inline_calls): Do not call
11730 cgraph_node_remove_callees.
11731 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11732 (pass_remove_cgraph_callee_edges): New variable.
11733 * passes.c (init_optimization_passes): Add
11734 pass_remove_cgraph_callee_edges after early inlining and before all
11735 late intraprocedural passes.
11736
11737 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11738
1190f2eb
PB
117392009-03-30 Paolo Bonzini <bonzini@gnu.org>
11740
11741 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11742 Fix typos in names.
11743
fedc1775
PB
117442009-03-30 Paolo Bonzini <bonzini@gnu.org>
11745
fcb82ab0
UB
11746 * combine.c (simplify_comparison): Use have_insn_for.
11747 * dojump.c (do_jump): Likewise.
fedc1775 11748
65c5ae8b
PB
117492009-03-30 Paolo Bonzini <bonzini@gnu.org>
11750
11751 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11752 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11753 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11754 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11755 instead of sparc_compare_emitted.
11756 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11757 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11758 instead of sparc_compare_emitted.
11759
d25aa7ab
PB
117602009-03-30 Paolo Bonzini <bonzini@gnu.org>
11761
11762 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11763 enter/exit cfglayout mode.
11764 (pass_partition_block): Require it.
11765 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11766 (combine_instructions): Track basic blocks instead of labels.
11767 (update_cfg_for_uncondjump): New.
11768 (try_combine): Use it. Update jumps after rescanning.
11769 (pass_combine): Require PROP_cfglayout.
11770 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11771
9c9e26f5
PB
117722009-03-30 Paolo Bonzini <bonzini@gnu.org>
11773
fcb82ab0
UB
11774 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11775 Provide/destroy PROP_cfglayout respectively.
11776 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11777 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11778
28ddeea1
PB
117792009-03-30 Paolo Bonzini <bonzini@gnu.org>
11780
11781 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11782 fold_convert_const_fixed_from_fixed,
11783 fold_convert_const_fixed_from_int,
11784 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11785 set TREE_CONSTANT_OVERFLOW.
11786 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11787 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11788
ebfd146a
IR
117892009-03-30 Ira Rosen <irar@il.ibm.com>
11790
11791 * tree-vect-loop-manip.c: New file.
11792 * tree-vectorizer.c: Update documentation and included files.
11793 (vect_loop_location): Make extern.
11794 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11795 (rename_variables_in_bb, rename_variables_in_loop,
11796 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11797 slpeel_update_phi_nodes_for_guard1,
11798 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11799 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11800 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11801 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11802 find_loop_location): Likewise.
11803 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11804 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11805 get_vectype_for_scalar_type, vect_is_simple_use,
11806 supportable_widening_operation, supportable_narrowing_operation):
11807 Likewise.
11808 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11809 (new_loop_vec_info, destroy_loop_vec_info,
11810 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11811 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11812 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11813 (vect_supportable_dr_alignment): Likewise.
11814 * tree-vectorizer.h (tree-data-ref.h): Include.
11815 (vect_loop_location): Declare.
11816 Reorganize function declarations according to the new file structure.
11817 * tree-vect-loop.c: New file.
2ba9daa7 11818 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11819 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11820 * tree-vect-data-refs.c: New file.
11821 * tree-vect-patterns.c (timevar.h): Don't include.
11822 * tree-vect-stmts.c: New file.
2ba9daa7 11823 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11824 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11825 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11826 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11827 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11828 (tree-vect-analyze.o): Remove.
11829 (tree-vect-transform.o): Likewise.
11830 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11831 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11832 tree-vect-slp.o): Likewise.
11833 (tree-vect-patterns.o): Remove redundant dependencies.
11834 (tree-vectorizer.o): Likewise.
11835 * tree-vect-slp.c: New file.
11836
40a1cfba
RW
118372009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11838
11839 * optc-gen.awk: Warn if an option flag has multiple different
11840 help strings.
11841
a9a7a9a2
SP
118422009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11843
11844 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11845 -floop-block): Document dependences on PPL, CLooG and Graphite.
11846
8ce94e44
JM
118472009-03-30 Joseph Myers <joseph@codesourcery.com>
11848
11849 PR rtl-optimization/323
11850 * c-common.c (c_fully_fold, convert_and_check,
11851 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11852 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11853 * c-common.def (EXCESS_PRECISION_EXPR): New.
11854 * c-cppbuiltin.c (builtin_define_float_constants): Define
11855 constants with enough digits for long double.
11856 * c-lex.c (interpret_float): Interpret constant with excess
11857 precision where appropriate.
11858 * c-opts.c (c_common_post_options): Set
11859 flag_excess_precision_cmdline. Give an error for
11860 -fexcess-precision=standard for C++ for processors where the
11861 option is significant.
11862 * c-parser.c (c_parser_conditional_expression): Handle excess
11863 precision in condition.
11864 * c-typeck.c (convert_arguments): Handle arguments with excess
11865 precision.
11866 (build_unary_op): Move excess precision outside operation.
11867 (build_conditional_expr): Likewise.
11868 (build_compound_expr): Likewise.
11869 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11870 (build_modify_expr): Handle excess precision in RHS.
11871 (convert_for_assignment): Handle excess precision in converted
11872 value.
11873 (digest_init, output_init_element, process_init_element): Handle
11874 excess precision in initializer.
11875 (c_finish_return): Handle excess precision in return value.
11876 (build_binary_op): Handle excess precision in operands and add
11877 excess precision as needed for operation.
11878 * common.opt (-fexcess-precision=): New option.
11879 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11880 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11881 For standard excess precision, output explicit conversion to and
11882 truncation from XFmode.
11883 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11884 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11885 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11886 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11887 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11888 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11889 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11890 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11891 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11892 define_splits, sqrt<mode>2): Disable where appropriate for
11893 standard excess precision.
11894 * convert.c (convert_to_real): Do not shorten arithmetic to type
11895 for which excess precision would be used.
11896 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11897 * doc/invoke.texi (-fexcess-precision=): Document option.
11898 (-mfpmath=): Correct index entry.
11899 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11900 flag_excess_precision): New.
11901 * langhooks.c (lhd_post_options): Set
11902 flag_excess_precision_cmdline.
11903 * opts.c (common_handle_option): Handle -fexcess-precision=.
11904 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11905 init_excess_precision): New.
11906 (lang_dependent_init_target): Call init_excess_precision.
11907 * tree.c (excess_precision_type): New.
11908 * tree.h (excess_precision_type): Declare.
11909
1e57bf47
JM
119102009-03-30 Joseph Myers <joseph@codesourcery.com>
11911
11912 PR c/35235
11913 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11914 non-lvalue to component.
11915
148e4216
JM
119162009-03-29 Joseph Myers <joseph@codesourcery.com>
11917
11918 PR preprocessor/34695
11919 * Makefile.in (c-opts.o): Depend on c-tree.h.
11920 * c-common.c: Move down include of diagnostic.h.
11921 (done_lexing, c_cpp_error): New.
11922 * c-common.h (done_lexing): Declare.
11923 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11924 (parse_in).
11925 * c-opts.c: Include c-tree.h.
11926 (c_common_init_options): Set preprocessor error callback.
11927 (c_common_handle_option): Do not set preprocessor
11928 inhibit_warnings, warnings_are_errors, warn_system_headers,
11929 pedantic_errors or inhibit_warnings flags.
11930 (c_common_post_options): Do not check cpp_errors (parse_in).
11931 (c_common_finish): Do not output dependencies if there were
11932 errors. Do not check return value of cpp_finish.
11933 * c-ppoutput.c (pp_file_change): Set input_location.
11934 * c-tree.h (c_cpp_error): Declare.
11935 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11936 override_column.
11937 (diagnostic_build_prefix): Check override_column.
11938 * diagnostic.h (diagnostic_info): Add override_column field.
11939 (diagnostic_override_column): Define.
11940
2ec5deb5
PB
119412009-03-28 Paolo Bonzini <bonzini@gnu.org>
11942
ba20e309
UB
11943 * c-common.c (c_expand_expr, c_staticp): Remove.
11944 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11945 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11946 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11947 * c-gimplify.c (gimplify_compound_literal_expr,
11948 optimize_compound_literals_in_ctor): Remove.
11949 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11950 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11951 * c-semantics.c (emit_local_var): Remove.
11952
11953 * langhooks-def.h (lhd_expand_expr): Remove.
11954 * langhooks.c (lhd_expand_expr): Remove.
11955 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11956
11957 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11958 handling from c-semantics.c; don't call into langhook.
11959 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11960 * gimplify.c (gimplify_compound_literal_expr,
11961 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11962 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11963 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11964 as was done in c-gimplify.c.
11965 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11966 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11967 Move from c-common.h.
11968 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11969
11970 * tree.c (staticp): Do not call langhook.
11971 * langhooks.c (lhd_staticp): Delete.
11972 * langhooks-def.h (lhd_staticp): Delete prototype.
11973 (LANG_HOOKS_STATICP): Delete.
11974 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11975
ba20e309
UB
11976 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11977 instead of DECL_STMTs.
2ec5deb5 11978
928c19bb
JM
119792009-03-29 Joseph Myers <joseph@codesourcery.com>
11980
11981 PR c/456
11982 PR c/5675
11983 PR c/19976
11984 PR c/29116
11985 PR c/31871
11986 PR c/35198
11987 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11988 void_type_node.
11989 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11990 contained expression.
ba20e309 11991 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11992 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11993 conditional expressions for C.
11994 (decl_constant_value_for_optimization): Move from
ba20e309 11995 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11996 whether optimizing and that the expression is a VAR_DECL not of
11997 array type instead of doing such checks in the caller. Do not
11998 check pedantic. Call gcc_unreachable for C++.
11999 * c-common.def (C_MAYBE_CONST_EXPR): New.
12000 * c-common.h (c_fully_fold, c_save_expr,
12001 decl_constant_value_for_optimization): New prototypes.
12002 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12003 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12004 EXPR_INT_CONST_OPERANDS): Define.
12005 * c-convert.c (convert): Strip nops from expression.
12006 * c-decl.c (groktypename): Take extra parameters expr and
12007 expr_const_operands. Update call to grokdeclarator.
12008 (start_decl): Update call to grokdeclarator. Add statement for
12009 expressions used in type of decl.
12010 (grokparm): Update call to grokdeclarator.
12011 (push_parm_decl): Update call to grokdeclarator.
12012 (build_compound_literal): Add parameter non_const and build a
12013 C_MAYBE_COSNT_EXPR if applicable.
12014 (grokdeclarator): Take extra parameters expr and
12015 expr_const_operands. Track expressions used in declaration
12016 specifiers and declarators. Fold array sizes and track whether
12017 they are constant expressions and whether they are integer
12018 constant expressions.
12019 (parser_xref_tag): Set expr and expr_const_operands fields in
12020 return value.
12021 (grokfield): Update call to grokdeclarator.
12022 (start_function): Update call to grokdeclarator.
12023 (build_null_declspecs): Set expr and expr_const_operands fields in
12024 return value.
12025 (declspecs_add_type): Handle expressions in typeof specifiers.
12026 * c-parser.c (c_parser_declspecs): Set expr and
12027 expr_const_operands fields for declaration specifiers.
12028 (c_parser_enum_specifier): Likewise.
12029 (c_parser_struct_or_union_specifier): Likewise.
12030 (c_parser_typeof_specifier): Likewise. Update call to
12031 groktypename. Fold expression as needed. Return expressions with
12032 type instead of adding statements.
12033 (c_parser_attributes): Update calls to c_parser_expr_list.
12034 (c_parser_statement_after_labels): Fold expression before passing
12035 to objc_build_throw_stmt.
12036 (c_parser_condition): Fold expression.
12037 (c_parser_asm_operands): Fold expression.
12038 (c_parser_conditional_expression): Use c_save_expr. Update call
12039 to build_conditional_expr.
12040 (c_parser_alignof_expression): Update call to groktypename.
12041 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12042 original_code. Fold expression argument of va_arg. Create
12043 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12044 argument to va_arg. Update calls to groktypename. Fold array
12045 index for offsetof. Verify that first argument to
12046 __builtin_choose_expr has integer type.
12047 (c_parser_postfix_expression_after_paren_type): Update calls to
12048 groktypename and build_compound_literal. Handle expressions with
12049 side effects in type name.
12050 (c_parser_postfix_expression_after_primary): Update call to
12051 c_parser_expr_list. Set original_code for calls to
12052 __builtin_constant_p.
12053 (c_parser_expr_list): Take extra parameter fold_p. Fold
12054 expressions if requested.
12055 (c_parser_objc_type_name): Update call to groktypename.
12056 (c_parser_objc_synchronized_statement): Fold expression.
12057 (c_parser_objc_receiver): Fold expression.
12058 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12059 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12060 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12061 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12062 (struct c_typespec): Add elements expr and expr_const_operands.
12063 (struct c_declspecs): Add elements expr and expr_const_operands.
12064 (groktypename, build_conditional_expr, build_compound_literal):
12065 Update prototypes.
12066 (in_late_binary_op): Declare.
12067 * c-typeck.c (note_integer_operands): New function.
12068 (in_late_binary_op): New variable.
12069 (decl_constant_value_for_broken_optimization): Move to c-common.c
12070 and rename to decl_constant_value_for_optimization.
12071 (default_function_array_conversion): Do not strip nops.
12072 (default_conversion): Do not call
12073 decl_constant_value_for_broken_optimization.
12074 (build_array_ref): Do not fold result.
12075 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12076 result when operand is a VLA.
12077 (c_expr_sizeof_type): Update call to groktypename. Handle
12078 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12079 result when operand names a VLA type.
12080 (build_function_call): Update call to build_compound_literal.
12081 Only fold result for calls to __builtin_* functions. Strip
12082 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12083 the function designator.
12084 (convert_arguments): Fold arguments. Update call to
12085 convert_for_assignment.
12086 (build_unary_op): Handle increment and decrement of
12087 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12088 decrement earlier. Fold operand of increment and decrement.
12089 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12090 built for integer operand. Wrap returns that are INTEGER_CSTs
12091 without being integer constant expressions or that have integer
12092 constant operands without being INTEGER_CSTs.
12093 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12094 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12095 result is an integer constant expression or can be used in
12096 unevaluated parts of one and avoid folding and wrap as
12097 appropriate. Fold operands before possibly doing -Wsign-compare
12098 warnings.
12099 (build_compound_expr): Wrap result for C99 if operands can be used
12100 in integer constant expressions.
12101 (build_c_cast): Update call to digest_init. Do not ignore
12102 overflow from casting floating-point constants to integers. Wrap
12103 results that could be confused with integer constant expressions,
12104 null pointer constants or floating-point constants.
12105 (c_cast_expr): Update call to groktypename. Handle expressions
12106 included in type name.
12107 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12108 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12109 Update calls to convert_for_assignment.
12110 (convert_for_assignment): Take new parameter
12111 null_pointer_constant. Do not strip nops or call
12112 decl_constant_value_for_broken_optimization. Set
12113 in_late_binary_op for conversions to boolean.
12114 (store_init_value): Update call to digest_init.
12115 (digest_init): Take new parameter null_pointer_constant. Do not
12116 call decl_constant_value_for_broken_optimization. pedwarn for
12117 initializers not constant expressions. Update calls to
12118 convert_for_assignment.
12119 (constructor_nonconst): New.
12120 (struct constructor_stack): Add nonconst element.
12121 (really_start_incremental_init, push_init_level, pop_init_level):
12122 Handle constructor_nonconst and nonconst element.
12123 (set_init_index): Call constant_expression_warning for array
12124 designators.
12125 (output_init_element): Fold value. Set constructor_nonconst as
12126 applicable. pedwarn for initializers not constant expressions.
12127 Update call to digest_init. Call constant_expression_warning
12128 where constant initializers are required.
12129 (process_init_element): Use c_save_expr.
12130 (c_finish_goto_ptr): Fold expression.
12131 (c_finish_return): Fold return value. Update call to
12132 convert_for_assignment.
12133 (c_start_case): Fold switch expression.
12134 (c_process_expr_stmt): Fold expression.
12135 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12136 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12137 (build_binary_op): Track whether results are integer constant
12138 expressions or may occur in such, disable folding and wrap results
12139 as applicable. Fold operands for -Wsign-compare warnings unless
12140 in_late_binary_op.
12141 (c_objc_common_truthvalue_conversion): Handle results folded to
12142 integer constants that are not integer constant expressions.
12143 * doc/extend.texi: Document when typeof operands are evaluated,
12144 that condition of __builtin_choose_expr is an integer constant
12145 expression, and more about use of __builtin_constant_p in
12146 initializers.
12147
5babbcc0
RG
121482009-03-29 Richard Guenther <rguenther@suse.de>
12149
12150 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12151 propagate addresses of array references.
12152
0340f2ba
SB
121532009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12154
12155 * regmove.c (perhaps_ends_bb_p): Remove.
12156 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12157 from INSN and check that the main loop stays within that basic block.
12158 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12159 (regmove_forward_pass): Split out from regmove_optimize. Use
12160 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12161 (regmove_backward_pass): Split out from regmove_optimize. Use
12162 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12163 (regmove_optimize): Simplify.
12164
eeae74a1
L
121652009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12166
12167 PR target/39545
12168 * config/i386/i386.c (classify_argument): Ignore flexible array
12169 member in struct and warn ABI change.
12170
a24078b2
L
121712009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12172
12173 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12174
12175 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12176 (ix86_adjust_cost): Updated.
12177
a8da523f
JH
121782009-03-29 Jan Hubicka <jh@suse.cz>
12179
12180 PR middle-end/28850
12181 * tree-pass.h (pass_cleanup_eh): New function.
12182 (remove_unreachable_regions): Break code handling RTL
12183 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12184 that can not be reached by runtime.
12185 (can_be_reached_by_runtime): New function.
12186 (label_to_region_map): New function.
12187 (num_eh_regions): New function.
12188 (rtl_remove_unreachable_regions): New function.
12189 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12190 (remove_eh_region): New function.
12191 * except.h: Include sbitmap and vecprim.
12192 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12193 num_eh_regions): Declare.
12194 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12195 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12196 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12197 (tree_empty_eh_handler_p): New function.
12198 (cleanup_empty_eh): New function.
12199 (cleanup_eh): New function.
12200 (pass_cleanup_eh): New function.
12201
98f358e5
JH
122022009-03-29 Jan Hubicka <jh@suse.cz>
12203
12204 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12205 for removed regions.
12206
13a9fa44
JH
122072009-03-29 Jan Hubicka <jh@suse.cz>
12208
12209 * except.c (dump_eh_tree): Dump all datastructures.
12210
e38cf733
JH
122112009-03-29 Jan Hubicka <jh@suse.cz>
12212
12213 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12214 (duplicate_eh_regions_1): Likewise.
12215 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12216 vector; call EH verification.
12217 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12218 Be ready for region being removed.
12219
12802c2b
JH
122202009-03-29 Jan Hubicka <jh@suse.cz>
12221
12222 * bitmap.c (bitmap_last_set_bit): New function.
12223 * bitmap.h (bitmap_last_set_bit): Declare.
12224
4ea80a41
DA
122252009-03-29 David Ayers <ayers@fsfe.org>
12226
12227 PR objc/27377
12228 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12229 by calling objc_compare_types and surpress warnings about
12230 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12231
4ea80a41 122322009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12233
12234 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12235 call initialize_inline_failed.
12236 (initialize_inline_failed): Move it from here ...
12237 * cgraph.c (initialize_inline_failed): ... to here.
12238 (cgraph_create_edge): Call initialize_inline_failed rather than
12239 setting inline_failed directly.
12240
7fb0ee07
BE
122412009-03-29 Ben Elliston <bje@au.ibm.com>
12242
12243 PR target/32542
12244 * sysv4.opt (msdata): Improve comment.
12245 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12246 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12247
0be77bf2
BE
122482009-03-29 Ben Elliston <bje@au.ibm.com>
12249
12250 PR target/30451
12251 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12252 load and store attributes.
12253
593812b6
BE
122542009-03-29 Ben Elliston <bje@au.ibm.com>
12255
12256 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12257 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12258 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12259 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12260 __builtin_infq and __builtin_huge_valq.
12261
8272d11d
AS
122622009-03-28 Anatoly Sokolov <aesok@post.ru>
12263
12264 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12265 atmega8m1 devices.
12266 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12267 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12268
74fe548b
XDL
122692009-03-28 Xinliang David Li <davidxl@google.com>
12270
2ba9daa7 12271 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12272 (do_dbg_cnt): New function.
12273
33977f81
JH
122742009-03-28 Jan Hubicka <jh@suse.cz>
12275
12276 Merge from pretty-ipa:
12277
12278 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12279
33977f81
JH
12280 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12281 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12282 * passes.c (function_called_by_processed_nodes_p): New.
12283 * ipa-pure-const.c (check_call): Fix handling of operands.
12284 (analyze_function): Dump debug output for skipped bodies.
12285 (local_pure_const): Use function_called_by_processed_nodes_p.
12286 * dwarf2out.c (reference_to_unused): Use output.
12287 * passes.c (do_per_function_toporder): Likewise.
12288
12289 2008-11-12 Jan Hubicka <jh@suse.cz>
12290
12291 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12292 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12293 state_set_in_source enum
12294 (check_decl): Ignore memory tags; do not set fake looping flags;
12295 dump diagnostics.
12296 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12297 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12298 (check_call, analyze_function): Rewrite.
12299 (check_stmt): New.
12300 (add_new_function): Update call of analyze_function.
12301 (generate_summary): Add call of analyze_function.
12302 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12303 (local_pure_const): New function.
12304 (pass_local_pure_const): New pass.
12305 * ipa-inline.c (inline_transform): Set after_inlining.
12306 * tree-eh.c (stmt_can_throw_external): New.
12307 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12308 work with aliasing built.
12309 * tree-flow.h (stmt_can_throw_external): New.
12310 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12311 and local pure/const pass in early and late optimization queue.
ba20e309 12312
617f3897
MJ
123132009-03-28 Martin Jambor <mjambor@suse.cz>
12314
12315 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12316 allow_func_align.
12317 (fold_binary): Allow function decl aligment consideration is the
12318 second argument is integer constant one.
12319 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12320 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12321 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12322
fe89fbc5
JH
123232009-03-28 Jan Hubicka <jh@suse.cz>
12324
12325 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12326 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12327 * function.h (rtl_data): Add nothrow flag.
12328 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12329 set DECL_NOTHROW for AVAILABLE functions.
12330
574872ff
JJ
123312009-03-28 Jakub Jelinek <jakub@redhat.com>
12332
b3bf8855
JJ
12333 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12334 following vector keyword has expansion starting with pixel or bool
12335 keyword, expand vector to __vector and pixel or bool to __pixel or
12336 __bool.
12337
574872ff
JJ
12338 PR c++/39554
12339 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12340 warn_if_disallowed_function_p): Removed.
12341 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12342 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12343 warning_if_disallowed_function_p.
12344 * flags.h (warn_if_disallowed_function_p,
12345 warn_disallowed_functions): Removed.
12346 * common.opt (Wdisallowed-function-list=): Removed.
12347 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12348
b005da11
RG
123492009-03-28 Richard Guenther <rguenther@suse.de>
12350
12351 PR tree-optimization/38723
12352 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12353 the entry block.
12354
1de812a6
JH
123552009-03-28 Jan Hubicka <jh@suse.cz>
12356
12357 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12358 test introduced by my previous patch.
12359
fbb789d4
RG
123602009-03-28 Richard Guenther <rguenther@suse.de>
12361
12362 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12363 the PHIs value undefined.
12364
6f1873a1
JH
123652009-03-28 Jan Hubicka <jh@suse.cz>
12366
12367 * tree-pass.h (pass_fixup_cfg): New pass.
12368 * ipa-inline.c (inline_transform): Set
12369 always_inline_functions_inlined/after_inlining.
12370 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12371 (pass_fixup_cfg): New pass.
12372 * passes.c (init_optimization_passes): Add fixup_cfg.
12373
17021bc8
RG
123742009-03-28 Richard Guenther <rguenther@suse.de>
12375
12376 PR tree-optimization/38458
12377 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12378 argument use the arguments copy-of value.
12379
e8114fba
RG
123802009-03-28 Richard Guenther <rguenther@suse.de>
12381
12382 PR tree-optimization/38180
12383 * tree-ssa-ccp.c (get_default_value): Simplify.
12384 (likely_value): Likewise.
12385 (surely_varying_stmt_p): Properly handle VOP case.
12386 (ccp_initialize): Likewise.
12387 (ccp_fold): Handle propagating through *&.
12388 (fold_const_aggregate_ref): Also handle decls.
12389
257eb6e3
JH
123902009-03-28 Jan Hubicka <jh@suse.cz>
12391
12392 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12393 * cgraph.h (cgraph_node): Likewise.
12394 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12395 (cgraph_reset_node): Use process flag.
12396 (cgraph_mark_functions_to_output): Likewise.
12397 (cgraph_expand_function): Likewise.
12398 (cgraph_expand_all_functions): Likewise.
12399 (cgraph_output_in_order): Likewise.
12400 * dwarf2out.c (reference_to_unused): Likewise.
12401 * passes.c do_per_function_toporder): Likewise.
12402
61a05df1
JH
124032009-03-28 Jan Hubicka <jh@suse.cz>
12404
12405 Bring from lto-branch:
ba20e309 12406
61a05df1
JH
12407 2008-09-03 Doug Kwan <dougkwan@google.com>
12408
12409 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12410 enums instead of reason strings.
12411 * cgraph.c (cgraph_create_edge): Same.
12412 (cgraph_inline_failed_string): New function.
12413 * cgraph.h (cgraph_inline_failed_t): New enum type.
12414 (cgraph_inline_failed_string): New prototype.
12415 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12416 char pointer to cgraph_inline_failed_t.
12417 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12418 (cgraph_default_inline_p): Ditto.
60839f5d 12419 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12420 to cgraph_inline_failed_t pointer.
12421 * cif-code.def: New file.
12422 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12423 reason string.
12424 (cgraph_check_inline_limits): Change type of REASON to pointer to
12425 cgraph_inline_failed_t. Replace reason strings with enums.
12426 (cgraph_default_inline_p): Ditto.
12427 (cgraph_recursive_inlining_p): Ditto.
12428 (update_caller_keys): Change type of FAILED_REASON to
12429 cgraph_inline_failed_t.
12430 (cgraph_set_inline_failed): Change type of REASON to pointer to
12431 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12432 convert enums to strings for text output.
12433 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12434 to be of type cgraph_inline_failed_t. Replace reason strings with
12435 enums. Call cgraph_inline_failed_string to covert enums
12436 to strings for text output.
12437 (cgraph_decide_inlining): Replace reason strings with enums.
12438 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12439 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12440 for text output.
12441 * tree-inline.c (expand_call_inline): Change type of REASON
12442 to cgraph_inline_failed_t. Replace reason strings with enums.
12443 Call cgraph_inline_failed_string for text output.
12444 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12445 (cgraph.o): Ditto.
12446
144e8aac
JH
124472009-03-28 Jan Hubicka <jh@suse.cz>
12448
12449 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12450 cgraph_clone_node): Remove master clone handling.
12451 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12452 * cgraph.h (master_clone): Remove.
12453 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12454 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12455 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12456
4a371c8d
JH
124572009-03-28 Jan Hubicka <jh@suse.cz>
12458
12459 * cgraph.c (cgraph_function_body_availability): Functions declared
12460 inline are always safe to assume that it is not going to be replaced.
12461
6cdb0ee3
RG
124622009-03-28 Richard Guenther <rguenther@suse.de>
12463
12464 PR tree-optimization/38513
12465 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12466 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12467 EXC_PTR_EXPR and FILTER_EXPR.
12468 (get_ref_from_reference_ops): Likewise.
12469
8ca1fd76
RG
124702009-03-28 Richard Guenther <rguenther@suse.de>
12471
12472 PR tree-optimization/38968
12473 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12474 Use FLOOR_MOD_EXPR to compute misalignment.
12475
a254e44d
RG
124762009-03-28 Richard Guenther <rguenther@suse.de>
12477
12478 PR tree-optimization/37795
12479 * tree.h (combine_comparisons): Declare.
12480 * fold-const.c (combine_comparisons): Export.
12481 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12482 comparisons.
12483 (ifcombine_iforif): Use combine_comparisons.
12484
a8ee227c
JH
124852009-03-28 Jan Hubicka <jh@suse.cz>
12486
12487 * tree-eh.c (inlinable_call_p): New function.
12488 (make_eh_edges): Use it.
12489 (verify_eh_edges): Use it.
12490 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12491 * except.c (reachable_next_level): Add inlinable_function argument
12492 (sjlj_find_directly_reachable_regions): Update.
12493 (add_reachable_handler): Do not set saw_any_handlers.
12494 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12495 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12496 Add new inlinable call parameter.
12497 (can_throw_internal, can_throw_external): Update.
12498 * except.h (can_throw_internal_1, can_throw_external_1,
12499 foreach_reachable_handler): Update declaration.
12500
52c0e446
JM
125012009-03-28 Joseph Myers <joseph@codesourcery.com>
12502
12503 * config/arm/t-arm-coff, config/h8300/coff.h,
12504 config/i386/i386-aout.h, config/i386/i386-coff.h,
12505 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12506 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12507 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12508 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12509 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12510 sys-types.h: Remove.
12511 * Makefile.in: Remove protoize and fixproto support and references
12512 in comments.
12513 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12514 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12515 Remove.
12516 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12517 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12518 unprotoize$(exeext).
12519 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12520 (.PHONY): Don't depend on proto.
12521 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12522 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12523 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12524 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12525 build/gen-protos.o, build/scan.o, xsys-protos.h,
12526 build/fix-header$(build_exeext), build/fix-header.o,
12527 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12528 stmp-install-fixproto): Remove.
12529 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12530 SYSCALLS.c or fixproto files.
12531 (install-common): Don't install protoize.
12532 (install-headers-tar, install-headers-cpio, install-headers-cp):
12533 Don't depend on $(STMP_FIXPROTO).
12534 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12535 install fixproto files or write out fixproto settings.
12536 (uninstall): Don't uninstall protoize.
12537 * config.gcc (use_fixproto): Remove.
12538 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12539 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12540 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12541 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12542 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12543 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12544 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12545 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12546 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12547 * config/t-vxworks (STMP_FIXPROTO): Remove.
12548 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12549 STMP_FIXPROTO): Remove.
12550 * config.in, configure: Regenerate.
12551 * crtstuff.c (gid_t, uid_t): Don't undefine.
12552 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12553 (arm-*-coff, arm-*-aout: Remove target entries.
12554 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12555 Remove mention of AIX 4.1.
12556 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12557 * doc/invoke.texi (Running Protoize): Remove.
12558 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12559 (Protoize Caveats): Remove.
12560 * tsystem.h: Update comments on headers assumed to exist.
12561
20a07f44
VM
125622009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12563
12564 * genautomata.c: Add a new year to the copyright. Add a new
12565 reference.
12566 (struct insn_reserv_decl): Add comments for member bypass_list.
12567 (find_bypass): Remove.
12568 (insert_bypass): New.
12569 (process_decls): Use insert_bypass.
12570 (output_internal_insn_latency_func): Output all bypasses with the
12571 same input insn in one switch case.
12572
12573 * rtl.def (define_bypass): Describe bypass choice.
12574 * doc/md.texi (define_bypass): Ditto.
12575
3a0d06c1
RB
125762009-03-27 Richard Guenther <rguenther@suse.de>
12577
12578 * gimplify.c (mark_addressable): Export.
12579 * tree-flow.h (mark_addressable): Declare.
12580 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12581 * tree-ssa.c (verify_phi_args): Verify that address taken
12582 variables have TREE_ADDRESSABLE set.
12583
125842009-03-27 Richard Guenther <rguenther@suse.de>
12585
12586 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12587 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12588 Do not mark decls TREE_ADDRESSABLE.
12589 (build_fold_addr_expr): Adjust.
12590 (fold_addr_expr): Remove.
12591 (fold_unary): Use build_fold_addr_expr.
12592 (fold_comparison): Likewise.
12593 (split_address_to_core_and_offset): Likewise.
12594 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12595 TREE_ADDRESSABLE.
12596 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12597 (gimplify_modify_expr_to_memcpy): Mark source and destination
12598 addressable.
12599 * omp-low.c (create_omp_child_function): Mark the object decl
12600 TREE_ADDRESSABLE.
12601 (lower_rec_input_clauses): Mark the var we take the address of
12602 TREE_ADDRESSABLE.
12603 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12604
2ac26e15
L
126052009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12606
12607 PR middle-end/39315
12608 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12609 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12610
472c7fbd
RG
126112009-03-27 Richard Guenther <rguenther@suse.de>
12612
12613 PR tree-optimization/39120
12614 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12615 constraints.
12616 (handle_lhs_call): Process return constraints. Add escape
12617 constraints if necessary.
12618 (handle_const_call): Fill out return constraints. Make nested
12619 case more precise. Avoid consttmp if possible.
12620 (handle_pure_call): Fill out return constraints. Avoid
12621 callused if possible.
12622 (find_func_aliases): Simplify call handling.
12623
126242009-03-27 Richard Guenther <rguenther@suse.de>
12625
12626 PR tree-optimization/39120
12627 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12628 as a representative.
12629 (solve_graph): Do propagate CALLUSED.
12630 (handle_pure_call): Use a scalar constraint from CALLUSED for
12631 the return value.
12632 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12633 solutions.
12634
d9223014
L
126352009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12636
12637 PR c/39323
12638 * c-common.c (handle_aligned_attribute): Properly check alignment
12639 overflow. Use (1U << i) instead of (1 << i).
12640
ba20e309 12641 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12642
12643 * expr.h (get_mem_align_offset): Updated.
12644
12645 * tree.h (tree_decl_common): Change align to "unsigned int" and
12646 move it before pointer_alias_set.
12647
689b689c
L
126482009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12649 Jakub Jelinek <jakub@redhat.com>
12650
12651 PR target/38034
12652 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12653 gr_register_operand with gr_reg_or_0_operand.
12654 (cmpxchg_rel_di): Likewise.
12655 (sync_lock_test_and_set<mode>): Likewise.
12656
c619e982
L
126572009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12658
12659 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12660 (true_regnum): Likewise.
12661
12662 * rtlanal.c (subreg_info): Moved to ...
12663 * rtl.h (subreg_info): Here. New.
12664 (subreg_get_info): New.
12665
12666 * rtlanal.c (subreg_get_info): Make it extern.
12667
51212b32
L
126682009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12669
12670 PR target/39472
12671 * config/i386/i386.c (ix86_abi): New.
12672 (override_options): Handle -mabi=.
ba20e309 12673 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12674 (ix86_call_abi_override): Likewise.
12675 (init_cumulative_args): Likewise.
12676 (function_arg_advance): Likewise.
12677 (function_arg_64): Likewise.
12678 (function_arg): Likewise.
12679 (ix86_pass_by_reference): Likewise.
12680 (ix86_function_value_regno_p): Likewise.
12681 (ix86_build_builtin_va_list_abi): Likewise.
12682 (setup_incoming_varargs_64): Likewise.
12683 (is_va_list_char_pointer): Likewise.
12684 (ix86_init_machine_status): Likewise.
ba20e309 12685 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12686 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12687 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12688 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12689 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12690 with ix86_abi.
12691 (ix86_fn_abi_va_list): Updated.
12692
12693 * config/i386/i386.h (ix86_abi): New.
12694 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12695 (CONDITIONAL_REGISTER_USAGE): Likewise.
12696 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12697 (machine_function): Likewise.
12698
12699 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12700 with ix86_abi.
12701 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12702 (STACK_BOUNDARY): Likewise.
12703 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12704
12705 * config/i386/i386.opt (mabi=): New.
12706
12707 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12708 return enum calling_abi.
12709 (ix86_function_type_abi): Likewise.
12710 (ix86_function_abi): Removed.
12711
12712 * doc/invoke.texi: Document -mabi= option for x86.
12713
7338ea63
KG
127142009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12715
12716 * builtins.c (real_dconstp): Delete.
12717 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12718
68599f33
DS
127192009-03-27 Dodji Seketeli <dodji@redhat.com>
12720 Jakub Jelinek <jakub@redhat.com>
12721
12722 PR debug/37959
12723 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12724 (gen_subprogram_die): When a function is explicit, generate the
12725 DW_AT_explicit attribute.
12726 * langhooks.h (struct lang_hooks_for_decls): Add
12727 function_decl_explicit_p langhook.
12728 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12729 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12730
9f5e9983
JJ
127312009-03-27 Jakub Jelinek <jakub@redhat.com>
12732
64d7685c
JJ
12733 * builtins.c (fold_builtin_memory_op): Optimize memmove
12734 into memcpy if we can prove source and destination don't overlap.
12735
9f5e9983
JJ
12736 * tree-inline.c: Include gt-tree-inline.h.
12737 (clone_fn_id_num): New variable.
12738 (clone_function_name): New function.
12739 (tree_function_versioning): Use it.
12740 * Makefile.in (GTFILES): Add tree-inline.c.
12741
e54d52a8
MM
127422009-03-27 Mark Mitchell <mark@codesourcery.com>
12743
12744 * BASE-VER: Change to 4.5.0.
12745
e9d51dc6
XDL
127462009-03-27 Xinliang David Li <davidxl@google.com>
12747
12748 PR tree-optimization/39557
12749 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12750
4577cea1
XDL
127512009-03-27 Xinliang David Li <davidxl@google.com>
12752
12753 PR tree-optimization/39548
2ba9daa7 12754 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12755 candidate check.
12756
0f7464f4
L
127572009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12758
12759 * c-common.c (pointer_int_sum): Use %wd on return from
12760 tree_low_cst.
12761
a8847a7f
L
127622009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12763
12764 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12765 on return from tree_low_cst.
12766
b0957daf
AP
127672009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12768
12769 PR c++/36799
ba20e309
UB
12770 * ginclude/stdarg.h (va_copy): Define also for
12771 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12772
a5f805df
MLI
127732009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12774
12775 PR c++/35652
12776 * builtins.h (c_strlen): Do not warn here.
12777 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12778 * c-common.c (pointer_int_sum): Take an explicit location.
12779 Warn about offsets out of bounds.
12780 * c-common.h (pointer_int_sum): Adjust declaration.
12781
6f401211
RW
127822009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12783
a5f805df
MLI
12784 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12785 markup glitch.
6f401211 12786
5a59b39e
JJ
127872009-03-26 Jakub Jelinek <jakub@redhat.com>
12788
12789 PR c++/39554
12790 * opts.c (warn_if_disallowed_function_p): Don't assume
12791 get_callee_fndecl must return non-NULL.
12792
d5f89b53
VM
127932009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12794
12795 PR rtl-optimization/39522
12796 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12797 when reg_reloaded_valid is set.
12798
61238a79
UW
127992009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12800
12801 * config/spu/divv2df3.c: New file.
12802 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12803 (DPBIT_FUNCS): Filter out _div_df.
12804
03f8829b
BS
128052009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12806
12807 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12808 a jump insn, count that jump in the distance to the loop start.
12809
9fdcdc74
KK
128102009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12811
12812 PR target/39523
12813 * config/sh/sh.c (calc_live_regs): Fix condition for global
12814 registers except PIC_OFFSET_TABLE_REGNUM.
12815
46994828
KT
128162009-03-25 Kai Tietz <kai.tietz@onevision.com>
12817
12818 PR/39518
12819 * doc/invoke.texi (-mconsole): New.
12820 (-mcygwin): New.
12821 (-mno-cygwin): New.
12822 (-mdll): New.
12823 (-mnop-fun-dllimport): New.
12824 (-mthread): New.
12825 (-mwin32): New.
12826 (-mwindows): New.
12827 (sub section "i386 and x86-64 Windows Options"): New.
12828
60839f5d 128292009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12830
12831 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12832 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12833
ae560440
RG
128342009-03-25 Richard Guenther <rguenther@suse.de>
12835
12836 PR middle-end/39497
12837 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12838 of -Wno-error.
12839
cd510f15
AM
128402009-03-25 Andrey Belevantsev <abel@ispras.ru>
12841
12842 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12843 neither of haifa/selective schedulers are working.
12844
44ab0f0e
RW
128452009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12846
12847 * doc/invoke.texi (Debugging Options): Fix description of
12848 -fno-merge-debug-strings.
12849
ad9646c7
HPN
128502009-03-24 Hans-Peter Nilsson <hp@axis.com>
12851
e6142656
HPN
12852 * config/cris/libgcc.ver: New version-script.
12853 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12854
ad9646c7
HPN
12855 * configure.ac <GAS features, nop mnemonic>: Add pattern
12856 crisv32-*-* for "nop".
ba20e309 12857 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12858 * configure: Regenerate.
12859
09ac4473
IR
128602009-03-24 Ira Rosen <irar@il.ibm.com>
12861
12862 PR tree-optimization/39529
12863 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12864 mark_sym_for_renaming for the tag copied to the new vector
12865 pointer.
12866
d94a427e
AL
128672009-03-24 Arthur Loiret <aloiret@debian.org>
12868
ba20e309 12869 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12870 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12871 EXTRA_SPEC_FUNCTIONS.
12872 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12873 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12874 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12875 -march and -mtune options.
12876
60839f5d 128772009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12878
12879 * config/m68k/t-rtems: Add m5329 multilib.
12880
603f5959
DS
128812009-03-24 Dodji Seketeli <dodji@redhat.com>
12882 Jakub Jelinek <jakub@redhat.com>
12883
12884 PR debug/39524
12885 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12886 nodes.
12887
c5cdb03f
JJ
128882009-03-23 Jakub Jelinek <jakub@redhat.com>
12889
12890 PR c/39495
12891 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12892 instead of c_parser_expression_conv, if original_code isn't one of the
12893 4 allowed comparison codes, fail.
12894
3691626c
RG
128952009-03-23 Richard Guenther <rguenther@suse.de>
12896
12897 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12898 * tree.h (struct tree_type): Likewise.
12899 * reload.h (struct insn_chain): Likewise.
12900 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12901 * function.h (struct function): Likewise.
12902 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12903
88ccb72a
JJ
129042009-03-23 Jakub Jelinek <jakub@redhat.com>
12905
12906 PR tree-optimization/39516
12907 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12908
60839f5d 129092009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12910
2ba9daa7 12911 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12912 should be set true if BITS_PER_WORD of target is bigger than 32
12913
f82162f8
HPN
129142009-03-22 Hans-Peter Nilsson <hp@axis.com>
12915
12916 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12917 Translate -B-options to -rpath-link. Correct existing
12918 rpath-link and conditionalize on !nostdlib.
12919
048fd785
RW
129202009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12921
12922 * doc/extend.texi (Function Attributes, Variable Attributes):
12923 Fix typos.
12924 * doc/invoke.texi (Debugging Options, Optimize Options)
12925 (i386 and x86-64 Options, MCore Options): Likewise.
12926
6e75c1a9
JJ
129272009-03-20 Jakub Jelinek <jakub@redhat.com>
12928
12929 PR debug/37890
12930 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12931 it for block local namespace aliases.
12932 (gen_decl_die): Pass context_die to gen_namespace_die.
12933
ea1199ee
JJ
129342009-03-19 Jakub Jelinek <jakub@redhat.com>
12935
12936 PR c/39495
12937 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12938 minimum or maximum value.
12939
58929c10
AO
129402009-03-19 Alexandre Oliva <aoliva@redhat.com>
12941
12942 * reginfo.c (globalize_reg): Recompute derived reg sets.
12943
60839f5d 129442009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12945
12946 PR target/39063
12947 * libgcc2.c (mprotect): Do not use signed arguments for
12948 VirtualProtect, use DWORD arguments. Also fix the 'may
12949 be used uninitialized' warning for the np variable.
12950
f57c2f04
JJ
129512009-03-19 Jakub Jelinek <jakub@redhat.com>
12952
12953 PR target/39496
12954 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12955 functions using regparm calling conventions when not optimizing.
12956 (ix86_function_sseregparm): Similarly for sseregparm calling
12957 conventions.
12958
9e517d61
LF
129592009-03-19 Li Feng <nemokingdom@gmail.com>
12960
12961 PR middle-end/39500
12962 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12963 dependence if the first conflict is after niter iterations.
12964
8ef20026
HPN
129652009-03-19 Hans-Peter Nilsson <hp@axis.com>
12966
12967 PR middle-end/38609
12968 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12969 functions with dynamic stack-pointer adjustments.
12970
64e4a1a6
BE
129712009-03-19 Ben Elliston <bje@au.ibm.com>
12972
12973 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12974 option; change to -msdata=data.
12975
9a0f3e86
RW
129762009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12977
12978 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12979 and -fopenmp.
12980
09bc5979
EB
129812009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12982
12983 PR target/35180
12984 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12985
332459cd
SL
129862009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12987
12988 * doc/invoke.texi (Code Gen Options): Expand discussion of
12989 -fno-common.
12990
8f5929e1
JJ
129912009-03-18 Jakub Jelinek <jakub@redhat.com>
12992
12993 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12994 * matrix-reorg.c (struct matrix_info): Likewise.
12995 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12996 * rtl.h (struct mem_attrs): Likewise.
12997 * df.h (struct df): Likewise.
12998 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12999 * ira-int.h (struct ira_allocno): Likewise.
13000 * df-scan.c (struct df_collection_rec): Likewise.
13001 * ira.c (struct equivalence): Likewise.
13002 * function.c (struct temp_slot): Likewise.
13003 * cfgloop.h (struct loop): Likewise.
13004
d130d647
JJ
13005 PR debug/39485
13006 * function.c (use_register_for_decl): When not optimizing, disregard
13007 register keyword for variables with types containing methods.
13008
9968d233
SP
130092009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13010
13011 PR middle-end/39447
13012 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13013 (is_simple_operand): Call contains_component_ref_p before calling data
13014 reference analysis that would fail on COMPONENT_REFs.
13015
13016 * tree-vrp.c (search_for_addr_array): Fix formatting.
13017
69484bfd
RG
130182009-03-18 Richard Guenther <rguenther@suse.de>
13019
13020 * tree-vect-transform.c (vect_loop_versioning): Fold the
13021 generated comparisons.
13022 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13023 (slpeel_tree_peel_loop_to_edge): Likewise.
13024
66811228
RW
130252009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13026
0631b69f
RW
13027 PR middle-end/37805
13028 * opts.c (print_specific_help): In addition to `undocumented',
13029 accept `separate' and `joined' flags if passed alone. Describe
13030 output by the first matched one of those.
13031 (common_handle_option): Skip over empty strings.
13032 * gcc.c (display_help): Fix help string for `--help='.
13033 * doc/invoke.texi (Option Summary, Overall Options): With
13034 `--help=', classes and qualifiers can both be repeated, but
13035 only the latter can be negated. One should not pass only
13036 negated qualifiers. Fix markup and examples.
13037
66811228
RW
13038 Revert
13039 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13040 PR middle-end/37805
13041 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13042 and -fhelp=separate.
13043
3c072c6b
JY
130442009-03-17 Jing Yu <jingyu@google.com>
13045
13046 PR middle-end/39378
80c65208
JY
13047 * function.h (struct rtl_data): Move is_thunk from here...
13048 (struct function): ...to here.
13049 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13050 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13051 cfun.
80c65208
JY
13052 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13053 cfun.
13054 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13055 (alpha_output_function_end_prologue): Likewise.
13056 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13057 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13058 (rs6000_output_function_epilogue): Likewise.
13059 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13060
9ade279b
UB
130612009-03-17 Uros Bizjak <ubizjak@gmail.com>
13062
13063 PR target/39482
13064 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13065 from different units in a single alternative.
13066 (*truncdfsf_i387): Ditto.
13067 (*truncxfsf2_mixed): Ditto.
13068 (*truncxfdf2_mixed): Ditto.
13069
16e60c17
JJ
130702009-03-17 Jakub Jelinek <jakub@redhat.com>
13071
98381eb4
JJ
13072 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13073 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13074
df5deb18
JJ
13075 PR debug/39474
13076 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13077 unused non-artificial variables when not optimizing.
13078
a3f596ba
JJ
13079 PR debug/39471
13080 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13081 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13082 NAMESPACE_DECL in its DECL_INITIAL.
13083
6b2b8871
JJ
13084 PR middle-end/39443
13085 * optabs.c (set_user_assembler_libfunc): New function.
13086 * expr.h (set_user_assembler_libfunc): New prototype.
13087 * c-common.c: Include libfuncs.h.
13088 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13089 for memcmp, memset, memcpy, memmove and abort.
13090 * Makefile.in (c-common.o): Depend on libfuncs.h.
13091
16e60c17
JJ
13092 PR debug/39412
13093 * dwarf2out.c (gen_inlined_enumeration_type_die,
13094 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13095 gen_tagged_type_instantiation_die): Removed.
13096 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13097 do nothing.
13098
4d936aca
JJ
130992009-03-17 Janis Johnson <janis187@us.ibm.com>
13100
13101 PR testsuite/38526
13102 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13103 its use.
13104 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13105 (check-parallel-%): Ditto.
13106 (check-consistency): Ditto.
13107
4e9b2e50
KT
131082009-03-17 Kai Tietz <kai.tietz@onevision.com>
13109
13110 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13111 local variable rhs by NULL_TREE.
13112
21440b2d
L
131132009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13114
13115 PR target/39477
9ade279b 13116 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13117
d8905c6a
L
131182009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13119
13120 PR target/39476
9ade279b 13121 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13122
131232009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13124
13125 PR target/39473
13126 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13127 for ms->sysv ABI calls only in 64bit mode.
13128
13129 * config/i386/i386.md (untyped_call): Support 32bit.
13130
cdcabece
L
131312009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13132
13133 * doc/extend.texi: Replace x86_65 with x86_64.
13134
97b4ba9f
JJ
131352009-03-16 Jakub Jelinek <jakub@redhat.com>
13136
13137 PR tree-optimization/39455
13138 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13139 mismatches for POINTER_TYPE_P (type).
13140 (number_of_iterations_le): Likewise.
13141
60839f5d 131422009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13143
13144 * config/picochip/picochip.c: Removed profiling support.
13145 * config/picochip/picochip.md: Removed profiling instruction.
13146 * config/picochip/picochip.h: Removed profiling builtin.
13147
f38095f3
JM
131482009-03-16 Joseph Myers <joseph@codesourcery.com>
13149
13150 * doc/install.texi (--with-host-libstdcxx): Document.
13151
2cb4817b
AS
131522009-03-14 Anatoly Sokolov <aesok@post.ru>
13153
13154 PR target/34299
13155 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13156 generate a warning if the function name does not begin with
13157 "__vector" and the function has either the 'signal' or 'interrupt'
13158 attribute, from here to ...
13159 (avr_declare_function_name): ...here. New function.
13160 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13161 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13162
39b2ac74
JJ
131632009-03-14 Jakub Jelinek <jakub@redhat.com>
13164
13165 PR bootstrap/39454
13166 * cse.c (fold_rtx): Don't modify original const_arg1 when
13167 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13168 separate variable instead.
13169 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13170 from out of range shift counts.
13171 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13172
ad41bd84 131732009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13174
60839f5d 13175 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13176 diagnostic.h with $(DIAGNOSTIC_H).
13177
ad41bd84 131782009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13179
13180 PR target/39431
13181 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13182 predicate.
13183 * config/i386/sync.md (sync_compare_and_swap<mode>,
13184 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13185 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13186 into a register.
13187 (sync_double_compare_and_swapdi_pic,
13188 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13189 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13190
122c59c7
L
131912009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13192
13193 PR target/39445
9ade279b 13194 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13195
cec8874f
L
131962009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13197
13198 PR target/39327
13199 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13200 (avx_addsubv4df3): Likewise.
13201 (*avx_addsubv4sf3): Likewise.
13202 (sse3_addsubv4sf3): Likewise.
13203
bbb52802
L
132042009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13205
13206 PR target/38824
9ade279b 13207 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13208
a812fb07
VM
132092009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13210
13211 PR debug/39432
13212 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13213 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13214 registers for allocnos created from user-defined variables.
13215
4caab5ba
UW
132162009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13217
13218 PR target/39181
13219 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13220 of non-integer mode as well.
13221
498e51ca
AN
132222009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13223
13224 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13225 for functions for which the parameter types are unknown.
13226
9bfaf89d
JJ
132272009-03-11 Jakub Jelinek <jakub@redhat.com>
13228
13229 PR target/39137
9ade279b 13230 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13231 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13232 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13233 * config/i386/i386.c (ix86_local_alignment): For
13234 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13235 long long variables on the stack to avoid dynamic realignment.
13236 Allow the first argument to be a decl rather than type.
13237 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13238
18a3bdcb
NC
132392009-03-11 Nick Clifton <nickc@redhat.com>
13240
13241 PR target/5362
40190a76
NC
13242 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13243 options.
13244 Add description to mno-lsim option.
13245 * config/mcore/mcore.h: Remove comment about deprecated m4align
13246 option.
13247 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13248 * doc/invoke.texi: Add description of mno-lsim and
13249 mstack-increment options.
13250
18a3bdcb
NC
13251 * config/fr30/fr30.opt: Document the -mno-lsim option.
13252 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13253 and -mno-lsim options.
13254
dc215785
UW
132552009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13256
13257 * fold-const.c (fold_comparison): Only call fold_inf_compare
13258 if the mode supports infinities.
13259
7716876b
JM
132602009-03-11 Jason Merrill <jason@redhat.com>
13261
13262 PR debug/39086
13263 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13264 end already did. Notice GIMPLE_CALL modifications of the result.
13265 Don't copy debug information from an ignored decl or a decl from
13266 another function.
13267
ddef83d2
RG
132682009-03-10 Richard Guenther <rguenther@suse.de>
13269 Nathan Froyd <froydnj@codesourcery.com>
13270
13271 PR middle-end/37850
9ade279b 13272 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13273 (__divMODE3): Likewise.
13274
9a9ba8d9
JJ
132752009-03-09 Jakub Jelinek <jakub@redhat.com>
13276
13277 PR tree-optimization/39394
13278 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13279 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13280
929b7fc3
AK
132812009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13282
13283 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13284 inline asms for register asm ("") declarations.
13285
1803581d
EB
132862009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13287
13288 * fold-const.c (fold_unary): Fix comment.
13289
8454d27e
JH
132902009-03-07 Jan Hubicka <jh@suse.cz>
13291
13292 PR target/39361
969a5433
JJ
13293 * tree-inline.c (setup_one_parameter): Do replacement of const
13294 argument by constant in SSA form.
8454d27e 13295
3a695389
UW
132962009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13297
13298 PR middle-end/38028
13299 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13300 determine alignment passed to assign_stack_local.
13301 (assign_parms_unsplit_complex): Likewise.
13302 * except.c (sjlj_build_landing_pads): Likewise.
13303
9f0e7885
JJ
133042009-03-06 Jakub Jelinek <jakub@redhat.com>
13305
65401a0b
JJ
13306 PR middle-end/39360
13307 * tree-flow.h (add_referenced_var): Return bool instead of void.
13308 * tree-dfa.c (add_referenced_var): Return result of
13309 referenced_var_check_and_insert call.
13310 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13311 of referenced_var_check_and_insert.
13312
9f0e7885 13313 PR debug/39372
9ade279b 13314 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13315 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13316 DIE, don't emit it if abstract origin already has it.
13317 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13318 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13319
3b664bd1
JBG
133202009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13321
ba20e309 13322 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13323 detection.
13324 (write_tm_constrs_h): Indent generated code.
13325
d8f8ca80
RR
133262009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13327
13328 * doc/extend.texi (Function Attributes): Add documentation
13329 for isr attributes.
13330
6c3d550c
JJ
133312009-03-06 Jakub Jelinek <jakub@redhat.com>
13332
13333 PR debug/39387
13334 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13335 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13336
f9e96751
BS
133372009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13338
13339 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13340 the loop as bad.
13341
ee0ee7e2
JJ
133422009-03-05 Jakub Jelinek <jakub@redhat.com>
13343
13344 PR debug/39379
13345 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13346 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13347
6c6094f1
UB
133482009-03-05 Uros Bizjak <ubizjak@gmail.com>
13349
13350 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13351 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13352 constants instead of magic numbers.
13353 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13354 (QI_REG_P): Ditto.
13355 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13356 (x86_64_ms_abi_int_parameter_registers): Ditto.
13357 (x86_64_int_return_registers): Ditto.
09f8a8d3 13358 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13359 (ix86_expand_call): Ditto for clobbered_registers array.
13360 (ix86_hard_regno_mode_ok): Ditto.
13361 (x86_extended_QIreg_mentioned_p): Ditto.
13362
b267bd41
R
133632009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13364
6c6094f1 13365 PR tree-optimization/39349
1f3ad3f0
R
13366 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13367
b267bd41
R
13368 * combine.c (gen_lowpart_for_combine): Use omode when generating
13369 clobber.
13370
1242bc9d
R
133712009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13372
6c6094f1 13373 PR rtl-optimization/39235
1242bc9d
R
13374 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13375
48f03606
ZD
133762009-03-04 Zdenek Dvorak <ook@ucw.cz>
13377
13378 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13379
b505e785
RG
133802009-03-04 Richard Guenther <rguenther@suse.de>
13381
13382 PR tree-optimization/39362
13383 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13384 that occur in abnormal PHIs should be varying.
13385
f017bf5e
ZD
133862009-03-04 Zdenek Dvorak <ook@ucw.cz>
13387
13388 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13389 Extend comments.
13390 (simple_iv): Take loop as an argument instead of statement.
13391 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13392 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13393 to simple_iv.
13394 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13395 Ditto.
13396 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13397 * matrix-reorg.c (analyze_transpose): Ditto.
13398 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13399 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13400 * tree-predcom.c (ref_at_iteration): Ditto.
13401 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13402
6a66f28e
RG
134032009-03-04 Richard Guenther <rguenther@suse.de>
13404
13405 PR tree-optimization/39358
13406 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13407 escaped_id and callused_id.
13408 (solve_graph): Likewise.
13409
57e454ee
RG
134102009-03-04 Richard Guenther <rguenther@suse.de>
13411
13412 PR tree-optimization/39339
13413 * tree-sra.c (try_instantiate_multiple_fields): Make it
13414 no longer ICE on the above.
13415
a6fe9ed4
JM
134162009-03-03 Joseph Myers <joseph@codesourcery.com>
13417
13418 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13419 that fits within Pmode.
13420
dc672951
SE
134212009-03-03 Steve Ellcey <sje@cup.hp.com>
13422
13423 PR middle-end/10109
13424 * tm.texi (LIBCALL_VALUE): Update description.
13425
8b9d598f
SE
134262009-03-03 Steve Ellcey <sje@cup.hp.com>
13427
13428 PR middle-end/34443
13429 * doc/extend.texi (section): Update description.
13430
13e4e36e
L
134312009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13432
13433 PR middle-end/39345
13434 * tree-inline.c (remapped_type): New.
13435 (can_be_nonlocal): Call remapped_type instead of remap_type.
13436
067dd3c9
JJ
134372009-03-03 Jakub Jelinek <jakub@redhat.com>
13438
13439 PR fortran/39354
13440 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13441 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13442
9bd9f738
RG
134432009-03-03 Richard Guenther <rguenther@suse.de>
13444
13445 PR middle-end/39272
13446 * tree.c (tree_nonartificial_location): New function.
13447 * tree.h (tree_nonartificial_location): Declare.
13448 * builtins.c (expand_builtin_memory_chk): Provide location
13449 of the call location for artificial function pieces.
13450 (maybe_emit_chk_warning): Likewise.
13451 (maybe_emit_sprintf_chk_warning): Likewise.
13452 (maybe_emit_free_warning): Likewise.
13453 * expr.c (expand_expr_real_1): Likewise.
13454
f07049c8
JJ
134552009-03-03 Jakub Jelinek <jakub@redhat.com>
13456
13457 PR tree-optimization/39343
13458 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13459 COMPONENT_REF t has ARRAY_TYPE.
13460
7d4fba4a
SP
134612009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13462
13463 PR middle-end/39335
13464 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13465 when the type precision of the induction variable should be
13466 larger than the type precision of nit.
13467 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13468 * graphite.c (graphite_loop_normal_form): Same.
13469 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13470
78168632
UB
134712009-03-02 Uros Bizjak <ubizjak@gmail.com>
13472
13473 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13474 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13475 numbers to describe clobbered registers.
78168632 13476 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13477 * config/i386/mmx.md (mmx_emms): Ditto.
13478 (mmx_femms): Ditto.
78168632 13479
63553059
RS
134802009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13481
13482 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13483 of ABI_64.
13484
500a1f85
UW
134852009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13486
13487 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13488 (spu_section_type_flags): New function.
13489
962aae34
UB
134902009-03-02 Uros Bizjak <ubizjak@gmail.com>
13491
13492 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13493 reg_class_contents of FLOAT_REGS into a temporary.
13494
6dfb529c 134952009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13496 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13497
13498 PR tree-optimization/39318
13499 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13500 information to the vectorized statement.
13501
6b5629db
UB
135022009-03-01 Uros Bizjak <ubizjak@gmail.com>
13503
434426d2
UB
13504 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13505 variable. Use defined names instead of magic constants for REX SSE
13506 registers.
6b5629db 13507
14e5b285
RG
135082009-03-01 Richard Guenther <rguenther@suse.de>
13509
13510 PR tree-optimization/39331
13511 * omp-low.c (lower_send_shared_vars): Do not receive new
13512 values for the reference of DECL_BY_REFERENCE parms or results.
13513
526d73ab
JH
135142009-03-01 Jan Hubicka <jh@suse.cz>
13515
13516 PR debug/39267
13517 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13518 BLOCK_NONLOCALIZED_VAR): New macros.
13519 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13520 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13521 gen_decl_die): Add origin argument. Allow generation of die with
13522 origin at hand only.
526d73ab 13523 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13524 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13525 of gen_*.
526d73ab
JH
13526 (gen_block_die): Fix checking for unused blocks.
13527 (process_scope_var): Break out from .... ; work with origins only.
13528 (decls_for_scope) ... here; process nonlocalized list.
13529 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13530 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13531 vars.
526d73ab
JH
13532 (dump_scope_block): Dump them.
13533 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13534 (remap_block): Likewise.
13535 (can_be_nonlocal): New predicate.
13536 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13537
7a9d3fe8
RW
135382009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13539
13540 * configure: Regenerate.
13541
b3cdf3cb
RW
135422009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13543
a16d1645 13544 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13545 Reuse help texts for duplicate options which do not have any.
a16d1645 13546
1156c176
RW
13547 * gcc.c (display_help): Document --version.
13548
033505fc
RW
13549 * gcc.c (main): If print_help_list and verbose_flag, ensure
13550 driver output comes before subprocess output.
13551
4d077054
RW
13552 * optc-gen.awk: Assign all remaining fields to help string,
13553 space-separated, for multi-line help in *.opt.
13554
a072f1cf
RW
13555 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13556 -Wno-pedantic-ms-format is for MinGW targets only.
13557
b3cdf3cb
RW
13558 * doc/options.texi (Option file format): Fix bad indentation,
13559 restoring dropped sentence.
13560
a3aadcc5
JH
135612009-02-28 Jan Hubicka <jh@suse.cz>
13562
13563 * tree-inline.c (tree_function_versioning): Output debug info.
13564
1cf5abb3
JH
135652009-02-28 Jan Hubicka <jh@suse.cz>
13566
13567 PR debug/39267
13568 * tree-inline.c (setup_one_parameter): Do not copy propagate
13569 arguments when not optimizing.
13570
c4d3f42f
L
135712009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13572
13573 PR target/39327
13574 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13575 (avx_addsubv4df3): Likewise.
13576 (*avx_addsubv4sf3): Likewise.
13577 (sse3_addsubv4sf3): Likewise.
13578 (*avx_addsubv2df3): Likewise.
13579 (sse3_addsubv2df3): Likewise.
13580 (avx_unpckhps256): Correct item selectors.
13581 (avx_unpcklps256): Likewise.
13582 (avx_unpckhpd256): Likewise.
13583 (avx_unpcklpd256): Likewise.
13584
eb50f5f4
JH
135852009-02-28 Jan Hubicka <jh@suse.cz>
13586
13587 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13588 static vars.
13589 (copy_arguments_for_versioning): If var is declared don't declare it.
13590 (tree_function_versioning): First setup substitutions and then copy
13591 args.
13592
26140130
JH
135932009-02-27 Jan Hubicka <jh@suse.cz>
13594
13595 PR debug/39267
13596 * cgraph.h (varpool_output_debug_info): Remove.
13597 * cgraphunit.c (varpool_output_debug_info): Remove.
13598 * dwarf2out.c (deferred_locations_struct): New struct
13599 (deferred_locations): New type.
13600 (deferred_locations_list): New static var.
13601 (deffer_location): New function.
13602 (gen_variable_die): Use it.
13603 (decls_for_scope): Output info on local static vars.
13604 (dwarf2out_finish): Process deferred locations.
13605 * varpool.c (varpool_output_debug_info): Remove.
13606
cff7525f
JH
136072009-02-27 Jan Hubicka <jh@suse.cz>
13608
13609 PR debug/39267
13610 * tree.h (TREE_PROTECTED): Fix comment.
13611 (BLOCK_HANDLER_BLOCK): Remove.
13612 (struct tree_block): Remove handler_block add body_block.
13613 (inlined_function_outer_scope_p): New.
13614 (is_body_block): Remove.
13615 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13616 * dwarf2out.c (is_inlined_entry_point): Remove.
13617 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13618 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13619 code.
cff7525f
JH
13620 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13621 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13622 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13623 block with multiple subblocks.
cff7525f
JH
13624 (dump_scope_block): Prettier output; dump more flags and info.
13625 (dump_scope_blocks): New.
13626 (remove_unused_locals): Use dump_scope_blocks.
13627 * tree-flow.h (dump_scope_blocks): Declare.
13628 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13629 * stmt.c (is_body_block): Remove.
13630 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13631 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13632
c20993b9
SP
136332009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13634
13635 PR middle-end/39308
2ba9daa7 13636 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13637 number_of_iterations_exit from a gcc_assert.
13638
e3cba5e5
AK
136392009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13640
60839f5d 13641 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13642 jumps if COND is NULL.
13643 (find_cond_jump): New function.
13644 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13645 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13646
9dadeeb8
UB
136472009-02-26 Uros Bizjak <ubizjak@gmail.com>
13648
13649 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13650 force_const_mem returns NULL_RTX.
13651
625d3251
EB
136522009-02-26 Jan Hubicka <jh@suse.cz>
13653
13654 PR debug/39267
13655 * cgraph.h (varpool_output_debug_info): Remove.
13656 * cgraphunit.c (varpool_output_debug_info): Remove.
13657 * dwarf2out.c (deferred_locations_struct): New struct
13658 (deferred_locations): New type.
13659 (deferred_locations_list): New static var.
13660 (deffer_location): New function.
13661 (gen_variable_die): Use it.
13662 (decls_for_scope): Output info on local static vars.
13663 (dwarf2out_finish): Process deferred locations.
13664 * varpool.c (varpool_output_debug_info): Remove.
13665
38432148 136662009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13667
13668 PR rtl-optimization/39241
13669 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13670 to subreg_offset_representable_p.
13671
62d049cf
PB
136722009-02-25 Paolo Bonzini <bonzini@gnu.org>
13673
13674 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13675 execute function prototype. Get f and nregs from max_reg_num
13676 and get_insns. Remove the first backward pass as it's dead,
13677 guard the forward pass by flag_expensive_optimizations.
13678 (rest_of_handle_regmove): Delete.
13679 (pass_regmove): Replace it with regmove_optimize.
13680
f618d33e
MJ
136812009-02-25 Martin Jambor <mjambor@suse.cz>
13682
13683 PR tree-optimization/39259
13684 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13685 calls_alloca function flags.
f618d33e
MJ
13686 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13687 calls are detected.
13688
c8a05f7c
PB
136892009-02-25 Paolo Bonzini <bonzini@gnu.org>
13690
13691 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13692 flags_set_1_rtx, flags_set_1_set): Delete.
13693 (regmove_optimize): Do not call mark_flags_life_zones.
13694
6d2538f5
JB
136952009-02-24 Julian Brown <julian@codesourcery.com>
13696
13697 PR target/35965
13698 * config/arm/arm.c (require_pic_register): Only set
13699 cfun->machine->pic_reg once per function.
13700
a2fa6772
SL
137012009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13702
13703 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13704 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13705
5472de36
SE
137062009-02-24 Steve Ellcey <sje@cup.hp.com>
13707
13708 PR target/33785
13709 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13710
844216f3
RG
137112009-02-24 Richard Guenther <rguenther@suse.de>
13712
13713 PR debug/39285
13714 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13715
71adbef3 137162009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13717 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13718
13719 PR tree-optimization/39233
13720 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13721 from converting them to a generic type.
13722
f1a558e0
SP
137232009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13724
13725 PR tree-optimization/39260
13726 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13727 contains a condition with a real type.
13728 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13729
d8028f2c
JM
137302009-02-23 Jason Merrill <jason@redhat.com>
13731
13732 PR c++/38880
13733 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13734 narrowing_initializer_constant_valid_p.
2ba9daa7 13735 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13736 null_pointer_node for adding a pointer to itself.
13737
9283b513
JH
137382009-02-23 Jan Hubicka <jh@suse.cz>
13739
13740 PR c/12245
9dadeeb8
UB
13741 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13742 resizing.
9283b513 13743
61e04322
JH
137442009-02-23 Jan Hubicka <jh@suse.cz>
13745
9dadeeb8
UB
13746 PR tree-optimization/37709
13747 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13748 * tree.h (block_ultimate_origin): Declare.
13749 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13750 * tree-ssa-live.c (remove_unused_scope_block_p):
13751 Eliminate blocks containig no instructions nor live variables nor
13752 nested blocks.
13753 (dump_scope_block): New function.
13754 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13755 enable dumping at TDF_DETAILS.
61e04322 13756
38432148 137572009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13758
13759 * config/i386/i386.c (classify_argument): Don't allow COImode
13760 and OImode.
13761 (function_arg_advance_32): Don't allow OImode.
13762 (function_arg_32): Likewise.
13763 (function_value_32): Likewise.
13764 (return_in_memory_32): Likewise.
13765 (function_arg_64): Remove OImode comment.
13766
38432148 137672009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13768
13769 PR target/39261
13770 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13771 ix86_expand_vector_set for V4DImode in 64bit mode only.
13772 (ix86_expand_vector_init_one_var): Likewise.
13773
dcd739a6
SP
137742009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13775
13776 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13777
6c3b938d
RS
137782009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13779
8e361f23 13780 PR bootstrap/39257
6c3b938d
RS
13781 * loop-iv.c: Revert last change.
13782 * emit-rtl.c: Likewise.
13783
38432148 137842009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13785
13786 PR target/39256
13787 * config/i386/i386.c (type_natural_mode): Remove an extra
13788 space in the warning message.
13789 (function_value_32): Handle 32-byte vector modes.
13790 (return_in_memory_32): Likewise.
13791
2ec62529
RS
137922009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13793
13794 * loop-iv.c (truncate_value): New function.
13795 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13796 of lowpart_subreg.
13797 (lowpart_subreg): Move to...
13798 * emit-rtl.c: ...here.
13799
ecb8c3cc 138002009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13801
ecb8c3cc
DS
13802 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13803 accidental and undocumented change at revision 140860.
13804
ae46a823
JM
138052009-02-21 Joseph Myers <joseph@codesourcery.com>
13806
13807 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13808 take gimple_seq * arguments.
13809 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13810 types_compatible_p langhook.
13811
07d8efe3 138122009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13813 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13814
13815 * config/arm/arm.c (arm_builtin_va_list): New function.
13816 (arm_expand_builtin_va_start): Likewise.
13817 (arm_gimplify_va_arg_expr): Likewise.
13818 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13819 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13820 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13821 (va_list_type): New variable.
13822 (arm_mangle_type): Mangle va_list_type appropriately.
13823
b1fb9f56
JJ
138242009-02-20 Jakub Jelinek <jakub@redhat.com>
13825
13826 PR middle-end/39157
13827 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13828 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13829 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13830 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13831 parameter to 1000 for -O1 by default.
13832 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13833 parameter.
13834 * loop-invariant.c: Include params.h.
13835 (move_loop_invariants): Don't call move_single_loop_invariants on
13836 very large loops.
13837
5bc0807c
JM
138382009-02-20 Jaka Mocnik <jaka@xlab.si>
13839
13840 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13841 offset when calculating bounds for indexing stack_usage_map. Fixes
13842 a buffer overflow with certain target setups.
13843
c69cd1f5
JJ
138442009-02-20 Jakub Jelinek <jakub@redhat.com>
13845
13846 PR target/39240
13847 * calls.c (expand_call): Clear try_tail_call if caller and callee
13848 disagree in promotion of function return value.
13849
09812622
JJ
138502009-02-19 Jakub Jelinek <jakub@redhat.com>
13851
13852 PR target/39175
13853 * c-common.c (c_determine_visibility): If visibility changed and
13854 DECL_RTL has been already set, call make_decl_rtl to update symbol
13855 flags.
13856
68017cb4
L
138572009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13858
13859 PR c++/39188
13860 * varasm.c (assemble_variable): Don't check DECL_NAME when
13861 globalizing a variable.
13862
ab4194da
JM
138632009-02-19 Joseph Myers <joseph@codesourcery.com>
13864
13865 PR c/38483
13866 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13867 expression before any __builtin_trap call.
13868 * c-typeck.c (build_function_call): Convert and check function
13869 arguments before generating a call to a trap. Evaluate the
13870 function arguments before the trap.
13871
6b67572e
UB
138722009-02-19 Uros Bizjak <ubizjak@gmail.com>
13873
13874 PR target/39228
13875 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13876 (UNSPEC_FXAM_MEM): New unspec.
13877 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13878 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13879 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13880
9e39dba6
RG
138812009-02-19 Richard Guenther <rguenther@suse.de>
13882
13883 PR tree-optimization/39207
13884 PR tree-optimization/39074
13885 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13886 storedanything_tree): New.
13887 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13888 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13889 (build_succ_graph): Add edges from STOREDANYTHING to all
13890 non-direct nodes.
13891 (init_base_vars): Initialize STOREDANYTHING.
13892 (compute_points_to_sets): Free substitution info after
13893 building the succ graph.
13894 (ipa_pta_execute): Likewise.
13895
13896 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13897 field.
13898 (do_ds_constraint): Do not add to special var or non-pointer
13899 field solutions.
13900 (type_could_have_pointers): Split out from ...
13901 (could_have_pointers): ... here. For arrays use the element type.
13902 (create_variable_info_for): Initialize may_have_pointers.
13903 (new_var_info): Likewise.
13904 (handle_lhs_call): Make the HEAP variable unknown-sized.
13905 (intra_create_variable_infos): Use a type with pointers for
13906 PARM_NOALIAS, make it unknown-sized.
13907
fd7b2603
L
139082009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13909
13910 PR target/39224
6b67572e 13911 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13912
98b80692
JM
139132009-02-18 Jason Merrill <jason@redhat.com>
13914
13915 PR target/39179
13916 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13917 value if DECL_EXTERNAL.
13918 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13919 * target.h (gcc_target::binds_local_p): Clarify "module".
13920 * tree.h (TREE_PUBLIC): Clarify "module".
13921
0705d3f4
L
139222009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13923
13924 PR target/38891
13925 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13926 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13927
bce08d50
L
139282009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13929
13930 PR target/39082
13931 * c.opt (Wabi): Support C and ObjC.
13932 (Wpsabi): New.
13933
13934 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13935
13936 * config/i386/i386.c (classify_argument): Warn once about the ABI
13937 change when passing union with long double.
13938
13939 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13940
5600f233
JM
139412009-02-18 Joseph Myers <joseph@codesourcery.com>
13942
13943 PR c/35447
13944 * c-parser.c (c_parser_compound_statement): Always enter and leave
13945 a scope.
13946
8cd01fe6
JDA
139472009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13948
13949 PR target/34587
13950 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13951
418df9d7
JJ
139522009-02-18 Jakub Jelinek <jakub@redhat.com>
13953
13954 PR tree-optimization/36922
13955 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13956 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13957 Likewise.
13958
082d2ebb
RS
139592009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13960
13961 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13962 to 0 for EABI64.
13963
17de576c
RS
139642009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13965
13966 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13967
6d8d5435
RS
139682009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13969
13970 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13971 tree sharing.
13972
e69ff910
RB
139732009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13974 Richard Sandiford <rdsandiford@googlemail.com>
13975
13976 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13977 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13978 (loongson_biadd): ...this.
13979
6b24ee26
RG
139802009-02-17 Richard Guenther <rguenther@suse.de>
13981
13982 PR tree-optimization/39202
13983 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13984 a var make sure to follow existing collapses.
13985
91ab2c86
RG
139862009-02-17 Richard Guenther <rguenther@suse.de>
13987
13988 PR middle-end/39214
13989 * langhooks.c (lhd_print_error_function): Check for NULL block.
13990
73a63870
RG
139912009-02-17 Richard Guenther <rguenther@suse.de>
13992
13993 PR tree-optimization/39204
13994 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13995 of the PHI arg.
13996
0e08f686
UB
139972009-02-17 Uros Bizjak <ubizjak@gmail.com>
13998
13999 * config/soft-fp/double.h: Update from glibc CVS.
14000
a60b7ddb
RG
140012009-02-17 Richard Guenther <rguenther@suse.de>
14002
14003 PR tree-optimization/39207
14004 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14005 strict-aliasing warnings for pointers pointing to NULL.
14006
a47e20fd
JM
140072009-02-16 Joseph Myers <joseph@codesourcery.com>
14008
14009 PR c/35446
14010 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14011 skipping until next close brace.
14012
50aab7dc
L
140132009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14014
14015 PR target/37049
14016 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14017 to function argument boundary.
14018
68e53db0
HS
140192009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14020
14021 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14022 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14023 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14024 "b", since it is not needed anymore.
14025
09e361bb
JJ
140262009-02-16 Jakub Jelinek <jakub@redhat.com>
14027
14028 * gthr-dce.h: Uglify function parameter and local variable names.
14029 * gthr-gnat.h: Likewise.
14030 * gthr-mipssde.h: Likewise.
14031 * gthr-nks.h: Likewise.
14032 * gthr-posix95.h: Likewise.
14033 * gthr-posix.h: Likewise.
14034 * gthr-rtems.h: Likewise.
14035 * gthr-single.h: Likewise.
14036 * gthr-solaris.h: Likewise.
14037 * gthr-tpf.h: Likewise.
14038 * gthr-vxworks.h: Likewise.
14039 * gthr-win32.h: Likewise.
14040
47f5a48f
L
140412009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14042
14043 PR target/39196
14044 * config/i386/i386.md: Restrict the new peephole2 to move
14045 between MMX/SSE registers.
14046
68c9ab45
RG
140472009-02-15 Richard Guenther <rguenther@suse.de>
14048
14049 Revert
14050 2009-02-13 Richard Guenther <rguenther@suse.de>
14051
14052 * configure.ac: Enable LFS.
14053 * configure: Re-generate.
14054 * config.in: Likewise.
14055
d7815554
UW
140562009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14057
14058 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14059 spu_srqwbyte, spu_srqwbytebc): Define.
14060 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14061 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14062 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14063 "shrqby_<mode>"): New insn-and-split patterns.
14064 * config/spu/spu.c (expand_builtin_args): Determine and return
14065 number of operands using spu_builtin_description data.
14066 (spu_expand_builtin_1): Use it.
14067
c208436c
SE
140682009-02-13 Steve Ellcey <sje@cup.hp.com>
14069
14070 PR target/38056
14071 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14072 TARGET_CONST_GP.
14073
c2e7ba7e
L
140742009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14075
14076 PR target/39149
14077 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14078 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14079
72f4e3a7
L
140802009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14081
14082 PR target/39152
14083 * config/i386/i386.md: Restrict the new peephole2 to move
14084 between the general purpose registers.
14085
53f648e2
L
140862009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14087
14088 PR target/39162
14089 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14090 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14091 (function_arg_advance): Updated.
14092 (function_arg): Likewise.
14093 (ix86_function_value): Likewise.
14094 (ix86_return_in_memory): Likewise.
14095 (ix86_sol10_return_in_memory): Likewise.
14096 (ix86_gimplify_va_arg): Likewise.
14097 (function_arg_32): Don't warn ABX ABI change here.
14098 (function_arg_64): Likewise.
14099
38432148 141002009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14101
14102 * loop-iv.c (implies_p): In the final case, test that operands 0
14103 of the two comparisons match.
14104
dd2139e7
BS
14105 * config/bfin/bfin.c (find_prev_insn_start): New function.
14106 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14107 (find_next_insn_start): Move.
14108
601b3e1a
RG
141092009-02-13 Richard Guenther <rguenther@suse.de>
14110
14111 * configure.ac: Enable LFS.
14112 * configure: Re-generate.
14113 * config.in: Likewise.
14114
f007042e
JM
141152009-02-13 Joseph Myers <joseph@codesourcery.com>
14116
14117 PR c/35444
14118 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14119 sizes on syntax error after some arguments have been parsed.
14120
3f238e8b
JJ
141212009-02-12 Jakub Jelinek <jakub@redhat.com>
14122
14123 * doc/invoke.texi (-fira): Remove.
14124
328e13b7
L
141252009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14126
14127 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14128 * recog.c: Likewise.
14129 * rtl.h: Likewise.
14130
c252db20
L
141312009-02-12 Uros Bizjak <ubizjak@gmail.com>
14132
14133 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14134 (umul_ppmm): Likewise.
14135 (count_leading_zeros): Likewise.
14136 (count_trailing_zeros): Likewise.
14137 (UMUL_TIME): Likewise.
14138
141392009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14140
ba181049
UB
14141 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14142 soft-fp/t-softfp to tmake_file.
c252db20
L
14143
14144 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14145 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14146 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14147 IA64_BUILTIN_INFQ]: New.
c252db20
L
14148 (ia64_init_builtins): Initialize __builtin_infq,
14149 __builtin_fabsq and __builtin_copysignq if not HPUX.
14150 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14151 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14152
14153 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14154 SHARED is defined.
14155 (__fixtfti): Likewise.
14156 (__fixunstfti): Likewise.
14157 (__floattitf): Likewise.
14158
14159 * config/ia64/libgcc-glibc.ver: New.
14160 * config/ia64/t-fprules-softfp: Likewise.
14161 * config/ia64/sfp-machine.h: Likewise.
14162
14163 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14164 (LIBGCC2_TF_CEXT): Likewise.
14165 (TF_SIZE): Likewise.
14166 (TARGET_INIT_LIBFUNCS): Likewise.
14167
ba181049 14168 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14169 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14170
f13eae6a
L
141712009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14172
14173 * config/i386/i386.c (construct_container): Rewrite processing
14174 BLKmode with X86_64_SSE_CLASS.
14175
12019aec
L
141762009-02-12 Paolo Bonzini <bonzini@gnu.org>
14177
14178 PR target/39152
14179 * config/i386/i386.md: Replace simplify_replace_rtx with
14180 replace_rtx in the new peephole2.
14181
28c11eb3
NS
141822009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14183
14184 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14185 loop unrolling do not happen at -O2.
14186
c7b94907
MM
141872009-02-12 Michael Matz <matz@suse.de>
14188
14189 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14190
61e98967
JJ
141912009-02-12 Jakub Jelinek <jakub@redhat.com>
14192
14193 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14194 for -g3.
14195
a2a237b5
BE
141962009-02-12 Ben Elliston <bje@au.ibm.com>
14197
14198 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14199 patterns when updating the back chain. Missed in the 2009-02-10
14200 change.
14201
853eda8d
JJ
142022009-02-11 Janis Johnson <janis187@us.ibm.com>
14203
14204 * doc/extend.texi (Decimal Floating Types): Update identifier of
14205 draft TR and list of missing support.
14206
3ad6b266
JJ
142072009-02-11 Jakub Jelinek <jakub@redhat.com>
14208
14209 PR middle-end/39154
14210 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14211 bit to variable length decl's flags, add it also to its
14212 pointer replacement variable.
14213
b058b753
UB
142142009-02-11 Uros Bizjak <ubizjak@gmail.com>
14215 Jakub Jelinek <jakub@redhat.com>
14216
14217 PR target/39118
14218 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14219 (memory_blockage): New expander.
14220 (*memory_blockage): New insn pattern.
14221 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14222 instead of general blockage at the end of function prologue when
14223 frame pointer is used to access red zone area. Do not emit blockage
14224 when profiling, it is emitted in generic code.
14225 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14226 function epilogue when frame pointer is used to access red zone area.
14227
bab64f23
PB
142282009-02-11 Paolo Bonzini <bonzini@gnu.org>
14229
0ce6dcfa 14230 PR target/38824
bab64f23
PB
14231 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14232 by arithmetic with memory operands.
14233 * config/i386/predicates.md (commutative_operator): New.
14234
8fd94bda
JJ
142352009-02-10 Janis Johnson <janis187@us.ibm.com>
14236
14237 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14238 bulleted lists.
14239
794511d2
EB
142402009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14241
14242 * alias.h (record_alias_subset): Declare.
14243 * alias.c (record_alias_subset): Make global.
14244
6da7fc87
NC
142452009-02-10 Nick Clifton <nickc@redhat.com>
14246
14247 * tree-parloops.c: Change license to GPLv3.
14248 * ipa-struct-reorg.c: Change license to GPLv3.
14249 * ipa-struct-reorg.h: Change license to GPLv3.
14250
a03813c8
SE
142512009-02-10 Steve Ellcey <sje@cup.hp.com>
14252
14253 PR c/39084
14254 * c-decl.c (start_struct): Return NULL on error.
14255
fc3103e7
JJ
142562009-02-10 Jakub Jelinek <jakub@redhat.com>
14257
9b43d37b
JJ
14258 PR middle-end/39124
14259 * cfgloopmanip.c (remove_path): Call remove_bbs after
14260 cancel_loop_tree, not before it.
14261
fc3103e7 14262 PR target/39139
b058b753 14263 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14264 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14265 VAR_DECLs were seen.
14266 * tree-ssa-live.c (remove_unused_locals): Recompute
14267 cfun->has_local_explicit_reg_vars.
14268 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14269 copies or clearings if cfun->has_local_explicit_reg_vars.
14270
dbf9ee15
UB
142712009-02-10 Uros Bizjak <ubizjak@gmail.com>
14272
14273 PR target/39118
14274 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14275 of function prologue when frame pointer is used to access
14276 red zone area.
14277
bdec4dc7
RG
142782009-02-10 Richard Guenther <rguenther@suse.de>
14279
14280 PR middle-end/39127
14281 * gimplify.c (gimple_regimplify_operands): Always look if
14282 we need to create a temporary.
14283
7cae94fc
RG
142842009-02-10 Richard Guenther <rguenther@suse.de>
14285
14286 PR tree-optimization/39132
14287 * tree-loop-distribution.c (todo): New global var.
14288 (generate_memset_zero): Trigger TODO_rebuild_alias.
14289 (tree_loop_distribution): Return todo.
14290
a8800687
L
142912009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14292
14293 PR target/39119
14294 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14295 (x86_64_reg_class_name): Removed.
14296 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14297 first one isn't X86_64_SSE_CLASS or any other ones aren't
14298 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14299 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14300 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14301 and 3 X86_64_SSEUP_CLASS.
14302 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14303 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14304
d4bacef0
BE
143052009-02-10 Ben Elliston <bje@au.ibm.com>
14306
14307 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14308 form instruction to update the stack back chain word, even if the
14309 user has disabled the generation of update instructions.
14310 (movdi_<mode>_update_stack): New.
14311 (movsi_update_stack): Likewise.
14312 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14313 always use an update form instruction to update the stack back
14314 chain word.
14315
01d7d2f3
SP
143162009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14317
14318 PR middle-end/38953
b058b753
UB
14319 * graphite.c (if_region_set_false_region): After moving a region in
14320 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14321 (gloog): Remove wrong fix for PR38953.
14322
e41e2ab4
UW
143232009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14324
14325 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14326 generation due to implicit sign extension.
14327
4bb07c5d
EB
143282009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14329
14330 PR middle-end/38981
14331 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14332 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14333
f060a261
RG
143342009-02-09 Richard Guenther <rguenther@suse.de>
14335
14336 PR middle-end/35202
14337 * convert.c (convert_to_real): Disable (float)fn((double)x)
14338 to fnf(x) conversion if errno differences may occur and
14339 -fmath-errno is set.
14340
5a7e237c
AS
143412009-02-07 Anatoly Sokolov <aesok@post.ru>
14342
14343 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14344 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14345 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14346
feab5a67
JM
143472009-02-06 Joseph Myers <joseph@codesourcery.com>
14348
14349 PR c/35434
14350 * c-common.c (handle_alias_attribute): Disallow attribute for
14351 anything not a FUNCTION_DECL or VAR_DECL.
14352
90ef2296
JJ
143532009-02-06 Janis Johnson <janis187@us.ibm.com>
14354
14355 PR c/39035
14356 * real.c (do_compare): Special-case compare of zero against
14357 decimal float value.
14358
1de2c900
JM
143592009-02-06 Joseph Myers <joseph@codesourcery.com>
14360
14361 PR c/36432
14362 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14363 as indicating flexible array members unless the field itself is
14364 being declarared as the incomplete array.
14365
e901811a
JH
143662009-02-06 Jan Hubicka <jh@suse.cz>
14367
14368 PR tree-optimization/38844
14369 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14370 is already inlined.
14371
3cfa762b
RG
143722009-02-06 Richard Guenther <rguenther@suse.de>
14373
14374 PR middle-end/38977
14375 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14376 fork because we may expand it as __gcov_fork.
14377
8506528c
NC
143782009-02-06 Nick Clifton <nickc@redhat.com>
14379
dbf9ee15 14380 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14381
85169114
PB
143822009-02-06 Paolo Bonzini <bonzini@gnu.org>
14383
14384 PR tree-optimization/35659
14385 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14386 vn_phi_eq): Shortcut if hashcode does not match.
14387 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14388 NULL operands.
14389 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14390 and avoid iterative_hash_expr.
14391 (FOR_EACH_VALUE_ID_IN_SET): New.
14392 (value_id_compare): Remove.
14393 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14394 sort expressions by value id.
14395
6d39673d
KK
143962009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14397
14398 PR target/38991
14399 * config/sh/predicates.md (general_movsrc_operand): Don't check
14400 the subreg of system registers here.
14401
e6e1c050
JJ
144022009-02-05 Jakub Jelinek <jakub@redhat.com>
14403
14404 PR c++/39106
14405 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14406 on the copied decl.
14407
65a74b5d
PB
144082009-02-05 Paolo Bonzini <bonzini@gnu.org>
14409
14410 PR rtl-optimization/39110
14411 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14412 addresses, not aligned ones.
14413
08e14b2a
DB
144142009-02-05 Daniel Berlin <dberlin@dberlin.org>
14415 Richard Guenther <rguenther@suse.de>
14416
14417 PR tree-optimization/39100
14418 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14419 comment says and add edges.
14420
5006381c
JM
144212009-02-05 Joseph Myers <joseph@codesourcery.com>
14422
14423 PR c/35435
14424 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14425 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14426
2ba9daa7 144272009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14428
14429 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14430 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14431 register_bb_in_sese, new_sese, free_sese): Moved.
14432 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14433 outermost_loop_in_scop, build_scop_iteration_domain,
14434 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14435 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14436 Use loop_in_sese_p instead of loop_in_scop_p.
14437 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14438 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14439 (scopdet_basic_block_info): Fix bug in scop detection.
14440 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14441 eq_loop_to_cloog_loop): Remove.
14442 (nb_loops_around_loop_in_scop, nb_loop
14443 ref_nb_loops): Moved here...
14444 * graphite.h (ref_nb_loops): ... from here.
14445 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14446 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14447 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14448 * testsuite/gcc.dg/graphite/scop-19.c: New
14449
48e8382e
PB
144502009-02-04 Paolo Bonzini <bonzini@gnu.org>
14451 Hans-Peter Nilsson <hp@axis.com>
14452
14453 PR rtl-optimization/37889
14454 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14455 Move offset handling from PLUS to before the switch. Use new
14456 arguments when considering SYMBOL_REFs too.
14457 (rtx_addr_can_trap_p): Pass dummy offset and size.
14458 (enum may_trap_p_flags): Remove.
14459 (may_trap_p_1): Pass size from MEM_SIZE.
14460
14461 PR rtl-optimization/38921
14462 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14463 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14464 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14465 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14466
69349ea5
L
144672009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14468
14469 AVX Programming Reference (January, 2009)
14470 * config/i386/sse.md (*vpclmulqdq): New.
14471
b545e411
JJ
144722009-02-04 Jakub Jelinek <jakub@redhat.com>
14473
14474 PR tree-optimization/38977
14475 PR gcov-profile/38292
bf9b2cc9 14476 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14477
5b43bf05
HS
144782009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14479
14480 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14481 non-indexable addresses even before reload.
14482
062c4bb3
JM
144832009-02-03 Joseph Myers <joseph@codesourcery.com>
14484
14485 PR c/29129
14486 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14487 as having variable size. Do not give an error for unnamed
14488 parameters with [*] declarators. Give a warning for type names
14489 with [*] declarators and mark them as variable size.
14490 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14491 for sizeof applied to [*] type names.
14492
6175f578
AP
144932009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14494
14495 PR C++/36607
14496 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14497
d4f4bc84
JJ
144982009-02-03 Jakub Jelinek <jakub@redhat.com>
14499
14500 * gcc.c (process_command): Update copyright notice dates.
14501 * gcov.c (print_version): Likewise.
14502 * gcov-dump.c (print_version): Likewise.
14503 * mips-tfile.c (main): Likewise.
14504 * mips-tdump.c (main): Likewise.
14505
f6294de7
JM
145062009-02-03 Joseph Myers <joseph@codesourcery.com>
14507
14508 PR c/35433
14509 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14510 for composite type involving a zero-length array type.
14511
754ccf7c
JJ
145122009-02-03 Jakub Jelinek <jakub@redhat.com>
14513
70f16287
JJ
14514 PR target/35318
14515 * function.c (match_asm_constraints_1): Skip over
14516 initial optional % in the constraint.
14517
754ccf7c
JJ
14518 PR inline-asm/39059
14519 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14520 supported, don't accept FIXED_CSTs.
14521 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14522 and _Sat is used without _Fract/_Accum. Set specs->type to
14523 integer_type_node for cts_fract/cts_accum if fixed point is not
14524 supported.
14525
965fdadf
CM
145262009-02-02 Catherine Moore <clm@codesourcery.com>
14527
dbf9ee15 14528 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14529
2e8a796f
RS
145302009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14531
14532 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14533 (ABI_HAS_64BIT_SYMBOLS): Use it.
14534 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14535
e0079468
PB
145362009-02-02 Paul Brook <paul@codesourcery.com>
14537
14538 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14539
eca72963
JJ
145402009-02-02 Jakub Jelinek <jakub@redhat.com>
14541
14542 PR inline-asm/39058
14543 * recog.h (asm_operand_ok): Add constraints argument.
14544 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14545 recurse on matching constraint.
14546 (check_asm_operands): Pass constraints as 3rd argument to
14547 asm_operand_ok. Don't look up matching constraint here.
14548 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14549 to asm_operand_ok.
14550
b5bde9ff
BE
145512009-02-02 Ben Elliston <bje@au.ibm.com>
14552
14553 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14554 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14555
30f3e427
JDA
145562009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14557
be7659ba
JDA
14558 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14559 information. Remove some obsolete information. Reorganize.
14560
30f3e427
JDA
14561 * config/pa/fptr.c: Revert license to GPL 2.
14562 * config/pa/milli64.S: Likewise.
14563
3cbfaf98
DK
145642009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14565
14566 PR target/38904
14567 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14568 LIBRARY name in, instead of hard-coding it.
14569 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14570 extra target make frag to tmake_files according to EH model.
14571 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14572 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14573 frags that define makefile variable EH_MODEL appropriately.
14574 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14575 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14576 to "-sjlj" according to type of EH configured.
14577 (LIBGCC_SONAME): Concatenate it to shared library base name.
14578 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14579 to "_sjlj" according to type of EH configured.
14580 (LIBGCC_SONAME): Concatenate it to shared library base name.
14581 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14582 (SHLIB_LINK): Add missing semicolon to if-else construct.
14583 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14584 string value of "pe_dll" command-line option.
14585 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14586 (SHLIB_SONAME): Use it when overriding t-cygming default.
14587 (SHLIB_IMPLIB): Override t-cygming default.
14588 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14589 string value of "pe_dll" command-line option.
14590
8d0b6068
DK
145912009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14592
14593 PR target/38952
14594 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14595 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14596
14c28276
RG
145972009-01-31 Richard Guenther <rguenther@suse.de>
14598
14599 PR tree-optimization/38937
14600 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14601 computing the transitive closure.
14602
5f4d82c2
RG
146032009-01-30 Richard Guenther <rguenther@suse.de>
14604
14605 PR tree-optimization/39041
14606 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14607 Propagate variable indices only if the types match for this stmt.
14608
d0728ae0
JJ
146092009-01-30 Jakub Jelinek <jakub@redhat.com>
14610
14611 PR target/39013
14612 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14613 inline but never defined.
14614
6b67572e 146152009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14616
14617 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14618 (*insv_h_di_reg_extimm): New insn.
14619 (*insv_l<mode>_reg_extimm): New insn.
14620
146212009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14622
14623 * config/picochip/picochip.c (flag_conserve_stack): set
14624 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14625 fconserve-stack. Reduce call-overhead used by inliner.
14626
9fec758d 146272009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14628
14629 PR/38157
14630 * common.opt (flag_conserve_stack): Initialised to zero.
14631
7f1c539c
KT
146322009-01-30 Kai Tietz <kai.tietz@onevision.com>
14633
14634 PR/39002
14635 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14636 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14637 method.
14638
3631be48
L
146392009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14640
14641 * ira-color.c (allocno_reload_assign): Update comments.
14642 * regmove.c (regmove_optimize): Likewise.
14643
14644 * ra.h: Removed.
14645
416ac4d4
RM
146462009-01-29 Robert Millan <rmh@aybabtu.com>
14647
60839f5d
EB
14648 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14649 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14650 `MD_UNWIND_SUPPORT'.
60839f5d 14651 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14652
d5e54bc1
KH
146532009-01-29 Kazu Hirata <kazu@codesourcery.com>
14654
14655 PR tree-optimization/39007
14656 * tree-loop-distribution.c (generate_builtin): Use
14657 recompute_dominator to compute the immediate dominator of the
14658 basic block just after the loop.
14659
38432148 146602009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14661
14662 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14663 (ASM_OUTPUT_DWARF_PCREL): Define.
14664
38432148 146652009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14666
14667 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14668 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14669 global. Modify entries about regmove and IRA.
14670
14671 * ra-conflict.c: Remove the file.
14672
14673 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14674
14675 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14676 (pass_regclass_init): Rename to pass_reginfo_init.
14677
14678 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14679
14680 * toplev.h (flag_ira): Remove.
14681
14682 * caller-save.c (setup_save_areas): Remove flag_ira.
14683
bf9b2cc9 14684 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14685
14686 * global.c: Remove the file.
14687
ba20e309 14688 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14689
14690 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14691
14692 * regmove.c: Modify file description.
14693 (find_use_as_address, try_auto_increment): Define them only if
14694 AUTO_INC_DEC is defined.
14695 (replacement_quality, replace_in_call_usage, fixup_match_1,
14696 stable_and_no_regs_but_for_p): Remove.
14697 (reg_set_in_bb): Make it static.
14698 (regmove_optimize): Remove flag_ira and code which worked for
14699 !flag_ira.
14700
14701 * local-alloc.c: Remove the file.
14702
14703 * common.opt (fira): Remove.
14704
14705 * ira.c: Include except.h.
14706 (eliminable_regset): Move from global.c.
14707 (mark_elimination): Ditto. Remove flag_ira.
14708 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14709 equiv_mem_modified, validate_equiv_mem_from_store,
14710 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14711 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14712 no_equiv, recorded_label_ref): Move from local-alloc.c.
14713 (update_equiv_regs): Ditto. Make it static.
14714 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14715 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14716 (build_insn_chain): Ditto. Make it static.
14717 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14718 Rename to init_live_subregs.
14719 (gate_ira): Remove flag_ira.
14720
14721 * regclass.c: Rename reginfo.c. Change file description.
14722 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14723 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14724 (init_reg_sets_1): Remove code for evaluation of
14725 reg_class_superclasses and losing_caller_save_reg_set.
14726 (init_regs): Remove init_reg_autoinc.
14727 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14728 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14729 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14730 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14731 corresponding entries.
14732 (dump_regclass, record_operand_costs, scan_one_insn,
14733 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14734 record_address_regs, auto_inc_dec_reg_p): Remove.
14735 (gt-regclass.h): Rename to gt-reginfo.h.
14736
14737 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14738 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14739
14740 * Makefile.in (RA_H): Remove.
14741 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14742 Rename regclass.o to reginfo.o.
14743 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14744 gt-reginfo.h.
14745 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14746 (GTFILES): Rename regclass.c to reginfo.c.
14747
14748 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14749 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14750
14751 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14752 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14753 Remove flag_ira.
6b67572e 14754 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14755
c95b2534 147562009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14757
14758 PR middle-end/35854
14759 * doc/invoke.texi (rtl debug options): Complete rewrite.
14760 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14761 to auto_inc_dec".
14762 * mode-switching.c (pass_mode_switching): Rename pass from
14763 "mode-sw" to "mode_sw".
14764 * except.c (pass_convert_to_eh_ranges): Rename pass from
14765 "eh-ranges" to "eh_ranges".
14766 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14767 to "subreg1".
2ba9daa7
AS
14768
14769
72a54528
AM
147702009-01-29 Andrey Belevantsev <abel@ispras.ru>
14771 Alexander Monakov <amonakov@ispras.ru>
14772
14773 PR middle-end/38857
14774 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14775 register.
14776 (move_exprs_to_boundary): Change return type and pass through
14777 should_move from move_op. Relax assert. Update usage ...
14778 (schedule_expr_on_boundary): ... here. Use should_move instead of
14779 cant_move.
14780 (move_op_orig_expr_found): Indicate that insn was disconnected from
14781 stream.
14782 (code_motion_process_successors): Do not call after_merge_succs
14783 callback if original expression was not found when traversing any of
14784 the branches.
14785 (code_motion_path_driver): Change return type. Update prototype.
14786 (move_op): Update comment. Add a new parameter (should_move). Update
14787 prototype. Set *should_move based on indication provided by
14788 move_op_orig_expr_found.
14789
001b9eb6
PH
147902009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14791
14792 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14793 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14794 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14795 * config/rs6000/rs6000.c (rs6000_override_options): Default
14796 avoid-indexed-addresses on for Power6, off for everything else.
14797 (avoiding_indexed_address_p): New function.
14798 (rs6000_legitimize_address): Use it.
14799 (rs6000_legitimate_address): Likewise.
14800 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14801
59dc4898
KH
148022009-01-28 Kazu Hirata <kazu@codesourcery.com>
14803
14804 PR tree-optimization/38997
14805 * tree-loop-distribution.c (generate_memset_zero): Use
14806 POINTER_PLUS_EXPR for a pointer addition.
14807
07da44ab
AK
148082009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14809
14810 * config/s390/s390.md (bswap<mode>2): New pattern added.
14811
cdc15d23
WG
148122009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14813
14814 * config/s390/s390.md (*tls_load_31): Added type attribute.
14815
d46f24b6
WG
148162009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14817
14818 * config/s390/s390.md: Fix a few comments.
14819
729e750f
WG
148202009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14821
14822 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14823 (*tm<mode>_full): Fixed z10prop attribute.
14824 (*tst<mode>_extimm): Fixed z10prop attribute.
14825 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14826 (*tstqiCCT_cconly): Fixed z10prop attribute.
14827 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14828 (*movsi_larl): Fixed z10prop attribute.
14829 (*movsi_zarch): Fixed z10prop attribute.
14830 (*movsi_eas): Fixed z10prop attribute.
14831 (*movhi): Fixed z10prop attribute.
14832 (*movqi): Fixed z10prop attribute.
14833 (*movstrictqi): Fixed z10prop attribute.
14834 (*mov<mode>): Fixed z10prop attribute.
14835 (*movcc): Fixed z10prop attribute.
14836 (*sethighpartdi_64): Fixed z10prop attribute.
14837 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14838 (*negdi2_sign_cc): Fixed z10prop attribute.
14839 (*negdi2_sign): Fixed z10prop attribute.
14840 (*absdi2_sign_cc): Fixed z10prop attribute.
14841 (*absdi2_sign): Fixed z10prop attribute.
14842 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14843 (*negabsdi2_sign): Fixed z10prop attribute.
14844 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14845 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14846 (doloop_si64): Fixed z10prop attribute.
14847 (doloop_si31): Fixed z10prop attribute.
14848 (doloop_long): Fixed z10prop attribute.
14849 (indirect_jump): Fixed z10prop attribute.
14850 (nop): Fixed z10prop attribute.
14851 (main_base_64): Fixed z10prop attribute.
14852 (reload_base_64): Fixed z10prop attribute.
14853
c7789bfb
JJ
148542009-01-28 Jakub Jelinek <jakub@redhat.com>
14855
14856 PR rtl-optimization/38740
6b67572e
UB
14857 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14858 if !optimize.
c7789bfb
JJ
14859 * config/mips/mips.c (mips_reorg): Likewise.
14860
de081cfd
RG
148612009-01-28 Richard Guenther <rguenther@suse.de>
14862
14863 PR tree-optimization/38926
14864 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14865 with the correct value id to a value.
14866 (do_regular_insertion): Use the value number of edoubleprime
14867 for the value number of the expr.
14868
14869 Revert
14870 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14871
d748c406
UB
14872 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14873 a PHI ask VN if it is already available.
14874 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14875 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14876
a9d386a1
JJ
148772009-01-28 Jakub Jelinek <jakub@redhat.com>
14878
14879 PR middle-end/38934
14880 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14881 set to varying whenever max has TREE_OVERFLOW set, similarly
14882 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14883
97a170cd
RG
148842009-01-28 Richard Guenther <rguenther@suse.de>
14885
14886 PR middle-end/38908
14887 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14888 uninitialized aggregate uses in call arguments.
14889
89ebafc6
PB
148902009-01-28 Paolo Bonzini <bonzini@gnu.org>
14891
14892 PR tree-optimization/38984
14893 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14894 the nothing_id variable if -fno-delete-null-pointer-checks.
14895
bef3c57b
UB
148962009-01-28 Uros Bizjak <ubizjak@gmail.com>
14897
14898 PR target/38988
14899 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14900 (set_got_offset_rex64): Ditto.
14901
0c6390fa
L
149022009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14903
14904 PR target/38941
14905 * doc/extend.texi: Improve local variable with asm reg.
14906
bee6fa6d
AN
149072009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14908
14909 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14910 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14911 was not supplied then set warn_packed_bitfield_compat to the
14912 default value of 1.
14913 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14914 against 1.
14915
b5c3dfbb
RG
149162009-01-27 Richard Guenther <rguenther@suse.de>
14917
14918 PR tree-optimization/38503
14919 * cfgexpand.c (expand_gimple_basic_block): Ignore
14920 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14921 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14922 variables that cannot have TBAA applied.
14923 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14924 statements.
14925
d748c406 149262009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14927
14928 PR middle-end/38969
14929 * calls.c (initialize_argument_information): Do not wrap complex
14930 arguments in SAVE_EXPR.
14931
9112bb38
AT
149322009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14933
14934 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14935 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14936
4757704f
RG
149372009-01-26 Richard Guenther <rguenther@suse.de>
14938
14939 PR tree-optimization/38745
14940 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14941 from special handling.
14942
e3e6cff4
RG
149432009-01-26 Richard Guenther <rguenther@suse.de>
14944
14945 PR tree-optimization/38745
14946 * tree-ssa.c (execute_update_addresses_taken): Do not include
14947 variables that cannot possibly be a register in not_reg_needs.
14948 Do not clear TREE_ADDRESSABLE on vars that may not become
14949 registers.
14950 * tree-ssa.c (update_alias_info_1): Include those in the set
14951 of addressable vars.
14952
dc874b53
RG
149532009-01-26 Richard Guenther <rguenther@suse.de>
14954
14955 PR middle-end/38851
14956 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14957 * tree-ssa-dse.c: Include langhooks.h
14958 (execute_simple_dse): Remove stores with zero size.
14959
849421a3
JJ
149602009-01-24 Jakub Jelinek <jakub@redhat.com>
14961
14962 PR c/38957
14963 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14964 as PLUS_EXPR.
14965
82f70421
JB
149662009-01-24 Julian Brown <julian@codesourcery.com>
14967
14968 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14969 config/arm/linux-atomic.c.
14970 * config/arm/linux-atomic.c: New.
14971
863412d6
EB
149722009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14973
14974 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14975 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14976 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14977
8c684300
L
149782009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14979
14980 PR c/38938
93f1527a 14981 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14982 properly.
14983
b840fb02
SP
149842009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14985
14986 PR tree-optimization/38953
14987 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14988 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14989 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14990 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14991 changed the CFG.
14992
ecee559f
PB
149932009-01-24 Paul Brook <paul@codesourcery.com>
14994
14995 * config/arm/neon.md (neon_type): Move to arm.md.
14996 (neon_mov<VSTRUCT>): Add neon_type attribute.
14997 * config/arm/arm.md (neon_type): Move to here.
14998 (conds): Add "unconditioal" and use as default for NEON insns.
14999
61ad0914
BE
150002009-01-24 Ben Elliston <bje@au.ibm.com>
15001
15002 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15003 void *' warning from -Wc++-compat.
15004 * Makefile.in (dominance.o-warn): Remove.
15005
38432148 150062009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15007
15008 PR tree-optimization/38932
15009 * fold-const.c (fold_unary_ignore_overflow): New.
15010 * tree.h (fold_unary_ignore_overflow): Declare.
15011 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15012 * tree-ssa-sccvn.c (visit_reference_op_load,
15013 simplify_unary_expression): Likewise.
15014
2cd36c22
AN
150152009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15016
15017 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15018 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15019 regardless of their type.
15020 * c-common.c (handle_packed_attribute): Don't ignore packed on
15021 bitfields.
15022 * c.opt (Wpacked-bitfield-compat): New warning option.
15023 * stor-layout.c (place_field): Warn if offset of a field changed.
15024 * doc/extend.texi (packed): Mention the ABI change.
15025 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15026 (Warning Options): Add it to the list.
15027
e4e624ab
L
150282009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15029
15030 * c-opts.c (c_common_post_options): Fix a typo in comments.
15031
d0ea0759
SE
150322009-01-22 Steve Ellcey <sje@cup.hp.com>
15033
15034 PR middle-end/38615
15035 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15036 variables to static.
15037 * doc/invoke.texi (-fmerge-all-constants): Update description.
15038
87673f84
UB
150392009-01-22 Uros Bizjak <ubizjak@gmail.com>
15040
15041 PR target/38931
15042 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15043 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15044
96339268
RE
150452009-01-22 Richard Earnshaw <rearnsha@arm.com>
15046
15047 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15048 a word boundary.
15049 (LOCAL_ALIGNMENT): Similarly.
15050
442dc742 150512009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15052 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15053
15054 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15055 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15056 * config/arm/arm-tune.md: Regenerate.
15057 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15058 -march=iwmmxt2.
15059
9b34732e
MS
150602009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15061
15062 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15063 version number to five.
15064
03c2a308
DS
150652009-01-22 Dodji Seketeli <dodji@redhat.com>
15066
15067 PR c++/38930
ba20e309 15068 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15069 * c-common.c (set_underlying_type): Likewise.
15070 (is_typedef_decl ): Likewise
15071 * tree.h: Likewise
15072 (set_underlying_type): Likewise.
15073 (is_typedef_type): Likewise.
15074
1240d76e
VM
150752009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15076
15077 PR middle-end/38587
15078 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15079 crossing setjmps.
15080
b8a1087d
DK
150812009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15082
15083 PR bootstrap/37660
15084 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15085 (LIBGCC_SPEC): Don't define.
15086 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15087
435da628
UB
150882009-01-21 Uros Bizjak <ubizjak@gmail.com>
15089
15090 PR rtl-optimization/38879
15091 * alias.c (base_alias_check): Unaligned access via AND address can
15092 alias all surrounding object types except those with sizes equal
15093 or wider than the size of unaligned access.
15094
d597b3ce
DS
150952009-01-21 Dodji Seketeli <dodji@redhat.com>
15096
15097 PR c++/26693
ba20e309 15098 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15099 * c-common.c (set_underlying_type): ... here.
435da628 15100 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15101 the newly created typedef variant type.
15102 (is_typedef_decl ): New entry point.
15103 * tree.h: Added a new member member_types_needing_access_check to
15104 struct tree_decl_non_common.
15105 (set_underlying_type): New entry point.
15106 (is_typedef_type): Likewise.
15107
71a6fe66
BM
151082009-01-21 Bingfeng Mei <bmei@broadcom.com>
15109
15110 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15111 Check whether two instructions have memory references that
15112 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15113 are helper functions for traversing.
15114 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15115 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15116 not to draw dependency edge for instructions with non-conflicting
15117 alias sets.
15118
5a248274
JM
151192009-01-20 Joseph Myers <joseph@codesourcery.com>
15120
15121 PR other/38758
6b67572e
UB
15122 * longlong.h: Update copyright years. Use soft-fp license notice.
15123 Sync __clz_tab declaration with glibc.
5a248274 15124
4b84f3de
SE
151252009-01-20 Steve Ellcey <sje@cup.hp.com>
15126
15127 PR target/30687
15128 * doc/extend.texi (syscall_linkage): New.
15129 (version_id): Modify.
15130
37348bf1 151312009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15132 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15133
15134 PR tree-optimization/38747
15135 PR tree-optimization/38748
15136 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15137 conversion if the base address is an indirect reference and the
15138 aliasing sets could cause issues.
15139
d0a58904
SP
151402009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15141
2ba9daa7 15142 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15143 explaining why these options are not documented.
15144
71e7afb2
SP
151452009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15146
15147 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15148 gimple_call_lhs is NULL.
15149
38432148 151502009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15151
15152 PR target/38868
15153 * emit-rtl.c (adjust_address_1): Make sure memref is never
15154 overwritten.
15155
cbb8dee3
BE
151562009-01-20 Ben Elliston <bje@au.ibm.com>
15157
15158 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15159 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15160 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15161 const qualifier from arg 2.
15162
72c66596
IS
151632009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15164
435da628 15165 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15166
f68211cd
VM
151672009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15168
15169 PR c/38869
15170 * rtl.h (reinit_regs): New prototype.
15171 * regclass.c: Include ira.h.
15172 (reinit_regs): New.
15173 * Makefile.in (regclass.o): Add ira.h.
15174 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15175
6e4f1168
L
151762009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15177
15178 PR target/38736
15179 * c-common.c (handle_aligned_attribute): Use
15180 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15181 default alignment value.
15182
15183 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15184
15185 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15186 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15187
15188 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15189 __BIGGEST_ALIGNMENT__.
15190
15191 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15192
890065bf
RG
151932009-01-18 Richard Guenther <rguenther@suse.de>
15194
15195 PR tree-optimization/38819
15196 * tree-flow.h (operation_could_trap_helper_p): Declare.
15197 * tree-eh.c (operation_could_trap_helper_p): Export.
15198 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15199 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15200 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15201 are about to insert a possibly trapping instruction and fail
15202 in this case.
15203
a729d731
AS
152042009-01-18 Andreas Schwab <schwab@suse.de>
15205
15206 * doc/install.texi (Configuration): Remove obsolete paragraph
15207 about use of --with-gnu-ld with --with-gnu-as.
15208
a640c13b
KH
152092009-01-18 Kazu Hirata <kazu@codesourcery.com>
15210
15211 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15212 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15213 Follow spelling conventions.
15214
dba2cc0c
BE
152152009-01-18 Ben Elliston <bje@au.ibm.com>
15216
15217 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15218 C++ warning about implicit conversion from void * to struct
15219 bitmap_head_def *.
15220 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15221 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15222
2207a498
DK
152232009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15224
15225 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15226
8137e465
SP
152272009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15228 Tobias Grosser <tobi.grosser@amd.com>
15229
15230 * graphite.c (graphite_trans_scop_block): Do not block single
15231 nested loops.
15232
5be1c58c
AO
152332009-01-16 Alexandre Oliva <aoliva@redhat.com>
15234
15235 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15236 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15237 test with assertion.
15238
786ce82d
RG
152392009-01-16 Richard Guenther <rguenther@suse.de>
15240
15241 PR tree-optimization/38835
15242 PR middle-end/36227
15243 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15244 and INT + PTR -> (INT)(PTR p+ INT) folding.
15245 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15246
c1cb09ad
AN
152472009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15248
15249 PR target/38554
15250 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15251 the subreg from a lowpart subreg if it is also casting the value.
15252
bcab4e19
SP
152532009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15254 Tobias Grosser <tobi.grosser@amd.com>
15255
15256 * graphite.c (compare_prefix_loops): New.
15257 (build_scop_canonical_schedules): Rewritten.
15258 (graphite_transform_loops): Move build_scop_canonical_schedules
15259 after build_scop_iteration_domain.
15260
0b040072
SP
152612009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15262 Tobias Grosser <tobi.grosser@amd.com>
15263
2ba9daa7 15264 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15265 the dimension of the iteration domain. Do copy the domain
15266 only when it exists.
15267 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15268 (add_conditions_to_constraints): New.
15269 (can_generate_code_stmt, can_generate_code): Removed.
15270 (gloog): Do not call can_generate_code.
15271 (graphite_transform_loops): Call add_conditions_to_constraints
15272 after building the iteration domain.
15273
56c6a499
JJ
152742009-01-16 Jakub Jelinek <jakub@redhat.com>
15275
15276 PR tree-optimization/38789
15277 * tree-ssa-threadedge.c
15278 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15279 __builtin_constant_p.
15280
c95b2534 152812009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15282
15283 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15284 examined before deleting them.
2ba9daa7 15285
c433cb14
RE
152862009-01-16 Richard Earnshaw <rearnsha@arm.com>
15287
15288 * function.c (aggregate_value_p): Correctly extract the function
15289 type from CALL_EXPR_FN lookup.
15290
c95b2534 152912009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15292
15293 * config/picochip/picochip.c (picochip_override_options): Revert
15294 CFI asm flag disable commited previously.
15295
c77bb78f
SP
152962009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15297 Tobias Grosser <tobi.grosser@amd.com>
15298 Jan Sjodin <jan.sjodin@amd.com>
15299
15300 * graphite.c (scan_tree_for_params): On substractions negate
15301 all the coefficients of the term.
15302 (clast_to_gcc_expression_red): New. Handle reduction expressions
15303 of more than two operands.
15304 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15305 (get_vdef_before_scop): Handle also the case of default definitions.
15306
574af2d6
RS
153072009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15308
15309 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15310 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15311 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15312
e939805b
L
153132009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15314 Joey Ye <joey.ye@intel.com>
15315
15316 PR middle-end/37843
15317 * cfgexpand.c (expand_stack_alignment): Don't update stack
15318 boundary nor check incoming stack boundary here.
15319 (gimple_expand_cfg): Update stack boundary and check incoming
15320 stack boundary here.
15321
c95b2534 153222009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15323
435da628 15324 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15325
0196c95e
JJ
153262009-01-14 Jakub Jelinek <jakub@redhat.com>
15327
15328 PR rtl-optimization/38245
15329 * calls.c (expand_call): Add stack arguments to
15330 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15331 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15332 in regs and partially in memory or BLKmode arguments.
15333 (emit_library_call_value_1): Add stack arguments to
15334 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15335 ACCUMULATE_OUTGOING_ARGS).
15336 * dce.c: Include tm_p.h.
15337 (find_call_stack_args): New function.
15338 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15339 argument.
15340 (mark_insn): Call find_call_stack_args for CALL_Ps.
15341 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15342 forwards. Allocate and free arg_stores bitmap if needed, pass it
15343 down to deletable_insn_p, don't mark stores set in arg_stores
15344 bitmap, clear the bitmap at the beginning of each bb.
15345 * Makefile.in (dce.o): Depend on $(TM_P_H).
15346
6df6bcfa
MM
153472009-01-14 Michael Meissner <gnu@the-meissners.org>
15348
15349 PR target/22599
435da628
UB
15350 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15351 to make sure the insn is a conditional test (bug 22599). Reformat a
15352 few long lines.
6df6bcfa 15353
765ec70c
SP
153542009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15355
15356 PR middle-end/38431
15357 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15358 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15359 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15360 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15361 scops have been code generated.
15362
7de2b688
BS
153632009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15364 * doc/gty.texi (Invoking the garbage collector): Added new node
15365 and section documenting ggc_collect.
15366
10bd6c5c
RG
153672009-01-14 Richard Guenther <rguenther@suse.de>
15368
15369 PR tree-optimization/38826
15370 PR middle-end/38477
15371 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15372 initialization notes only if we actually emitted a warning.
15373 (intra_create_variable_infos): Add constraints for a result decl
15374 that is passed by hidden reference.
15375 (build_pred_graph): Mark all related variables non-direct on
15376 address-taking.
15377
9c7c70ee
NC
153782009-01-14 Nick Clifton <nickc@redhat.com>
15379
15380 * ira-conflicts.c: Include addresses.h for the definition of
15381 base_reg_class.
435da628
UB
15382 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15383 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15384
cf0c2a60
VM
153852009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15386
15387 PR target/38811
15388 * Makefile.in (ira-lives.o): Add except.h.
15389
15390 * ira-lives.c: Include except.h.
15391 (process_bb_node_lives): Process can_throw_internal.
15392
d3302fd3
JJ
153932009-01-13 Jakub Jelinek <jakub@redhat.com>
15394
15395 PR rtl-optimization/38774
15396 * combine.c (simplify_set): When undoing cc_use change, don't do
15397 PUT_CODE on the newly created comparison, but instead put back the
15398 old comparison.
15399
7ab23fd0
JM
154002009-01-13 Joseph Myers <joseph@codesourcery.com>
15401
15402 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15403 values. Remove duplicate arm8 entry.
15404
f9344488
SP
154052009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15406
15407 PR tree-optimization/38786
15408 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15409 the SSA_NAME case of expand_scalar_variables_expr.
15410 Set the type of an expression to the type of its assign statement.
15411 (expand_scalar_variables_expr): Also gather the scalar computation
15412 used to index the memory access. Do not pass loop_p.
15413 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15414 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15415 the gimple_stmt_iterator where it inserts new code.
15416 Do not pass loop_p.
f9344488
SP
15417 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15418 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15419
2d8bb84d
SP
154202009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15421
15422 * graphite.h (debug_value): Removed.
15423 * graphite.c (debug_value): Removed.
15424
ff128632
RE
154252009-01-13 Richard Earnshaw <rearnsha@arm.com>
15426
435da628
UB
15427 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15428 ldrd/strd with two 32-bit instructions.
ff128632 15429
d5a0a47b
RE
154302009-01-13 Richard Earnshaw <rearnsha@arm.com>
15431
435da628
UB
15432 * config/arm/arm.c (struct processors): Pass for speed down into
15433 cost helper functions.
d5a0a47b
RE
15434 (const_ok_for_op): Handle COMPARE and inequality nodes.
15435 (arm_rtx_costs_1): Rewrite.
15436 (arm_size_rtx_costs): Update prototype.
15437 (arm_rtx_costs): Pass speed down to helper functions.
15438 (arm_slowmul_rtx_costs): Rework cost calculations.
15439 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15440 (arm_9e_rtx_costs): Likewise.
15441
26d5bf5b
UB
154422009-01-13 Uros Bizjak <ubizjak@gmail.com>
15443
15444 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15445 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15446 (alpha_legitimize_address): Do not split local symbols wider than
15447 UNITS_PER_WORD into HIGH/LO_SUM parts.
15448
5d14e3d5
DS
154492009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15450
15451 PR bootstrap/38580
15452 * gcc.c (process_command): Replace call to execvp with calls
15453 to pex_one and exit.
15454
33faafca
AS
154552009-01-03 Anatoly Sokolov <aesok@post.ru>
15456
15457 PR target/29141
15458 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15459 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15460 variant for devices with 3-byte PC.
ba20e309 15461 (__tablejump_elpm__): New.
33faafca 15462
634b5df5
JJ
154632009-01-12 Jakub Jelinek <jakub@redhat.com>
15464
15465 PR c/32041
15466 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15467 offsetof member-designator, handle it as `[0].'.
15468
2842bb86
JDA
154692009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15470
15471 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15472 function when not using named sections on targets with named sections
15473 if branch distance is less than 262132.
15474
76ee70f6
RE
154752009-01-12 Richard Earnshaw <rearnsha@arm.com>
15476
15477 * combine.c (combine_instructions): Recompute
15478 optimize_this_for_speed_p for each BB in the main combine loop.
15479
f56e675d
TB
154802009-01-12 Tomas Bily <tbily@suse.cz>
15481
15482 PR middlend/38385
26d5bf5b
UB
15483 * tree-loop-distribution.c (prop_phis): New function.
15484 (generate_builtin): Call prop_phis.
15485 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15486
c2152239
JJ
154872009-01-12 Jakub Jelinek <jakub@redhat.com>
15488
15489 PR tree-optimization/38807
15490 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15491 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15492
0e510b3e
AN
154932009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15494
15495 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15496 subreg of op0 to the original op0.
15497
c95b2534 154982009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15499
15500 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15501
53a7ff9a
MS
155022009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15503
15504 PR debug/7055
60839f5d 15505 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15506 starting with digits.
15507
b3a796bc
JJ
155082009-01-10 Jakub Jelinek <jakub@redhat.com>
15509
15510 PR target/38695
15511 * config/arm/arm.c (arm_is_long_call_p): Don't call
15512 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15513
b21b850e
SB
155142009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15515
15516 * regrename.c (regrename_optimize): Fix dumping.
15517 (find_oldest_value_reg): Preserve REG_POINTER.
15518 (copy_hardreg_forward_1): Likewise.
15519
e0e10d3a
DN
155202009-01-09 Diego Novillo <dnovillo@google.com>
15521
bf9b2cc9 15522 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15523 the restrictions on its use.
15524 (gimple_uid): Tidy.
15525 (gimple_set_uid): Tidy.
15526
c9da2ae8
JJ
155272009-01-09 Jakub Jelinek <jakub@redhat.com>
15528
15529 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15530 zero guard even if align_bytes != 0 and count is smaller than
15531 size_needed.
15532
38432148 155332009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15534
15535 PR rtl-optimization/38495
26d5bf5b 15536 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15537 (add_range_and_copies_from_move_list): Print all added ranges.
15538 Add ranges to memory optimized destination.
15539
260fda3d
JJ
155402009-01-09 Jakub Jelinek <jakub@redhat.com>
15541
6f6278ad
JJ
15542 PR target/38686
15543 PR target/38708
15544 * config/i386/i386.c (override_options): Reject
15545 -mstringop-strategy=rep_8byte with -m32.
15546 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15547 to 1. Do count comparison against epilogue_size_needed at compile
15548 time even when count_exp was constant forced into register. For
15549 size_needed don't jump to epilogue, instead just avoid aligning
15550 and invoke the body algorithm. If need_zero_guard, add zero guard
15551 even if count is non-zero, but smaller than size_needed + number of
15552 bytes that could be stored for alignment.
15553 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15554 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15555 but smaller than size_needed + number of bytes that could be stored
15556 for alignment. Compare size_needed with epilogue_size_needed instead
15557 of desired_align - align, don't adjust size_needed, pass
15558 epilogue_size_needed to the epilogue expanders.
15559
260fda3d 15560 PR c/35742
26d5bf5b 15561 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15562
67b846fa
JDA
155632009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15564
15565 * pa.c (last_address): Change to unsigned.
15566 (update_total_code_bytes): Change argument to unsigned. Don't
15567 check if insn addresses are set.
15568 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15569 addresses are not set.
15570 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15571
91c82473
NC
155722009-01-09 Nick Clifton <nickc@redhat.com>
15573
15574 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15575 DECL_DECLARED_INLINE_P.
15576
4017e262
JJ
155772009-01-09 Jakub Jelinek <jakub@redhat.com>
15578
0a49e5c2
JJ
15579 PR middle-end/38347
15580 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15581 GET_MODE (op0) in operand_subword_force calls.
15582
4017e262
JJ
15583 PR middle-end/38771
15584 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15585 fold_convert arg0 operands to TREE_TYPE (op0) first.
15586
7cd06356
VM
155872009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15588
15589 * params.def (ira-max-conflict-table-size): Decrease default value
15590 to 1000.
15591
96867bbd
JJ
155922009-01-08 Jakub Jelinek <jakub@redhat.com>
15593
15594 PR tree-optimization/37031
15595 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15596 on parameter_set.
15597 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15598 allocate it using gc instead of heap, use VEC_quick_push instead of
15599 VEC_safe_push.
15600 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15601 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15602 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15603 allocated vector from heap allocated.
15604 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15605 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15606 vector only after perfect_loop_nest_depth call.
15607
68f61c3d
SP
156082009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15609 Jan Sjodin <jan.sjodin@amd.com>
15610
15611 PR tree-optimization/38559
15612 * graphite.c (debug_value, copy_constraint,
15613 swap_constraint_variables, scale_constraint_variable, ): New.
15614 (get_lower_bound, get_upper_bound): Removed.
15615 (graphite_trans_bb_strip_mine): Clean up this code that works
15616 only for constant number of iterations. Fully copy upper and
15617 lower bound constraints, not only the constant part of them.
15618 * graphite.h (debug_value): Declared.
15619
82567e33
IR
156202009-01-08 Ira Rosen <irar@il.ibm.com>
15621
15622 PR tree-optimization/37194
15623 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15624 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15625 outside cost in case of known number of iterations.
15626
7da13f1d
NF
156272009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15628 Alan Modra <amodra@bigpond.net.au>
15629
15630 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15631 non-word-aligned REG+CONST addressing.
15632
c0f64575
UB
156332009-01-07 Uros Bizjak <ubizjak@gmail.com>
15634
15635 PR target/38706
15636 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15637 free_after_compilation when outputting a thunk.
15638 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15639 Do not call free_after_compilation here.
15640
301b6a4e
UB
156412009-01-07 Uros Bizjak <ubizjak@gmail.com>
15642
15643 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15644 (ix86_valid_target_attribute_inner_p): Ditto.
15645
6a114766
JS
156462009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15647
15648 PR tree-optimization/38492
15649 PR tree-optimization/38498
15650 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15651 * tree-chrec.h (scev_is_linear_expression): Declared.
15652 * graphite.c (graphite_cannot_represent_loop_niter): New.
15653 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15654 (graphite_loop_normal_form): Use gcc_assert.
15655 (scan_tree_for_params): Use CASE_CONVERT.
15656 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15657 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15658 Use gcc_assert. Discard scops that contain unhandled cases.
15659 (build_scop_conditions): Return a boolean status for unhandled cases.
15660 (strip_mine_profitable_p): Print the loop number, not its depth.
15661 (is_interchange_valid): Pass the depth of the loop nest, don't
15662 recompute it wrongly.
15663 (graphite_trans_bb_block): Same.
15664 (graphite_trans_bb_block): Print tentative of loop blocking.
15665 (graphite_trans_scop_block): Do not print that the loop has been
15666 blocked.
15667 (graphite_transform_loops): Do not handle scops that contain condition
15668 scalar phi nodes.
15669
65b82caa
L
156702009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15671
15672 AVX Programming Reference (December, 2008)
15673 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15674 (_mm256_stream_pd): Likewise.
15675 (_mm256_stream_ps): Likewise.
15676
15677 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15678 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15679 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15680 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15681 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15682 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15683 (ix86_expand_special_args_builtin): Likewise.
15684
15685 * config/i386/sse.md (AVXMODEDI): New.
15686 (avx_movnt<mode>): Likewise.
15687 (avx_movnt<mode>): Likewise.
15688 (<sse>_movnt<mode>): Remove AVX support.
15689 (sse2_movntv2di): Likewise.
15690
cef158f9
RG
156912009-01-07 Richard Guenther <rguenther@suse.de>
15692
15693 PR middle-end/38751
15694 * fold-const.c (extract_muldiv): Remove obsolete comment.
15695 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15696 to PLUS_EXPR canonicalization for the canonicalization.
15697
246cb5be
GP
156982009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15699
15700 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15701 hosted cross-compilers generating less efficient code.
15702
84b9b872
RS
157032009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15704
15705 * function.h (rtl_data): Add a dbr_scheduled_p field.
15706 * reorg.c (dbr_schedule): Set it.
15707 (gate_handle_delay_slots): Check it.
15708 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15709 (mips_reorg): Check flag_delayed_branch instead of
15710 mips_base_delayed_branch.
15711 (mips_override_options): Don't set mips_base_delayed_branch
15712 or flag_delayed_branch.
15713
ace984c8
RS
157142009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15715
15716 PR rtl-optimization/38426.
15717 * ira.c (ira): Set current_function_is_leaf earlier.
15718
7ad7809b
JJ
157192009-01-06 Jakub Jelinek <jakub@redhat.com>
15720
15721 PR rtl-optimization/38722
15722 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15723 too early, only set a flag and modify after last possible
15724 undo_all point.
15725
c52ec948
JJ
157262009-01-06 Janis Johnson <janis187@us.ibm.com>
15727
15728 PR c/34252
15729 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15730 * real.c (decimal_single_format): Correct values of emin and emax.
15731 (decimal_double_format): Ditto.
15732 (decimal_quad_format): Ditto.
15733 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15734 computation of DECnn_MIN and DECnn_MAX for corrected values of
15735 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15736 __DECnn_MIN__, and adjust its computation for the corrected value
15737 of emin.
15738
300240e1
JH
157392009-01-06 Jan Hubicka <jh@suse.cz>
15740
15741 PR target/38744
435da628 15742 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15743
271c069e
GP
157442009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15745
15746 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15747 Add Robert Clark to the list of testers.
15748
64e4c301 157492009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15750 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15751
435da628
UB
15752 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15753 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15754
7650b83e 157552009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15756 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15757
435da628
UB
15758 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15759 for w64 ABI.
15760 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15761 (ix86_nsaved_regs): Count only general purpose regs.
15762 (ix86_nsaved_sseregs): New.
15763 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15764 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15765 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15766 general purpose regs.
7650b83e
JH
15767 (ix86_emit_save_sse_regs_using_mov): New.
15768 (ix86_expand_prologue): Save SSE regs if needed.
15769 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15770 (ix86_emit_restore_sse_regs_using_mov): New.
15771 (ix86_expand_epilogue): Save SSE regs if needed.
15772
9aa5c1b2 157732009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15774 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15775
435da628
UB
15776 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15777 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15778 functions when accumulate outgoing args is off.
9aa5c1b2 15779
f7556aae
L
157802009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15781
15782 PR bootstrap/38742
15783 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15784 before using pseudos_have_intersected_live_ranges_p.
15785
15786 * ira-int.h (ira_assert): Always define.
15787
e47b7d04
L
157882009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15789
15790 AVX Programming Reference (December, 2008)
15791 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15792 (_mm256_permute2_pd): Likewise.
15793 (_mm_permute2_ps): Likewise.
15794 (_mm256_permute2_ps): Likewise.
15795 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15796 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15797
15798 * config/i386/i386.c (ix86_builtins): Remove
15799 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15800 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15801 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15802 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15803 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15804 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15805 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15806 __builtin_ia32_vpermil2ps256.
15807 (ix86_init_mmx_sse_builtins): Updated.
15808 (ix86_expand_args_builtin): Likewise.
15809
44b86471
JDA
158102009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15811
e47b7d04
L
15812 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15813 long absolute calls when generating PA 2.0 code.
44b86471 15814
311aab06
VM
158152009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15816
15817 PR rtl-optimization/38583
15818 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15819
15820 * params.def (ira-max-conflict-table-size): New.
15821
15822 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15823
311aab06 15824 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15825
311aab06
VM
15826 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15827 table. Report this. Return result of building.
15828 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15829 building conflict table.
15830
301b6a4e 15831 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15832 (ira_color): Use ira_conflicts_p.
2ba9daa7 15833
311aab06
VM
15834 * global.c: Include ira.h.
15835 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15836 ira_conflicts_p.
15837
15838 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15839
311aab06
VM
15840 * ira-build.c (mark_all_loops_for_removal,
15841 propagate_some_info_from_allocno): New.
15842 (remove_unnecessary_allocnos): Call
15843 propagate_some_info_from_allocno.
15844 (remove_low_level_allocnos): New.
15845 (remove_unnecessary_regions): Add parameter. Call
15846 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15847 parameter to remove_unnecessary_regions.
15848 (ira_build): Remove all regions but root if the conflict table was
15849 not built. Update conflict hard regs for allocnos crossing calls.
15850
15851 * ira.c (ira_conflicts_p): New global.
15852 (ira): Define and use ira_conflicts_p.
15853
15854 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15855 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15856 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15857
5641785f
BE
158582009-01-06 Ben Elliston <bje@au.ibm.com>
15859
15860 * gengtype-lex.l (YY_NO_INPUT): Define.
15861
e4e5261f
AP
158622009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15863
15864 PR c/34911
5641785f
BE
15865 * c-common.c (handle_vector_size_attribute): Also reject
15866 BOOLEAN_TYPE types.
e4e5261f 15867
7b10257f
SP
158682009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15869
15870 PR tree-optimization/38492
15871 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15872 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15873 rename_map_elt_info, eq_rename_map_elts,
15874 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15875 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15876 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15877 (sese_build_livein_liveouts): New.
15878 (new_sese, free_sese): New.
15879 (new_scop): Call new_sese.
15880 (free_scop): Call free_sese.
15881 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15882 (register_old_new_names): Renamed register_old_and_new_names.
15883 (register_scop_liveout_renames, add_loop_exit_phis,
15884 insert_loop_close_phis, struct igp,
15885 default_liveout_before_guard, add_guard_exit_phis,
15886 insert_guard_phis, copy_renames): New.
15887 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15888 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15889 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15890 (scop_adjust_phis_for_liveouts): New.
15891 (gloog): Call scop_adjust_phis_for_liveouts.
15892
15893 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15894 num_ver and livein.
7b10257f
SP
15895 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15896 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15897 (struct scop): Added field liveout_renames.
15898 (SCOP_LIVEOUT_RENAMES): New.
15899
9761fcc7
HJ
159002009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15901
15902 PR tree-optimization/38510
15903 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15904 (translate_clast): Call recompute_all_dominators before
15905 graphite_verify.
15906 (gloog): Call recompute_all_dominators before graphite_verify.
15907
159082009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15909 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15910
15911 PR tree-optimization/38500
15912 * graphite.c (create_sese_edges): Call fix_loop_structure after
15913 splitting blocks.
15914
c95b2534 159152009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15916
15917 * config.gcc: Add m32r*-*-rtems*.
15918 * config/m32r/rtems.h: New file.
15919
fc0cd180
BE
159202009-01-05 Ben Elliston <bje@au.ibm.com>
15921
15922 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15923 (.po.pox): Likewise.
15924 (po/gcc.pot): Likewise.
15925
3106d8e5
DM
159262009-01-04 David S. Miller <davem@davemloft.net>
15927
15928 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15929 (STARTING_FRAME_OFFSET): Always set to zero.
15930
0009b473
RS
159312009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15932
15933 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15934 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15935 fixed-point types, and vectors of the same.
15936
4f24c6d6
RS
159372009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15938
15939 * config/mips/sync.md (*mb_barrier): Rename to...
15940 (*memory_barrier): ...this.
15941
1df48f5c
JW
159422009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15943
15944 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15945 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15946 and put in alphabetical order. Fix 'target' name and put in order.
15947 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15948 typos.
15949
1a8c13b3
UB
159502009-01-04 Uros Bizjak <ubizjak@gmail.com>
15951
15952 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15953 (memory_barrier): Expand as unspec instead of unspec_volatile.
15954 Remove mem:BLK from insn operands. Use Pmode scratch register.
15955 (*memory_barrier): Define as unspec instead of unspec_volatile.
15956 Use (match_dup 0) as input operand.
15957
15958 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15959 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15960 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15961 scratch register. Remove operand 1.
15962 (*stbar): Define as unspec instead of unspec_volatile.
15963 Use (match_dup 0) as input operand, remove (const_int 8).
15964 (*membar): Define as unspec instead of unspec_volatile.
15965 Use (match_dup 0) as input operand, remove input operand 2.
15966
15967 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15968 (memory_barrier): Expand as unspec instead of unspec_volatile.
15969 Remove mem:BLK from insn operands. Use Pmode scratch register.
15970 (*memory_barrier): Define as unspec instead of unspec_volatile.
15971 Use (match_dup 0) as input operand.
15972
15973 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15974 Remove mem:BLK from insn operands. Use Pmode scratch register.
15975 Set volatile flag on operand 0.
15976 (*memory_barrier): New insn pattern.
15977
15978 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15979 insn operands.
15980 (*memory_barrier): Use (match_dup 0) as input operand.
15981
15982 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15983 Remove mem:BLK from insn operands. Use Pmode scratch register.
15984 Set volatile flag on operand 0.
301b6a4e 15985 (*mb_internal): New insn pattern.
1a8c13b3
UB
15986
15987 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15988
fb0703f7
SB
159892009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15990
15991 PR middle-end/38586
15992 * function.c (struct temp_slot): Move to the section of the file
15993 that deals with temp slots. Remove field 'address'.
15994 (temp_slot_address_table): New hash table of address -> temp slot.
15995 (struct temp_slot_address_entry): New struct, items for the table.
15996 (temp_slot_address_compute_hash, temp_slot_address_hash,
15997 temp_slot_address_eq, insert_temp_slot_address): Support functions
15998 for the new table.
15999 (find_temp_slot_from_address): Rewrite to use the new hash table.
16000 (remove_unused_temp_slot_addresses): Remove addresses of temp
16001 slots that have been made available.
16002 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16003 worker function for remove_unused_temp_slot_addresses.
16004 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16005 Add the temp slot address to the address -> temp slot map.
16006 (update_temp_slot_address): Update via insert_temp_slot_address.
16007 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16008 (pop_temp_slots): Likewise.
16009 (init_temp_slots): Allocate the address -> temp slot map, or empty
16010 the map if it is already allocated.
16011 (prepare_function_start): Initialize temp slot processing.
16012
b5a430f3
SB
160132009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16014
16015 PR middle-end/38584
16016 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16017 Calculate the size of all stack vars assuming no packing of stack
16018 vars will happen, replacing a quadratic algorithm with a linear one.
16019
5d560619
JJ
160202009-01-03 Jakub Jelinek <jakub@redhat.com>
16021
16022 PR target/38707
16023 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16024 can't be used.
16025
953a7caa
DN
160262009-01-03 Diego Novillo <dnovillo@google.com>
16027
16028 * doc/contrib.texi: Update contributions.
16029
5f26a230
JJ
160302009-01-03 Jakub Jelinek <jakub@redhat.com>
16031
493aa551
JJ
16032 PR c++/38705
16033 * builtins.c (fold_builtin_memory_op): Give up if either operand
16034 is volatile. Set srctype or desttype to non-qualified version
16035 of the other type.
16036
5f26a230
JJ
16037 PR c/38700
16038 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16039 and FUNCTION_DECLs.
16040
c95b2534 160412009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16042
16043 PR rtl-optimization/35805
16044 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16045 problem if fast dce is able to remove any instructions.
16046 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16047
0b355794
MM
160482009-01-02 Mark Mitchell <mark@codesourcery.com>
16049
16050 PR 33649
16051 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16052
0cf0d02b
JJ
160532009-01-02 Jakub Jelinek <jakub@redhat.com>
16054
16055 PR middle-end/38690
16056 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16057 * tree-pretty-print.c (op_code_prio): New function.
16058 (op_prio): No longer static. Use op_code_prio.
16059 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16060 Use op_prio and op_code_prio to determine if () should be
16061 printed around operand(s) or not.
16062
16063 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16064 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16065 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16066 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16067 pp_character instead of pp_string for single letter printing.
16068
e3606f3b
RS
160692009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16070
16071 * doc/extend.texi: Fix '#pragma GCC option' typo.
16072
c95b2534 160732009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16074
a5f061dc
RG
16075 * doc/install.texi (--enable-checking): Mention different
16076 default for stage1.
16077 (--enable-stage1-checking): Document.
00f39bd5 16078
26de0bcb
AP
160792009-01-01 Andrew Pinski <pinskia@gmail.com>
16080
16081 PR middle-end/30142
16082 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16083 case to be an error.
16084
7a7d8fab
BE
160852009-01-02 Ben Elliston <bje@au.ibm.com>
16086
16087 * config/fp-bit.h (pack_d): Constify argument.
16088 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16089 (isnan): Constify argument.
16090 (isinf): Likewise.
16091 (iszero): Likewise.
16092 (pack_d): Likewise.
16093 (_fpadd_parts): Constify return type.
16094 (_fpmul_parts): Likewise.
16095 (_fpdiv_parts): Likewise.
16096
b295aee2
JJ
160972009-01-01 Jakub Jelinek <jakub@redhat.com>
16098
16099 PR c/36489
16100 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16101 warn about overwriting initializer with side-effects or
16102 -Woverride-init if !IMPLICIT.
16103 (output_init_element): Likewise. Pass IMPLICIT down to
16104 add_pending_init.
16105 (process_init_element): Add IMPLICIT argument. Pass it down
16106 to output_init_element.
16107 (push_init_element, pop_init_level, set_designator): Adjust
16108 process_init_element callers.
16109 (set_nonincremental_init, set_nonincremental_init_from_string):
16110 Adjust add_pending_init callers.
16111 (output_pending_init_elements): Adjust output_init_element callers.
16112 * c-tree.h (process_init_element): Adjust prototype.
16113 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16114 process_init_element callers.
ad41bd84
JM
16115
16116\f
16117Copyright (C) 2009 Free Software Foundation, Inc.
16118
16119Copying and distribution of this file, with or without modification,
16120are permitted in any medium without royalty provided the copyright
16121notice and this notice are preserved.
This page took 2.283345 seconds and 5 git commands to generate.