]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6569d386
EB
12009-06-19 Eric Botcazou <ebotcazou@adacore.com>
2
3 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
4 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
5 Propagate the TREE_READONLY flag without overwriting it.
6 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
7 Propagate the TREE_READONLY flag onto the result.
8 (process_call_operands): Move around. Use correct constant value.
9
ce41c38b
RR
102009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11
12 PR target/40482
13 * config/arm/arm.c (thumb_shiftable_const): Truncate val to
14 32 bits.
15 * config/arm/arm.md: Likewise.
16
d130ae11
ILT
172009-06-19 Ian Lance Taylor <ian@airs.com>
18
19 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
20 to GIMPLE_ERROR_MARK.
21
22 * c-typeck.c (build_conditional_expr): Add op1_original_type and
23 op2_original_type parameters. Warn about using different enum
24 types.
25 * c-parser.c (c_parser_conditional_expression): Pass original
26 types to build_conditional_expr.
27 * c-tree.h (build_conditional_expr): Update declaration.
28
d4aa4f4b
ILT
292009-06-19 Ian Lance Taylor <iant@google.com>
30
31 * config/i386/i386.c (ix86_function_specific_save): Test that
32 fields match values, rather than testing the values are in a
33 certain range.
34
779704e7
RG
352009-06-19 Richard Guenther <rguenther@suse.de>
36
37 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
38 ADDR_EXPR pointers.
39 (ptr_derefs_may_alias_p): Likewise.
40 (ptr_deref_may_alias_ref_p_1): New function.
41 (ptr_deref_may_alias_ref_p): Likewise.
42 (ref_maybe_used_by_call_p_1): Handle builtins that are not
43 covered by looking at the ESCAPED solution.
44 (call_may_clobber_ref_p_1): Likewise.
45 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
46 Handle NULL_TREE offset. Do not produce redundant constraints.
47 (process_all_all_constraints): New helper function.
48 (do_structure_copy): Use it.
49 (handle_lhs_call): Likewise.
50 (find_func_aliases): Handle some builtins with pointer arguments
51 and/or return values explicitly.
52
217655da
ILT
532009-06-19 Ian Lance Taylor <iant@google.com>
54
55 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
56
50ae5fea
ILT
572009-06-19 Ian Lance Taylor <iant@google.com>
58
59 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
60
642324bb
ILT
612009-06-19 Ian Lance Taylor <iant@google.com>
62
63 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
64 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
65 version.
66
67 * c-decl.c (finish_decl): If -Wc++-compat, warn about
68 uninitialized const.
69
dc491a25
ILT
702009-06-19 Ian Lance Taylor <iant@google.com>
71
72 * dse.c (struct store_info): Rename bitmap field to bmap. Change
73 all uses.
74
75 * c-decl.c (in_struct, struct_types): Remove.
76 (struct c_binding): Add in_struct field.
77 (c_binding_ptr): Define type, along with VEC.
78 (struct c_struct_parse_info): Define.
79 (struct_parse_info): New static variable.
80 (bind): Initialize in_struct field.
81 (start_struct): Remove enclosing_in_struct and
82 enclosing_struct_types parameters. Add
83 enclosing_struct_parse_info parameter. Change all callers. Set
84 struct_parse_info rather than in_struct and struct_types.
85 (grokfield): If -Wc++-compat and there is a symbol binding for the
86 field name, set the in_struct flag and push it on the
87 struct_parse_info->fields vector.
88 (warn_cxx_compat_finish_struct): New static function.
89 (finish_struct): Remove enclosing_in_struct and
90 enclosing_struct_types parameters. Add
91 enclosing_struct_parse_info parameter. Change all callers. Don't
92 set C_TYPE_DEFINED_IN_STRUCT here. Call
93 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
94 parameter. Only push on struct_types if warn_cxx_compat.
95 (finish_enum): Only push on struct_types if warn_cxx_compat.
96 (declspecs_add_type): Add loc parameter. Change all callers.
97 Change all error calls to error_at. Pass loc, not input_location,
98 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
99 defined in a struct. If -Wc++-compat and parsing a struct, record
100 that a typedef name was used.
101 * c-parser.c (c_parser_declspecs): Get location to pass to
102 declspecs_add_type.
103 (c_parser_struct_or_union_specifier): Update calls to start_struct
104 and finish_struct.
105 * c-tree.h (struct c_struct_parse_info): Declare.
106 (finish_struct, start_struct): Update declarations.
107 (declspecs_add_type): Update declaration.
108
88eeff6f
ILT
1092009-06-19 Ian Lance Taylor <iant@google.com>
110
111 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
112 variable with an anonymous type.
113
28a876a4
UB
1142009-06-19 Uros Bizjak <ubizjak@gmail.com>
115
116 * see.c: Remove for real.
117
dc6707b8
UB
1182009-06-19 Uros Bizjak <ubizjak@gmail.com>
119
120 * optabs.h (enum optab_index): Add new OTI_significand.
121 (significand_optab): Define corresponding macro.
122 * optabs.c (init_optabs): Initialize significand_optab.
123 * genopinit.c (optabs): Implement significand_optab using
124 significand?f2 patterns.
125 * builtins.c (expand_builtin_mathfn): Handle
126 BUILT_IN_SIGNIFICAND{,F,L}.
127 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
128 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
129
130 * config/i386/i386.md (significandxf2, significand<mode>2): New
131 expanders to implement significandf, significand and significandl
132 built-ins as inline x87 intrinsics.
133
dd26af70
AS
1342009-06-18 Anatoly Sokolov <aesok@post.ru>
135
136 * config/avr/avr.c (avr_override_options): Remove setting value of
137 PARAM_INLINE_CALL_COST.
138
394bd84d
RH
1392009-06-18 Richard Henderson <rth@redhat.com>
140
141 PR 40488
142 * tree-pass.h (TDF_ASMNAME): New.
143 * tree-dump.c (dump_options): Add asmname.
144 * doc/invoke.texi: Document it.
145
146 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
147 (dump_decl_name): ...here.
148 (dump_function_name): New flags arg; mind TDF_ASMNAME.
149 (dump_generic_node): Update dump_function_name calls.
150 (print_call_name): New flags arg; update all dump calls.
151 * diagnostic.h (print_call_name): Update.
152 * gimple-pretty-print.c (dump_gimple_call): Update.
153
2a457a9b
L
1542009-06-18 H.J. Lu <hongjiu.lu@intel.com>
155
156 PR target/40470
157 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
158
fca5bb5c
DN
1592009-06-18 Diego Novillo <dnovillo@google.com>
160
161 * doc/plugins.texi: Document plugin_is_GPL_compatible.
162 * plugin.c (str_license): Declare.
163 (try_init_one_plugin): Assert that the symbol
164 'plugin_is_GPL_compatible' exists.
165
b6680d72
SD
1662009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
167
168 * see.c: Remove.
169 * Makefile.in (OBJS-common): Remove see.o.
170 (see.o): Remove.
171 * common.opt (fsee): Mark as preserved for backward compatibility.
172 * opts.c (common_handle_option): Add OPT_fsee to the backward
173 compatibility section.
174 * passes.c (init_optimization_passes, pass_see): Remove pass.
175 * timevar.def (TV_SEE): Remove.
176 * tree-pass.h (pass_see): Remove declaration.
177 * doc/invoke.texi (-fsee): Remove documentation.
b6680d72 178
2a45675f
MJ
1792009-06-18 Martin Jambor <mjambor@suse.cz>
180
181 * tree-sra.c: Include statistics.h
182 (sra_stats): New variable.
183 (sra_initialize): Clear sra_stats.
184 (create_access_replacement): Increment sra_stats.replacements.
185 (get_access_replacement): Do not return twice.
186 (analyze_all_variable_accesses): Increment statistics counter by the
187 number of scalarized aggregates.
188 (generate_subtree_copies): Increment sra_stats.subtree_copies.
189 (sra_modify_expr): Increment sra_stats.exprs.
190 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
191 (sra_modify_assign): Increment sra_stats.exprs,
192 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
193 (perform_intra_sra): Update statistics counters.
194 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
195
bdc4827b
SL
1962009-06-18 Sandra Loosemore <sandra@codesourcery.com>
197
198 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
199 (arm_scalar_mode_supported_p): New function.
200
d9dd51dc
PB
2012009-06-18 Paul Brook <paul@codesourcery.com>
202 Sandra Loosemore <sandra@codesourcery.com>
203
204 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
205 (__extendhfsf2, __truncsfhf2): Define.
206 * config/arm/fp16.c: New file.
207 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
208 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
209
0fd8c3ad
SL
2102009-06-18 Sandra Loosemore <sandra@codesourcery.com>
211
212 * doc/extend.texi (Half-Precision): New section.
213 * doc/invoke.texi (Option Summary): List -mfp16-format.
214 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
215 * config/arm/arm.opt (mfp16-format=): New.
216 * config/arm/arm.c: Include intl.h.
217 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
218 (TARGET_INVALID_RETURN_TYPE): Redefine.
219 (TARGET_PROMOTED_TYPE): Redefine.
220 (TARGET_CONVERT_TO_TYPE): Redefine.
221 (arm_fp16_format): Define.
222 (all_fpus): Add entry for neon-fp16.
223 (fp_model_for_fpu): Likewise.
224 (struct fp16_format): Declare.
225 (all_fp16_formats): Define.
226 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
227 functions.
228 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
229 and no ldrh.
230 (arm_legitimate_index_p): Treat HFmode like HImode.
231 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
232 (coproc_secondary_reload_class): Special-case HFmode.
233 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
234 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
235 (arm_init_fp16_builtins): New.
236 (arm_init_builtins): Call it.
237 (arm_invalid_parameter_type): New.
238 (arm_invalid_return_type): New.
239 (arm_promoted_type): New.
240 (arm_convert_to_type).
241 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
242 format.
243 (arm_emit_fp16_const): New function.
244 (arm_mangle_type): Mangle __fp16 as "Dh".
245 * config/arm/arm.h (TARGET_VFPD32): Make it know about
246 FPUTYPE_NEON_FP16.
247 (TARGET_NEON_FP16): New.
248 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
249 (enum fputype): Add FPUTYPE_NEON_FP16.
250 (enum arm_fp16_format_type): Declare.
251 (arm_fp16_format): Declare.
252 (LARGEST_EXPONENT_IS_NORMAL): Define.
253 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
254 * config/arm/arm-modes.def (HFmode): Define.
255 * config/arm/vfp.md: (*movhf_vfp): New.
256 (extendhfsf2): New.
257 (truncsfhf2): New.
258 * config/arm/arm.md: (fpu): Add neon_fp16.
259 (floatsihf2, floatdihf2): New.
260 (fix_trunchfsi2, fix_trunchfdi2): New.
261 (truncdfhf2): New.
262 (extendhfdf2): New.
263 (movhf): New.
264 (*arm32_movhf): New.
265 (*thumb1_movhf): New.
266 (consttable_2): Add check for HFmode constants.
267 (consttable_4): Handle HFmode constants.
268
2c2f70e1
UB
2692009-06-18 Uros Bizjak <ubizjak@gmail.com>
270
271 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
272
db4fa1c1
OH
2732009-06-17 Olivier Hainque <hainque@adacore.com>
274
275 * collect2.c (main): Use CONST_CAST2 to perform char ** to
276 const char ** conversion in AIX specific section.
277
6bec4135
L
2782009-06-17 H.J. Lu <hongjiu.lu@intel.com>
279
280 * config/i386/i386.c (ix86_special_builtin_type): Remove
281 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
282 (bdesc_special_args): Updated.
283 (ix86_init_mmx_sse_builtins): Likewise.
284 (ix86_expand_special_args_builtin): Likewise.
285
958d6d58
RH
2862009-06-17 Richard Henderson <rth@redhat.com>
287
288 * tree-pretty-print.c (maybe_dump_asm_name): New.
289 (dump_decl_name): Use it.
290 (PRINT_FUNCTION_NAME): Merge into...
291 (dump_function_name): ... here. Use maybe_dump_asm_name.
292
ed5ef2e4
CC
2932009-06-17 Cary Coutant <ccoutant@google.com>
294
295 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
296 Change caller.
297 * debug.c (struct gcc_debug_hooks): Change placeholder for
298 source_line hook.
299 (debug_nothing_int_charstar_int): Replaced by...
300 (debug_nothing_int_charstar_int_bool): ...this.
301 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
302 source_line prototype.
303 (debug_nothing_int_charstar_int): Replaced by...
304 (debug_nothing_int_charstar_int_bool): ...this.
305 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
306 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
307 Output is_stmt operand when necessary.
01a0acb7 308 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
309 (notice_source_line): Add is_stmt parameter.
310 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
311 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
312 Change callers.
313 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
314 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
315
b0f43ca0
ILT
3162009-06-17 Ian Lance Taylor <iant@google.com>
317
318 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
319 Change all uses.
320 (struct store_by_pieces_d): Rename from store_by_pieces. Change
321 call uses.
322
23314e77
AN
3232009-06-17 Adam Nemet <anemet@caviumnetworks.com>
324
325 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
326 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
327 tree_strip_sign_nop_conversions and
328 tree_ssa_strip_useless_type_conversions rather than stripping
329 the operations here.
330 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
331 Declare them.
332 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
333 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
334 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
335 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
336 functions.
337
799dbb0f
ME
3382009-06-17 Michael Eager <eager@eagercon.com>
339
c637b0fa
UB
340 * config/rs6000/constraints.md (register_constraint "d"): New.
341 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
342 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
343 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
344 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
345 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
346 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
347 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
348 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
349 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
350 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
351 __fctiwz): Same.
352 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
353 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
354 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
355 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
356 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
357 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
358 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
359 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
360 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
361 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
362 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
363 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
364 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
365 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
366
1469de3c
ILT
3672009-06-16 Ian Lance Taylor <iant@google.com>
368
369 * profile.c (total_num_never_executed): Don't define.
370 (compute_branch_probabilities): Don't count or print
371 num_never_executed.
372 (init_branch_prob): Don't set total_num_never_executed.
373 (end_branch_prob): Don't print total_num_never_executed.
374
2cb0a60d
DD
3752009-06-17 David Daney <ddaney@caviumnetworks.com>
376
c637b0fa 377 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 378
82882240
DE
3792009-06-17 David Edelsohn <edelsohn@gnu.org>
380
381 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
382 (nabstd2_fpr): Same.
383
a1a65f89
SE
3842009-06-17 Steve Ellcey <sje@cup.hp.com>
385
386 * expr.c (expand_assignment): Change complex type check.
387
07ae5620
BS
3882009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
389
390 * doc/plugins.texi (Building GCC plugins): Added new section.
391
5eb4df45
ILT
3922009-06-17 Ian Lance Taylor <iant@google.com>
393
394 * c-pch.c (get_ident): Don't set size of templ array.
395 (pch_init): Don't set size of partial_pch array.
396
397 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
398 string constant to intialize an array whose size is the length of
399 the string.
400
4d61856d
RG
4012009-06-17 Richard Guenther <rguenther@suse.de>
402
403 PR tree-optimization/40389
404 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
405 to addressable types.
406 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
407
3cb8677c
RG
4082009-06-17 Richard Guenther <rguenther@suse.de>
409
410 PR middle-end/40460
411 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
412 if there is no evolution of left in the loop bail out.
413 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
414 chrec_fold_multiply.
415
a4d99c86
R
4162009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
417 Janis Johnson <janis187@us.ibm.com>
418
419 PR target/39254
420 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
421 for the symbol ref of a constant that is the source of a move
422 - nor for any other not-obvious-label-ref constants.
423
8dd1bca0
OR
4242009-06-16 Olatunji Ruwase <tjruwase@google.com>
425
1469de3c 426 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
427 traversal to avoid repeated insertion.
428
8019538f
ILT
4292009-06-16 Ian Lance Taylor <iant@google.com>
430
431 * vec.h (VEC_stack_alloc): Define different version if
432 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
433 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
434 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
435 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
436
7c45393e
L
4372009-06-16 H.J. Lu <hongjiu.lu@intel.com>
438
439 * config.gcc (extra_headers): Add ia32intrin.h for x86.
440
441 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
442 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
443 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
444 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
445 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
446 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 447 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
448 (bdesc_special_args): Add __builtin_ia32_rdtsc and
449 __builtin_ia32_rdtscp.
450 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
451 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 452 and __builtin_ia32_rorhi.
7c45393e
L
453 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
454 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 455 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
456 (ix86_expand_args_builtin): Likewise.
457 (ix86_expand_special_args_builtin): Likewise.
458
459 * config/i386/i386.md (UNSPECV_RDTSCP): New.
460 (UNSPECV_RDTSC): Likewise.
461 (UNSPECV_RDPMC): Likewise.
c637b0fa 462 (*bsr): Renamed to ...
7c45393e 463 (bsr): This
c637b0fa 464 (*bsr_rex64): Renamed to ...
7c45393e
L
465 (bsr_rex64): This.
466 (rdpmc): New.
467 (*rdpmc): Likewise.
468 (*rdpmc_rex64): Likewise.
469 (rdtsc): Likewise.
470 (*rdtsc): Likewise.
471 (*rdtsc_rex64): Likewise.
472 (rdtscp): Likewise.
473 (*rdtscp): Likewise.
474 (*rdtscp_rex64): Likewise.
475
476 * config/i386/ia32intrin.h: New.
477
478 * config/i386/x86intrin.h: Include <ia32intrin.h>.
479
504b33d8
ILT
4802009-06-16 Ian Lance Taylor <iant@google.com>
481
482 * ira-build.c (copy_info_to_removed_store_destinations):
483 Initialize parent_a.
484
f9551830
ILT
4852009-06-16 Ian Lance Taylor <iant@google.com>
486
487 * c-decl.c (grokdeclarator): Change size_varies to bool.
488
c32e2175
ILT
4892009-06-16 Ian Lance Taylor <iant@google.com>
490
491 * sel-sched.c: Make forward declarations of move_op_hooks and
492 fur_hooks explicitly extern.
493
415a06c2
ILT
4942009-06-16 Ian Lance Taylor <iant@google.com>
495
c637b0fa 496 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
497 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
498
675f99c9
ILT
4992009-06-16 Ian Lance Taylor <iant@google.com>
500
501 * resource.c (mark_referenced_resources): Change
502 include_delayed_effects parameter to bool. Change all callers.
503 (mark_end_of_function_resources): Likewise.
504 * reorg.c (insn_references_resource_p): Likewise.
505 (insn_sets_resource_p): Likewise.
506 * resource.h (mark_referenced_resources): Update declaration.
507 (mark_end_of_function_resources): Update declaration.
508
a322799d
DE
5092009-06-16 David Edelsohn <edelsohn@gnu.org>
510
511 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
512
c58c92f5
DE
5132009-06-16 David Edelsohn <edelsohn@gnu.org>
514
515 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
516 GCC can bootstrap on AIX with GNU Binutils 2.20.
517
95228603
ILT
5182009-06-16 Ian Lance Taylor <iant@google.com>
519
520 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
521
9c727c9a
ILT
5222009-06-16 Ian Lance Taylor <iant@google.com>
523
524 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
525 inline, not extern inline.
526 (exact_log2): Likewise.
527 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
528 test CLZ_HWI.
529 (exact_log2): Likewise, but don't test CTZ_HWI.
530
5fd8300b
ILT
5312009-06-16 Ian Lance Taylor <iant@google.com>
532
533 * bitmap.c (bitmap_clear): Don't declare as inline.
534 * gimple.c (gimplify_assign): Likewise.
535 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
536 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
537 (sched_scan_info): Remove duplicate definition.
538
7d882b83
ILT
5392009-06-16 Ian Lance Taylor <iant@google.com>
540
541 * c-common.c (skip_evaluation): Don't define.
542 (c_inhibit_evaluation_warnings): Define global variable.
543 (overflow_warning): Check c_inhibit_evaluation_warnings rather
544 than skip_evaluation.
545 (convert_and_check, warn_for_div_by_zero): Likewise.
546 * c-common.h (skip_evaluation): Don't declare.
547 (c_inhibit_evaluation_warnings): Declare.
548 * c-parser.c (c_parser_typeof_specifier): Set
549 c_inhibit_evaluation_warnings rather than skip_evaluation.
550 (c_parser_conditional_expression): Likewise.
551 (c_parser_binary_expression): Likewise.
552 (c_parser_sizeof_expression): Likewise.
553 (c_parser_alignof_expression): Likewise.
554 * c-typeck.c (build_indirect_ref): Check
555 c_inhibit_evaluation_warnings rather than skip_evaluation.
556 (build_conditional_expr, build_binary_op): Likewise.
557
2e407842
RG
5582009-06-16 Richard Guenther <rguenther@suse.de>
559
560 * tree-ssa-alias.c (is_escape_site): Remove.
561 * tree-ssa-alias.h (enum escape_type): Remove.
562 (is_escape_site): Likewise.
563 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
564 via casts and asms without deferring to is_escape_site.
565
f2ff8872
JJ
5662009-06-16 Jakub Jelinek <jakub@redhat.com>
567
568 PR middle-end/40446
569 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
570 use gen_lowpart if op0 has complex mode.
571
de70bb20
RG
5722009-06-16 Richard Guenther <rguenther@suse.de>
573
574 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
575 variables add them to ESCAPED.
c637b0fa 576 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 577
daa0eeb8
RAE
5782009-06-16 Rafael Avila de Espindola <espindola@google.com>
579
580 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
581 make_decl_one_only.
582
0ec19b8c
MJ
5832009-06-16 Martin Jambor <mjambor@suse.cz>
584
585 PR tree-optimization/40432
586 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
587 check whether we need to force gimple register operand.
588
2b26b801
MJ
5892009-06-16 Martin Jambor <mjambor@suse.cz>
590
591 PR tree-optimization/40413
592 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
593 build_ref_for_offset.
594 (propagate_subacesses_accross_link): Fix a typo in a comment.
595
7c5222ff
IR
5962009-06-16 Ira Rosen <irar@il.ibm.com>
597
598 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
599 with additional parameter.
c637b0fa 600 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
601 vect_nested_cycle.
602 (enum vect_relevant): Add comments.
603 (vect_is_simple_reduction): Add new argument.
604 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
605 Detect nested cycles.
606 (vect_is_simple_reduction): Update documentation, add an argument to
607 distinguish inner-loop reduction from nested cycle, detect nested
608 cycles, fix printings and indentation, don't swap operands in case
609 of nested cycle.
610 (get_initial_def_for_reduction): Handle subtraction.
611 (vect_create_epilog_for_reduction): Add new argument to specify
612 reduction variable.
613 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
614 (vectorizable_reduction): Handle nested cycles. In case of nested
615 cycle keep track of the reduction variable position. Call
7c5222ff
IR
616 vect_is_simple_reduction with additional parameter. Use original
617 statement code in reduction epilogue for nested cycle. Call
618 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
619 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
620 inner-loop vectorization.
7c5222ff
IR
621 (vect_recog_widen_sum_pattern): Likewise.
622 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
623 and reductions.
624 (vect_mark_stmts_to_be_vectorized): Likewise.
625 (vect_get_vec_def_for_operand): Handle nested cycles.
626
d376d545
RW
6272009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
628
629 * doc/invoke.texi (Debugging Options): Fix option index entries
630 for -fdump-statistics, -frandom-seed add entries for
631 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
632 (FRV Options): Fix entries for -mTLS, -mtls.
633 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
634 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
635 (M68hc1x Options): Fix @itemx for -mnominmax.
636 (MCore Options): Fix entry for -mno-lsim.
637 (MMIX Options): Fix entry for -mabi=mmixware.
638 (PDP-11 Options): Fix entry for -mbcopy-builtin.
639
bd117bb6
BS
6402009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
641
642 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
643 Mention the plugin mode of gengtype.
c637b0fa 644 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
645 * gengtype.c: Updated copyright.
646 (plugin_files, nb_plugin_files) Added new static variables.
647 (measure_input_list) Care about plugin_files.
648 (write_rtx_next): Added early return in plugin mode.
649 (create_file): Updated copyright year in generated file. Added
650 asserts.
651 (oprintf): Added early return if NULL outf.
652 (get_output_file_with_visibility): Care of plugin_files.
653 (get_output_file_name): May return null.
654 (write_local): Added early return.
655 (put_mangled_filename): Ditto.
656 (finish_root_table): Added check for base_files.
657 (write_roots): Care about null when plugins.
658 (main): Added plugin mode.
659
e1b7793c
ILT
6602009-06-15 Ian Lance Taylor <iant@google.com>
661
c637b0fa 662 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
663 * gcov.c (read_count_file): Add braces around variables declared
664 before label.
665
666 * c.opt (Wjump-misses-init): New warning.
667 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
668 -Wall and -Wc++-compat if not already set.
669 (c_common_post_options): Clear warn_jump_misses_init if it was not
670 set.
671 * c-decl.c (struct c_binding): Change type field to a union with
672 new label field. Make it the first field in the struct. Update
673 references to type to use u.type instead.
674 (struct c_spot_bindings): Define.
675 (struct c_goto_bindings): Define.
676 (c_goto_bindings_p): Define, along with VECs.
677 (struct c_label_vars): Define.
678 (struct c_scope): Add has_label_bindings field.
679 (bind_label, set_spot_bindings): New static functions.
680 (decl_jump_unsafe, update_spot_bindings): New static functions.
681 (update_label_decls): New static function.
682 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
683 Update binding u.label field to shadowed field.
684 (c_binding_start_stmt_expr): New function.
685 (c_binding_end_stmt_expr): New function.
686 (pushdecl): Don't call c_begin_vm_scope.
687 (make_label): Add defining and p_label_vars parameters. Change
688 all callers.
689 (lookup_label): Correct test for whether a label has not yet been
690 defined. Call bind_label rather than bind.
691 (warn_about_goto): New static function.
692 (lookup_label_for_goto): New function.
693 (declare_label): Call bind_label rather than bind.
694 (check_earlier_gotos): New static function.
695 (define_label): Don't give errors about jumping into statement
696 expressions or scopes of variably modified types. Call
697 set_spot_bindings and check_earlier_gotos. Call bind_label
698 instead of bind. Don't set label_context_stack_se or
699 label_context_stack_vm.
700 (c_get_switch_bindings): New function.
701 (c_release_switch_bindings): New function.
702 (c_check_switch_jump_warnings): New function.
703 (start_function): Don't set label_context_stack_se or
704 label_context_stack_vm.
705 (finish_function): Likewise.
706 * c-typeck.c (label_context_stack_se): Don't define.
707 (label_context_stack_vm): Don't define.
708 (c_finish_goto_label): Call lookup_label_for_goto rather than
709 lookup_label. Don't give errors about jumping into a statement
710 expression or the scope of a variably modified type. Don't set
711 label_context_stack_se or label_context_stack_vm.
712 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
713 fields. Add bindings field.
714 (c_start_case): Don't set deleted fields. Set bindings field.
715 (do_case): Rework order of tests. Don't check blocked_stmt_expr
716 or blocked_vm. Call c_check_switch_jump_warnings.
717 (c_finish_case): Don't test blocked_stmt_expr field. Call
718 c_release_switch_bindings.
719 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
720 c_switch_stack. Don't walk label_context_stack_se labels. Don't
721 set label_context_stack_se. Call c_bindings_start_stmt_expr.
722 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
723 c_switch_stack. Don't walk label_context_stack_se labels. Don't
724 set label_context_stack_se. Call c_bindings_end_stmt_expr.
725 (c_begin_vm_scope, c_end_vm_scope): Don't define.
726 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
727 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
728 (C_DECL_UNJUMPABLE_VM): Don't define.
729 (C_DECL_UNDEFINABLE_VM): Don't define.
730 (struct c_label_list): Don't define.
731 (struct c_label_context_se): Don't define.
732 (struct c_label_context_vm): Don't define.
733 (struct c_spot_bindings): Declare.
734 (c_bindings_start_stmt_expr): Declare.
735 (c_bindings_end_stmt_expr): Declare.
736 (lookup_label_for_goto): Declare.
737 (c_get_switch_bindings, c_release_switch_bindings): Declare.
738 (c_check_switch_jump_warnings): Declare.
739 (label_context_stack_se, label_context_stack_vm): Don't declare.
740 (c_finish_goto_label): Update declaration.
741 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
742 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
743 (Warning Options): Document -Wjump-misses-init.
744
98a129b9
JJ
7452009-06-15 Jakub Jelinek <jakub@redhat.com>
746
747 * tree-object-size.c (addr_object_size): Fix a pasto in the last
748 change.
749
19751f1f
RAE
7502009-06-15 Rafael Avila de Espindola <espindola@google.com>
751
752 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
753
d40eb158
AH
7542009-06-15 Aldy Hernandez <aldyh@redhat.com>
755
756 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
757
7582009-06-15 Aldy Hernandez <aldyh@redhat.com>
759
760 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
761
fc26fae3
RAE
7622009-06-15 Rafael Avila de Espindola <espindola@google.com>
763
764 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
765 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
766 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
767 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
768 * dwarf2asm.c (dw2_force_const_mem): Update call to
769 make_decl_one_only.
fc26fae3
RAE
770 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
771 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
772 * langhooks.c (lhd_comdat_group): Remove.
773 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
774 * tree.h (DECL_COMDAT_GROUP): New.
775 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
776 (tree_decl_with_vis): Add comdat_group. Remove one_only.
777 (make_decl_one_only): Change signature.
778 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
779 make_decl_one_only.
780 (make_decl_one_only): Change signature.
781 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
782
0eb92735
RG
7832009-06-15 Richard Guenther <rguenther@suse.de>
784
785 PR middle-end/40439
786 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
787
0ab352d5
AK
7882009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
789
790 * tree-ssa-math-opts.c: Remove extra divide.
791
677fbff4
AK
7922009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
793
794 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
795
03bd2f1a
AK
7962009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
797
798 * passes.c: Add bswap pass.
799 * tree-pass.h: Add pass_optimize_bswap declaration.
800 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
801 Include rtl.h, expr.h and optabs.h for optab_handler check.
802 (struct symbolic_number, pass_optimize_bswap): New definition.
803 (do_shift_rotate, verify_symbolic_number_p): New functions.
804 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
805 (gate_optimize_bswap): New function.
806 * tree.c (widest_int_cst_value): New function.
807 * tree.h (widest_int_cst_value): Prototype added.
808
fb4c4640
SB
8092009-06-14 Steven Bosscher <steven@gcc.gnu.org>
810
811 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
812 REG_EQUAL/REG_EQUIV notes.
813
1d24fdd9
RG
8142009-06-14 Richard Guenther <rguenther@suse.de>
815
816 PR middle-end/40389
817 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
818 has its address taken if NRV was applied and it is addressable.
819 * tree-ssa-structalias.c (get_constraint_for_address_of): New
820 function split out from ...
821 (get_constraint_for_1): ... here.
822 (handle_rhs_call): Use it to mark the return slot escaped if
823 it is addressable and NRV was applied.
824
4b29c5e5
AH
8252009-06-13 Aldy Hernandez <aldyh@redhat.com>
826
827 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
828 Change first argument type to location_t.
829 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
830 Do not set input_location.
831 Use loc instead of input_location throughout.
832
e1e6dc73
RG
8332009-06-13 Richard Guenther <rguenther@suse.de>
834
1d24fdd9 835 PR tree-optimization/40421
e1e6dc73
RG
836 * tree-predcom.c (should_unroll_loop_p): Remove.
837 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
838
8012b923
MM
8392009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
840
841 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
842 Add location argument.
843
4c4bde29
AH
8442009-06-13 Aldy Hernandez <aldyh@redhat.com>
845
846 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
847 build_decl.
848 * config/s390/s390.c (s390_build_builtin_va_list): Same.
849 (s390_gimplify_va_arg): Pass location to create_artificial_label.
850 * config/spu/spu-protos.h: Add location to
851 spu_resolve_overloaded_builtin.
852 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
853 spu_build_builtin_va_list.
854 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
855 argument. Pass location to build_function_call_vec.
856 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
857 build_decl.
858 (emit_fpu_switch): Same.
859 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
860 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
861 to build_decl and create_artificial_label.
862 (xtensa_gimplify_va_arg_expr): Same.
863 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
864 (xstormy16_gimplify_va_arg_expr): Same.
865 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
866 * config/arm/arm.c (arm_build_builtin_va_list): Same.
867 * config/mips/mips.c (mips_build_builtin_va_list): Same.
868 (mips16_build_function_stub): Same.
869 (mips16_build_call_stub): Same.
870
81beb031
RE
8712009-06-13 Richard Earnshaw <rearnsha@arm.com>
872
873 PR target/40327
874 * arm/constraints.md (Pa, Pb): New constraints.
875 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
876 split pattern to deal with them.
877
98f6c600
JS
8782009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
879
880 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
881 fix index entry for -Xpreprocessor.
882
71856685
AH
8832009-06-12 Aldy Hernandez <aldyh@redhat.com>
884
885 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
886 Add location argument to build_decl call.
887 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
888 (rs6000_init_builtins): Same.
889 (spe_init_builtins): Same.
890 (rs6000_gimplify_va_arg): Add location argument to
891 create_artificial_label call.
892
756b65f5
SB
8932009-06-12 Steven Bosscher <steven@gcc.gnu.org>
894
895 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
896 * combine-stack-adj.c (pass_stack_adjustments): Use it.
897 * Makefile.in: Fix GGC dependency for gcse.o.
898
c2255bc4
AH
8992009-06-12 Aldy Hernandez <aldyh@redhat.com>
900
901 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
902 * gimple-pretty-print.c (dump_gimple_stmt): Same.
903 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
904 created.
905 * c-parser.c (c_parser_binary_expression): Use current column while
906 building binary operations.
907 * common.opt (fshow-column): Enable by default.
908 * tree-vrp.c (check_array_ref): Use warning_at.
909 (check_array_bounds): Use location from call back if expr has no
910 location.
911 * tree.h: Add location argument to maybe_fold_*.
912 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
913 (maybe_fold_offset_to_array_ref): Add location argument and use it.
914 (maybe_fold_offset_to_component_ref): Same.
915 (maybe_fold_offset_to_reference): Same.
916 (maybe_fold_offset_to_address): Same.
917 (maybe_fold_stmt_indirect): Same.
918 (maybe_fold_stmt_addition): Same.
919 (fold_stmt_r): Pass location to maybe_fold_*.
920 (fold_gimple_assign): Same.
921 * c-tree.h: Add location argument to finish_decl,
922 default_function_array_conversion, store_init_value.
923 * c-decl.c (define_label): Use error_at.
924 (c_make_fname_decl): Pass location to finish_decl.
925 (finish_decl): New location argument.
926 (build_compound_literal): Pass location to store_init_value.
927 (grokdeclarator): Pass location to finish_decl.
928 (grokfield): Same.
929 * c-typeck.c (array_to_pointer_conversion): New location argument.
930 (function_to_pointer_conversion): Same.
931 (default_function_array_conversion): Same.
932 (parser_build_unary_op): Pass location to overflow_warning.
933 (parser_build_binary_op): Same. Use warning_at.
934 (build_unary_op): Pass location to array_to_pointer_conversion.
935 (build_c_cast): Pass location to digest_init.
936 (build_modify_expr): New location argument.
937 (convert_for_assignment): Same.
938 (store_init_value): Same.
939 (digest_init): Same.
940 (output_init_element): Pass location to digest_init and
941 array_to_pointer_conversion.
942 (c_finish_return): Pass location to convert_for_assignment.
943 * gimplify.c (gimplify_conversion): Pass location to
944 maybe_fold_offset_to_address.
945 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
946 to maybe_fold_stmt_addition.
947 * c-omp.c (c_finish_omp_atomic): Pass new location to
948 build_modify_expr.
949 (c_finish_omp_for): Same.
950 * c-common.c (overflow_warning): New argument.
951 * c-common.h: New argument to build_modify_expr, overflow_warning.
952 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
953 finish_decl.
954 (c_parser_initializer): Pass location to
955 default_function_array_conversion.
956 (c_parser_initelt): Same.
957 (c_parser_initval): Same.
958 (c_parser_asm_operands): Same.
959 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
960 (c_parser_conditional_expression): Same.
961 (c_parser_binary_expression): Add location info to stack. Use it.
962 (c_parser_unary_expression): Pass location to
963 default_function_array_conversion, parser_build_unary_op,
964 build_indirect_ref, c_parser_postfix_expression_after_primary.
965 (c_parser_postfix_expression_after_primary): New location argument.
966 Use it.
967 (c_parser_expression_conv): Pass location to
968 default_function_array_conversion.
969 (c_parser_expr_list): Same.
970 (c_parser_omp_atomic): Same.
971 (c_parser_omp_for_loop): Same.
972 * c-tree.h: (struct c_declarator): Add comment to id_loc.
973 (build_array_declarator): New argument.
974 * c-decl.c (build_array_declarator): Add location argument.
975 (grokdeclarator): Set id_loc for cdk_array.
976 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
977 build_array_declarator.
978 * tree.c (build_omp_clause): Add location argument.
979 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
980 (OMP_CLAUSE_LOCATION): New macro.
981 (struct tree_omp_clause): Add location field.
982 (build_omp_clause): Add argument.
983 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
984 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
985 build_omp_clause.
986 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
987 (cp_parser_omp_clause_collapse): Same.
988 (cp_parser_omp_clause_default): Same.
989 (cp_parser_omp_clause_if): Same.
990 (cp_parser_omp_clause_nowait): Same.
991 (cp_parser_omp_clause_num_threads): Same.
992 (cp_parser_omp_clause_ordered): Same.
993 (cp_parser_omp_clause_schedule): Same.
994 (cp_parser_omp_clause_untied): Same.
995 (cp_parser_omp_for_loop): Same.
996 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
997 * c-tree.h (c_start_case): Add location argument.
998 (c_process_expr_stmt): Same.
999 (c_finish_goto_*): Same.
1000 * tree-parloops.c (initialize_reductions): Pass location to
1001 build_omp_clause.
1002 (create_parallel_loop): Same.
1003 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1004 (gfc_trans_omp_reduction_list): Same.
1005 (gfc_trans_omp_clauses): Same.
1006 (gfc_trans_omp_do): Same.
1007 * c-typeck.c (c_finish_goto_label): Same.
1008 (c_finish_goto_ptr): New location argument.
1009 (c_start_case): Same.
1010 (emit_side_effect_warnings): Same.
1011 (c_process_expr_stmt): Same.
1012 (c_finish_stmt_expr): Same.
1013 (c_finish_omp_clauses): Use error_at instead of error.
1014 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1015 build_omp_clause.
1016 * c-omp.c (c_split_parallel_clauses): New location argument.
1017 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1018 to build_omp_clause.
1019 (convert_local_reference_stmt): Same.
1020 (convert_gimple_call): Same.
1021 * c-common.h (c_split_parallel_clauses): New argument.
1022 * c-parser.c (c_parser_statement_after_labels): Pass location to
1023 c_finish_goto_label.
1024 (c_parser_switch_statement): Pass location to c_start_case.
1025 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1026 and c_process_expr_stmt.
1027 (c_parser_omp_variable_list): Add location argument.
c637b0fa 1028 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
1029 (c_parser_omp_clause_default): Same.
1030 (c_parser_omp_clause_if): Same.
1031 (c_parser_omp_clause_num_threads): Same.
1032 (-c_parser_omp_clause_ordered): Same.
1033 (c_parser_omp_clause_reduction): Pass location to
1034 c_parser_omp_variable_list.
1035 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1036 (c_parser_omp_clause_untied): Same.
1037 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 1038 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
1039
1040 * c-tree.h (check_for_loop_decls, undeclared_variable,
1041 build_component_ref, build_array_ref, build_external_ref,
1042 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1043 build_conditional_expr, build_compound_expr, c_cast_expr,
1044 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1045 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1046 argument.
1047 * c-semantics.c (build_stmt): Same.
1048 (build_case_label): Same.
1049 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1050 (undeclared_variable): New argument.
1051 (make_label): Same.
1052 (lookup_label): Pass location on down.
1053 (define_label): Same.
1054 (finish_decl): Same.
1055 (build_compound_literal): Same.
1056 (finish_struct): Same.
1057 (finish_function): Do not set location here.
1058 (check_for_loop_decls): New argument.
1059 * tree.c (save_expr): Set location.
1060 (build_empty_stmt): New argument.
1061 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1062 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1063 * builtins.c (gimplify_va_arg_expr): Use locations.
1064 (expand_builtin_sync_operation): Same.
1065 * c-typeck.c (build_component_ref): New argument.
1066 (build_array_ref): Same.
1067 (build_external_ref): Same.
1068 (c_expr_sizeof_expr): Same.
1069 (c_expr_sizeof_type): Same.
1070 (parser_build_unary_op): Same.
1071 (build_conditional_expr): Same.
1072 (build_compound_expr): Pass location on down.
1073 (build_compound_expr): New argument.
1074 (build_c_cast): Same.
1075 (c_cast_expr): Same.
1076 (build_asm_expr): Same.
1077 (c_finish_return): Same.
1078 (c_process_expr_stmt): Pass location on down.
1079 (c_finish_stmt_expr): New argument.
1080 (push_clenaup): Same.
1081 (c_finish_omp_parallel): Same.
1082 (c_finish_omp_task): Same.
1083 * gimplify.c (gimplify_call_expr): Pass location on down.
1084 * c-omp.c (c_finish_omp_master): New argument.
1085 (c_finish_omp_critical): Same.
1086 (c_finish_omp_ordered): Same.
1087 (c_finish_omp_barrier): Same.
1088 (-c_finish_omp_taskwait): Same.
1089 (c_finish_omp_atomic): Same.
1090 (c_finish_omp_flush): Same.
1091 * tree-inline.c (copy_tree_body_r): Pass location on down.
1092 (inline_forbidden_p): Remove use of input_location.
1093 * c-gimplify.c (c_build_bind_expr): New argument.
1094 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1095 (c_sizeof_or_alignof_type): New argument.
1096 (c_alignof_expr): Same.
1097 (build_va_arg): Same.
1098 (c_add_case_label): Same.
1099 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1100 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1101 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1102 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1103 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1104 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1105 New argument.
1106 * stub-objc.c (objc_build_selector_expr): Same.
1107 (objc_build_throw_stmt): Same.
1108 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1109 (c_parser_initelt): Same.
1110 (c_parser_compound_statement): Same.
1111 (c_parser_compound_statement_nostart): Same.
1112 (c_parser_label): Same.
1113 (c_parser_statement_after_labels): Same.
1114 (c_parser_if_body): Same.
1115 (c_parser_else_body): Same.
1116 (c_parser_if_statement): Same.
1117 (c_parser_switch_statement): Same.
1118 (c_parser_while_statement): Same.
1119 (c_parser_do_statement): Same.
1120 (c_parser_for_statement): Same.
1121 (c_parser_asm_statement): Same.
1122 (c_parser_conditional_expression): Same.
1123 (c_parser_binary_expression): Same.
1124 (c_parser_cast_expression): Same.
1125 (c_parser_unary_expression): Same.
1126 (c_parser_sizeof_expression): Same.
1127 (c_parser_alignof_expression): Same.
1128 (c_parser_postfix_expression): Same.
1129 (c_parser_expression): Same.
1130 (c_parser_objc_receiver): Same.
1131 (c_parser_omp_variable_list): Same.
1132 (c_parser_omp_structured_block): Same.
1133 (c_parser_omp_atomic): New argument.
1134 (c_parser_omp_barrier): Same.
1135 (c_parser_omp_critical): Same.
1136 (c_parser_omp_flush): Pass location on down.
1137 (c_parser_omp_for_loop): New argument.
1138 (c_parser_omp_for): Same.
1139 (c_parser_omp_master): Same.
1140 (c_parser_omp_ordered): Same.
1141 (c_parser_omp_sections_scope): Same.
1142 (c_parser_omp_sections): Same.
1143 (c_parser_omp_parallel): Same.
1144 (c_parser_omp_single): Same.
1145 (c_parser_omp_task): Same.
1146 (c_parser_omp_taskwait): Pass location on down.
1147 (c_parser_omp_construct): Same.
1148 (c_parser_omp_threadprivate): Same.
1149 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1150 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1151 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1152 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1153 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1154 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1155 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1156 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1157 config/i386/i386.c, stmt.c:
1158 Add location argument to the following function definitions and/or
1159 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1160 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1161 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1162 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1163 do_case, c_finish_bc_stmt, build_compound_literal,
1164 build_function_call.
1165 * c-decl.c (build_compound_literal): Add location argument.
1166 Make all diagnostic calls use location.
1167 (start_struct): Same.
1168 (finish_struct): Same.
1169 (start_enum): Same.
1170 (build_enumerator): Same.
1171 (start_function): Same.
1172 (grokdeclarator): Make all diagnostic calls use location.
1173 (store_parm_decls_oldstyle): Same.
1174 * c-typeck.c (build_function_call): Add location argument.
1175 Make all diagnostic calls use location.
1176 (do_case): Same.
1177 (c_finish_bc_stmt): Same.
1178 * tree-nested.c (get_trampoline_type): Add argument.
1179 Pass location to build_decl.
1180 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1181 * rtl.h (RTL_LOCATION): New.
1182 * c-common.c (c_add_case_label): Add location argument.
1183 Make all diagnostic calls use location.
1184 * c-common.h: Add location argument to make_fname_decl, do_case,
1185 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1186 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1187 Set it appropriately for every case. Pass enum_loc to start_enum
1188 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1189 parser_xref_tag.
1190 (c_parser_struct_or_union_specifier): Save location. Use it for
1191 start_struct, finish_struct, and parser_xref_tag.
1192
3d8b2a98
ILT
11932009-06-12 Ian Lance Taylor <iant@google.com>
1194
c637b0fa 1195 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1196
1197 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1198 cpp_opts->warn_cxx_operator_names.
1199
737142ce
AP
12002009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1201
1202 PR tree-opt/38865
1203 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1204 is returns NULL and OP is a VCE, look through the VCE.
1205
d3a0d55d
ILT
12062009-06-12 Ian Lance Taylor <iant@google.com>
1207
1208 PR bootstrap/40430
1209 * collect2.c (main): Use CONST_CAST2 in code inside #if
1210 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1211
f85882d8
JY
12122009-06-12 Joey Ye <joey.ye@intel.com>
1213
1214 PR middle-end/39146
1215 * cfgexpand.c (get_decl_align_unit): Update
1216 max_used_stack_slot_alignment with align instead of
1217 stack_alignment_needed.
1218
1219 * function.c (assign_stack_local_1): Update
1220 max_used_stack_slot_alignment with alignment_in_bits instead
1221 of stack_alignment_needed.
1222 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1223 here.
1224
fc9f468b
JJ
12252009-06-12 Jakub Jelinek <jakub@redhat.com>
1226
1227 * dwarf2out.c (last_var_location_insn): New variable.
1228 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1229 (dwarf2out_var_location): Don't record anything after last real
1230 insn. Only change labels if there were any real instructions
1231 in between last note and this one, or if changed sections.
1232
7c1db202
RH
12332009-06-11 Richard Henderson <rth@redhat.com>
1234
f85882d8 1235 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1236 note when storing the frame pointer in a register.
1237 (FRP): Don't redefine to nothing for epilogue.
1238 (alpha_expand_epilogue): Mark register and sp restores.
1239 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1240
7c1db202
RH
1241 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1242 when gen_lowpart is needed.
1243
f2ae7631
RH
12442009-06-11 Richard Henderson <rth@redhat.com>
1245
42755c21
RH
1246 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1247
f2ae7631
RH
1248 * dwarf2out.c (need_data_align_sf_opcode): New.
1249 (div_data_align): Move earlier.
1250 (def_cfa_1, reg_save): Use it.
1251
8ed0ce99
L
12522009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1253
1254 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1255 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1256 (ix86_handle_option): Handle OPT_mcrc32.
1257 (ix86_target_string): Add -mcrc32.
1258 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1259
1260 * config/i386/i386.h (TARGET_CRC32): New.
1261
c637b0fa 1262 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1263 (sse4_2_crc32di): Likewise.
1264
c637b0fa 1265 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1266
1267 * doc/invoke.texi: Document -mcrc32.
1268
9fd68a1f
RH
12692009-06-11 Richard Henderson <rth@redhat.com>
1270
8ed0ce99 1271 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1272 * doc/invoke.texi (gdwarf-): Update docs.
1273 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1274 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1275 version level, and record it.
1276
1277 * dwarf2.h (DW_CIE_VERSION): Remove.
1278 * dwarf2out.c (DWARF_VERSION): Remove.
1279 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1280 (output_call_frame_info): Use CIE version 3 for dwarf3,
1281 or if the return register column is out of range for version 1.
1282 (dwarf_stack_op_name): Add all dwarf3 values.
1283 (DEBUG_PUBTYPES_SECTION): New.
1284 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1285 encoding change for dwarf3.
1286 (output_die) [dw_val_class_die_ref]: Likewise.
1287 (output_compilation_unit_header): Emit correct version for dwarf3.
1288 (output_line_info): Likewise.
1289 (output_pubnames): Update for DWARF_VERSION removal.
1290 (output_aranges): Likewise.
1291 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1292 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1293 (dwarf2out_finish): Likewise.
1294
4de8ce3b
DD
12952009-06-11 David Daney <ddaney@caviumnetworks.com>
1296
1297 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1298 in r148403.
1299
468059bc
DD
13002009-06-11 David Daney <ddaney@caviumnetworks.com>
1301
1302 PR c/39252
1303 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1304 * builtins.c (expand_builtin_unreachable): New function.
1305 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1306 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1307 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1308 successors.
1309 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1310 searching for missing barriers.
1311
b5a6e96f
FXC
13122009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1313
1314 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1315 when -fprofile-generate* was passed.
1316 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1317
6be6462e
AG
13182009-06-11 Anthony Green <green@moxielogic.com>
1319
c637b0fa 1320 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1321 (rCC): Define.
1322 (*b<cond:code>): Support limited branch ranges for new PC-relative
1323 branch instructions.
1324 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1325
caaabe0a
JJ
13262009-06-11 Jakub Jelinek <jakub@redhat.com>
1327
e5219642
JJ
1328 * config/i386/i386.c (min_insn_size): Use get_attr_length
1329 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1330 For __asm return 0.
1331
caaabe0a
JJ
1332 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1333 instead of emit_insn_before.
1334
a567fa6a
ILT
13352009-06-10 Ian Lance Taylor <iant@google.com>
1336
1337 PR bootstrap/40408
1338 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1339 GIMPLE_SWITCH.
1340
6a753d5f
RE
13412009-06-10 Revital Eres <eres@il.ibm.com>
1342
1343 * passes.c (init_optimization_passes): Reschedule
1344 predictive-commoning pass before complete unroll pass.
1345
a550d677
MJ
13462009-06-10 Martin Jambor <mjambor@suse.cz>
1347
1348 * cgraph.c (cgraph_node_can_be_local_p): New function.
1349 (cgraph_make_node_local): New function.
1350 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1351 (cgraph_make_node_local): Declare.
1352
d8259b07
NF
13532009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1354
1355 * tree.h (tree_base): Add packed_flag and user_align fields.
1356 Decrease size of spare field.
1357 (TYPE_USER_ALIGN): Use user_align from tree_base.
1358 (DECL_USER_ALIGN): Likewise.
1359 (TYPE_PACKED): Use packed_flag from tree_base.
1360 (DECL_PACKED): Likewise.
1361 (tree_type): Delete packed_flag and user_align fields. Widen
1362 precision field. Widen mode field and shuffle fields to align
1363 mode on an 8-bit boundary.
1364 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1365 Renumber decl_flag_* fields. Fix comments. Widen
1366 decl_common_unused field.
c637b0fa 1367 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1368 (DECL_EXTERNAL): Likewise.
1369 (DECL_BIT_FIELD): Likewise.
1370 (DECL_NONADDRESSABLE_P): Likewise.
1371 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1372 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1373
c2569604
ILT
13742009-06-10 Ian Lance Taylor <iant@google.com>
1375
1376 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1377 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1378 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1379 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1380 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1381 DEF_VEC_ALLOC_FUNC_P.
1382 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1383 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1384 DEF_VEC_ALLOC_FUNC_O.
1385 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1386 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1387 DEF_VEC_ALLOC_FUNC_I.
1388 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1389 (vec_stack_p_reserve_exact_1): Declare.
1390 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1391 (vec_stack_free): Declare.
1392 (VEC_stack_alloc): Define.
1393 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1394 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1395 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1396 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1397 for void_p.
1398 (stack_vecs): New static variable.
1399 (vec_stack_p_reserve_exact_1): New function.
1400 (vec_stack_o_reserve_1): New static function.
1401 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1402 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1403 (vec_stack_free): New function.
1404 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1405 (VEC_df_ref_stack_alloc): Define.
1406 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1407 DEF_VEC_ALLOC_P_STACK.
1408 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1409 (struct df_collection_rec): Change _vec fields to VEC. Remove
1410 _use fields.
1411 (df_free_collection_rec): Adjust for new fields.
1412 (df_insn_rescan): Use new df_collection_rec fields.
1413 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1414 (df_ref_create_structure, df_ref_record): Likewise.
1415 (df_get_conditional_uses, df_get_call_refs): Likewise.
1416 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1417 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1418 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 1419 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
1420 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1421 Remove count parameter. Change return type to void. Change all
1422 callers.
1423 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1424 Remove count parameter. Change return type to void. Change all
1425 callers.
1426 (df_install_refs): Change old_vec parameter to VEC. Remove count
1427 parameter. Change all callers.
1428 (df_install_mws): Change old_vec parameter to VEC. Remove count
1429 parameter. Change all callers.
1430 (df_refs_verify): Change new_rec parameter to VEC. Change call
1431 callers.
1432 (df_mws_verify): Likewise.
1433
e7aae3e8
AO
14342009-06-10 Alexandre Oliva <aoliva@redhat.com>
1435
1436 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1437
412ac8d5
L
14382009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1439
1440 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1441
cceb575c
AG
14422009-06-10 Anthony Green <green@moxielogic.com>
1443
1444 * config/moxie/crti.asm: New file.
1445 * config/moxie/crtn.asm: New file.
1446 * config/moxie/moxie.c: New file.
1447 * config/moxie/moxie.h: New file.
1448 * config/moxie/sfp-machine.h: New file.
1449 * config/moxie/moxie-protos.h: New file.
1450 * config/moxie/t-moxie: Created.
1451 * config/moxie/t-moxie-softfp: Created.
1452 * config/moxie/moxie.md: Created.
1453 * config/moxie/constraints.md: Created.
1454 * config.gcc: Add moxie support.
1455 * doc/md.texi (Machine Constraints): Add moxie constraints.
1456 * doc/contrib.texi (Contributors): Mention moxie port.
1457 * doc/install.texi (Specific): Mention the moxie port.
1458
bf406687
ILT
14592009-06-09 Ian Lance Taylor <iant@google.com>
1460
1461 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1462 compiling with C++.
1463 * optabs.c (optab_table): Only use designated initializers if
1464 HAVE_DESIGNATED_INITIALIZERS is defined.
1465 (convert_optab_table): Likewise.
1466 (init_optabs): Always call init_insn_codes if
1467 HAVE_DESIGNATED_INITIALIZERS is not defined.
1468
744aa42f
ILT
14692009-06-09 Ian Lance Taylor <iant@google.com>
1470
1471 * targhooks.c (default_builtin_vectorized_function): Change fn
1472 parameter to unsigned int.
1473 (default_builtin_vectorized_conversion): Change code parameter to
1474 unsigned int.
1475 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1476 * targhooks.h: Update declarations.
1477 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1478 parameter to unsigned int.
1479
1480 * c-typeck.c (comptypes_check_enum_int): New static function.
1481 (comptypes_internal): Add enum_and_int_p parameter. Change all
1482 callers.
1483 (comp_target_types): Add location parameter. Change all callers.
1484 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1485 Change all callers.
1486 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1487 (build_conditional_expr): Add colon_loc parameter. Change all
1488 callers.
c637b0fa 1489 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
1490 * c-parser.c (c_parser_conditional_expression): Pass location of
1491 colon to build_conditional_expr.
1492 * c-tree.h (build_conditional_expr): Update declaration.
1493
bcbe3b25
SP
14942009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1495
1496 * graphite.c: Revert previous patch.
1497
dc2a6925
SP
14982009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1499
1500 PR bootstrap/40103
1501 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1502
d81f5387
GS
15032009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1504
8ed0ce99
L
1505 * tree-ssa-loop-prefetch.c
1506 (loop_prefetch_arrays): Fixed a portability problem in printf format
1507 string.
d81f5387 1508
8056eb4f
MJ
15092009-06-09 Martin Jambor <mjambor@suse.cz>
1510
1511 PR tree-optimization/40351
c637b0fa
UB
1512 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1513 refrence to a potential artifical subaccess can be constructed.
8056eb4f 1514
bd9a3465
KK
15152009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1516
1517 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1518 (sh_override_options): Likewise.
1519 * config/sh/sh.c: Include params.h.
1520 (sh_optimization_options): New.
1521 (sh_override_options): Likewise.
1522 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1523 (OVERRIDE_OPTIONS): Use sh_override_options.
1524
8845deab
JJ
15252009-06-08 Jakub Jelinek <jakub@redhat.com>
1526
1527 * dwarf2out.c (emit_cfa_remember): New variable.
1528 (add_fde_cfi): If emit_cfa_remember, recurse to add
1529 DW_CFA_remember_state first.
1530 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1531 instead just set emit_cfa_remember.
1532
9ea81b0c
JH
15332009-06-08 Jan Hubicka <jh@suse.cz>
1534
1535 PR debug/40126
1536 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1537
21ecdec5
JH
15382009-06-08 Jan Hubicka <jh@suse.cz>
1539
1540 PR middle-end/39834
c637b0fa
UB
1541 * cgraphunit.c (save_inline_function_body): Do not copy transform
1542 hooks for saved inline bodies.
21ecdec5
JH
1543 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1544 for given function.
1545
72e48218
AN
15462009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1547
1548 * jump.c (returnjump_p): Handle delayed branches. Add missing
1549 function comment.
1550
6ce2002b
JH
15512009-06-08 Jan Hubicka <jh@suse.cz>
1552
1553 PR middle-end/40102
1554 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1555 original node might've been modified.
1556 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1557
eb9ed98a
JJ
15582009-06-08 Jakub Jelinek <jakub@redhat.com>
1559
1560 * tree-object-size.c (addr_object_size): Add OSI argument.
1561 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1562 (compute_builtin_object_size, expr_object_size): Adjust callers.
1563 (plus_stmt_object_size): Call addr_object_size instead of
1564 compute_builtin_object_size.
1565
db34470d 15662009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1567 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1568
1569 * tree-ssa-loop-prefetch.c
1570 (gather_memory_references): Introduced a counter for the number of
1571 memory references.
1572 (anything_to_prefetch_p): Introduced a counter for the number of
1573 prefetches.
1574 (is_loop_prefetching_profitable): New function with a cost model
1575 for prefetching.
1576 (loop_prefetch_arrays): Use the new cost model to determine if
1577 prefetching is profitable.
1578 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1579 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1580 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1581 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1582 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1583 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1584
eb7adebc
MM
15852009-06-08 Michael Matz <matz@suse.de>
1586
1587 PR debug/40012
eb7adebc
MM
1588 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1589 partitions use the same.
1590 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1591 for basevars of SSA_NAMEs.
1592 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1593 to not expand them twice.
1594 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1595 multiple places.
1596
2153915d
AO
15972009-06-08 Alexandre Oliva <aoliva@redhat.com>
1598
1599 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1600 (fdump-final-insns=, gtoggle): New.
1601 * doc/invoke.texi: Document them.
1602 * final.c (rest_of_clean_state): Dump final insn stream.
1603 * gcc.c (invoke_as): Hook in -fcompare-debug.
1604 (static_spec_functions): Add compare-debug-dump-opt,
1605 compare-debug-self-opt and compare-debug-auxbase-opt.
1606 (compare_debug, compare_debug_second, compare_debug_opt): New.
1607 (switches_debug_check, n_switches_debug_check): New.
1608 (debug_auxbase_opt, debug_check_temp_file): New.
1609 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1610 -fcompare-debug=*.
1611 (do_self_spec): Handle arguments after switches.
1612 (do_spec_1): Add .gk extension to temp file basenames for compare.
1613 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1614 (cc1_options): Use it instead of normal auxbase computation for
1615 the second compare-debug compilation.
1616 (compare_files): New.
1617 (main): Set up and implement compare debug mode.
1618 (compare_debug_dump_opt_spec_function): New.
1619 (compare_debug_self_opt_spec_function): New.
1620 (compare_debug_auxbase_opt_spec_function): New.
1621 * toplev.c (process_options): Handle flag_gtoggle,
1622 flag_dump_final_insns.
1623 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1624 during -fcompare-debug-second compilation.
1625
cdb88468
ILT
16262009-06-07 Ian Lance Taylor <iant@google.com>
1627
c637b0fa 1628 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
1629 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1630
1631 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1632 with no default node. Change warning with %H to warning_at.
1633 Don't clear warn_switch around case checking.
1634 * doc/invoke.texi (Warning Options): Clarify distinction between
1635 -Wswitch and -Wswitch-enum.
1636
4fe8e1a2
BRF
16372009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1638
1639 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1640
69952c1d
BRF
16412009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1642
1643 * gbl-ctors.h: Add header guard.
1644
b2ad0284
BRF
16452009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1646
1647 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1648 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1649 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1650 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1651 prototypes for removed functions.
1652 (expressions_equal_p): Move to ...
1653 * tree-ssa-sccvn.h: ... here and ...
1654 * matrix-reorg.c: ... adjust includes.
1655
c3df55f9
BRF
16562009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1657
1658 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1659
b5a7159f
BRF
16602009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1661
1662 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1663 (finish_function): Remove erroneous whitespace.
1664
95bca6b0
BRF
16652009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1666
2cd713a0
BRF
1667 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1668 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1669
16702009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1671
1672 * errors.c (internal_error): Commentary typo fix.
1673 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1674 * tree-ssa-pre.c: Ditto.
95bca6b0 1675
2cd713a0
BRF
16762009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1677
1678 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1679 them is supposed to hold actual statements.
1680
5bca4e80
ILT
16812009-06-06 Ian Lance Taylor <iant@google.com>
1682
1683 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1684 empty statements can now have attributes.
1685
47ac44d6
SZ
16862009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1687
1688 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1689 * config/mips/mips.md: Ditto.
1690
19b905ce
NF
16912009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1692
1693 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1694 _RELOCATABLE.
1695 (__eabi_uconvert): Likewise.
1696
16702e19
NF
16972009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1698
1699 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1700 CFI_* definitions with IN_GCC.
1701
a735afd1
DE
17022009-06-05 David Edelsohn <edelsohn@gnu.org>
1703
1704 * xcoffout.h (xcoffout_source_line): Update prototype.
1705
26a347c5
KG
17062009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1707
1708 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1709 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1710
9f706f23
JJ
17112009-06-05 Jakub Jelinek <jakub@redhat.com>
1712
1713 PR middle-end/40340
1714 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1715 inlined_function_outer_scope_p blocks for artificial inlines
1716 even at -g0/-g1.
1717 * tree.c (tree_nonartificial_location): Rewrite using
1718 block_nonartificial_location.
1719
8f439681
RE
17202009-06-05 Revital Eres <eres@il.ibm.com>
1721 Leehod Baruch <leehod@il.ibm.com>
1722
1723 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1724 (expand_expr_real_1): Remove comment.
1725 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1726 Vectorize misaligned access when the target supports it.
c637b0fa 1727 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
1728 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1729 and remove asset.
1730
b89f8e3c
JB
17312009-06-05 Julian Brown <julian@codesourcery.com>
1732
1733 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1734 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1735
47d1f191
RG
17362009-06-05 Richard Guenther <rguenther@suse.de>
1737
1738 PR bootstrap/40350
1739 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1740 as possibly unused.
1741
9f706f23 17422009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1743
1744 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1745 (save_gprs): Don't tell unwinder when a global register is saved.
1746 (s390_emit_epilogue): Emit needed epilogue unwind info.
1747
90f06248
AO
17482009-06-05 Alexandre Oliva <aoliva@redhat.com>
1749
1750 * dwarf2out.c (deferred_asm_name): New.
1751 (add_name_and_src_coords_attributes): Defer creation of
1752 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1753 computed yet.
1754 (move_linkage_attr): New.
1755 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1756 right place.
1757
c10348e5
AO
17582009-06-05 Alexandre Oliva <aoliva@redhat.com>
1759
1760 * tree-nested.c (finalize_nesting_tree_1): Declare the
1761 frame_decl in the binding tree.
1762
6c52e687
CC
17632009-06-04 Cary Coutant <ccoutant@google.com>
1764
1765 * basic-block.h (struct basic_block_def): Add discriminator field.
1766 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1767 callers.
1768 * debug.c (do_nothing_debug_hooks): Add additional entry.
1769 (debug_nothing_int_charstar_int): New function.
c637b0fa 1770 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
1771 (debug_nothing_int_charstar_int): New declaration.
1772 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1773 discriminator value in .loc directive.
1774 * final.c (last_discriminator): New variable.
1775 (discriminator): New variable.
1776 (final_start_function): Initialize above variables, pass current
1777 discriminator to debug hook.
1778 (notice_source_line): Check for discriminator change.
1779 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1780 * sdbout.c (sdbout_source_line): New parameter.
1781 * tree-cfg.c (struct locus_discrim_map): New structure type.
1782 (discriminator_per_locus): New hash table.
1783 (build_gimple_cfg): Allocate and free discriminator hash table.
1784 (make_edges): Call assign_discriminator.
1785 (locus_map_hash): New function.
1786 (locus_map_eq): New function.
1787 (next_discriminator_for_locus): New function.
1788 (same_line_p): New function.
1789 (assign_discriminator): New function.
1790 (make_cond_expr_edges): Call assign_discriminator.
1791 (make_gimple_switch_edges): Likewise.
1792 (first_non_label_stmt): New function.
1793 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1794 all callers.
1795 * xcoffout.c (xcoffout_source_line): Add new parameter.
1796
1797 * configure.ac (gcc_cv_as_discriminator): New configury check for
1798 gas support for discriminator.
1799 * configure: Regenerate.
1800 * config.in: Regenerate.
1801
e07e020b
RR
18022009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1803
1804 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1805 val after checking for integers.
1806
72fa3605
UB
18072009-06-04 Uros Bizjak <ubizjak@gmail.com>
1808
1809 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1810 X64_REGPARM_MAX.
1811 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1812 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1813 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1814 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1815 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1816 X64_SSE_REGPARM_MAX.
1817 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1818 X64_SSE_REGPARM_MAX.
1819
bdde878c
AO
18202009-06-04 Alexandre Oliva <aoliva@redhat.com>
1821
1822 * gcc.c (report_times_to_file): New.
1823 (execute): Implement it.
1824 (process_command): Support -time=.
1825 * doc/invoke.texi: Document it.
1826
2ce59df7
AO
18272009-06-04 Alexandre Oliva <aoliva@redhat.com>
1828
1829 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1830 that have value exprs.
1831
78bd9046
AO
18322009-06-04 Alexandre Oliva <aoliva@redhat.com>
1833
1834 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1835 declarations for constants until...
1836 (dw2_output_indirect_constant_1): ... this point.
1837
e63d4106
RE
18382009-06-04 Richard Earnshaw <rearnsha@arm.com>
1839
1840 PR target/10242
1841 * arm.md (arm_addsi3): Don't try to split an add with an
1842 eliminable register until after reload has completed.
1843
6bc7bc14
ILT
18442009-06-03 Ian Lance Taylor <iant@google.com>
1845
1846 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1847 * genattrtab.c (write_length_unit_log): Likewise.
1848 * genchecksum.c (dosum): Likewise.
1849 * gengtype.c (write_rtx_next): Likewise.
1850 (finish_root_table, write_roots): Likewise.
1851 * gimple.c (gimple_ops_offset_): Likewise.
1852 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1853 * config/arc/arc.c (arc_attribute_table): Likewise.
1854 * config/arm/arm.c (arm_attribute_table): Likewise.
1855 * config/avr/avr.c (avr_attribute_table): Likewise.
1856 * config/crx/crx.c (crx_attribute_table): Likewise.
1857 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1858 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1859 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1860 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1861 * config/sh/sh.c (sh_attribute_table): Likewise.
1862 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1863 * config/spu/spu.c (spu_attribute_table): Likewise.
1864 * config/v850/v850.c (v850_attribute_table): Likewise.
1865
1866 * config/alpha/alpha.c (vms_attribute_table): Make static.
1867 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1868 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1869 * config/mips/mips.c (mips_attribute_table): Likewise.
1870
1871 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1872 $(SYSTEM_H).
1873 (cc1-checksum.o): Likewise.
1874
19d892fd
SE
18752009-06-03 Steve Ellcey <sje@cup.hp.com>
1876
1877 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1878
679f3354
JJ
18792009-06-03 Jakub Jelinek <jakub@redhat.com>
1880
ff35822b
JJ
1881 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1882 insn if it is changing sp. Use gen_add3_insn instead of
1883 conditionally gen_addsi3 and gen_adddi3.
1884 (offset_below_red_zone_p): New static inline function.
1885 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1886 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1887 * config/rs6000/ppc-asm.h: Include auto-host.h.
1888 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1889 CFI_RESTORE): Define.
1890 * config/rs6000/crtresxgpr.asm: Add unwind info.
1891 * config/rs6000/crtresxfpr.asm: Likewise.
1892 * config/rs6000/crtresgpr.asm: Likewise.
1893 * config/rs6000/crtresfpr.asm: Likewise.
1894 * config/rs6000/crtsavgpr.asm: Likewise.
1895 * config/rs6000/crtsavfpr.asm: Likewise.
1896
dc6707b8
UB
1897 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
1898 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 1899
2e94c12d
JB
19002009-06-03 Julian Brown <julian@codesourcery.com>
1901
1902 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1903 words or less (including TImode) in core registers.
1904
3111cce0
RG
19052009-06-03 Richard Guenther <rguenther@suse.de>
1906
1907 PR middle-end/40328
1908 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1909
5e1b50f6
AB
19102009-06-03 Andrey Belevantsev <abel@ispras.ru>
1911
1912 * statistics.c (statistics_counter_event): Do not record event
1913 in pass dump if its number == -1.
1914 (curr_statistics_hash): Add assert that we never get passes
1915 with static number == -1.
1916
6f11d690
RG
19172009-06-03 Richard Guenther <rguenther@suse.de>
1918 Andrey Belevantsev <abel@ispras.ru>
1919
1920 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1921 non-BLKmode arrays addressable.
1922
88961471
MK
19232009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1924
1925 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1926 * config/m68k/m68k.h: ... here.
1927 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1928 m68k and fido.
1929
9961eb45
MJ
19302009-06-03 Martin Jambor <mjambor@suse.cz>
1931
1932 PR tree-optimization/40323
1933 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1934 assignment.
1935
2f2c62a0
RG
19362009-06-03 Richard Guenther <rguenther@suse.de>
1937
1938 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1939 consistently.
1940
d6ced3b7
SZ
19412009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1942
1943 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1944 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1945 JUMP_TABLE_DATA_P where applicable.
1946 * config/sh/sh.c: Ditto.
1947 * config/sh/sh.h: Ditto.
1948 * config/sh/sh.md: Ditto.
1949 * config/sh/symbian.c: Ditto.
1950
f3afc8a7
UB
19512009-06-03 Uros Bizjak <ubizjak@gmail.com>
1952
1953 * config/i386/driver-i386.c (describe_cache): Optimize
1954 concatenation of strings. Use snprintf instead of sprintf.
1955 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1956 target when not compiling with GCC.
1957
1964788a
KK
19582009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1959
1960 * config/sh/sh.c: Revert last change.
1961 (sh_expand_epilogue): Emit a blockage insn before the frame
1962 pointer adjustment unconditionally.
1963
8633c315
RS
19642009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1965
1966 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1967 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1968 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1969 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1970 to COLLECT_GCC_OPTIONS.
1971
781a1758
RS
19722009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1973
1974 * collect2.c (target_system_root): New variable.
1975 (main): Handle --sysroot=.
1976 (ignore_library): Strip the sysroot from the library path.
1977
dfb636dc
RS
19782009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1979
1980 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1981 (collect2.o): Depend on collect2-aix.h.
1982 (collect2-aix.o): New rule.
1983 * collect2-aix.h: New file.
1984 * collect2-aix.c: Likewise.
1985 * collect2.c: Include collect2-aix.h. Don't undefine
1986 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1987 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1988 Use TARGET_AIX_VERSION instead of _AIX51.
1989 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1990 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1991 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1992 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1993 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1994
51136ae8
RS
19952009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1996
1997 * collect2.c (ignore_library): Avoid premature post-increment
1998 and null deference.
1999
7f142d33
RS
20002009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2001
2002 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2003 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2004 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2005 CROSS_DIRECTORY_STRUCTURE too.
2006 (LINK_LIBG_SPEC): Likewise.
2007 (LIB_SPEC): Add %R to sysroot paths.
2008 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2009 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2010 * config/rs6000/aix51.h: As for aix43.h.
2011 * config/rs6000/aix52.h: Likewise.
2012 * config/rs6000/aix53.h: Likewise.
2013 * config/rs6000/aix61.h: Likewise.
2014 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2015 to the beginning of sysroot paths.
2016
9e74b7d2
AO
20172009-06-02 Alexandre Oliva <aoliva@redhat.com>
2018
2019 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2020 INSN_LISTs that are out of the REG_NOTE range.
2021
a9f6ecee
AO
20222009-06-02 Alexandre Oliva <aoliva@redhat.com>
2023
2024 * loop-unroll.c (struct iv_to_split): Add pointer to next.
2025 (struct var_to_expand): Likewise.
2026 (struct opt_info): Add head and tail for linked lists of the above.
2027 (analyze_insn_to_expand_var): Initialize next.
2028 (analyze_iv_to_split_insn): Likewise.
2029 (analyze_insns_in_loop): Create linked lists.
2030 (allocate_basic_variable): Simplify for use without hash table.
2031 (insert_var_expansion_initialization): Likewise, make it type-safer.
2032 (combine_var_copies_in_loop_exit): Likewise.
2033 (apply_opt_in_copies): Walk lists rather than hash tables.
2034 (release_var_copies): Simplified and inlined by hand into...
2035 (free_opt_info): ... this function.
2036
69596c69
RG
20372009-06-02 Richard Guenther <rguenther@suse.de>
2038
2039 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2040 for field decls.
2041
fe8a7779
AO
20422009-06-02 Alexandre Oliva <aoliva@redhat.com>
2043
2044 * cfgexpand.c (gimple_expand_cfg): Discard the source location
2045 only for builtins that are not overridden.
2046
1bcca2c5
AO
20472009-06-02 Alexandre Oliva <aoliva@redhat.com>
2048
2049 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2050 label string.
2051
8588f797
AO
20522009-06-02 Alexandre Oliva <aoliva@redhat.com>
2053
2054 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2055
45f39d78
AO
20562009-06-02 Alexandre Oliva <aoliva@redhat.com>
2057
2058 * combine.c (move_deaths): Compare LUIDs within the same BB only.
2059
2aa7c49b
AO
20602009-06-02 Alexandre Oliva <aoliva@redhat.com>
2061
2062 * common.opt (fdump-unnumbered-links): New.
2063 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2064 * print-rtl.c (flag_dump_unnumbered_links): New.
2065 (print_rtx): Test it.
2066
55b2829b
RE
20672009-06-02 Richard Earnshaw <rearnsha@arm.com>
2068
2069 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2070 push/pop multiple to 8-byte alignment.
e63d4106 2071
6c0d7021
JJ
20722009-06-01 Jakub Jelinek <jakub@redhat.com>
2073
0aa34d44
JJ
2074 * config/i386/i386.c (queued_cfa_restores): New static variable.
2075 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2076 functions.
2077 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2078 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2079 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2080 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2081 note unconditionally.
2082 (ix86_emit_restore_regs_using_mov): Likewise.
2083 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2084 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2085 it through to ix86_emit_restore_reg_using_pop.
2086 (ix86_emit_leave): Add RED_OFFSET argument. Call
2087 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
2088 instead of adding REG_CFA_OFFSET note unconditionally.
2089 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2090 the above functions. Call ix86_add_queued_cfa_restore_notes when
2091 needed.
2092
2093 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2094 force output of the label even for dwarf2out_do_cfi_asm.
2095 (add_fde_cfi): If -g2 and above and cfi might change CFA,
2096 force creation of CFI label and chain DW_CFA_set_loc jumping to it
2097 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
2098 caller.
2099 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2100 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2101 dwarf2out_cfi_label callers.
2102 * tree.h (dwarf2out_cfi_label): Adjust prototype.
2103 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2104 Adjust dwarf2out_cfi_label callers.
2105 * config/vax/vax.c (vax_output_function_prologue): Likewise.
2106
604a6be9
JJ
2107 * config/i386/i386.h (struct machine_cfa_state,
2108 struct machine_function): Guard with ifndef USED_FOR_TARGET
2109 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2110
df0026a7
JJ
2111 PR other/40024
2112 * emutls.c (__emutls_get_address): Change arr->size to mean number
2113 of allocated arr->data entries instead of # of slots + 1.
2114
6c0d7021
JJ
2115 PR middle-end/40316
2116 * recog.c (peep2_reinit_state): New function.
2117 (peephole2_init_state): Use it at the end of a basic block and also
2118 when seeing a RTX_FRAME_RELATED_P insn.
2119
49df2fb8
SE
21202009-06-01 Steve Ellcey <sje@cup.hp.com>
2121
2122 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2123 fixuns_truncrfdi2): New.
2124 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2125 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2126 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2127 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2128 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2129 *recip_approx): Remove.
2130 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2131 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2132 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2133 move to div.md.
2134 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2135 setf_exp_rf): New.
2136
67165eb3
ILT
21372009-06-01 Ian Lance Taylor <iant@google.com>
2138
2139 * attribs.c (register_attribute): Use CONST_CAST.
2140 * collect2.c (main): Use CONST_CAST2.
2141 (scan_prog_file): Likewise.
2142 * gcc.c (process_command, main): Likewise.
2143 * toplev.c (toplev_main): Likewise.
2144
2145 * c-typeck.c (handle_warn_cast_qual): New static function,
2146 partially broken out of build_c_cast.
2147 (build_c_cast): Call handle_warn_cast_qual.
2148 * doc/invoke.texi (Warning Options): Document new effect of
2149 -Wcast-qual.
2150
e74fe492
AH
21512009-06-01 Aldy Hernandez <aldyh@redhat.com>
2152
2153 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2154 (diagnostic_report_current_module): Print columns.
2155 * common.opt (flag_show_column): Enable by default.
2156
7eba2d1f
LM
21572009-06-01 Luis Machado <luisgpm@br.ibm.com>
2158
2159 * alias.c (find_base_term): Check for NULL term before returning.
2160
ee88d9aa
MK
21612009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2162
2163 Revert due to PR40320:
ee88d9aa
MK
2164 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2165 * calls.c (emit_library_call_value_1): Don't force_operand for move
2166 and push insns.
2167
324c9b02 21682009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 2169 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
2170
2171 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2172 to be processed as a bitfield for constructor output purposes.
2173 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2174 new function.
2175 * varasm.c (oc_local_state): New type, output_constructor
2176 local state to support communication with helpers.
2177 (oc_outer_state): New type, output_constructor outer state of
2178 relevance in recursive calls.
2179 (output_constructor_array_range): New output_constructor helper,
2180 extracted code for an array range element.
2181 (output_constructor_regular_field): New output_constructor helper,
2182 extracted code for an element that is not a bitfield.
2183 (output_constructor_bitfield): New output_constructor helper,
2184 extracted code for a bitfield element. Accept an OUTER state
2185 argument for recursive processing. Recurse on record or array
2186 CONSTRUCTOR values, possibly past noop conversions.
62295314 2187 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
2188 VALUE is a valid constant-valued expression for use in a static
2189 bit-field initializer.
62295314
OH
2190 (output_constructor): Rework to use helpers. Accept and honor an
2191 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
2192 prepared for nested constructors initializing bitfields.
2193 (output_constant): Feed OUTER in calls to output_constructor.
2194
0980d7fe
MK
21952009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2196
2197 * calls.c (emit_library_call_value_1): Don't force_operand for move
2198 and push insns.
2199
29661412
NC
22002009-06-01 Nick Clifton <nickc@redhat.com>
2201
2202 * doc/invoke.texi (IA-64 Options): Fix typo.
2203
e9dbe7bb
IR
22042009-06-01 Ira Rosen <irar@il.ibm.com>
2205
2206 PR tree-optimization/39129
2207 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2208 printed message.
2209 (vect_do_peeling_for_loop_bound): Use
2210 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2211 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2212 (vect_loop_versioning): Likewise.
2213 (vect_create_cond_for_alias_checks): Fix indentation.
2214 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2215 macros.
2216 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2217 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2218 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2219 "control flow in loop".
2220 (vect_estimate_min_profitable_iters): Use
2221 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2222 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2223 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2224 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2225 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2226 statement belongs to a group of strided accesses with the exact code
2227 check.
2228 (vectorizable_load): Likewise.
2229 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2230 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2231
5ac69a80
GP
22322009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2233
2234 * config/freebsd-stdint.h: New file.
2235 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2236 Add freebsd-stdint.h to tm_file.
2237
54b2b460
RE
22382009-06-01 Richard Earnshaw <rearnsha@arm.com>
2239
2240 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2241 (thumb2_extendhidi2): Likewise.
2242
a7ca77cf
ILT
22432009-05-31 Ian Lance Taylor <iant@google.com>
2244
f3afc8a7 2245 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2246
22472009-05-31 Ian Lance Taylor <iant@google.com>
2248
f3afc8a7 2249 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2250 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2251 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2252
1aec401e
JM
22532009-05-31 Jason Merrill <jason@redhat.com>
2254
2255 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2256 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2257 (dump_generic_node): Adjust.
2258 * diagnostic.h: Declare print_call_name.
2259 * gimple-pretty-print.c (dump_gimple_call): Use it.
2260
ed7910bb
KK
22612009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2262
2263 * config/sh/sh.md (ashldi3_std): New define_expand.
2264 (ashldi3): Use it.
2265
47ea8d4e
KK
22662009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2267
2268 PR target/40313
2269 * config/sh/sh.c: Include debug.h.
2270 (sh_expand_epilogue): Emit a blockage insn before the frame
2271 pointer adjustment also when dwarf2out_do_frame returns true.
2272
405e8b49
RE
22732009-05-31 Richard Earnshaw <rearnsha@arm.com>
2274
2275 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2276 (thumb2_extendqidi2): New pattern.
2277
71ece343
IR
22782009-05-31 Ira Rosen <irar@il.ibm.com>
2279
2280 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2281 mark phis for renaming.
2282 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2283 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2284 Call mark_sym_for_renaming.
2285 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2286 * tree-vect-loop.c (vect_transform_loop): Remove
2287 vect_memsyms_to_rename initialization and a call to
2288 mark_set_for_renaming.
71ece343 2289
b3041944
JJ
22902009-05-31 Jakub Jelinek <jakub@redhat.com>
2291
2292 PR middle-end/40304
2293 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2294 frame related even if !set_cfa && style < 0.
2295
a1bda0d7
KT
22962009-05-30 Kai Tietz <kai.tietz@onevision.com>
2297
2298 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2299 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2300 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2301 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2302
acd26225
KG
23032009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2304
2305 * configure.ac: Add MPC support.
2306
2307 * config.in, configure: Regenerate.
2308
cd9c1ca8
RH
23092009-05-29 Richard Henderson <rth@redhat.com>
2310
2311 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2312 NOTE_INSN_BASIC_BLOCK.
2313 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2314 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2315 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2316 to be deleted.
2317 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2318 add in_use field.
2319 (add_cfi): Disable check redefining cfa away from drap.
2320 (lookup_cfa_1): Add remember argument; handle remember/restore.
2321 (lookup_cfa): Pass remember argument.
2322 (cfa_remember): New.
2323 (compute_barrier_args_size_1): Remove sibcall check.
2324 (dwarf2out_frame_debug_def_cfa): New.
2325 (dwarf2out_frame_debug_adjust_cfa): New.
2326 (dwarf2out_frame_debug_cfa_offset): New.
2327 (dwarf2out_frame_debug_cfa_register): New.
2328 (dwarf2out_frame_debug_cfa_restore): New.
2329 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2330 (dwarf2out_begin_epilogue): New.
2331 (dwarf2out_frame_debug_restore_state): New.
2332 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2333 DW_CFA_restore_state.
2334 (output_cfi_directive): Likewise.
2335 (convert_cfa_to_fb_loc_list): Likewise.
2336 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2337 * dwarf2out.h: Update.
2338 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2339 (copy_insn_1): Early out for null.
2340 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2341 and dwarf2out_frame_debug_restore_state.
2342 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2343 (prologue_insn_hash, epilogue_insn_hash): New.
2344 (free_after_compilation): Adjust freeing accordingly.
2345 (record_insns): Create hash table if needed; push insns into
2346 hash instead of array.
2347 (maybe_copy_epilogue_insn): New.
2348 (contains): Search hash table instead of array.
2349 (sibcall_epilogue_contains): Remove.
2350 (thread_prologue_and_epilogue_insns): Split eh_return insns
2351 and mark them as epilogues.
2352 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2353 scanning in terms of basic blocks.
2354 * insn-notes.def (CFA_RESTORE_STATE): New.
2355 * jump.c (returnjump_p_1): Accept EH_RETURN.
2356 (eh_returnjump_p_1, eh_returnjump_p): New.
2357 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2358 CFA_REGISTER, CFA_RESTORE): New.
2359 * rtl.def (EH_RETURN): New.
2360 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2361
2362 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2363 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2364
2365 * config/i386/i386.c (gen_push): Update cfa state.
2366 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2367 add a CFA_ADJUST_CFA note.
2368 (ix86_dwarf_handle_frame_unspec): Remove.
2369 (ix86_expand_prologue): Update cfa state.
2370 (ix86_emit_restore_reg_using_pop): New.
2371 (ix86_emit_restore_regs_using_pop): New.
2372 (ix86_emit_leave): New.
2373 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2374 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2375 * config/i386/i386.h (struct machine_cfa_state): New.
2376 (ix86_cfa_state): New.
2377 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2378 (eh_return_internal): Merge from eh_return_<mode>,
2379 use eh_return rtx, split w/ epilogue.
2380
72b5577d
ILT
23812009-05-29 Ian Lance Taylor <iant@google.com>
2382
2383 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2384 enum type.
2385 * calls.c (emit_library_call_value_1): Likewise.
2386
2387 * c-typeck.c (c_build_va_arg): New function.
2388 * c-tree.h (c_build_va_arg): Declare.
2389 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2390 instead of build_va_arg.
2391
7a2faca1
EB
23922009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2393
2394 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2395 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2396 (ptr_difference_cost): Use affine combinations to compute it.
2397 (difference_cost): Likewise.
2398 (get_computation_cost_at): Compute more accurate cost for addresses
2399 if the ratio is a multiplier allowed in addresses.
2400 For non-addresses, consider that an additional offset or symbol is
2401 added only once.
2402
725fd454
JJ
24032009-05-29 Jakub Jelinek <jakub@redhat.com>
2404
a0987204
JJ
2405 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2406 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2407
725fd454
JJ
2408 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2409 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2410 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2411 if MODE_DI.
2412 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2413 to 1 for TYPE_SSE{IADD1,CVT1}.
2414 (prefix_vex_imm8): Removed.
2415 (length_vex): Only pass 1 as second argument to
2416 ix86_attr_length_vex_default if prefix_extra is 0.
2417 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2418 (length): For prefix vex computation use length_immediate
2419 attribute instead of prefix_vex_imm8.
2420 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2421 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2422 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2423 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2424 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2425 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2426 a space in between the operands.
2427 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2428 if one operand is 0xff and the other one si, di, bp or sp.
2429 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2430 other one si, di, bp or sp.
2431 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2432 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2433 type and mode attributes.
2434 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2435 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2436 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2437 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2438 prefix_data16 attribute iff MODE_DF.
2439 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2440 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2441 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2442 constm128_operand in length_immediate computation.
2443 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2444 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2445 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2446 length_immediate attribute to 1.
2447 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2448 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2449 for certain alternatives.
2450 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2451 prefix_data16 attribute if MODE_V1DF.
2452 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2453 length_immediate to 1.
2454 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2455 length_address to 4, set mode attribute to MODE_DI.
2456 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2457 (fxam<mode>2_i387): Set length attribute to 4.
2458 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2459 *prefetch_3dnow_rex): Override length_address attribute.
2460 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2461 attributes.
2462 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2463 (constm128_operand): Removed.
2464 * config/i386/i386.c (memory_address_length): For
2465 disp && !index && !base in 64-bit mode account for SIB byte if
2466 print_operand_address can't optimize disp32 into disp32(%rip)
2467 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2468 for fs: or gs: segment.
2469 (ix86_attr_length_immediate_default): When checking if shortform
2470 is possible, truncate immediate to the length of the non-shortened
2471 immediate.
2472 (ix86_attr_length_address_default): Ignore MEM_P operands
2473 with X constraint.
2474 (ix86_attr_length_vex_default): Only check for DImode on
2475 GENERAL_REG_P operands.
2476 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2477 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2478 (sse_cvttps2pi): Clear prefix_rep attribute.
2479 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2480 attribute.
2481 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2482 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2483 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2484 iff operand 2 is const_int_operand.
2485 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2486 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2487 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2488 instead of vex.
2489 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2490 prefix_data16.
2491 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2492 prefix_data16 attribute for movlpd and movhpd instructions.
2493 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2494 length_immediate for shufpd instruction.
2495 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2496 (avx_cmpp<avxmodesuffixf2c><mode>3,
2497 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2498 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2499 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2500 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2501 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2502 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2503 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2504 prefix_data16 attribute for the first alternative to 1.
2505 (*avx_loadlps): Override length_immediate for the first alternative.
2506 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2507 attributes for second alternative.
2508 (*vec_concatv2sf_sse4_1): Override length_immediate and
2509 prefix_data16 attributes for second alternative.
2510 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2511 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2512 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2513 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2514 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2515 prefix_data16 and length_immediate to 1.
2516 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2517 to 1.
2518 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2519 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2520 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2521 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2522 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2523 *sse4_1_pextrd): Set length_immediate to 1.
2524 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2525 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2526 to 1.
2527 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2528 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2529 length_immediate to 1 for second alternative.
2530 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2531 prefix_extra and length_immediate attributes for the first
2532 alternative.
2533 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2534 first alternative.
2535 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2536 to 1 for the first and third alternative.
2537 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2538 alternative.
2539 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2540 attribute.
2541 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2542 attribute to 0.
2543 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2544 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2545 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2546 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2547 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2548 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2549 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2550 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2551 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2552 (ssse3_palignrti): Override length_immediate to 1.
2553 (ssse3_palignrdi): Override length_immediate to 1, override
2554 prefix_rex attribute.
f3afc8a7 2555 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2556 (sse4a_extrqi): Override length_immediate to 2.
2557 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2558 (sse4a_insertq): Override prefix_data16 to 0.
2559 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2560 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2561 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2562 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2563 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2564 and length_immediate to 1.
2565 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2566 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2567 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2568 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2569 and length_immediate to 1.
2570 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2571 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2572 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2573 avx_ptest256): Override prefix_extra to 1.
2574 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2575 Override prefix_data16 and length_immediate to 1.
2576 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2577 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2578 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2579 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2580 prefix_data16 to 0 and prefix_extra to 2.
2581 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2582 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2583 attribute.
2584 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2585 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2586 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2587 and prefix_extra to 2.
2588 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2589 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2590 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2591 avx_vpermilvar<mode>3,
2592 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2593 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2594 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2595 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2596 Override prefix_extra to 1.
2597 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2598 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2599 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2600 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2601 prefix_extra and length_immediate to 1.
2602 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2603 modrm to 0.
2604 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2605 to 1 for the first alternative.
2606 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2607 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2608 cases.
2609 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2610 *movv2sf_internal_avx, *movv2sf_internal): Override
2611 prefix_rep attribute for certain alternatives.
2612 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2613 attributes for certain alternatives.
2614 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2615 attributes for certain alternatives.
2616 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2617 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2618 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2619 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2620 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2621 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2622 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2623 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2624 length_immediate to 1 if operand 2 is const_int_operand.
2625 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2626 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2627 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2628 using old 3DNOW insn rather than SSE/3DNOW_A.
2629 (mmx_emms, mmx_femms): Clear modrm attribute.
2630
0674b9d0
MJ
26312009-05-29 Martin Jambor <mjambor@suse.cz>
2632
2633 * tree-sra.c: New implementation of SRA.
2634
2635 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2636 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2637 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2638 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2639 (SRA_MAX_STRUCTURE_COUNT): Removed.
2640 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2641 * doc/invoke.texi (sra-max-structure-size): Removed.
2642 (sra-field-structure-ratio): Removed.
2643
616f21df
JJ
26442009-05-29 Jakub Jelinek <jakub@redhat.com>
2645
2646 PR middle-end/40291
2647 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2648 before expansion.
2649
da7ba240
AB
26502009-05-29 Andrey Belevantsev <abel@ispras.ru>
2651
2652 PR rtl-optimization/40101
2653 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2654 seqno. Adjust comment.
2655 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2656 inserting bookkeeping before a jump, the jump is not scheduled.
2657 When no positive seqno found, provide a value. Add comment.
2658
71dcd609
RG
26592009-05-29 Richard Guenther <rguenther@suse.de>
2660
2661 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2662 short-cutting on the first component.
2663
a900ae6b
JJ
26642009-05-29 Jakub Jelinek <jakub@redhat.com>
2665
2666 PR middle-end/39958
2667 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2668 for trees other than decls/types.
2669
821bb7f8
RG
26702009-05-29 Richard Guenther <rguenther@suse.de>
2671
2672 * tree-ssa-operands.c (get_expr_operands): Do not handle
2673 INDIRECT_REFs in the handled-component case. Remove
2674 unused get_ref_base_and_extent case.
2675 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2676 tree_low_cst and host_integerp where possible.
2677 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2678 codes for equivalence.
2679 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2680
e997fb9c
DB
26812009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2682
2683 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2684 to tmake_file for i[34567]86-*-cygwin*.
2685
58195b74
JJ
26862009-05-29 Jakub Jelinek <jakub@redhat.com>
2687
2688 PR target/40017
2689 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2690 (altivec_categorize_keyword, init_vector_keywords,
2691 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2692 similar to bool.
2693
055df276
KT
26942009-05-29 Kai Tietz <kai.tietz@onevision.com>
2695
2696 * tree.c (handle_dll_attribute): Check if node is
2697 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2698
f5939ef3
RE
26992009-05-29 Richard Earnshaw <rearnsha@arm.com>
2700
2701 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2702 component.
2703 (thumb2_zero_extendqidi2): Likewise.
2704
c185de40
KK
27052009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2706
2707 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2708 instead of gen_movrt.
2709 * config/sh/sh.md (movrt): Remove.
2710
bf3c6caf
SE
27112009-05-28 Steve Ellcey <sje@cup.hp.com>
2712
f3afc8a7 2713 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2714 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2715 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2716 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2717 -msched-prefer-non-control-spec-insns,
2718 -msched-stop-bits-after-every-cycle,
2719 -msched-count-spec-in-critical-path,
2720 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2721 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2722 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2723 and -msched-spec-verbose.
2724
8a66e987
JM
27252009-05-28 Joseph Myers <joseph@codesourcery.com>
2726
f3afc8a7 2727 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2728 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2729 error if used.
2730 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2731
b45d2719
RG
27322009-05-28 Richard Guenther <rguenther@suse.de>
2733
2734 * tree-ssa-alias.c (ao_ref_init): New function.
2735 (ao_ref_base): Likewise.
2736 (ao_ref_base_alias_set): Likewise.
2737 (ao_ref_alias_set): Likewise.
2738 (refs_may_alias_p_1): Change signature.
2739 (refs_may_alias_p): Adjust.
2740 (refs_anti_dependent_p): Likewise.
2741 (refs_output_dependent_p): Likewise.
2742 (call_may_clobber_ref_p_1): Change signature.
2743 (call_may_clobber_ref_p): Adjust.
2744 (stmt_may_clobber_ref_p_1): New function split out from ...
2745 (stmt_may_clobber_ref_p): ... here.
2746 (maybe_skip_until): Adjust signature.
2747 (get_continuation_for_phi): Likewise.
2748 (walk_non_aliased_vuses): Likewise.
2749 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2750 (ao_ref_init): Declare.
2751 (ao_ref_base): Likewise.
2752 (ao_ref_alias_set): Likewise.
2753 (stmt_may_clobber_ref_p_1): Likewise.
2754 (walk_non_aliased_vuses): Adjust.
2755 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2756 (get_ref_from_reference_ops): remove.
2757 (vn_reference_lookup_2): Adjust signature.
2758 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2759 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2760 (vn_reference_lookup): Adjust.
2761 (vn_reference_insert): Likewise.
2762 (vn_reference_insert_pieces): Adjust signature.
2763 (visit_reference_op_call): Adjust.
2764 * tree-ssa-pre.c (get_expr_type): Simplify.
2765 (phi_translate_1): Adjust.
2766 (compute_avail): Likewise.
2767 (translate_vuse_through_block): Do not re-build trees.
2768 (value_dies_in_block_x): Likewise.
2769 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2770 fields.
2771 (vn_reference_lookup_pieces): Adjust declaration.
2772 (vn_reference_insert_pieces): Likewise.
2773
554223b6
BK
27742009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2775
2776 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2777 with checking disabled.
2778
233215fe
DK
27792009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2780
2781 PR target/37216
2782
2783 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2784 macro definition for support of three-operand format aligned
2785 .comm directive in assembler on cygwin/pe/mingw target OS.
2786 * configure: Regenerate.
2787 * config.h: Regenerate.
2788
2789 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2790 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2791 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2792
2793 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2794 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2795
24adb18f
IR
27962009-05-28 Ira Rosen <irar@il.ibm.com>
2797
2798 PR tree-optimization/40254
2799 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2800 in analysis of basic blocks.
2801
2c5bfdf7
AN
28022009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2803
2804 PR middle-end/33699
f3afc8a7 2805 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2806 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2807 (TARGET_INITIALIZER): Use it.
2808 * cse.c (CHEAPER): Move it up to the other macros.
2809 (insert): Rename this ...
2810 (insert_with_costs): ... to this. Add cost parameters. Update
2811 function comment.
2812 (insert): New function. Call insert_with_costs.
2813 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2814 find_reg_offset_for_const, try_const_anchors): New functions.
2815 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2816 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2817 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2818 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2819
9e6aced0
AO
28202009-05-28 Alexandre Oliva <aoliva@redhat.com>
2821
2822 * tree-inline.c (remap_decls): Enable nonlocalized variables
2823 when not optimizing.
2824
89fbbe4e
AO
28252009-05-28 Alexandre Oliva <aoliva@redhat.com>
2826
2827 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2828 Simplify other tests involving optimize.
2829
e455776a
TT
28302009-05-27 Tom Tromey <tromey@redhat.com>
2831
2832 * unwind-dw2.c (_Unwind_DebugHook): New function.
2833 (uw_install_context): Call _Unwind_DebugHook.
2834
cea32bca
TT
28352009-05-27 Tom Tromey <tromey@redhat.com>
2836
2837 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2838
c607156f
ILT
28392009-05-27 Ian Lance Taylor <iant@google.com>
2840
2841 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2842 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2843 (ALL_LINKERFLAGS): Define.
2844 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2845 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2846 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2847 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2848 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2849 $(LINKER_FOR_BUILD).
2850 (build/gcov-iov$(build_exeext)): Likewise.
2851
ec0a1343
JB
28522009-05-27 Julian Brown <julian@codesourcery.com>
2853
2854 * gcse.c (target.h): Include.
2855 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2856 copy of argument to a pseudo register.
2857
ac80ba07
DN
28582009-05-27 Diego Novillo <dnovillo@google.com>
2859
2860 * tree-ssa-live.c (dump_scope_block): Document arguments.
2861 (dump_scope_blocks): Document.
2862 (debug_scope_blocks): New.
2863 * tree-flow.h (debug_scope_blocks): Declare.
2864
d1803a17
DC
28652009-05-21 Denis Chertykov <denisc@overta.ru>
2866
f3afc8a7 2867 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2868
51fb7760 28692009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2870
2871 * expr.c (target_align): New function. Alignment the TARGET of an
2872 assignment may be assume to have.
2873 (highest_pow2_factor_for_target): Use it instead of relying on
2874 immediate tree attributes of TARGET, not necessarily honored when
2875 intermediate bitfields are involved.
2876
634fa334
L
28772009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2878
2879 PR target/40266
2880 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2881 AVX, SSE4, AES, PCLMUL and POPCNT.
2882
65332587
DN
28832009-05-27 Diego Novillo <dnovillo@google.com>
2884
2885 * tree-pretty-print.c (dump_location): New.
2886 (dump_generic_node): Call it.
2887 Factor code to handle BLOCK nodes ...
2888 (dump_block_node): ... here.
2889
3e17e31d
RAE
28902009-05-27 Rafael Avila de Espindola <espindola@google.com>
2891
f3afc8a7
UB
2892 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2893 with it.
3e17e31d
RAE
2894 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2895 included.
2896 * gcc-plugin.h: Include config.h and system.h.
2897 (IN_GCC): Define if not defined.
2898
5e370570
HPN
28992009-05-27 Hans-Peter Nilsson <hp@axis.com>
2900
2901 PR middle-end/40249
2902 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2903 with -fno-inline.
2904
d000f0d9
SZ
29052009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2906
2907 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2908 applicable.
2909 * config/m32r/m32r.h: Ditto.
2910 * config/m32r/m32r.md: Ditto.
2911 * config/m32r/predicates.md: Ditto.
2912
82f331ff
AO
29132009-05-27 Alexandre Oliva <aoliva@redhat.com>
2914
2915 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2916
ae2392a9
BS
29172009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2918
2919 * doc/plugins.texi
2920 (Loading plugins): typo.
2921 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2922 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2923 (Interacting with the GCC Garbage Collector): Added new section.
2924 (Giving information about a plugin): Added new section for
2925 PLUGIN_INFO.
ae2392a9
BS
2926 * ggc.h (ggc_register_root_tab): Added declaration.
2927 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2928 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2929 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2930 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2931 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2932 (ggc_register_root_tab) Added new routine.
2933 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2934 PLUGIN_GGC_MARKING event.
2935 * ggc-zone.c: Include plugin.h.
2936 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2937 * ggc-page.c: Include plugin.h.
2938 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2939 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2940 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2941 (register_callback): check lack of callbacks for
2942 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2943 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2944 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2945 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2946 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2947 dependency on plugin.h.
2948 (plugin.o): Added dependency on ggc.h...
2949
f0cfd3a8
RG
29502009-05-26 Richard Guenther <rguenther@suse.de>
2951
2952 PR middle-end/40248
2953 Revert
2954 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2955 with mismatched comparison modes.
2956
2957 * expr.c (expand_expr_real_1): Expand the operand of a
2958 VIEW_CONVERT_EXPR in its natural mode.
2959
7980bfb8
ILT
29602009-05-26 Ian Lance Taylor <iant@google.com>
2961
2962 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2963 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2964 (ALL_COMPILERFLAGS): Define.
2965 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2966 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2967 (collect2$(exeext), collect2.o): Likewise.
2968 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2969 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2970 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2971 (libbackend.o, intl.o, cppdefault.o): Likewise.
2972 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2973 (build/%.o): Use $(COMPILER_FOR_BUILD).
2974 (build/gen%$(build_exeext)): Likewise.
2975 (build/gcov-iov$(build_exeext)): LIkewise.
2976 * config/t-darwin (darwin.o): Use $(COMPILER).
2977 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2978 * config/t-sol2 (sol2-c.o): Likewise.
2979 (sol2.o): Likewise.
2980 * config/t-vxworks (vxworks.o): Likewise.
2981 * config/x-darwin (host-darwin.o): Likewise.
2982 * config/x-hpux (host-hpux.o): Likewise.
2983 * config/x-linux (host-linux.o): Likewise.
2984 * config/x-solaris (host-solaris.o): Likewise.
2985 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2986 * config/arm/t-arm (arm-c.o): Likewise.
2987 * config/arm/t-pe (pe.o): Likewise.
2988 * config/arm/t-wince-pe (pe.o): Likewise.
2989 * config/i386/t-cygming (winnt.o): Likewise.
2990 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2991 * config/i386/t-cygwin (cygwin1.o): Likewise.
2992 (cygwin2.o): Likewise.
2993 * config/i386/t-i386 (i386-c.o): Likewise.
2994 * config/i386/t-interix (winnt.o): Likewise.
2995 * config/i386/t-netware (netware.o): Likewise.
2996 * config/i386/t-nwld (nwld.o): Likewise.
2997 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2998 * config/i386/x-i386 (driver-i386.o): Likewise.
2999 * config/i386/x-cygwin (host-cygwin.o): Likewise.
3000 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3001 * config/ia64/t-ia64 (ia64-c.o): Likewise.
3002 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3003 * config/mips/x-native (driver-native.o): Likewise.
3004 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3005 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3006 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3007 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3008 * config/score/t-score-elf (score7.o): Likewise.
3009 (score3.o): Likewise.
3010 * config/sh/t-sh (sh-c.o): Likewise.
3011 * config/sh/t-symbian (sh-c.o): Likewise.
3012 (symbian.o): Likewise.
3013 * config/spu/t-spu-elf (spu-c.o): Likewise.
3014 * config/v850/t-v850 (v850-c.o): Likewise.
3015 * config/v850/t-v850e (v850-c.o): Likewise.
3016
23977d3c
RG
30172009-05-26 Richard Guenther <rguenther@suse.de>
3018
3019 PR tree-optimization/40122
3020 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3021 VECTOR_CSTs if possible.
3022 (fold_gimple_assign): Likewise.
3023
3d62b895
RG
30242009-05-26 Richard Guenther <rguenther@suse.de>
3025
3026 PR middle-end/40252
3027 * fold-const.c (fold_binary): Use the correct types for building
3028 rotates.
3029
12346147
RG
30302009-05-26 Richard Guenther <rguenther@suse.de>
3031
3032 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3033 redundant calls to merge_alias_info.
3034 (bump_vector_ptr): Likewise.
3035 * tree-ssa-copy.c (merge_alias_info): Remove.
3036 (replace_exp_1): Remove call to merge_alias_info.
3037 (propagate_tree_value): Likewise.
3038 (fini_copy_prop): Propagate points-to info.
3039 * tree-flow.h (merge_alias_info): Remove.
3040
807d5e6f
HS
30412009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3042
3043 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3044
85057983
JH
30452009-05-25 Jan Hubicka <jh@suse.cz>
3046
3047 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3048 * cgraph.h (struct inline_summary): New filed self_wize,
3049 size_inlining_benefit, self_time and time_inlining_benefit.
3050 (struct cgraph_global_info): Replace insns by time ans size fields.
3051 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3052 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3053 (ipcp_update_callgraph): Do not touch function bodies.
3054 * ipa-inline.c: Include except.h
3055 (MAX_TIME): New constant.
3056 (overall_insns): Remove.
3057 (leaf_node_p): New.
3058 (overall_size, max_benefit): New static variables.
3059 (cgraph_estimate_time_after_inlining): New function.
3060 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3061 (cgraph_clone_inlined_nodes): Update size.
3062 (cgraph_mark_inline_edge): Update size.
3063 (cgraph_estimate_growth): Use size info.
3064 (cgraph_check_inline_limits): Check size.
3065 (cgraph_default_inline_p): Likewise.
3066 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3067 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3068 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3069 and times.
85057983
JH
3070 (cgraph_decide_inlining): Likewise.
3071 (cgraph_decide_inlining_incrementally): Likewise; honor
3072 PARAM_EARLY_INLINING_INSNS.
3073 (likely_eliminated_by_inlining_p): New predicate.
3074 (estimate_function_body_sizes): New function.
3075 (compute_inline_parameters): Use it.
3076 * except.c (must_not_throw_labels): New function.
3077 * except.h (must_not_throw_labels): Declare.
3078 * tree-inline.c (init_inline_once): Kill inlining_weigths
3079 * tree-ssa-structalias.c: Avoid uninitialized warning.
3080 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3081 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3082 (PARAM_INLINE_CALL_COST): Remove.
3083 (PARAM_EARLY_INLINING_INSNS): New.
3084
01df5c8a
RG
30852009-05-25 Richard Guenther <rguenther@suse.de>
3086
3087 PR tree-optimization/36327
3088 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 3089 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
3090 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3091 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3092 for union COMPONENT_REFs.
3093 (vn_reference_lookup_3): New callback. Lookup from memset
3094 and CONSTRUCTOR assignment, translate through struct copies.
3095 (vn_reference_lookup_pieces): Make sure to not free the
3096 passed operands array. Adjust walk_non_aliased_vuses call.
3097 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3098 make sure we do not leak memory.
3099
6b8ed145
RG
31002009-05-25 Richard Guenther <rguenther@suse.de>
3101
3102 * tree-ssa-alias.h (dump_points_to_solution): Declare.
3103 * tree-inline.c (expand_call_inline): Reset the escaped and
3104 callused solutions.
3105 * tree-ssa-structalias.c (pass_build_ealias): New.
3106 * tree-pass.h (pass_build_ealias): Declare.
3107 * passes.c (init_optimization_passes): Add PTA during
3108 early optimizations.
3109 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3110 and CALLUSED solutions.
3111 (dump_points_to_solution): New function, split out from ...
3112 (dump_points_to_info_for): ... here.
3113 * tree-parloops.c (parallelize_loops): Reset the escaped and
3114 callused solutions.
3115
0adcf178
RO
31162009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3117
3118 PR bootstrap/40027
3119 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3120 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3121
12aaf609
IR
31222009-05-25 Ira Rosen <irar@il.ibm.com>
3123
3124 PR tree-optimization/40238
3125 * tree-vect-stmts.c (vect_init_vector): Insert initialization
3126 statements after basic block's labels.
3127 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
3128 to free the allocated memory.
3129
7f9a14e3
KK
31302009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
3131
3132 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3133 return address with a USE.
3134
b842d478
RG
31352009-05-24 Richard Guenther <rguenther@suse.de>
3136
3137 PR middle-end/40233
3138 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3139 array type from the main variant of the inner type.
3140
8db7b33f
JBG
31412009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3142
3143 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3144 definition to bool (from int) to un-break build.
3145 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3146
cff4e50d
PB
31472009-05-24 Paolo Bonzini <bonzini@gnu.org>
3148
3149 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3150 discard_stmt_changes): Delete.
3151 * tree-ssa-operands.c (scb_stack): Delete.
3152 (init_ssa_operands): Do not initialize it.
3153 (fini_ssa_operands): Do not free it.
3154 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3155
3156 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3157 update_stmt, remove the others. Fix comments.
3158 * tree-dfa.c (optimize_stack_restore): Likewise.
3159 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3160 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3161 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3162 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3163 Likewise.
3164 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3165 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
3166 (dom_opt_finalize_block): Likewise, adjusting access to
3167 stmts_to_rescan.
cff4e50d
PB
3168 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3169 (stmts_to_rescan): Change item type to gimple.
3170 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3171
a70d6342
IR
31722009-05-24 Ira Rosen <irar@il.ibm.com>
3173
3174 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3175 * tree-pass.h (pass_slp_vectorize): New pass.
3176 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3177 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3178 * tree-vectorizer.c (timevar.h): Include.
3179 (user_vect_verbosity_level): Declare.
3180 (vect_location): Fix comment.
3181 (vect_set_verbosity_level): Update user_vect_verbosity_level
3182 instead of vect_verbosity_level.
3183 (vect_set_dump_settings): Add an argument. Ignore user defined
3184 verbosity if dump flags require higher level of verbosity. Print to
3185 stderr only for loop vectorization.
3186 (vectorize_loops): Update call to vect_set_dump_settings.
3187 (execute_vect_slp): New function.
3188 (gate_vect_slp): Likewise.
3189 (struct gimple_opt_pass pass_slp_vectorize): New.
3190 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3191 access its members.
3192 (vec_info_for_bb): New function.
3193 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3194 (VECTORIZATION_ENABLED): New macro.
3195 (SLP_ENABLED, SLP_DISABLED): Likewise.
3196 (vect_is_simple_use): Add bb_vec_info argument.
3197 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3198 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3199 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3200 vect_schedule_slp, vect_analyze_slp): Likewise.
3201 (vect_analyze_stmt): Add slp_tree argument.
3202 (find_bb_location): Declare.
3203 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3204 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3205 (vect_analyze_loop_operations, vect_analyze_loop,
3206 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3207 vect_finalize_reduction, vectorizable_reduction,
3208 vectorizable_live_operation, vect_transform_loop): Likewise.
3209 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3210 skip evolution analysis if analyzing a basic block.
3211 (dr_analyze_indices): Likewise.
3212 (initialize_data_dependence_relation): Skip the test whether the
3213 object is invariant for basic blocks.
3214 (compute_all_dependences): Skip dependence analysis for data
3215 references in basic blocks.
3216 (find_data_references_in_stmt): Don't fail in case of invariant
3217 access in basic block.
3218 (find_data_references_in_bb): New function.
3219 (find_data_references_in_loop): Move code to
782dc37a 3220 find_data_references_in_bb and add a call to it.
a70d6342
IR
3221 (compute_data_dependences_for_bb): New function.
3222 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3223 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3224 that STEP is 0.
3225 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3226 unknown dependence in basic block and fail in case of dependence in
3227 basic block.
3228 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3229 dependence instances from either loop or basic block vectorization
3230 info.
3231 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3232 before calling nested_in_vect_loop_p.
3233 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3234 dependence instances from either loop or basic block vectorization
3235 info.
3236 (vect_verify_datarefs_alignment): Likewise.
3237 (vect_enhance_data_refs_alignment): Adjust function calls.
3238 (vect_analyze_data_refs_alignment): Likewise.
3239 (vect_analyze_group_access): Fix printing. Skip different checks if
3240 DR_STEP is 0. Keep strided stores either in loop or basic block
3241 vectorization data structure. Fix indentation.
3242 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3243 basic blocks.
3244 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3245 dependence instances from either loop or basic block vectorization
3246 info.
3247 (vect_analyze_data_refs): Update comment. Call
3248 compute_data_dependences_for_bb to analyze basic blocks.
3249 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3250 case of loop vectorization. In case of basic block vectorization use
782dc37a 3251 data-ref itself as a base.
a70d6342
IR
3252 (vect_create_data_ref_ptr): In case of basic block vectorization:
3253 don't advance the pointer, add new statements before the current
3254 statement. Adjust function calls.
3255 (vect_supportable_dr_alignment): Support only aligned accesses in
3256 basic block vectorization.
3257 * common.opt (ftree-slp-vectorize): New flag.
3258 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3259 (vect_pattern_recog_1): Likewise.
3260 * tree-vect-stmts.c (process_use): Likewise.
3261 (vect_init_vector): Add new statements in the beginning of the basic
3262 block in case of basic block SLP.
3263 (vect_get_vec_def_for_operand): Adjust function calls.
3264 (vect_finish_stmt_generation): Likewise.
3265 (vectorizable_call): Add assert that it is loop vectorization, adjust
3266 function calls.
3267 (vectorizable_conversion, vectorizable_assignment): Likewise.
3268 (vectorizable_operation): In case of basic block SLP, take
3269 vectorization factor from statement's type and skip the relevance
3270 check. Adjust function calls.
3271 (vectorizable_type_demotion): Add assert that it is loop
3272 vectorization, adjust function calls.
3273 (vectorizable_type_promotion): Likewise.
3274 (vectorizable_store): Check for outer loop only in case of loop
3275 vectorization. Adjust function calls. For basic blocks, skip the
3276 relevance check and don't advance pointers.
3277 (vectorizable_load): Likewise.
3278 (vectorizable_condition): Add assert that it is loop vectorization,
3279 adjust function calls.
3280 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3281 that it is not reduction, get vector type, call only supported
782dc37a 3282 functions, skip loop specific parts.
a70d6342
IR
3283 (vect_transform_stmt): Check for outer loop only in case of loop
3284 vectorization.
3285 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3286 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3287 for external definition.
3288 * passes.c (pass_slp_vectorize): New pass.
3289 * tree-vect-slp.c (find_bb_location): New function.
3290 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3291 check for patterns only in loops.
3292 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3293 case of multiple types in basic block SLP.
3294 (vect_mark_slp_stmts_relevant): New function.
3295 (vect_supported_load_permutation_p): Fix comment.
3296 (vect_analyze_slp_instance): Add argument. In case of basic block
3297 SLP, take vectorization factor from statement's type, check that
3298 unrolling factor is 1. Adjust function call. Save SLP instance in
3299 either loop or basic block vectorization structure. Return FALSE,
3300 if SLP failed.
3301 (vect_analyze_slp): Add argument. Get strided stores groups from
3302 either loop or basic block vectorization structure. Return FALSE
3303 if basic block SLP failed.
3304 (new_bb_vec_info): New function.
3305 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3306 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3307 (vect_schedule_slp): Add argument. Get SLP instances from either
3308 loop or basic block vectorization structure. Set vectorization factor
3309 to be 1 for basic block SLP.
3310 (vect_slp_transform_bb): New function.
3311 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3312
0676c393
MM
33132009-05-23 Mark Mitchell <mark@codesourcery.com>
3314
3315 * final.c (shorten_branches): Do not align labels for jump tables.
3316 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3317
94324dae
EB
33182009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3319
3320 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3321 Remove outdated reference to flow.c and fix nits.
3322 * doc/gccint.texi: Tweak RTL description.
3323 * doc/rtl.texi: Likewise.
3324
92bffc14
DC
33252009-05-23 Denis Chertykov <chertykov@gmail.com>
3326
3327 * config/avr/avr.c: Change my email address.
3328 * config/avr/avr.h: Likewise.
3329 * config/avr/avr.md: Likewise.
3330 * config/avr/avr-protos.h: Likewise.
3331 * config/avr/libgcc.S: Likewise.
3332
eec9405e
TS
33332009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3334
3335 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3336 (spu_split_load, spu_split_store): Change return type to int.
3337 (spu_split_convert): Declare.
3338 * config/spu/predicates.md (spu_mem_operand): Remove.
3339 (spu_mov_operand): Update.
3340 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3341 * config/spu/spu.c (regno_aligned_for_load): Remove.
3342 (reg_aligned_for_addr, spu_expand_load): Define.
3343 (spu_expand_extv): Reimplement and handle MEM.
3344 (spu_expand_insv): Handle MEM.
3345 (spu_sched_reorder): Handle insn's with length 0.
3346 (spu_legitimate_address_p): Reimplement.
3347 (store_with_one_insn_p): Return TRUE for any mode with size
3348 larger than 16 bytes.
3349 (address_needs_split): Define.
3350 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3351 operands.
3352 (spu_convert_move): Define.
782dc37a 3353 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3354 (spu_split_store): Change all MEM's to TImode.
3355 (spu_init_expanders): Preallocate registers that correspond to
3356 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3357 mark_reg_pointer.
3358 (spu_split_convert): Define.
3359 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3360 (_move<mode>, _movdi, _movti): Update predicate and condition.
3361 (load, store): Change to define_split.
3362 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3363 extend<mode>ti2.
3364 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3365 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3366 define_insn_and_split of lshr<mode>3.
3367 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3368 (<v>ashr<mode>3_imm): Define.
3369 (extv, extzv, insv): Allow MEM operands.
3370 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3371 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3372 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3373 (_spu_convert2): Change to define_insn_and_split and remove the
3374 corresponding define_peephole2.
3375 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3376 Change predicates to memory_operand.
3377
7d31a807
MM
33782009-05-22 Mark Mitchell <mark@codesourcery.com>
3379
3380 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3381
d021d274
MM
33822009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3383
3384 PR tree-optimization/40219
3385 * tree.c (iterative_hash_expr): Make sure the builtin function is
3386 a normal builtin function and not a front end or back end builtin
3387 before indexing into the built_in_decls array.
3388
4d7a65ea
RG
33892009-05-22 Richard Guenther <rguenther@suse.de>
3390
3391 PR middle-end/38964
3392 * alias.c (write_dependence_p): Do not use TBAA for answering
3393 anti-dependence or output-dependence.
782dc37a 3394 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3395 (emit_pointer_definition): Remove.
3396 (emit_alias_warning): Likewise.
3397 (find_what_var_points_to): Remove TBAA pruning code.
3398 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3399 violations.
3400 (compute_points_to_sets): Remove code computing the set of
3401 dereferenced pointers.
3402 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3403 oracle for querying anti and output dependencies.
3404 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3405 if TBAA may be applied.
3406 (refs_anti_dependent_p): New function.
3407 (refs_output_dependent_p): Likewise.
3408 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3409 (refs_output_dependent_p): Likewise.
3410 * doc/tree-ssa.texi (Memory model): New section.
3411 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3412 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3413 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3414 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3415 * expr.c (expand_expr_real_1): Likewise.
3416 * gimple-low.c (lower_stmt): Likewise.
3417 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3418 (dump_gimple_cdt): Remove.
3419 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3420 (gimple_size): Likewise.
3421 (walk_gimple_op): Likewise.
3422 (is_gimple_stmt): Likewise.
3423 (walk_stmt_load_store_addr_ops): Likewise.
3424 (gimple_build_cdt): Remove.
3425 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3426 * gimple.h (gimple_cdt_new_type): Remove.
3427 (gimple_cdt_new_type_ptr): Likewise.
3428 (gimple_cdt_set_new_type): Likewise.
3429 (gimple_cdt_location): Likewise.
3430 (gimple_cdt_location_ptr): Likewise.
3431 (gimple_cdt_set_location): Likewise.
3432 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3433 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3434 GIMPLE_CHANGE_DYNAMIC_TYPE.
3435 (verify_types_in_gimple_stmt): Likewise.
3436 * tree-inline.c (estimate_num_insns): Likewise.
3437 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3438 (copy_decl_to_var): Likewise.
3439 (copy_result_decl_to_var): Likewise.
3440 * tree-pretty-print.c (dump_generic_node): Do not handle
3441 CHANGE_DYNAMIC_TYPE_EXPR.
3442 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3443 * tree-ssa-operands.c (get_expr_operands): Likewise.
3444 * tree-ssa-structalias.c (struct variable_info): Remove
3445 no_tbaa_pruning member.
3446 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3447 (unify_nodes): Do not copy it.
3448 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3449 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3450 (set_uids_in_ptset): Do not check it.
3451 (find_what_var_points_to): Likewise.
3452 (compute_tbaa_pruning): Remove.
3453 (compute_points_to_sets): Do not call it.
3454 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3455 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3456 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3457 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3458 (DECL_NO_TBAA_P): Likewise.
3459 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3460 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3461 (expand_omp_atomic_pipeline): Do not set it.
3462 * print-tree.c (print_node): Do not dump it.
3463 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3464 redundant check.
3465
83a6ac60
VM
34662009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3467
3468 PR target/39856
3469 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3470 for clobber.
3471
fe2978fb
MM
34722009-05-22 Mark Mitchell <mark@codesourcery.com>
3473
3474 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3475 non-external.
3476
134ef638
BE
34772009-05-22 Ben Elliston <bje@au.ibm.com>
3478
3479 * Makefile.in (bversion.h, s-bversion): New targets.
3480 (TOPLEV_H): Add bversion.h.
3481 * toplev.h: Include "bversion.h".
3482 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3483 the __format__ attribute only if compiling with the same version
3484 of GCC as the sources (the "build version").
3485
52fc669d
BE
34862009-05-22 Ben Elliston <bje@au.ibm.com>
3487
3488 * c-format.c (handle_format_attribute): Fix comment typo.
3489
583ca921
SE
34902009-05-21 Steve Ellcey <sje@cup.hp.com>
3491
3492 PR target/37846
3493 * config/ia64/ia64.opt (mfused-madd): New.
3494 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3495 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3496 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3497 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3498 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3499 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3500 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3501 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3502 instruction if !TARGET_FUSED_MADD.
3503 (fpma, fpms): Remove colon from name.
3504
150e3929
RG
35052009-05-22 Richard Guenther <rguenther@suse.de>
3506
3507 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3508 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3509 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3510 TARGET_MEM_REF.
3511 (create_expression_by_pieces): Only convert if necessary.
3512 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3513 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3514
9a2b090c
AN
35152009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3516
3517 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3518 regular pattern from a template and rename it ...
3519 (*extzv_truncsi_exts): ... to this.
3520
33b92c9d
RG
35212009-05-21 Richard Guenther <rguenther@suse.de>
3522
3523 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3524 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3525 (cgraph_default_inline_p): Likewise.
3526 (cgraph_decide_inlining_incrementally): Likewise.
3527
cabf85c3
L
35282009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3529 Uros Bizjak <ubizjak@gmail.com>
3530
3531 * config/i386/cpuid.h (bit_MOVBE): New.
3532
3533 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3534
3535 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3536 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3537 (ix86_handle_option): Handle OPT_mmovbe.
3538 (ix86_target_string): Add -mmovbe.
3539 (pta_flags): Add PTA_MOVBE.
3540 (processor_alias_table): Add PTA_MOVBE to "atom".
3541 (override_options): Handle PTA_MOVBE.
3542
3543 * config/i386/i386.h (TARGET_MOVBE): New.
3544
3545 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3546 (*bswapsi_movbe): New.
3547 (*bswapdi_movbe): Likewise.
3548 (bswapdi2): Renamed to ...
3549 (*bswapdi_1): This.
3550 (bswapdi2): New expander.
3551
3552 * config/i386/i386.opt (mmovbe): New.
3553
3554 * doc/invoke.texi: Document -mmovbe.
3555
9fefa0aa
TG
35562009-05-21 Taras Glek <tglek@mozilla.com>
3557
3558 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3559 * gcc-plugin.h (plugin_init): Updated signature.
3560 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3561 * doc/plugins.texi (plugin_init): Updated documention to reflect
3562 API change.
9fefa0aa
TG
3563 * doc/plugins.texi (plugin_name_args): Added to documention.
3564
1ea9fe56
MM
35652009-05-21 Mark Mitchell <mark@codesourcery.com>
3566
3567 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3568 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3569
52f84254
SZ
35702009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3571
3572 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3573 JUMP_TABLE_DATA_P predicates where applicable.
3574 * config/i386/predicates.md: Ditto.
3575 * config/i386/sse.md: Ditto.
3576
a952487c
JJ
35772009-05-21 Jakub Jelinek <jakub@redhat.com>
3578
93cac287
JJ
3579 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3580 operand2 -128 override length_immediate attribute to 1.
3581 * config/i386/predicates.md (constm128_operand): New predicate.
3582
a952487c
JJ
3583 * config/i386/i386.c (memory_address_length): Handle %r12
3584 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3585 also check REGNO.
3586 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3587 mode look through optional ZERO_EXTEND and SUBREG.
3588 * config/i386/i386.md (R12_REG): New define_constant.
3589 (prefix_data16): For sse unit set also for MODE_TI insns.
3590 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3591 insns set if operand 1 is ext_QIreg_operand.
3592 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3593 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3594 immediate.
3595 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3596 mode from MODE_DI to MODE_SI.
3597 (movdi_1_rex64): Override modrm and length_immediate attributes
3598 only for movabs (TYPE_IMOV, alternative 2).
3599 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3600 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3601 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3602 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3603 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3604 prefix_rex attribute if DImode.
3605 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3606 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3607 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3608 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3609 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3610 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3611 Likewise. For TYPE_IMOV clear length_immediate attribute.
3612 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3613 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3614 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3615 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3616 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3617 or one operand TYPE_ISHIFT.
3618 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3619 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3620 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3621 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3622 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3623 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3624 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3625 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3626 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3627 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3628 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3629 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3630 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3631 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3632 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3633 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3634 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3635 set mode attribute, don't override length attribute.
3636 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3637 to 1.
3638 (return_internal_long): Set length attribute to 2 instead of 1.
3639 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3640 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3641 prefix_rex attribute.
782dc37a
UB
3642 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3643 New predicates.
3644 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3645
64af62c2
RR
36462009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3647
3648 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3649
c166b898
ILT
36502009-05-20 Ian Lance Taylor <iant@google.com>
3651
3652 * tree.c (build_tree_list_vec_stat): New function.
3653 (ctor_to_vec): New function.
3654 (build_nt_call_vec): New function.
3655 (build_call_array): Change args to be a const pointer.
3656 (build_call_vec): New function.
3657 * tree.h (build_nt_call_vec): Declare.
3658 (build_tree_list_vec_stat): Declare.
3659 (build_tree_list_vec): Define.
3660 (build_call_array): Update declaration.
3661 (build_call_vec): Declare.
3662 (ctor_to_vec): Declare.
3663 * c-common.c (tree_vector_cache): New static variable.
3664 (make_tree_vector): New function.
3665 (release_tree_vector): New function.
3666 (make_tree_vector_single): New function.
3667 (make_tree_vector_copy): New function.
3668 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3669 (make_tree_vector_single, make_tree_vector_copy): Declare.
3670 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3671 (c_parser_expr_list): Don't manage cache here, instead call
3672 make_tree_vector.
3673 (c_parser_release_expr_list): Remove static function.
3674 (c_parser_vec_to_tree_list): Remove static function.
3675 (c_parser_attributes): Call build_tree_list_vec instead of
3676 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3677 c_parser_release_expr_list.
3678 (c_parser_postfix_expression_after_primary): Likewise.
3679 (c_parser_objc_keywordexpr): Likewise.
3680
40449a90
SL
36812009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3682
3683 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3684 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3685 TARGET_CONVERT_TO_TYPE.
3686 * hooks.c (hook_tree_const_tree_null): Define.
3687 * hooks.h (hook_tree_const_tree_null): Declare.
3688 * target.h (struct gcc_target): Add invalid_parameter_type,
3689 invalid_return_type, promoted_type, and convert_to_type fields.
3690 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3691 (TARGET_INVALID_RETURN_TYPE): Define.
3692 (TARGET_PROMOTED_TYPE): Define.
3693 (TARGET_CONVERT_TO_TYPE): Define.
3694 (TARGET_INITIALIZER): Update for new fields.
3695 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3696 (grokparms): Check targetm.invalid_parameter_type.
3697 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3698 * c-convert.c (convert): Check targetm.convert_to_type.
3699
642d97ff
AN
37002009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3701
3702 * config/mips/mips.md (*extenddi_truncate<mode>,
3703 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3704 defintions.
3705 (*extendhi_truncateqi): New define_insn_and_sptit.
3706
776248b8
JJ
37072009-05-20 Jakub Jelinek <jakub@redhat.com>
3708
3709 PR middle-end/40204
3710 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3711 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3712
d98e8686
EB
37132009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3714
3715 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3716 the operand of VIEW_CONVERT_EXPR.
3717
37c50435
L
37182009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3719
3720 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3721 extended family and model for Intel processors. Support Intel Atom.
37c50435 3722
dbb6088f
OH
37232009-05-20 Olivier Hainque <hainque@adacore.com>
3724
3725 * gstab.h (stab_code_type): Define, to be used instead of the
3726 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3727 notice.
3728 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3729 occurrences by stab_code_type.
3730 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3731
7ec49257
MJ
37322009-05-20 Martin Jambor <mjambor@suse.cz>
3733
3734 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3735 (sra_insert_before): Likewise.
3736 (sra_insert_after): Likewise.
3737 (sra_init_cache): Likewise.
3738 (sra_type_can_be_decomposed_p): Likewise.
3739 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3740 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3741 (sra_insert_before): Likewise.
3742 (sra_insert_after): Likewise.
3743 (sra_init_cache): Likewise.
3744 (insert_edge_copies_seq): Made static and moved upwards.
3745
3746 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3747 case.
3748
3749 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3750
3751 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3752 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3753 simple copies.
3754
0328ae4d
RG
37552009-05-20 Richard Guenther <rguenther@suse.de>
3756
3757 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3758 with mismatched comparison modes.
3759
a7994a57 37602009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3761
a7994a57 3762 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3763 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3764 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3765 with shifts for Thumb2.
3766 (orsi_notsi): New for orn.
3767 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3768 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3769 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3770 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3771 Don't invert remainder for IOR.
a7994a57 3772
e36dc339
ZD
37732009-05-19 Zdenek Dvorak <ook@ucw.cz>
3774
3775 PR tree-optimization/40087
3776 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3777 number_of_iterations_ne): Rename never_infinite argument.
3778 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3779 number_of_iterations_le): Handle pointer-type ivs when
3780 exit_must_be_taken is false.
3781 (number_of_iterations_cond): Do not always assume that
3782 exit_must_be_taken if the control variable is a pointer.
3783
5cfd5d9b
AP
37842009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3785
3786 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3787 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3788
2f1c7156
L
37892009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3790
3791 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3792 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3793
7bb27074
MLI
37942009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3795
3796 PR c/40172
3797 * c.opt (Wlogical-op): Disabled by default.
3798 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3799 Wextra.
3800 * doc/invoke.texi (Wlogical-op): Likewise.
3801
5aefc6a0
EB
38022009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3803
3804 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3805 into CASE_CONVERT.
3806 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3807 Propagate the type of the first operand.
3808 <ASSERT_EXPR>: Simplify.
3809 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3810 Rewrite using the RHS code as discriminant.
3811 <NOP_EXPR>: Turn into CASE_CONVERT.
3812 <PLUS_EXPR>: Propagate the type of the first operand.
3813
f3a83111
SE
38142009-05-19 Steve Ellcey <sje@cup.hp.com>
3815
3816 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3817 (ia64_dconst_0_375): New.
3818 * config/ia64/ia64.c (ia64_override_options): Remove
3819 -minline-sqrt-min-latency warning.
3820 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3821 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3822 * config/ia64/ia64.md (*sqrt_approx): Remove.
3823 (sqrtsf2): Remove #if 0.
3824 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3825 (sqrtdf): Remove assert.
3826 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3827 (sqrtxf2): Remove #if 0.
3828 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3829 * div.md (sqrt_approx_rf): New.
3830 (sqrtsf2_internal_thr): New implementation.
3831 (sqrtsf2_internal_lat): New.
3832 (sqrtdf2_internal_thr: New implementation.
3833 (sqrtxf2_internal): New implementation.
3834
1ffc7157
FXC
38352009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3836 Hans-Peter Nilsson <hp@axis.com>
3837
3838 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3839 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3840 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3841 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3842 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3843 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3844 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3845 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3846 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3847 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3848 * c-common.c: ...from here.
3849
db91d9ef
MLI
38502009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3851
f3afc8a7 3852 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3853
bbb9d91f
KG
38542009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3855
3856 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3857
ce883f54
BE
38582009-05-19 Ben Elliston <bje@au.ibm.com>
3859
3860 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3861 assignments with memcpy calls.
3862 (add_fdes): Likewise.
3863 (binary_search_unencoded_fdes): Likewise.
3864 (linear_search_fdes): Eliminate type puns.
3865
377f099a
RG
38662009-05-19 Richard Guenther <rguenther@suse.de>
3867
3868 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3869 not falsely claim to have propagated into all uses.
3870
848bc769
BE
38712009-05-19 Ben Elliston <bje@au.ibm.com>
3872
3873 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3874 version to v3.0.
3875
1bb99877
KK
38762009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3877
3878 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3879 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3880 (TARGET_LEGITIMATE_ADDRESS_P): New.
3881 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3882 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3883
82725547
DS
38842009-05-18 Dodji Seketeli <dodji@redhat.com>
3885
3886 PR debug/40109
3887 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3888 child of the containing namespace's DIE.
3889
f6a1e430
AN
38902009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3891
3892 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3893 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3894 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3895 extend patterns.
3896
6a90d232
L
38972009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3898
3899 PR target/39942
3900 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3901 gen_align with gen_pad.
3902 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3903 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3904
3905 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3906 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3907
3908 * config/i386/i386.md (align): Renamed to ...
3909 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3910 ASM_OUTPUT_MAX_SKIP_PAD.
3911
c4406f74
AS
39122009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3913
06555043
AS
3914 * config.gcc: Fix variable syntax.
3915
c4406f74
AS
3916 PR target/39531
3917 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3918 before calling exact_log2.
3919 (output_iorsi3): Likewise.
3920 (output_xorsi3): Likewise.
3921
99052692
KK
39222009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3923
3924 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3925 for the none zero constant operand except for EQ and NE
3926 comprisons even when the first operand is R0.
3927
f4aa3848
AK
39282009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3929
3930 * config/s390/2064.md: Remove trailing whitespaces.
3931 * config/s390/2084.md: Likewise.
3932 * config/s390/constraints.md: Likewise.
3933 * config/s390/fixdfdi.h: Likewise.
3934 * config/s390/libgcc-glibc.ver: Likewise.
3935 * config/s390/s390-modes.def: Likewise.
3936 * config/s390/s390-protos.h: Likewise.
3937 * config/s390/s390.c: Likewise.
3938 * config/s390/s390.h: Likewise.
3939 * config/s390/s390.md: Likewise.
3940 * config/s390/tpf-unwind.h: Likewise.
3941
ab7256e4
MK
39422009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3943
3944 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3945
75df395f
MK
39462009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3947
3948 M68K TLS support.
3949 * configure.ac (m68k-*-*): Check if binutils support TLS.
3950 * configure: Regenerate.
3951 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3952 * config/m68k/constraints.md (Cu): New constraint.
3953 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3954 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3955 (movsi): Handle TLS symbols.
3956 (addsi3_5200): Handle XTLS symbols, indent.
3957 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3958 (m68k_tls_reference_p): Declare.
3959 (m68k_legitimize_address): Declare.
3960 (m68k_unwrap_symbol): Declare.
3961 * config/m68k/m68k.opt (mxtls): New option.
3962 * config/m68k/m68k.c (ggc.h): Include.
3963 (m68k_output_dwarf_dtprel): Implement hook.
3964 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3965 (m68k_expand_prologue): Load GOT pointer when function needs it.
3966 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3967 (m68k_legitimate_constant_address_p): Same.
3968 (m68k_decompose_address): Handle TLS references.
3969 (m68k_get_gp): New static function.
3970 (enum m68k_reloc): New contants.
3971 (TLS_RELOC_P): New macro.
3972 (m68k_wrap_symbol): New static function.
3973 (m68k_unwrap_symbol): New function.
3974 (m68k_final_prescan_insn_1): New static function.
3975 (m68k_final_prescan_insn): New function.
3976 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3977 functions.
3978 (legitimize_pic_address): Handle TLS references..
3979 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3980 (m68k_libcall_value_in_a0_p)
3981 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3982 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3983 (m68k_legitimize_tls_address): Handle TLS references.
3984 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3985 New functions.
3986 (m68k_legitimize_address): Handle TLS symbols.
3987 (m68k_get_reloc_decoration): New static function.
3988 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3989 UNSPEC_RELOC32.
3990 (m68k_output_dwarf_dtprel): Implement hook.
3991 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3992 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3993 m68k_call_* routines.
3994 (sched_attr_op_type): Handle TLS symbols.
3995 (gt-m68k.h): Include.
3996 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3997 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3998
8b75fc9b
MJ
39992009-05-18 Martin Jambor <mjambor@suse.cz>
4000
4001 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4002 (visit_store_addr_for_mod_analysis): New function.
4003 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4004 (determine_cst_member_ptr): Use gimple_assign_single_p.
4005 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4006 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4007 operands. Don't check number of operands of a NOP_EXPR.
4008
f133d4a2
EF
40092009-05-18 Eric Fisher <joefoxreal@gmail.com>
4010
4011 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4012
ae8af500
L
40132009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
4014
4015 PR c/40172
4016 * c-common.c (warn_logical_operator): Don't warn if one of
4017 expression isn't always true or false.
4018
25e8fde8
KT
40192009-05-17 Kai Tietz <kai.tietz@onevision.com>
4020
ae8af500
L
4021 * config/i386/biarch32.h: New file.
4022 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 4023
ef67af22
AN
40242009-05-17 Adam Nemet <anemet@caviumnetworks.com>
4025
4026 * config/mips/mips.md (*zero_extend<mode>_trunchi,
4027 *zero_extend<mode>_truncqi): Merge these into ...
4028 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4029 Name the pattern following this as *zero_extendhi_truncqi.
4030
e2d87023
BL
40312009-05-16 Brad Lucier <lucier@math.purdue.edu>
4032
4033 PR middle-end/39301
4034 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4035 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4036 (output_info): Make field HOST_WIDEST_INT.
4037 (print_statistics): Use HOST_WIDEST_INT_PRINT.
4038 (dump_bitmat_statistics): Same.
4039
428ddbf0
FXC
40402009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
4041
4042 * config.gcc (use_gcc_stdint): Set to wrap.
4043 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4044 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4045 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4046 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4047 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4048 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4049 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4050 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4051
1ab8a8c2
JM
40522009-05-16 Joseph Myers <joseph@codesourcery.com>
4053
4054 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4055 tune_64.
4056 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4057 Move definitions earlier.
4058 (OPT_ARCH64, OPT_ARCH32): Define.
4059 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4060 and tune_64.
4061
70544f44
RE
40622009-05-16 Richard Earnshaw <rearnsha@arm.com>
4063
4064 PR target/40153
4065 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4066 implies.
4067
6241ded1
RE
40682009-05-16 Richard Earnshaw <rearnsha@arm.com>
4069
4070 * arm.md (movdi2): Copy non-reg values to DImode registers.
4071
a99c6711
JJ
40722009-05-16 Jakub Jelinek <jakub@redhat.com>
4073
40a8f07a
JJ
4074 PR target/39942
4075 * final.c (label_to_max_skip): New function.
4076 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4077 CODE_LABEL_NUMBER <= max_labelno.
4078 * output.h (label_to_max_skip): New prototype.
4079 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4080 (ix86_avoid_jump_mispredicts): ... this. Don't define if
4081 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
4082 Handle CODE_LABELs with >= 16 byte alignment or with
4083 max_skip == (1 << align) - 1.
4084 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4085 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4086
a99c6711
JJ
4087 PR target/39942
4088 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4089 .p2align 3 if MAX_SKIP is smaller than 7.
4090 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4091
7e5487a2
ILT
40922009-05-15 Ian Lance Taylor <iant@google.com>
4093
4094 * alias.c (struct alias_set_entry_d): Rename from struct
4095 alias_set_entry. Change all uses.
4096 * except.c (struct call_site_record_d): Rename from struct
4097 call_site_record. Change all uses.
4098 * except.h (struct eh_region_d): Rename from struct eh_region.
4099 Change all uses.
4100 * gcse.c (struct hash_table_d): Rename from struct hash_table.
4101 Change all uses.
4102 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4103 ivtype_map_elt. Change all uses.
4104 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4105 Change all uses.
4106 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
4107 * graphite.h (struct name_tree_d): Rename from struct name_tree.
4108 Change all uses.
4109 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
4110 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
4111 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
4112 * optabs.h (struct optab_d): Rename from struct optab. Change all
4113 uses.
4114 (struct convert_optab_d): Rename from struct convert_optab.
4115 Change all uses.
4116 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4117 ipa_opt_pass. Change all uses.
4118 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
4119 all uses.
4120
4121 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4122 defined as a typedef.
4123 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4124 defined as a tag.
4125
a243fb4a
MLI
41262009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4127
4128 PR 16302
4129 * fold-const.c (make_range,build_range_check,merge_ranges): Move
4130 declaration to...
4131 (merge_ranges): Returns bool.
4132 * tree.h (make_range): .. to here.
4133 (build_range_check): Likewise.
4134 (merge_ranges): Likewise. Renamed from merge_ranges.
4135 * c-typeck.c (parser_build_binary_op): Update calls to
4136 warn_logical_operator.
4137 * c-common.c (warn_logical_operator): Add new warning.
4138 * c-common.h (warn_logical_operator): Update declaration.
4139
1b53c5f3
MLI
41402009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4141
782dc37a 4142 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 4143
c128599a
KG
41442009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4145
f9bab007
KG
4146 * doc/install.texi: Document MPC requirements, flags etc.
4147
c128599a
KG
4148 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4149 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4150 Evaluate constant arguments.
4151 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4152 (fold_builtin_1): Likewise, also evaluate constant arguments.
4153 Remove superfluous break.
4154 (do_mpc_ckconv): New.
4155 * real.h: Include mpc.h.
4156 * toplev.c (print_version): Output MPC version info if available.
4157
d33e4b70
SL
41582009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4159
782dc37a 4160 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 4161
a02ab464
L
41622009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4163
4164 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4165 only once.
4166
796bda22
JH
41672009-05-15 Jan Hubicka <jh@suse.cz>
4168
4169 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4170 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4171 (try_inline): Fix return value.
4172 (cgraph_decide_inlining_incrementally): Honor new value.
4173 (cgraph_early_inlining): Handle indirect inlining.
4174 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4175
d88e5c37
JH
41762009-05-15 Jan Hubicka <jh@suse.cz>
4177
4178 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4179 * cgraphunit.c (cgraph_finalize_function): Set it.
4180 (cgraph_expand_function): Use it.
4181
ae63687c
SL
41822009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4183
4184 * real.c (encode_ieee_half): Define.
4185 (decode_ieee_half): Define.
4186 (ieee_half_format): Define.
4187 (arm_half_format): Define.
4188 * real.h (ieee_half_format): Declare.
4189 (arm_half_format): Declare.
4190
1bd74ad9
SL
41912009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4192
4193 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
4194 swapped, and reversed optabs exist before trying to use them.
4195
dc34db56
PB
41962009-05-15 Paul Brook <paul@codesourcery.com>
4197 Sandra Loosemore <sandra@codesourcery.com>
4198
dc34db56
PB
4199 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4200 loads. Allow PRE_DEC.
4201 (output_move_neon): Handle PRE_DEC.
4202 (arm_print_operand): Add 'A' for neon structure loads.
4203 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4204 * config/arm/neon.md (neon_mov): Update comment.
4205 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4206 calls.
4207 (Um): New constraint.
4208
1d405d7b
JH
42092009-05-15 Jan Hubicka <jh@suse.cz>
4210
4211 Revert the following patch until testsuite fallout is fixed:
4212 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4213 * cgraph.h (struct inline_summary): New filed self_wize,
4214 size_inlining_benefit, self_time and time_inlining_benefit.
4215 (struct cgraph_global_info): Replace insns by time ans size fields.
4216 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4217 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4218 (ipcp_update_callgraph): Do not touch function bodies.
4219 * ipa-inline.c: Include except.h
782dc37a 4220 (MAX_TIME): New constant.
1d405d7b
JH
4221 (overall_insns): Remove
4222 (overall_size, max_benefit): New static variables.
4223 (cgraph_estimate_time_after_inlining): New function.
4224 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4225 (cgraph_clone_inlined_nodes): Update size.
4226 (cgraph_mark_inline_edge): Update size.
4227 (cgraph_estimate_growth): Use size info.
4228 (cgraph_check_inline_limits): Check size.
4229 (cgraph_default_inline_p): Likewise.
4230 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4231 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4232 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4233 and times.
1d405d7b 4234 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4235 (cgraph_decide_inlining_incrementally): Likewise; honor
4236 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4237 (likely_eliminated_by_inlining_p): New predicate.
4238 (estimate_function_body_sizes): New function.
4239 (compute_inline_parameters): Use it.
4240 * except.c (must_not_throw_labels): New function.
4241 * except.h (must_not_throw_labels): Declare.
4242 * tree-inline.c (init_inline_once): Kill inlining_weigths
4243 * tree-ssa-structalias.c: Avoid uninitialized warning.
4244 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4245 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4246 (PARAM_INLINE_CALL_COST): Remove.
4247 (PARAM_EARLY_INLINING_INSNS): New.
4248
7ffa47ca
RG
42492009-05-15 Richard Guenther <rguenther@suse.de>
4250
4251 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4252 not TODO_update_ssa.
4253
828552ed
RG
42542009-05-15 Richard Guenther <rguenther@suse.de>
4255
4256 PR tree-optimization/39999
4257 * gimple.h (gimple_expr_type): Use the expression type looking
4258 through useless conversions.
4259 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4260 (vn_nary_op_insert_stmt): Likewise.
4261 (simplify_binary_expression): Likewise.
4262
248fc9f3
RG
42632009-05-15 Richard Guenther <rguenther@suse.de>
4264
4265 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4266 New options, enabled by default.
4267 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4268 Document.
4269 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4270 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4271 * tree-ssa-structalias.c (gate_tree_pta): New function.
4272 (pass_build_alias): Use it.
4273
16b29cc4
JM
42742009-05-15 Joseph Myers <joseph@codesourcery.com>
4275
4276 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4277 recurse on an invariant address if a conversion from a pointer
4278 type to a wider integer type is involved.
4279
125cae84
JH
42802009-05-15 Jan Hubicka <jh@suse.cz>
4281
4282 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4283 * cgraph.h (struct inline_summary): New filed self_wize,
4284 size_inlining_benefit, self_time and time_inlining_benefit.
4285 (struct cgraph_global_info): Replace insns by time ans size fields.
4286 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4287 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4288 (ipcp_update_callgraph): Do not touch function bodies.
4289 * ipa-inline.c: Include except.h
782dc37a 4290 (MAX_TIME): New constant.
125cae84
JH
4291 (overall_insns): Remove
4292 (overall_size, max_benefit): New static variables.
4293 (cgraph_estimate_time_after_inlining): New function.
4294 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4295 (cgraph_clone_inlined_nodes): Update size.
4296 (cgraph_mark_inline_edge): Update size.
4297 (cgraph_estimate_growth): Use size info.
4298 (cgraph_check_inline_limits): Check size.
4299 (cgraph_default_inline_p): Likewise.
4300 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4301 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4302 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4303 and times.
125cae84 4304 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4305 (cgraph_decide_inlining_incrementally): Likewise; honor
4306 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4307 (likely_eliminated_by_inlining_p): New predicate.
4308 (estimate_function_body_sizes): New function.
4309 (compute_inline_parameters): Use it.
4310 * except.c (must_not_throw_labels): New function.
4311 * except.h (must_not_throw_labels): Declare.
4312 * tree-inline.c (init_inline_once): Kill inlining_weigths
4313 * tree-ssa-structalias.c: Avoid uninitialized warning.
4314 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4315 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4316 (PARAM_INLINE_CALL_COST): Remove.
4317 (PARAM_EARLY_INLINING_INSNS): New.
4318 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4319 (inline-call-cost): Remove.
4320 (early-inlining-insns): New.
4321
84fb43a1
EB
43222009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4323
4324 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4325 for bounds.
4326 (print_int_cst_bounds_in_octal_p): Likewise.
4327 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4328 with subtypes.
4329 * dwarf2out.c (base_type_die): Likewise.
4330 (is_subrange_type): Delete.
4331 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4332 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4333 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4334 if the destination type is boolean.
84fb43a1
EB
4335 (build_range_check): Do not special-case subtypes.
4336 (fold_sign_changed_comparison): Likewise.
4337 (fold_unary): Likewise.
4338 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4339 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4340 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4341 * tree.c (subrange_type_for_debug_p): New predicate based on the
4342 former is_subrange_type.
84fb43a1
EB
4343 * tree.h (subrange_type_for_debug_p): Declare.
4344 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4345 (convert_affine_scev): Remove call to above function.
4346 (chrec_convert_aggressive): Likewise.
4347 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4348 false for conversions involving subtypes.
4349 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4350 (vrp_val_min): Likewise.
4351 (needs_overflow_infinity): Likewise.
4352 (extract_range_from_unary_expr): Likewise.
4353
331d9186
PB
43542009-05-15 Paolo Bonzini <bonzini@gnu.org>
4355
e9351712
L
4356 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4357 * config/frv/frv.c: Likewise.
4358 * config/s390/s390.c: Likewise.
4359 * config/sparc/sparc.h: Likewise.
4360 * config/i386/i386.h: Likewise.
4361 * config/i386/i386.c: Likewise.
4362 * config/crx/crx.c: Likewise.
4363 * config/m68hc11/m68hc11.h: Likewise.
4364 * config/iq2000/iq2000.c: Likewise.
4365 * config/mn10300/mn10300.h: Likewise.
4366 * config/mn10300/mn10300.c: Likewise.
4367 * config/m68k/m68k.c: Likewise.
4368 * config/rs6000/rs6000.c: Likewise.
4369 * config/rs6000/xcoff.h: Likewise.
4370 * config/rs6000/linux64.h: Likewise.
4371 * config/rs6000/sysv4.h: Likewise.
4372 * config/score/score3.c: Likewise.
4373 * config/score/score7.c: Likewise.
4374 * config/score/score.c: Likewise.
4375 * config/arm/arm.md: Likewise.
4376 * config/mips/mips.c: Likewise.
4377 * config/mips/mips.md: Likewise.
4378 * config/bfin/bfin.h: Likewise.
4379 * config/pa/pa.c: Likewise.
4380 * config/pa/constraints.md: Likewise.
4381
4382 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4383 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4384 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4385
09639a83
ILT
43862009-05-14 Ian Lance Taylor <iant@google.com>
4387
4388 * passes.c (finish_optimization_passes): Change i to int.
4389 * plugin.c (plugins_active_p): Change event to int.
4390 (dump_active_plugins): Likewise.
4391 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4392 Add cast.
4393 * tree.c (tree_range_check_failed): Change c to unsigned int.
4394 (omp_clause_range_check_failed): Likewise.
4395 (build_common_builtin_nodes): Change mode to int. Add cast.
4396 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4397 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4398
4399 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4400 ++ or -- with a variable of enum type.
4401
c04a56bf
SB
44022009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4403
4404 PR driver/40144
4405 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4406
237ee620
SB
44072009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4408
4409 * store-motion.c: Do not include params.h
4410 * Makefile.in: Fix dependencies for various files.
4411
1154c4fa
SB
44122009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4413
4414 * auto-inc-dec.c: Fix pass description, remove apparent
4415 accidental duplication.
4416
61c27353
L
44172009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4418
4419 PR middle-end/40147
4420 * ipa-utils.h (memory_identifier_string): Moved to ...
4421 * tree.h (memory_identifier_string): Here. Add GTY(()).
4422
c6c3dba9
PB
44232009-05-14 Paolo Bonzini <bonzini@gnu.org>
4424
4425 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4426 in the former documentation of...
4427 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4428 * ira-conflicts.c (get_dup_num): Use address_operand.
4429 * targhooks.c (default_legitimate_address_p): New.
4430 * targhooks.h (default_legitimate_address_p): New.
4431 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4432 Call hook.
4433 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4434 * target.h (struct target): Add legitimate_address_p.
4435 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4436 (TARGET_INITIALIZER): Include it.
4437
4438 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4439 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4440 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4441 (TARGET_LEGITIMATE_ADDRESS_P): New.
4442
4443 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4444 (REG_OK_STRICT_P): Delete.
4445 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4446 (frv_legitimate_address_p_1): ... this.
4447 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4448 (frv_legitimate_address_p_1): ... the renamed old
4449 frv_legitimate_address_p.
4450 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4451 (TARGET_LEGITIMATE_ADDRESS_P): New.
4452
4453 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4454 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4455 * config/s390/s390.c (legitimate_address_p): Rename to...
4456 (s390_legitimate_address_p): ... this, make static.
4457 (legitimize_address): Adjust call.
4458 (TARGET_LEGITIMATE_ADDRESS_P): New.
4459 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4460
4461 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4462 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4463 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4464 (TARGET_LEGITIMATE_ADDRESS_P): New.
4465
4466 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4467 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4468 * config/spu/spu.c (spu_legitimate_address): Rename to...
4469 (spu_legitimate_address_p): ... this, make static.
4470 (TARGET_LEGITIMATE_ADDRESS_P): New.
4471
4472 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4473 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4474 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4475 (sparc_legitimate_address_p): ... this, make static and return bool.
4476 (legitimize_address): Adjust call.
4477 (TARGET_LEGITIMATE_ADDRESS_P): New.
4478
4479 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4480 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4481 * config/i386/i386.c (legitimate_address_p): Rename to...
4482 (ix86_legitimate_address_p): ... this, make static.
4483 (constant_address_p): Move after it, adjust call.
4484 (TARGET_LEGITIMATE_ADDRESS_P): New.
4485
4486 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4487 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4488 * config/avr/avr.c (legitimate_address_p): Rename to...
4489 (avr_legitimate_address_p): ... this, make static.
4490 (legitimize_address): Adjust call.
4491 (TARGET_LEGITIMATE_ADDRESS_P): New.
4492
4493 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4494 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4495 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4496 (TARGET_LEGITIMATE_ADDRESS_P): New.
4497
4498 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4499 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4500 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4501 (TARGET_LEGITIMATE_ADDRESS_P): New.
4502
4503 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4504 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4505 Remove.
4506 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4507 Make static.
4508 (TARGET_LEGITIMATE_ADDRESS_P): New.
4509
4510 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4511 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4512 Remove.
4513 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4514 Rename to...
4515 (m68hc11_legitimate_address_p): ... this, make static.
4516 (go_if_legitimate_address_internal): Rename to...
4517 (m68hc11_legitimate_address_p_1): ... this.
4518 (legitimize_address): Adjust call.
4519 (TARGET_LEGITIMATE_ADDRESS_P): New.
4520
4521 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4522 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4523 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4524 (TARGET_LEGITIMATE_ADDRESS_P): New.
4525
4526 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4527 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4528 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4529 (mn10300_legitimate_address_p): ... this, make static.
4530 (TARGET_LEGITIMATE_ADDRESS_P): New.
4531
4532 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4533 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4534 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4535 (TARGET_LEGITIMATE_ADDRESS_P): New.
4536
4537 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4538 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4539 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4540 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4541 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4542 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4543 (rs6000_legitimate_address_p): ... this, make static.
4544 (TARGET_LEGITIMATE_ADDRESS_P): New.
4545 (REG_MODE_OK_FOR_BASE_P): Delete.
4546 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4547
4548 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4549 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4550 Delete.
4551 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4552 static, adjust types.
4553 (TARGET_LEGITIMATE_ADDRESS_P): New.
4554
4555 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4556 * config/score/score.c (score_address_p): Rename to...
4557 (score_legitimate_address_p): ... this.
4558 (TARGET_LEGITIMATE_ADDRESS_P): New.
4559 * config/score/score3.c (score3_address_p): Rename to...
4560 (score3_legitimate_address_p): ... this.
4561 * config/score/score7.c (score7_address_p): Rename to...
4562 (score7_legitimate_address_p): ... this.
4563
4564 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4565 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4566 GO_IF_LEGITIMATE_ADDRESS): Delete.
4567 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4568 thumb2_legitimate_address_p): Delete.
4569 (arm_legitimate_address_p): Rename to...
4570 (arm_legitimate_address_outer_p): ... this.
4571 * config/arm/constraints.md ("Uq"): Adjust call.
4572 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4573 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4574 to...
c6c3dba9 4575 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4576 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4577 static.
c6c3dba9
PB
4578 (TARGET_LEGITIMATE_ADDRESS_P): New.
4579
4580 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4581 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4582 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4583 (TARGET_LEGITIMATE_ADDRESS_P): New.
4584
4585 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4586 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4587 * config/vax/vax.c (legitimate_address_p): Rename to...
4588 (vax_legitimate_address_p): ... this, make static.
4589 (TARGET_LEGITIMATE_ADDRESS_P): New.
4590
4591 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4592 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4593 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4594 (TARGET_LEGITIMATE_ADDRESS_P): New.
4595
4596 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4597 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4598 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4599 (mmix_legitimate_address_p): ... this, make static.
4600 (TARGET_LEGITIMATE_ADDRESS_P): New.
4601
4602 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4603 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4604 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4605 (TARGET_LEGITIMATE_ADDRESS_P): New.
4606
3bd0d9c8
PB
46072009-05-14 Paolo Bonzini <bonzini@gnu.org>
4608
4609 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4610 of MODE_COMPLEX_INT.
4611
fe049033
RO
46122009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4613
4614 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4615 LCT_NORMAL in function call.
4616 * mips-tdump.c (print_file_desc): Add cast to enum type.
4617 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4618 (mark_stabs): Add casts to enum types.
4619 (parse_stabs_common): Add casts to enum types.
16f7ad42 4620
b0907a6c
AN
46212009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4622
4623 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4624 Check for invalid values of LETTER.
4625
d1c8e08a
TG
46262009-05-13 Taras Glek <tglek@mozilla.com>
4627
f3afc8a7
UB
4628 * attribs.c (register_attribute): moved out attribute registration
4629 into register_attribute.
4630 * doc/plugins.texi: Documented register_attribute and
4631 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4632 * gcc-plugin.h: Added forward decl for register_attribute.
4633 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4634 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4635 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4636
4ed7f970
DK
46372009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4638
4639 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4640 values even in sentinel and empty entries.
4641 (ms_printf_flag_specs): Likewise.
4642 (ms_scanf_flag_specs): Likewise.
4643 (ms_strftime_flag_specs): Likewise.
4644 (ms_print_char_table): Likewise.
4645 (ms_scan_char_table): Likewise.
4646 (ms_time_char_table): Likewise.
4647
3d8fa148
DK
46482009-05-13 Doug Kwan <dougkwan@google.com>
4649
4650 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4651
f06257d3
AN
46522009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4653
4654 * config/mips/mips.md (store): Add attributes for QI and HI.
4655 Update comment.
4656 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4657 (truncdi<mode>2): ... this new pattern.
4658
fb201767
BH
46592009-05-13 Brad Hards <bradh@kde.org>
4660
4661 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4662
c7bda60e 46632009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4664 Ben Elliston <bje@au.ibm.com>
4665
4666 PR middle-end/40035
4667 * dse.c (check_mem_read_rtx): Guard against width == -1.
4668
ce985b43
MM
46692009-05-13 Michael Matz <matz@suse.de>
4670
4671 PR middle-end/39976
4672 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4673 (trivially_conflicts_p): New function.
4674 (insert_backedge_copies): Use it.
4675
7de1d221
JJ
46762009-05-13 Janis Johnson <janis187@us.ibm.com>
4677
4678 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4679 (handle_stdc_pragma): Use new enum constant names.
4680 (handle_pragma_float_const_decimal64): Ditto.
4681
bfefafc6
ILT
46822009-05-13 Ian Lance Taylor <iant@google.com>
4683
4684 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4685 tree.def.
4686
286c4fcb
NS
46872009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4688
4689 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4690 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4691 multilibs.
4692 * config/m68k/m68k.h (FL_UCLINUX): Define.
4693
ebaa6ea7
JH
46942009-05-13 Jan Hubicka <jh@suse.cz>
4695
4696 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4697
2b703e1a
KK
46982009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4699
4700 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4701 unless -fschedule-insns is specified.
4702
c3537723
KK
47032009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4704
4705 PR target/39561
4706 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4707 TARGET_EXPAND_CBRANCHDI4.
4708 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4709 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4710 (cmpeqdi): Fix comment.
4711
cdeed45a
KK
47122009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4713
4714 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4715 (sh_legitimate_address_p): Likewise.
4716 * config/sh/sh.c (sh_legitimate_index_p): New.
4717 (sh_legitimate_address_p): Likewise.
4718 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4719 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4720 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4721 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4722 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4723 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4724 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4725 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4726 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4727
02f0b13a
JH
47282009-05-12 Jan Hubicka <jh@suse.cz>
4729
4730 * tree-inline.c (estimate_operator_cost): Add operands;
4731 when division happens by constant, it is cheap.
4732 (estimate_num_insns): Loads and stores are not having cost of 0;
4733 EH magic stuff is cheap; when computing runtime cost of switch,
4734 use log2 base of amount of its cases; builtin_expect has cost of 0;
4735 compute cost for moving return value of call.
4736 (init_inline_once): Initialize time_based flags.
4737 * tree-inline.h (eni_weights_d): Add time_based flag.
4738
ecb7f6de
PB
47392009-05-12 Paolo Bonzini <bonzini@gnu.org>
4740
4741 * df-core.c: Update head documentation.
4742
c24151ce
MM
47432009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4744
4745 PR bootstrap/40118
4746 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4747 shadowing exisiting variable op1.
4748
fbdf817d
UB
47492009-05-12 Uros Bizjak <ubizjak@gmail.com>
4750
704bf7c8 4751 PR target/37179
fbdf817d
UB
4752 * config/i386/driver-i386.c (processor_signatures): New enum.
4753 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4754 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4755 processor signature to detect geode processor.
4756
5e8d1826
PB
47572009-05-12 Paolo Bonzini <bonzini@gnu.org>
4758
4759 Revert:
4760
4761 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4762
4763 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4764 causes spurious differences between trunk and cond-optab branch.
4765
f90b7a5a
PB
47662009-05-12 Paolo Bonzini <bonzini@gnu.org>
4767
fbdf817d
UB
4768 * dojump.c (compare_from_rtx): Delete.
4769 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4770 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4771 if the comparison does not satisfy the predicate; test predicates for
4772 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4773 further if one existing pattern fails.
fbdf817d 4774 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4775 (prepare_operand): Declare it.
fbdf817d 4776 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4777 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4778 HAVE_conditional_trap, emit_cmp_insn): Delete.
4779 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4780 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4781 Accept other parameters by value.
4782 (prepare_operand): Make non-static.
4783 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4784 other parameters by value. Try to widen operands here based on
4785 an optab_methods argument and looking at cbranch_optab.
4786 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4787 loop. Use cbranch_optab directly.
4788 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4789 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4790 assertion.
4791 (emit_conditional_move, emit_conditional_add): Inline what's needed
4792 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4793 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4794 with COMPARE. Move cmov_optab and cstore_optab above
4795 with cbranch_optab, move cmp_optab down with ucmp_optab,
4796 remove tst_otpab. Do not initialize trap_rtx.
4797 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4798 for trap code. Do not check HAVE_conditional_trap. Use
4799 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4800 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4801 (OTI_ctrap, ctrap_optab): New.
4802 (tst_optab): Delete.
4803 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4804 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4805 with lookup of ctrap_optab.
f3afc8a7
UB
4806 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4807 Delete.
fbdf817d
UB
4808 (ctrap_optab): New.
4809
4810 * combine.c (combine_simplify_rtx, simplify_set): Do not
4811 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4812 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4813 COMPARE on cc0 machines.
4814 (simplify_relational_operation): Return a new expression when
4815 a COMPARE could be removed.
fbdf817d
UB
4816 * final.c (final_scan_insn): Compare cc_status values
4817 against LHS of a (compare FOO (const_int 0)) cc0 source.
4818 Also check if cc_status.value is the full compare.
f90b7a5a 4819
fbdf817d
UB
4820 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4821 (cstoreMM4): Document.
f90b7a5a 4822 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4823 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4824 (Dependent Patterns): Eliminate obsolete information referring to
4825 the old jump optimization phase.
fbdf817d 4826 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4827 of compares with 0 on cc0 machines.
4828 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4829 avoiding references to cc0. Remove text about storing operands
4830 in cmpMM.
4831 * doc/tm.texi (Condition Codes): Include blurb on different
4832 condition code representations, separate into subsections for
4833 CC0, MODE_CC and conditional execution.
4834
fbdf817d
UB
4835 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4836 alpha_emit_setcc): Accept operands and a machine mode.
4837 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4838 Get code/op0/op1 from operands, use machine mode argument
4839 instead of alpha_compare.fp_p. Emit the branch here.
4840 (alpha_emit_setcc): Likewise, and return boolean.
4841 (alpha_emit_conditional_move): Likewise. Assert that
4842 cmp_op_mode == cmp_mode, and simplify accordingly.
4843 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4844 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4845 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4846 Delete.
4847 (stack probe test): Use cbranchdi4.
4848 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4849
4850 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4851 * config/arc/arc.h (movsicc, movsfcc): Use it.
4852 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4853 (cbranchsi4, cstoresi4): New.
4854 (cmpsi, bCC and sCC expanders): Remove.
4855
4856 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4857 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4858 * config/arm/predicates.md (arm_comparison_operator): Only include
4859 floating-point operators if there is a hardware floating-point unit.
4860 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4861 deferring to cbranch_cc and cstore_cc respectively.
4862 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4863 cbranch_cc, cstore_cc): New.
4864 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4865 arm_compare_op1.
fbdf817d
UB
4866 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4867
4868 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4869 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4870 as an argument.
4871 (adjust_insn_length): Adjust calls.
4872 (avr_reorg): Handle (compare (foo) (const_int 0)).
4873 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4874 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4875 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4876 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4877 (bCC): Remove.
4878 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4879 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4880
fbdf817d
UB
4881 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4882 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4883 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4884 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4885 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4886 (bfin_optimize_loop): Use cbranch expander.
4887 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4888 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4889 (bfin_bimode_comparison_operator): ... this.
4890 (bfin_direct_comparison_operator): New.
f90b7a5a 4891
fbdf817d
UB
4892 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4893 inside (compare FOO (const_int 0)).
4894 (cris_rtx_costs): Handle ZERO_EXTRACT.
4895 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4896 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4897 (*tstdi_v32): Delete.
4898 (*cmpdi_non_v32): Add M alternative for operand 1.
4899 (cmpsi, cmp<mode>): Make private.
4900 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4901 with COMPARE.
4902 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4903
4904 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4905 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4906 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4907 (cc_reg_operand): New.
4908 (any_cond): Delete.
fbdf817d
UB
4909 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4910 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4911 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4912 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4913 crx_expand_scond): Delete.
4914
4915 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4916 (cbranchsi4): New.
4917 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4918 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4919
4920 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4921 cstoresi4, cstoresf4, cstoredf4): New.
4922 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4923 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4924 Receive the entire operands array.
4925 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4926 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4927 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4928 Get test/op0/op1 from the operands array.
4929 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4930
4931 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4932 (h8300_expand_store): New.
4933 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4934 (const_int 0)).
4935 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4936 (h8300_expand_store): New.
4937 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4938 or do not try to produce (set (cc0) REG).
4939 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4940 change a compare into a move to a scratch register. Disable some
4941 peepholes when comparing with zero.
4942 (tstsi, tsthi, tstsi, cmpqi): Make private.
4943 (cmphi): Delete.
4944 (bCC, sCC): Delete.
4945 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4946 cstoresi4): New.
f90b7a5a
PB
4947
4948 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4949 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4950 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4951 (ix86_emit_i387_log1p): Use cbranchxf2.
4952 (ix86_expand_setcc): Return void.
4953 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4954 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4955 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4956 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4957 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4958 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4959 (sCC and bCC expanders): Remove.
4960 (stack_protect_test): Use cbranchcc4.
4961
fbdf817d
UB
4962 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4963 Delete.
4964 (ia64_expand_compare): Accept three rtx by reference and return void.
4965 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4966 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4967 from *expr. Update *expr with the BImode comparison to do.
4968 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4969 cmptf, bCC, sCC, conditional_trap): Delete.
4970 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4971 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4972 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4973 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4974 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4975
4976 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4977 type of last argument.
4978 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4979 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4980 use machine mode argument instead of branch_type. Remove dead
4981 code for floating-point comparisons.
4982 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4983 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4984 Remove.
4985 (cbranchsi4, cstoresi4): New.
4986 * config/iq2000/predicates.md (reg_or_const_operand): New.
4987
4988 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4989 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4990 (b<code>_op): Rewrite to...
4991 (bcc_op): ... this, using match_operator.
4992 (s<code>_op): Rewrite to...
4993 (scc_op): ... this, using match_operator.
4994 (s<code>_24_op): Rewrite to...
4995 (scc_op_24): ... this, using match_operator.
4996 (s<code>_<mode>): Rewrite to...
4997 (cstore<mode>4): ... this, using match_operator.
4998 (s<code>_<mode>_24): Rewrite to...
4999 (cstore<mode>4_24): ... this, using match_operator.
5000 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5001 m32c_unpend_compare, m32c_expand_scc): Delete.
5002 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5003 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5004 (m32c_expand_movcc): Change NE to EQ if necessary.
5005 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5006
5007 * config/m32r/m32r-protos.h (gen_cond_store): New.
5008 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5009 (gen_cond_store): New, from sCC patterns.
5010 (m32r_expand_block_move): Use cbranchsi4.
5011 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5012 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5013 (cbranchsi4, cstoresi4): New.
5014
5015 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5016 Delete.
5017 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 5018 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
5019 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5020 Delete.
5021 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5022 cmphi, cmpqi, bCC): Delete.
5023 (cbranchsi4, cbranchhi4, cbranchqi4): New.
5024 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5025 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5026 sets with COMPARE.
5027
5028 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5029 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5030 * config/m68k/constraints.md (H): New.
5031 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5032 the define_insn below.
5033 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5034 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5035 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5036 patterns): Wrap RHS with COMPARE.
5037 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5038 (*cmpdi_internal): Name this pattern.
5039 (cmpdi): Change to define_insn.
5040 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5041 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5042 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5043 predicate.
5044 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5045 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5046 (conditional_trap): Change to...
5047 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5048 (*conditional_trap): Use the ordered_comparison_operator and
5049 const1_operand predicates.
5050 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5051 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5052 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5053 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5054
5055 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5056 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5057 (mcore_gen_compare): New.
5058 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5059 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5060 (mcore_gen_compare): ... this.
5061 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5062 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5063 (stack probe pattern): Use cbranchsi4.
5064
5065 * config/mips/predicates.md (mips_cstore_operator): New.
5066 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5067 * config/mips/mips.md (any_cond): Delete.
5068 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
5069 always succeed.
5070 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5071 fixuns_truncsfdi2): Use cbranch patterns.
5072 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
5073 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5074 Adjust call to mips_expand_conditional_branch.
5075 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5076 cstore<GPR:mode>4.
5077 * config/mips/mips-protos.h (mips_expand_conditional_branch,
5078 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5079 * config/mips/mips.c (cmp_operands): Delete.
5080 (mips_emit_compare): Get comparison operands from *op0/*op1.
5081 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
5082 that it succeeds. Use op0/op1 instead of cmp_operands.
5083 (mips_expand_conditional_branch, mips_expand_conditional_move,
5084 mips_expand_conditional_trap): Likewise.
5085 (mips_block_move_loop): Use cbranch patterns.
5086 * config/mips/mips.h (cmp_operands): Delete.
5087
5088 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5089 (mmix_gen_compare_reg): Just return a register in the right CC mode.
5090 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5091 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5092 (*cmpcc_folded): Rename to...
5093 (*cmpdi_folded): this.
5094 (*cmpcc): Rename to...
5095 (*cmps): ... this.
5096 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5097 (bCC): Remove.
5098 (cbranchdi4): New.
5099 (cbranchdf4): New. Handle invalid comparisons here.
5100 * config/mmix/predicates.md (float_comparison_operator): New.
5101
5102 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5103 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5104 * config/mn10300/mn10300.md (tst): Delete.
5105 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5106 Name these patterns and wrap RHS in a compare.
5107 (*cmpsi): Make this pattern private. Include tst.
5108 (*cmpsf): Make this pattern private.
5109 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5110 (compare with zero peepholes): Likewise.
5111 (bCC): Remove.
5112 (cbranchsi4, cbranchsf4): New.
5113 (casesi): Use cbranchsi4.
5114
5115 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5116 hppa_branch_type): Delete.
5117 (return_addr_rtx): Use cbranchsi4.
5118 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
5119 Emit CCFPmode comparison here.
5120 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5121 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5122 hppa_branch_type): Delete.
5123 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5124 (movsicc, movdicc): Remove references to hppa_compare_op0,
5125 hppa_compare_op1 and compare_from_rtx.
5126 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5127 (casesi): Use cbranchsi4.
5128
5129 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5130 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5131 * config/pdp11/pdp11.md (register_or_const0_operand): New.
5132 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
5133 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5134 (bCC): Delete.
5135 (cbranchdf4, cbranchhi4, cbranchqi4): New.
5136 (*branch, *branch_inverted): New.
5137
5138 * config/picochip/picochip.md (cbranchhi4): Use
5139 ordered_comparison_operator.
5140 (cmphi, bCC): Remove.
5141
5142 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5143 (trap_comparison_operator): Delete.
5144 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5145 rs6000_emit_cbranch): Accept mode and operands.
5146 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5147 rs6000_compare_fp_p): Delete.
5148 (rs6000_generate_compare): Accept mode and comparison. Extract code
5149 and op0/op1 from there. Replace references to rs6000_compare_op0
5150 and rs6000_compare_op1.
5151 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5152 extract result from passed operands.
5153 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5154 extract loc from passed operands.
5155 (rs6000_emit_cmove): Likewise.
5156 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5157 rs6000_compare_fp_p): Delete.
5158 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5159 (cbranch<GPR>4, cbranch<FP>4): New.
5160 (cstore<mode>4): New. Consolidate here all choices about when to use
5161 portable or specialized sCC sequences.
5162 (stack_protect_test): Use cbranchsi4.
5163 (conditional_trap): Replace with ctrap<GPR>4.
5164 (conditional trap insn): Replace trap_comparison_operator with
5165 ordered_comparison_operator.
5166
5167 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5168 (s390_emit_prologue): Use ctrap.
5169 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5170 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5171 New predicates replacing...
5172 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5173 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5174 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5175 (add<mode>cc): Do not use s390_compare_op0/op1.
5176 (s<code>): Change to...
5177 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5178 (seq): Change to...
5179 (cstorecc4): ... this. Handle EQ or NE equally.
5180 (*sne): Un-privatize for use in cstorecc4.
5181 (b<code>): Change to...
5182 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5183 (conditional_trap): Replace with...
5184 (ctrap<GPR>4, ctrap<FP>4): ... these.
5185 (stack_protect): Use cbranchcc4.
5186
5187 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5188 * config/score/score-protos.h (score_gen_cmp): Delete.
5189 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5190 (score_block_move-loop): Use cbranchsi4.
5191 * config/score/score.md (cbranchsi4): New.
5192 (cmpsi, bCC): Delete.
5193 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5194 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5195 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5196 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5197 * config/score/score3.h (score3_gen_cmp): Delete.
5198 * config/score/score7.h (score7_gen_cmp): Delete.
5199
5200 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5201 (sh_emit_scc_to_t): ... this. Return void.
5202 (from_compare): Rename to...
5203 (sh_emit_compare_and_branch): ... this.
5204 (sh_emit_compare_and_set): New.
5205 (sh_expand_t_scc): Accept operands.
5206 * config/sh/predicates.md (sh_float_comparison_operator): New.
5207 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5208 (prepare_scc_operands): Rename to...
5209 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5210 arguments.
5211 (sh_emit_cheap_store_flag): New.
f90b7a5a 5212 (sh_emit_set_t_insn): New.
fbdf817d
UB
5213 (from_compare): Rename to...
5214 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5215 handling of TARGET_SH2E floating point to avoid recursive call.
5216 Generate branch here.
5217 (sh_emit_compare_and_set): New.
5218 (sh_expand_t_scc): Get op0/op1 from arguments.
5219 (sh_emit_cheap_store_flag): New.
5220 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5221 cases.
f90b7a5a 5222 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5223 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5224 (movsicc, movdicc): Do nothing when it recreated operands from
5225 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5226 prepare_scc_operands (now sh_emit_scc_to_t).
5227 (udivdi3): Use cstoresi4.
5228 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5229 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5230 (cbranchint4_media, cbranchfp4_media): New.
5231 (casesi): Use cbranchdi4.
5232 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5233 Delete.
5234 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5235 (movnegt): Remove second operand.
5236 (cbranchsf4, cbranchdf4): New.
5237 (stack_protect): Use cbranchdi4/cbranchsi4.
5238
5239 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5240 (gen_compare_reg): Accept comparison, extract part of it to...
5241 (gen_compare_reg_1): ... this.
5242 (gen_compare_operator): Delete.
5243 (gen_v9_scc): Accept separate destination, comparison code and arms.
5244 Do not use sparc_compare_op0/sparc_compare_op1.
5245 (emit_scc_insn, emit_conditional_branch_insn): New.
5246 (emit_v9_brxx): Make static. Remove useless assertion.
5247 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5248 emit_cmp_insn.
5249 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5250 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5251 sparc_emit_float_lib_cmp): Adjust prototype.
5252 (emit_scc_insn, emit_conditional_branch_insn): New.
5253 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5254 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5255 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5256 iterators to the top.
5257 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5258 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5259 snedi_special_trunc): Delete.
fbdf817d 5260 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5261 and snedi_special_trunc.
fbdf817d
UB
5262 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5263 cbranchdi4, cbranch<F:mode>4): New.
5264 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5265 here. Use gen_compare_reg instead of gen_compare_operator.
5266 (conditional_trap): Replace with...
5267 (ctrapsi4, ctrapdi4): ... this.
5268 (stack_protect_test): Use cbranchcc4.
5269
5270 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5271 argument to rtx.
5272 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5273 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5274 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5275 from operands[0] or operands[3] depending on is_set.
5276 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5277 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5278 cmpdf, bCC), sCC: Remove.
5279 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5280 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5281 cstoredf4): New.
5282 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5283 spu_emit_branch_or_set.
5284
5285 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5286 Add two arguments.
5287 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5288 xstormy16_compare_op1): Delete.
5289 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5290 xstormy16_compare_op1): Delete.
5291 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5292 Adjust calls.
5293 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5294 (cmphi, cmpsi, bCC): Remove.
5295
5296 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5297 (*cmpsi): ... this one.
5298 (cbranchsi4, cstoresi4): New.
5299 (bCC expanders): Delete.
5300 (sCC insns): Fold into...
5301 (*setcc): ... this one.
5302 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5303 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5304 (movsicc): Simplify.
5305 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5306
fbdf817d
UB
5307 * config/vax/vax-protos.h (cond_name): New.
5308 (vax_output_conditional_branch): Remove.
5309 * config/vax/vax.c (cond_name): New.
5310 (vax_output_conditional_branch): Remove.
5311 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5312 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5313 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5314 (bit<VAXint>): Wrap source with (compare).
5315 (b<code> and following unnamed pattern): Rename to *branch and
5316 *branch_reversed. Change macroization to match_operator.
5317 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5318
5319 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5320 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5321 Change last argument to machine_mode.
5322 (xtensa_expand_scc): Add machine_mode argument.
5323 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5324 (gen_conditional_move, xtensa_expand_conditional_branch,
5325 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5326 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5327 Adjust operand numbers.
5328 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5329 Delete.
5330 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5331 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5332 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5333
16670495
PB
53342009-05-12 Paolo Bonzini <bonzini@gnu.org>
5335
5336 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5337 causes spurious differences between trunk and cond-optab branch.
5338
4a4a4e99
AO
53392009-05-12 Alexandre Oliva <aoliva@redhat.com>
5340
5341 PR target/37137
5342 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5343
72b9acff
AO
53442009-05-12 Alexandre Oliva <aoliva@redhat.com>
5345
5346 * tree.c (iterative_hash_pointer): Delete.
5347 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5348 Hash UIDs and versions of SSA names. Don't special-case built-in
5349 function declarations.
5350
b7dd69ac
ILT
53512009-05-11 Ian Lance Taylor <iant@google.com>
5352
5353 PR bootstrap/40103
5354 * graphite.c: Force -Wc++-compat to only be a warning before
5355 #including "cloog/cloog.h".
5356
ed102b70
MJ
53572009-05-11 Martin Jambor <mjambor@suse.cz>
5358
5359 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5360
08f1af2e
JH
53612009-05-11 Jan Hubicka <jh@suse.cz>
5362
5363 * tree-ssa-loop-ivcanon.c: Include target.h
5364 (struct loop_size): new structure.
5365 (constant_after_peeling): New predicate.
5366 (tree_estimate_loop_size): New function.
5367 (estimated_unrolled_size): Rewrite for new estimates.
5368 (try_unroll_loop_completely): Use new estimates.
5369 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5370
a7d39bd3
AP
53712009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5372
5373 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5374 libcpp interface change.
5375 (spu_macro_to_expand): Likewise.
5376
f5a1f0d0
PB
53772009-05-11 Paolo Bonzini <bonzini@gnu.org>
5378
5379 PR tree-optimization/40026
5380 * gimplify.c (gimplify_init_constructor): Change initial conditional
5381 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5382 optimize_compound_literals_in_ctor.
5383
c260f01f
NS
53842009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5385
5386 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5387 New devices.
5388 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5389
df398a37
L
53902009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5391
5392 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5393 HOST_WIDE_INT for gap.
5394
4da39468
IR
53952009-05-11 Ira Rosen <irar@il.ibm.com>
5396
5397 PR tree-optimization/40074
5398 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5399 account in group size and step comparison.
5400
4effdf02
RG
54012009-05-11 Richard Guenther <rguenther@suse.de>
5402
5403 * passes.c (init_optimization_passes): Strip now incorrect comment.
5404 (execute_function_todo): Do not set PROP_alias.
5405 * tree-pass.h (PROP_alias): Remove.
5406 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5407 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5408 * tree-nrv.c (pass_return_slot): Likewise.
5409 * tree-object-size.c (pass_object_sizes): Likewise.
5410 * tree-ssa-dom.c (pass_dominator): Likewise.
5411 (pass_phi_only_cprop): Likewise.
5412 * tree-ssa-dse.c (pass_dse): Likewise.
5413 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5414 (pass_cselim): Likewise.
5415 * tree-ssa-pre.c (pass_pre): Likewise.
5416 (pass_fre): Likewise.
5417 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5418 * tree-ssa-sink.c (pass_sink_code): Likewise.
5419 * tree-stdarg.c (pass_stdarg): Likewise.
5420 * tree-tailcall.c (pass_tail_calls): Likewise.
5421 * tree-vrp.c (pass_vrp): Likewise.
5422
24b97832
ILT
54232009-05-10 Ian Lance Taylor <iant@google.com>
5424
5425 * basic-block.h (enum profile_status): Break out of struct
5426 control_flow_graph.
5427 * cgraph.h (struct inline_summary): Break out of struct
5428 cgraph_local_info.
5429 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5430 of struct cgraph_order_sort.
fbdf817d 5431 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5432 * cse.c (struct branch_path): Break out of struct
5433 cse_basic_block_data.
5434 * except.h (enum eh_region_type): Break out of struct eh_region.
5435 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5436 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5437 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5438 ggc_pch_data.
fbdf817d
UB
5439 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5440 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5441 * sched-int.h (enum post_call_group): New enum, broken out of
5442 struct deps.
5443 (struct deps_reg): Break out of struct deps.
5444 * target.h (struct asm_int_op): Break out of struct gcc_target.
5445 * tree-eh.c (struct goto_queue_node): Break out of struct
5446 leh_tf_state.
5447 * tree-inline.h (enum copy_body_cge_which): Break out of
5448 copy_body_data.
5449 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5450
5451 * c-decl.c (in_struct, struct_types): New static variables.
5452 (pushtag): Add loc parameter. Change all callers.
5453 (lookup_tag): Add ploc parameter. Change all callers.
5454 (check_compound_literal_type): New function.
5455 (parser_xref_tag): Add loc parameter. Change all callers. If
5456 -Wc++-compat, warn about struct/union/enum types defined within a
5457 struct or union.
5458 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5459 and loc parameters. Change all callers. Change error calls to
5460 error_at, using loc. For a redefinition, if the location of the
5461 original definition is known, report it. Set in_struct and
fbdf817d 5462 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5463 (finish_struct): Add new parameters enclosing_in_struct and
5464 enclosing_struct_types. Change all callers. Set
5465 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5466 in the struct. If in a struct, add this struct to struct_types.
5467 (start_enum): Add loc parameter. Change all callers. Use
5468 error_at for errors, using loc. For a redefinition, if the
5469 location of the original definition is known, report it. If in a
5470 struct, add this enum type to struct_types. If -Wc++-compat warn
5471 if in sizeof, typeof, or alignof.
fbdf817d
UB
5472 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5473 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5474 (c_parser_enum_specifier): Get enum location for start_enum.
5475 (c_parser_struct_or_union_specifier): Get struct location for
5476 start_struct. Save in_struct and struct_types status between
5477 start_struct and finish_struct.
5478 (c_parser_cast_expression): Get location of cast.
5479 (c_parser_alignof_expression): Get location of type.
5480 (c_parser_postfix_expression): Likewise.
5481 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5482 parameter. Change all callers. Call check_compound_literal_type.
5483 Use type_loc for error about variable size type.
5484 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5485 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5486 (c_cast_expr): Add loc parameter. Change all callers. If
5487 -Wc++-compat, warn about defining a type in a cast.
5488 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5489 (start_enum, start_struct, finish_struct): Update declarations.
5490 (parser_xref_tag, c_cast_expr): Update declarations.
5491 (check_compound_literal_type): Declare.
5492
7a2738fa
BE
54932009-05-11 Ben Elliston <bje@au.ibm.com>
5494
5495 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5496 for recent libcpp interface change.
5497 (rs6000_macro_to_expand): Likewise.
5498
af618949
MM
54992009-05-10 Michael Matz <matz@suse.de>
5500
5501 PR target/40031
5502 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5503 not at entry of function.
5504
b7d7a473
RG
55052009-05-10 Richard Guenther <rguenther@suse.de>
5506
5507 PR tree-optimization/40081
5508 Revert
5509 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5510 using the main variant of the element type. Do not fiddle with
5511 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5512
5513 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5514 structs with volatile fields.
5515
078c3644
JH
55162009-05-10 Jan Hubicka <jh@suse.cz>
5517
5518 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5519 (estimate_move_cost): Assert that it does not get called for
5520 VOID_TYPE_P.
078c3644
JH
5521 (estimate_num_insns): Skip VOID types in argument handling.
5522 (optimize_inline_calls): Delete unreachable blocks and verify that
5523 callgraph is valid.
5524
39ff5a96
JH
55252009-05-10 Jan Hubicka <jh@suse.cz>
5526
5527 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5528 * cgraph.c (cgraph_mark_address_taken_node): New function.
5529 (dump_cgraph_node): Dump new flag.
5530 * cgraph.h (struct cgraph_node): Add address_taken.
5531 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5532 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5533 since new direct calls can be born.
5534
9a0c6187
JM
55352009-05-10 Joseph Myers <joseph@codesourcery.com>
5536
5537 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5538 tok->val.node.node.
5539
4b685e14
JH
55402009-05-10 Jan Hubicka <jh@suse.cz>
5541
5542 PR middle-end/40084
fb0be169
EB
5543 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5544 argument; rewrite.
4b685e14
JH
5545 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5546 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5547 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5548 (fold_marked_statements): Update call to
5549 cgraph_update_edges_for_call_stmt.
4b685e14 5550
29d08eba
JM
55512009-05-10 Joseph Myers <joseph@codesourcery.com>
5552
5553 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5554 identifiers in diagnostics.
5555 * config/arm/arm.c (arm_handle_fndecl_attribute,
5556 arm_handle_isr_attribute): Likewise.
5557 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5558 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5559 * config/bfin/bfin.c (handle_int_attribute,
5560 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5561 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5562 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5563 Likewise.
5564 * config/darwin.c (darwin_handle_kext_attribute,
5565 darwin_handle_weak_import_attribute): Likewise.
5566 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5567 h8300_handle_eightbit_data_attribute,
5568 h8300_handle_tiny_data_attribute): Likewise.
5569 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5570 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5571 * config/i386/winnt.c (ix86_handle_shared_attribute,
5572 ix86_handle_selectany_attribute): Likewise.
5573 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5574 * config/m32c/m32c.c (function_vector_handler): Likewise.
5575 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5576 m68hc11_handle_fntype_attribute): Likewise.
5577 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5578 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5579 * config/mips/mips.c (mips_insert_attributes,
5580 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5581 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5582 rs6000_handle_struct_attribute): Likewise.
5583 * config/sh/sh.c (sh_insert_attributes,
5584 sh_handle_resbank_handler_attribute,
5585 sh_handle_interrupt_handler_attribute,
5586 sh2a_handle_function_vector_handler_attribute,
5587 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5588 Likewise.
5589 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5590 * config/spu/spu.c (spu_handle_fndecl_attribute,
5591 spu_handle_vector_attribute): Likewise.
5592 * config/stormy16/stormy16.c
5593 (xstormy16_handle_interrupt_attribute): Likewise.
5594 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5595 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5596
f41c4af3
JM
55972009-05-10 Joseph Myers <joseph@codesourcery.com>
5598
782dc37a 5599 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5600 (pp_translate_identifiers): New.
5601 (pp_identifier): Only conditionally translate identifier to locale
5602 character set.
5603 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5604 (pp_base_tree_identifier): Only conditionally translate identifier
5605 to locale character set.
5606 * c-pretty-print.c (M_): Define.
5607 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5608 fragments for conditional translation with M_.
5609 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5610 identifier translation.
5611
896d7dbd
RG
56122009-05-10 Richard Guenther <rguenther@suse.de>
5613
5614 PR tree-optimization/40081
5615 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5616 using the main variant of the element type. Do not fiddle with
5617 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5618
9a23acef
JH
56192009-05-09 Jan Hubicka <jh@suse.cz>
5620
5621 PR middle-end/40080
5622 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5623 indirect calls; verify cgraph afterwards.
5624
d563610d
JH
56252009-05-09 Jan Hubicka <jh@suse.cz>
5626
5627 PR bootstrap/40082
5628 * ipa.c (update_inlined_to_pointer): New function.
5629 (cgraph_remove_unreachable_nodes): Use it.
5630
f08a18d0
JH
56312009-05-09 Jan Hubicka <jh@suse.cz>
5632
5633 * tree-eh.c (struct leh_state): Remove prev_try.
5634 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5635 not track prev_try.
5636 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5637 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5638 remove_eh_handler_and_replace, foreach_reachable_handler,
5639 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5640 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5641 (gen_eh_region_cleanup): Update prototype.
5642
0afd7219
JH
56432009-05-09 Jan Hubicka <jh@suse.cz>
5644
5645 PR middle-end/40043
5646 * except.c (copy_eh_region): Always set prev_try.
5647 (redirect_eh_edge_to_label): Find outer try.
5648 (foreach_reachable_handler): When looking for prev try
5649 handle case where previous try is not going to be taken.
5650
ad6c0864
MM
56512009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5652
5653 PR tree-optimization/40049
5654 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5655 only vector/vector shifts, convert the type of the constant to the
5656 appropriate type to avoid building incorrect trees, which
5657 eventually have problems with garbage collection.
5658
c94f9067
JM
56592009-05-08 Joseph Myers <joseph@codesourcery.com>
5660
5661 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5662 -1 for complex floating-point types if honoring signed zeros.
5663
9187e02d
JH
56642009-05-08 Jan Hubicka <jh@suse.cz>
5665
20acb8a2
EB
5666 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5667 argument; handle correctly when profile is absent.
9187e02d
JH
5668 (build_cgraph_edges): Update.
5669 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5670 * cgraph.c: Do not include varray.h.
5671 (cgraph_set_call_stmt_including_clones): New function.
5672 (cgraph_create_edge_including_clones): Likewise
5673 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5674 (cgraph_update_edges_for_call_stmt): Handle clones.
5675 (cgraph_remove_node): Handle clone tree.
5676 (cgraph_remove_node_and_inline_clones): New function.
5677 (dump_cgraph_node): Dump clone tree.
5678 (cgraph_clone_node): Handle clone tree.
20acb8a2 5679 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5680 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5681 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5682 (cgraph_clone_info): New function.
9187e02d 5683 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5684 (cgraph_remove_node_and_inline_clones,
5685 cgraph_set_call_stmt_including_clones,
5686 cgraph_create_edge_including_clones,
5687 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5688 (cgraph_function_versioning): Use VEC argument.
5689 (compute_call_stmt_bb_frequency): Update prototype.
5690 (cgraph_materialize_all_clones): New function.
5691 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5692 (ipcp_create_replace_map): Update to VECtors.
5693 (ipcp_update_callgraph): Use virtual clones.
5694 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5695 (ipcp_update_profiling): Do not update local profiling.
5696 (ipcp_insert_stage): Use VECtors and virtual clones.
5697 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5698 (clone_of_p): New function.
5699 (cgraph_preserve_function_body_p): Use clone tree.
5700 (cgraph_optimize): Materialize clones.
5701 (cgraph_function_versioning): Update for VECtors.
5702 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5703 (cgraph_materialize_clone): New function.
5704 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5705 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5706 * ipa.c: Include gimple.h.
5707 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5708 * ipa-prop.c (ipa_note_param_call): Update call to
5709 compute_call_stmt_bb_frequencycall.
9187e02d 5710 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5711 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5712 (copy_bb): Handle updating of clone tree; add new edge when new call
5713 appears.
5714 (expand_call_inline): Be strict about every call having edge.
5715 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5716 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5717 (tree_function_versioning): Use VECtors; always remove unreachable
5718 blocks and fold conditionals.
5719 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5720 (tree_function_versioning): Remove.
5721 * Makefile.in (GTFILES): Remove tree-inline.c
5722 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5723 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5724 tree.
9187e02d 5725
9b86d6bb
L
57262009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5727 Andrew Morrow <acm@google.com>
5728
5729 PR c/36892
5730 * c-common.c (c_common_attribute_table): Permit deprecated
5731 attribute to take an optional argument.
5732 (handle_deprecated_attribute): If the optional argument to
5733 __attribute__((deprecated)) is not a string ignore the attribute
5734 and emit a warning.
5735
5736 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5737 * c-typeck.c (build_component_ref): Likewise.
5738 (build_external_ref): Likewise.
5739
5740 * toplev.c (warn_deprecated_use): Add an attribute argument.
5741 Emit the message associated with __attribute__((deprecated)).
5742
5743 * toplev.h (warn_deprecated_use): Updated.
5744
5745 * doc/extend.texi: Document new optional parameter to
5746 __attribute__((deprecated))
5747
82ad047f
ME
57482009-05-08 Michael Eager <eager@eagercon.com>
5749
5750 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5751 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5752
788d3075
RG
57532009-05-08 Richard Guenther <rguenther@suse.de>
5754
5755 PR tree-optimization/40062
5756 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5757 Avoid exponential behavior.
5758
00952e97
PB
57592009-05-08 Paolo Bonzini <bonzini@gnu.org>
5760
5761 PR rtl-optimization/33928
5762 PR 26854
5763 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5764 process_uses, build_single_def_use_links): New.
5765 (update_df): Update use_def_ref.
5766 (forward_propagate_into): Use get_def_for_use instead of use-def
5767 chains.
5768 (fwprop_init): Call build_single_def_use_links and let it initialize
5769 dataflow.
5770 (fwprop_done): Free use_def_ref.
5771 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5772 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5773 df_rd_simulate_one_insn): New.
5774 (df_rd_bb_local_compute_process_def): Update head comment.
5775 (df_chain_create_bb): Use the new RD simulation functions.
5776 * df.h (df_rd_simulate_artificial_defs_at_top,
5777 df_rd_simulate_one_insn): New.
5778 * opts.c (decode_options): Enable fwprop at -O1.
5779 * doc/invoke.texi (-fforward-propagate): Document this.
5780
2ca862e9
JM
57812009-05-08 Joseph Myers <joseph@codesourcery.com>
5782
5783 PR c/24581
5784 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5785 and one complex operand specially.
5786 * tree-complex.c (some_nonzerop): Do not identify a real value as
5787 zero if flag_signed_zeros.
5788
3e807ffc
PB
57892009-05-08 Paolo Bonzini <bonzini@gnu.org>
5790
5791 PR rtl-optimization/33928
7925c06c 5792 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5793
1bfdbb29
PB
57942009-05-08 Paolo Bonzini <bonzini@gnu.org>
5795
5796 PR rtl-optimization/33928
e913423f
EB
5797 * loop-invariant.c (struct use): Add addr_use_p.
5798 (struct def): Add n_addr_uses.
5799 (struct invariant): Add cheap_address.
5800 (create_new_invariant): Set cheap_address.
5801 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5802 (record_uses): Pass df_ref to record_use.
5803 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5804 used only as such.
1bfdbb29 5805
702cb2a0
KK
58062009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5807
5808 * config/sh/sh.c: Do not include c-pragma.h.
5809
5e8df753
AP
58102009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5811
5812 * config/spu/spu.c: Remove include of c-common.h.
5813
6ec637a4
JJ
58142009-05-07 Janis Johnson <janis187@us.ibm.com>
5815
5816 PR c/39037
5817 * c-common.h (mark_valid_location_for_stdc_pragma,
5818 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5819 clear_float_const_decimal64, float_const_decimal64_p): New.
5820 * c.opt (Wunsuffixed-float-constants): New.
5821 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5822 unsuffixed float constant, handle new warning.
5823 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5824 * c-decl.c (c_scope): New flag float_const_decimal64.
5825 (set_float_const_decimal64, clear_float_const_decimal64,
5826 float_const_decimal64_p): New.
5827 (push_scope): Set new flag.
5828 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5829 to use STDC pragmas.
5830 (c_parser_external_declaration): Ditto.
5831 (c_parser_compound_statement_nostart): Ditto.
5832 * c-pragma.c (valid_location_for_stdc_pragma,
5833 mark_valid_location_for_stdc_pragma,
5834 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5835 handle_pragma_float_const_decimal64): New.
5836 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5837 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5838 set_float_const_decimal64, clear_float_const_decimal64,
5839 float_const_decimal64_p): New dummy functions.
5840 * doc/extend.texi (Decimal Float): Remove statement that the
5841 pragma, and suffix for double constants, are not supported.
5842 * doc/invoke.texi (Warning Options): List new option.
5843 (-Wunsuffixed-float-constants): New.
5844
45b9b2e9
SB
58452009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5846
5847 * config/i386/i386.c: Do not include c-common.h.
5848
e71da632
MH
58492009-05-07 Mark Heffernan <meheff@google.com>
5850
5851 * doc/invoke.texi (Debugging Options): Document change of debugging
5852 dump location.
e913423f 5853 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5854 aux_base_name directory.
5855
fe4c7bc6
HS
58562009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5857
5858 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5859 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5860
3b3e44eb
RAE
58612009-05-07 Rafael Avila de Espindola <espindola@google.com>
5862
5863 * Makefile.in (install-plugin): Simplify a bit.
5864
fac41238
PB
58652009-05-07 Paolo Bonzini <bonzini@gnu.org>
5866
5867 * Makefile.in (OBJS-common): Add regcprop.o.
5868 (regcprop.o): New.
5869 * timevar.def (TV_CPROP_REGISTERS): New.
5870 * regrename.c (regrename_optimize): Return 0.
5871 (rest_of_handle_regrename): Delete.
5872 (pass_rename_registers): Point to regrename_optimize.
5873 (struct value_data_entry, struct value_data,
5874 kill_value_one_regno, kill_value_regno, kill_value,
5875 set_value_regno, init_value_data, kill_clobbered_value,
5876 kill_set_value, kill_autoinc_value, copy_value,
5877 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5878 replace_oldest_value_reg, replace_oldest_value_addr,
5879 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5880 debug_value_data, validate_value_data): Move...
5881 * regcprop.c: ... here.
5882 (rest_of_handle_cprop): Delete.
5883 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5884
472e0df9
JJ
58852009-05-07 Jakub Jelinek <jakub@redhat.com>
5886
5887 PR middle-end/40057
5888 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5889 GEN_INT for 1 << bitnum.
5890 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5891 build_int_cst_type.
5892
0d50d55a
UB
58932009-05-07 Uros Bizjak <ubizjak@gmail.com>
5894
5895 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5896 Remove wrong description of "nand" operation.
0d50d55a 5897
22f597f1
RG
58982009-05-06 Richard Guenther <rguenther@suse.de>
5899 Adam Nemet <anemet@caviumnetworks.com>
5900
5901 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5902 comment. Add that if LHS is not a gimple register, then RHS1 has
5903 to be a single object (GIMPLE_SINGLE_RHS).
5904
641cac0b
AN
59052009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5906
5907 * expr.c (get_def_for_expr): Move it up in the file.
5908 (store_field): When expanding a bit-field store, look at the
5909 defining gimple stmt for the masking conversion.
5910
5a5c6435
JJ
59112009-05-06 Janis Johnson <janis187@us.ibm.com>
5912
5913 PR middle-end/39986
5914 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5915 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5916 32-bit memcpy into long.
5917
96474f36
JJ
59182009-05-06 Jakub Jelinek <jakub@redhat.com>
5919
5920 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5921 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5922 new_reg_loc_descr.
5923 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5924 instead of appending DW_OP_deref*.
5925
529ff441
MM
59262009-05-06 Michael Matz <matz@suse.de>
5927
5928 PR middle-end/40021
5929 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5930 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5931
9419a9fd
RAE
59322009-05-06 Rafael Avila de Espindola <espindola@google.com>
5933
5934 * Makefile.in (install-plugin): Fix srcdir handling.
5935
fff1894c
AB
59362009-05-06 Andrey Belevantsev <abel@ispras.ru>
5937
5938 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5939 when processing for not_regs_needed bitmap.
5940 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5941 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5942 handling it for rhs.
5943
700ae70c
L
59442009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5945
ab3426a7 5946 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5947 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5948 * config/i386/predicates.md (incdec_operand): Likewise.
5949 (aligned_operand): Likewise.
5950 * config/i386/sse.md (divv8sf3): Likewise.
5951 (sqrtv8sf2): Likewise.
5952
67341fb5
L
59532009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5954
5955 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5956
5957 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5958
87946f42
L
59592009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5960
5961 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5962 ssemodesuffixf2c with avxmodesuffixf2c.
5963
1202aec1
JM
59642009-05-06 Joseph Myers <joseph@codesourcery.com>
5965
5966 PR c/40032
aa016ff7 5967 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5968
6e57a01d
JJ
59692009-05-05 Jakub Jelinek <jakub@redhat.com>
5970
5971 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5972 (struct tree_base): Adjust spacing for 8 bit boundaries.
5973 (struct tree_decl_common): Add decl_by_reference_flag bit.
5974 (DECL_BY_REFERENCE): Adjust.
5975 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5976 print DECL_BY_REFERENCE bit.
5977 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5978 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5979 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5980 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5981 unconditionally.
5982
32f579f6
JJ
5983 PR middle-end/39666
5984 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5985 range of the type, but default label is missing, add it with one
5986 of the existing labels instead of adding a new label for it.
5987
617ab743
JM
59882009-05-05 Joseph Myers <joseph@codesourcery.com>
5989
5990 * dwarf.h: Remove.
5991
bf016de8
RAE
59922009-05-05 Rafael Avila de Espindola <espindola@google.com>
5993
5994 * Makefile.in (enable_plugin, plugin_includedir): New.
5995 (install): Depend on install-plugin.
5996 (PLUGIN_HEADERS): New.
5997 (install-plugin): New.
5998 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5999
7f8fdb9f
RG
60002009-05-05 Richard Guenther <rguenther@suse.de>
6001
6002 PR tree-optimization/40022
6003 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6004 the only vuse.
6005 (phivn_valid_p): Fix tuplification error, simplify.
6006 (phiprop_insert_phi): Add dumps.
6007 (propagate_with_phi): Simplify.
6008
8d972839
RG
60092009-05-05 Richard Guenther <rguenther@suse.de>
6010
6011 PR middle-end/40023
aa016ff7 6012 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 6013
66ba9b0b
SZ
60142009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
6015
6016 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
6017 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6018 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6019 block_ultimate_origin): Rearrange the declarations line to match the
6020 comment that indicates the .c file which the functions are defined.
6021 (dwarf2out_*, set_decl_rtl): Add comment.
6022 (get_base_address): Adjust comment.
6023 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6024 declarations line and add comment.
6025 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 6026
4f1e4960
JM
60272009-05-04 Joseph Myers <joseph@codesourcery.com>
6028
6029 * attribs.c (decl_attributes): Use %qE for identifiers in
6030 diagnostics.
6031 * cgraphunit.c (verify_cgraph_node): Translate function names to
6032 locale character set in diagnostics.
6033 * coverage.c (get_coverage_counts): Use %qE for identifiers in
6034 diagnostics.
6035 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6036 Document that functions are named in UTF-8.
6037 * expr.c (expand_expr_real_1): Translate function names to locale
6038 character set in diagnostics.
6039 * gimplify.c (omp_notice_variable, omp_is_private,
6040 gimplify_scan_omp_clauses): Use %qE for identifiers in
6041 diagnostics.
6042 * langhooks.c (lhd_print_error_function): Translate function names
6043 to locale character set.
6044 * langhooks.h (decl_printable_name): Document that return value is
6045 in internal character set.
6046 * stmt.c: Include pretty-print.h
6047 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6048 diagnostics.
6049 (resolve_operand_name_1): Translate named operand name to locale
6050 character set.
6051 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6052 diagnostics.
6053 * toplev.c (announce_function): Translate function names to locale
6054 character set.
6055 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6056 (default_tree_printer): Use pp_identifier or translate identifiers
6057 to locale character set. Mark "<anonymous>" for translation.
6058 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6059 for identifiers in diagnostics.
6060 * tree.c (handle_dll_attribute): Use %qE for identifiers in
6061 diagnostics.
6062 * varasm.c (output_constructor): Use %qE for identifiers in
6063 diagnostics.
6064
40540e68
RAE
60652009-05-04 Rafael Avila de Espindola <espindola@google.com>
6066
6067 * configure.ac: use ` ` instead of $()
6068 * configure: Regenerate.
6069
33fc884c
BE
60702009-05-05 Ben Elliston <bje@au.ibm.com>
6071
6072 * config/pa/linux-atomic.c: Eliminate conditional include of
6073 errno.h on non-LP64 systems to simplify build requirements.
6074
88388a52
JM
60752009-05-04 Joseph Myers <joseph@codesourcery.com>
6076
6077 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6078 diagnostics.
6079 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6080 and pass value to identifier_to_locale.
6081 (warn_variable_length_array): Make name a tree.
6082 (grokdeclarator): Separate diagnostic texts for named and unnamed
6083 declarators. Use %qE for named declarators.
6084 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6085 diagnostics.
6086 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6087 identifiers in diagnostics.
6088 * c-typeck.c (push_member_name, start_init): Pass identifiers to
6089 identifier_to_locale. Mark "anonymous" strings for translation.
6090
960c5c79
ME
60912009-05-04 Michael Eager <eager@eagercon.com>
6092
6093 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 6094 address for DImode/DFmode only if double-precision FP regs.
960c5c79 6095
d083fbba
ME
60962009-05-04 Michael Eager <eager@eagercon.com>
6097
6098 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6099 TARGET_SINGLE_FLOAT check.
6100
c3ba8d32
ME
61012009-05-04 Michael Eager <eager@eagercon.com>
6102
6103 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6104
edce9f18
ME
61052009-05-04 Michael Eager <eager@eagercon.com>
6106
6107 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6108 * config/rs6000/t-xilinx: New
6109
506d7b68
PB
61102009-05-04 Paolo Bonzini <bonzini@gnu.org>
6111
e913423f 6112 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
6113 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6114 * gcc/explow.c (memory_address): Use target hook.
6115 * gcc/targhooks.c (default_legitimize_address): New.
6116 * gcc/targhooks.h (default_legitimize_address): New.
6117 * gcc/target.h (legitimize_address): New.
6118 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6119 (TARGET_INITIALIZER): Include it.
6120 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6121
6122 * config/bfin/bfin-protos.h (legitimize_address): Remove.
6123 * config/bfin/bfin.c (legitimize_address): Remove.
6124 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
6125 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6126 Remove.
506d7b68
PB
6127 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6128 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6129
6130 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6131 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6132 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6133 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6134 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6135 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6136 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6137 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6138 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6139 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6140 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6141 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6142 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6143 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6144 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6145 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6146 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6147 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6148 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6149 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6150 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6151 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6152 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6153
6154 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6155 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6156 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6157 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6158 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6159 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6160 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6161 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6162 (thumb_legitimize_address): Delete.
6163 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6164 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6165 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6166 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6167 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
6168 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6169 Delete.
6170 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6171 Delete.
506d7b68
PB
6172
6173 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6174 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6175 * config/m32r/m32r.c (m32r_legitimize_address): New.
6176 * config/m68k/m68k.c (m68k_legitimize_address): New.
6177 * config/score/score.c (score_legitimize_address): Standardize.
6178 * config/score/score3.c (score3_legitimize_address): Standardize.
6179 * config/score/score3.h (score3_legitimize_address): Adjust.
6180 * config/score/score7.c (score7_legitimize_address): Standardize.
6181 * config/score/score7.h (score7_legitimize_address): Adjust.
6182 * config/sh/sh.c (sh_legitimize_address): New.
6183 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6184
6185 * gcc/config/s390/s390.c (legitimize_address): Rename to...
6186 (s390_legitimize_address): ... this.
6187 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6188 (sparc_legitimize_address): ... this.
6189 * gcc/config/i386/i386.c (legitimize_address): Rename to...
6190 (ix86_legitimize_address): ... this.
6191 * gcc/config/avr/avr.c (legitimize_address): Rename to...
6192 (avr_legitimize_address): ... this.
6193 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6194 (mn10300_legitimize_address): ... this.
6195 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6196 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6197 (alpha_expand_mov): Adjust call.
6198
6199 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6200 * config/spu/spu.c (spu_legitimize_address): Likewise.
6201 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6202 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6203
a3af5087
JM
62042009-05-04 Joseph Myers <joseph@codesourcery.com>
6205
6206 * intl.c (locale_encoding, locale_utf8): New.
6207 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6208 * intl.h (locale_encoding, locale_utf8): Declare.
6209 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6210 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6211 New.
6212 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6213 argument.
6214 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6215 (pp_base_tree_identifier): Declare as function.
6216 (identifier_to_locale): Declare.
6217 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6218 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6219
ea5cd5f1
RG
62202009-05-04 Richard Guenther <rguenther@suse.de>
6221
6222 PR middle-end/40015
6223 * builtins.c (fold_builtin_memory_op): Do not decay to element
6224 type if the size matches the whole array.
6225
ddc2690a
KH
62262009-05-04 Kazu Hirata <kazu@codesourcery.com>
6227
6228 * expmed.c (synth_mult): When trying out a shift, pass the result
6229 of a signed shift.
6230
ef268d34
KH
62312009-05-04 Kazu Hirata <kazu@codesourcery.com>
6232
6233 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6234 (shiftsub1_cost): New.
6235 (init_expmed): Compute shiftsub1_cost.
6236 (synth_mult): Optimize multiplications by constants of the form
6237 -(2^^m-1) for some constant positive integer m.
6238
255d3827
RG
62392009-05-03 Richard Guenther <rguenther@suse.de>
6240
6241 PR c/39983
6242 * c-typeck.c (array_to_pointer_conversion): Do not built
6243 ADDR_EXPRs of arrays of pointer-to-element type.
6244 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6245 up wrong ADDR_EXPRs after-the-fact.
6246 * c-common.c (strict_aliasing_warning): Strip pointer
6247 conversions for obtaining the original type.
6248 * builtins.c (fold_builtin_memset): Handle array types.
6249 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6250 and array types
6251
16c33770
RG
62522009-05-03 Richard Guenther <rguenther@suse.de>
6253
6254 PR middle-end/23329
6255 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6256 Do not lose casts from array types with unknown extent to array
6257 types with known extent.
6258 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6259 alias set compatibility.
6260
62a67c94
MLI
62612009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6262
6263 * flags.h (extra_warnings): Delete.
6264 * toplev.c (process_options): Handle Wuninitialized here.
6265 * opts.c (extra_warnings): Delete.
6266 (set_Wextra): Delete.
6267 (common_handle_option): -Wextra can be handled automatically.
6268 * c-opts.c (c_common_handle_option): Delete obsolete code.
6269 (c_common_post_options): Simplify comment.
6270 * common.opt (W): Add Var.
6271 (Wextra): Add Var.
6272 (Wuninitialized): Initialize to -1.
6273
8c7926c4
AN
62742009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6275 Richard Guenther <rguenther@suse.de>
6276
6277 * expr.c (get_def_for_expr): New function.
6278 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6279 SSA rather than trees.
6280 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6281 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6282
fa5da7de
JM
62832009-05-03 Joseph Myers <joseph@codesourcery.com>
6284
6285 * c-common.c (reswords): Add _Imaginary.
6286 * c-common.c (enum rid): Add RID_IMAGINARY.
6287
2ddd5020
PB
62882009-05-03 Paolo Bonzini <bonzini@gnu.org>
6289
6290 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6291 Patch by Richard Guenther.
6292
aea88c05
AS
62932009-05-03 Anatoly Sokolov <aesok@post.ru>
6294
6295 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6296 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6297 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6298 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6299 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6300 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6301 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6302 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6303 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6304 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6305 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6306 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6307 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6308 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6309 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6310 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6311 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6312 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6313
85e59f3a
RG
63142009-05-02 Richard Guenther <rguenther@suse.de>
6315
6316 PR tree-optimization/39940
6317 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6318 doing so.
6319
4636b850
RG
63202009-05-02 Richard Guenther <rguenther@suse.de>
6321
6322 PR middle-end/40001
6323 * tree-ssa.c (execute_update_addresses_taken): Properly check
6324 if we can mark a variable DECL_GIMPLE_REG_P.
6325 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6326 back to the end of the function.
6327 (is_gimple_reg_type): Remove complex type special casing.
6328 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6329 if not optimizing.
6330
5e10cb5a
BE
63312009-05-02 Ben Elliston <bje@au.ibm.com>
6332
6333 * doc/collect2.texi (Collect2): Document search path behaviour
6334 when configured with --with-ld.
6335
048bf48b
JH
63362009-05-02 Jan Hubicka <jh@suse.cz>
6337
6338 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6339 parameter; update callers.
aa016ff7
UB
6340 (coalesce_cost_edge): EH edges are costier because they needs
6341 splitting even if not critical and even more costier when there are
6342 multiple EH predecestors.
048bf48b 6343
d5c5f9ab
JH
63442009-05-02 Jan Hubicka <jh@suse.cz>
6345
6346 * except.c (remove_eh_handler_and_replace): Handle updating after
6347 removing TRY blocks.
6348
2ed1959a
EB
63492009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6350
6351 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6352
d363a7e7
SB
63532009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6354
6355 * varasm.c: Do not include c-pragma.h.
6356 * attribs.c: Do not incude c-common.h.
6357
9c3d55b4
MM
63582009-05-01 Michael Matz <matz@suse.de>
6359
6360 * calls.c (initialize_argument_information): Handle SSA names like
6361 decls with a non MEM_P DECL_RTL.
6362
ea264ca5
SB
63632009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6364
6365 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6366 * ipa-utils.c: Likewise.
6367 * ipa-type-escape.c: Likewise.
6368 * cgraphunit.c Do not include c-common.h.
6369 * ipa-pure-const.c: Likewise.
6370 * tree-if-conv.c: Likewise.
6371 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6372 * ipa-struct-reorg.c: Likewise.
6373 * tree-nomudflap.c: Likewise.
6374 * tree-ssa-structalias.c: Likewise.
6375
6c5d4d1a
SB
63762009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6377
6378 * store-motion.c: Many cleanups to make this pass a first-class
6379 citizen instead of an appendix to gcse load motion. Add TODO list
6380 to make this pass faster/cleaner/better.
6381
6382 (struct ls_expr): Post gcse.c-split cleanups.
6383 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6384 "stores" field to "avail_stores".
6385 (pre_ldst_mems): Rename to store_motion_mems.
6386 (pre_ldst_table): Rename to store_motion_mems_table.
6387 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6388 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6389 (ldst_entry): Rename to st_expr_entry, update users.
6390 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6391 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6392 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6393 update caller.
6c5d4d1a
SB
6394 (first_ls_expr): Rename to first_st_expr, update users.
6395 (next_ls_expr): Rename to next_st_expr, update users.
6396 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6397 fields properly for store motion instead of names inherited from load
6398 motion in gcse.c.
6399 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6400 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6401 are done with it.
6402
6403 (ae_kill): Rename to st_kill, update users.
6404 (ae_gen): Rename to st_avloc, update users.
6405 (transp): Rename to st_transp, update users.
6406 (pre_insert_map): Rename to st_insert_map, update users.
6407 (pre_delete_map): Rename to st_delete_map, update users.
6408 (insert_store, build_store_vectors, free_store_memory,
6409 one_store_motion_pass): Update for abovementioned changes.
6410
6411 (gcse_subst_count, gcse_create_count): Remove.
6412 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6413 and "n_stores_created", local variables.
6414
6415 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6416 use for_each_rtx.
6417
6418 (regvec, compute_store_table_current_insn): Remove.
6419 (reg_set_info, reg_clear_last_set): Remove.
6420 (compute_store_table): Use DF caches instead of local dataflow
6421 solvers.
6422
b02cec6e
JM
64232009-05-01 Joseph Myers <joseph@codesourcery.com>
6424
6425 * c-objc-common.c (c_tree_printer): Print identifiers with
6426 pp_identifier, not pp_string. Mark "({anonymous})" for
6427 translation.
6428 * c-pretty-print.c (pp_c_ws_string): New.
6429 (pp_c_cv_qualifier, pp_c_type_specifier,
6430 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6431 pp_c_storage_class_specifier, pp_c_function_specifier,
6432 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6433 pp_c_primary_expression, pp_c_postfix_expression,
6434 pp_c_unary_expression, pp_c_shift_expression,
6435 pp_c_relational_expression, pp_c_equality_expression,
6436 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6437 use pp_string and pp_c_ws_string in place of pp_identifier and
6438 pp_c_identifier for non-identifiers. Mark English strings for
6439 translation.
6440 * c-pretty-print.h (pp_c_ws_string): Declare.
6441
cd533689
PP
64422009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6443 Roland McGrath <roland@redhat.com>
6444
aa016ff7 6445 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6446 (ENABLE_LD_BUILDID): New configuration option.
6447 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6448 (LINK_BUILDID_SPEC): New macro.
6449 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6450 link_spec.
6451 * doc/install.texi: Document --enable-linker-build-id option.
6452 * configure: Rebuild.
6453 * config.in: Rebuild.
6454
ba6adec4
AN
64552009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6456
6457 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6458 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6459 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6460 MIPS_GP_SAVE_AREA_SIZE.
6461 * config/mips/mips.c (struct mips_frame_info): Update comment
6462 before arg_pointer_offset and hard_frame_pointer_offset.
6463 (mips_compute_frame_info): Update diagram before function: to
6464 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6465 indicate the position of frame_pointer_rtx with -fstack-protector and
6466 to show args_size. Don't allocate cprestore area for leaf functions
6467 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6468 cprestore_size.
6469 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6470
48f5b722
MM
64712009-04-30 Michael Matz <matz@suse.de>
6472
ba6adec4
AN
6473 PR tree-optimization/39955
6474 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6475
b65d6744
DK
64762009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6477
6478 * ira.c (setup_cover_and_important_classes): Use safe macro
6479 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6480 directly.
6481 * genpreds.c (write_tm_preds_h): Output suitable definition of
6482 REG_CLASS_FOR_CONSTRAINT.
6483
f136c8ae
RAE
64842009-04-30 Rafael Avila de Espindola <espindola@google.com>
6485
6486 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6487 instead of an int.
6488 * bitmap.c (bitmap_descriptor): Likewise.
6489 * ggc-common.c (loc_descriptor): Likewise.
6490 * varray.c (varray_descriptor): Likewise.
6491 * vec.c (vec_descriptor): Likewise.
6492
43fcece8 64932009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6494
6495 * Makefile.in (dce.o): Add $(EXCEPT_H).
6496 * dce.c: Include except.h and delete redundant vector definitions.
6497 (deletable_insn_p): Return false for non-call insns that can throw
6498 if DF is running.
6499
df35c271
SB
65002009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6501
6502 * gcse.c (ae_gen): Remove.
6503 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6504 and make non-static function to make it available in store-motion.c.
6505 Update call sites with search-and-replace.
6506 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6507 extract_mentioned_regs, extract_mentioned_regs_helper,
6508 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6509 store_killed_in_insn, store_killed_after, store_killed_before,
6510 build_store_vectors, insert_insn_start_basic_block, insert-store,
6511 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6512 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6513 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6514 * store-motion.c: ...new file. Also copy data structures from gcse.c
6515 and clean up to remove parts not used by store motion.
6516 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6517 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6518
f711a87a
RR
65192009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6520
6521 PR target/38571
6522 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6523 when optimizing for size.
6524
fa5ed76e
HPN
65252009-04-30 Hans-Peter Nilsson <hp@axis.com>
6526
6527 * gcse.c (gcse_constant_p): Fix typo in last change.
6528
0acbbdb0
RAE
65292009-04-30 Rafael Avila de Espindola <espindola@google.com>
6530
6531 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6532
82f5c05d
AK
65332009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6534
6535 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6536
6d8f135b
JW
65372009-04-29 James E. Wilson <wilson@codesourcery.com>
6538
6539 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6540 CONST_HIGH_PART result.
6541
c21ca196
AS
65422009-04-29 Anatoly Sokolov <aesok@post.ru>
6543
6544 * config/avr/avr.c (initial_elimination_offset): Rename to
6545 avr_initial_elimination_offset.
6546 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6547 change return type to bool.
6548 (avr_can_eliminate): New function.
6549 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6550 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6551 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6552 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6553 avr_initial_elimination_offset.
6554 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6555 (avr_initial_elimination_offset): Define.
6556
2a34bece 65572009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6558 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6559
6560 PR rtl-optimization/39938
6561 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6562 * cfgrtl.c: Include insn-attr.h.
6563 (rest_of_pass_free_cfg): New function.
6564 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6565 * resource.c (init_resource_info): Remove call to df_analyze.
6566
5dc7911e
RG
65672009-04-29 Richard Guenther <rguenther@suse.de>
6568
6569 PR target/39943
6570 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6571 allow conversion to signed integers.
6572
1fe479fd
RG
65732009-04-29 Richard Guenther <rguenther@suse.de>
6574
6575 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6576 shifts of floating point vectors if the shift amount is
6577 a constant multiple of the element size.
6578
8e001680
AK
65792009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6580 Michael Matz <matz@suse.de>
6581
6582 PR middle-end/39927
6583 PR bootstrap/39929
6584 * tree-outof-ssa.c (emit_partition_copy): New function.
6585 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6586 insert_part_to_rtx_on_edge): Perform the partition base var
6587 copy using emit_partition_copy.
6588 (insert_value_copy_on_edge): Convert constants to the right mode.
6589 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6590 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6591
e50e3081
BS
65922009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6593
6594 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6595 scan backwards to try to find a constant to initialize it.
6596
4e5d521b
BS
6597 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6598 insn before the loop_end instruction, don't look past labels.
6599
7c90021d
RG
66002009-04-29 Richard Guenther <rguenther@suse.de>
6601
6602 PR middle-end/39937
6603 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6604 loose type conversions.
6605 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6606 stmts only if there are no uses of its definition.
6607
97a988bc
BS
66082009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6609
6610 * config/bfin/bfin.h (splitting_loops): Declare.
6611 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6612 Reorder bit definitions to be ascending.
6613 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6614 * config/bfin/bfin.c (splitting_loops): New variable.
6615 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6616 (struct loop_info): Remove members INIT and LOOP_INIT.
6617 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6618 the LSETUP sequence. Allow LC to be loaded from any register, but
6619 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6620 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6621 set to 1.
6622 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6623 of reload_completed.
aa016ff7 6624
97a988bc
BS
6625 From Jie Zhang:
6626 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6627
0c463e16
RAE
66282009-04-29 Rafael Avila de Espindola <espindola@google.com>
6629
6630 * Makefile.in (PLUGIN_VERSION_H): New.
6631 (OBJS-common): Remove plugin-version.o.
6632 (plugin.o): Depend on (PLUGIN_VERSION_H).
6633 (plugin-version.o): Remove.
6634 * configure: Regenerate
6635 * configure.ac: Create plugin-version.h.
6636 * gcc-plugin.h (plugin_gcc_version): Remove.
6637 (plugin_default_version_check): Change signature.
6638 * plugin-version.c: Remove.
6639 * plugin.c: Include plugin-version.h.
6640 (str_plugin_gcc_version_name): Remove.
6641 (try_init_one_plugin): Pass gcc version to plugin_init.
6642 (plugin_default_version_check): Both gcc and plugin versions are now
6643 arguments.
6644
307e7eab
BS
66452009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6646
6647 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6648 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6649 Remove special case testing for last insn of inner loops. Don't fail
6650 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6651
c5d96723
BS
6652 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6653 DREGS rather than comparing directly. Remove code that tries to
6654 account for latencies.
6655
de0b4ad5
RG
66562009-04-29 Richard Guenther <rguenther@suse.de>
6657
6658 PR tree-optimization/39941
6659 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6660 eliminating an indirect call.
6661
3a19701a
RG
66622009-04-29 Richard Guenther <rguenther@suse.de>
6663
6664 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6665 parameter. Allow invariants as base if !require_lvalue.
6666 (verify_gimple_assign_single): Adjust.
6667
a0a31d1e
BS
66682009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6669
6670 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6671 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6672 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6673 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6674 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6675 a VEC_SELECT.
aa016ff7
UB
6676 * config/bfin/bfin.c (bfin_expand_builtin,
6677 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6678
795bd26a
RG
66792009-04-28 Richard Guenther <rguenther@suse.de>
6680
6681 * tree-vect-loop.c (get_initial_def_for_induction): Use
6682 correct types for pointer increment.
6683
04be270f
KG
66842009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6685
6686 * toplev.c (print_version): Update GMP version string calculation.
6687
e1a3b85c
EB
66882009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6689
6690 PR rtl-optimization/39938
6691 * resource.c (init_resource_info): Add call to df_analyze.
6692
8224166e
UB
66932009-04-28 Uros Bizjak <ubizjak@gmail.com>
6694
6695 * config/alpha/alpha.md (usegp): Cast the result of
6696 alpha_find_lo_sum_using_gp to enum attr_usegp.
6697 * config/alpha/alpha.c (override_options): Remove end-of-structure
6698 marker element from cpu_table. Use array size of cpu_table to handle
6699 -mcpu and -mtune options.
6700 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6701
c5f0fe67
JM
67022009-04-28 Joseph Myers <joseph@codesourcery.com>
6703
6704 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6705 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6706 tune_32 and tune_64.
6707 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6708 support on PowerPC.
6709 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6710 * config/rs6000/option-defaults.h: ... here. New file.
6711 (OPT_64, OPT_32): Define.
6712 (MASK_64BIT): Define to 0 if not already defined.
6713 (OPT_ARCH64, OPT_ARCH32): Define.
6714 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6715 and tune_64.
6716
0c48a567
RR
67172009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6718
6719 * config/arm/arm.c (arm_override_options): Emit error on using
6720 fpa with AAPCS.
6721
f1028b9d
UB
67222009-04-28 Uros Bizjak <ubizjak@gmail.com>
6723
6724 PR rtl-optimization/39914
6725 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6726 registers for allocnos created from user-defined variables only
6727 when not optimizing.
6728
e0dd989a
RG
67292009-04-28 Richard Guenther <rguenther@suse.de>
6730
6731 PR middle-end/39937
6732 * fold-const.c (fold_binary): Use distribute_real_division only
6733 on float types.
6734
9a17c91d
SE
67352009-04-28 Steve Ellcey <sje@cup.hp.com>
6736
6737 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6738 add hpux-stdint.h to tm_file.
6739 (hppa[12]*-*-hpux11*): Ditto.
6740 (ia64*-*-hpux*): Ditto.
6741 * config/hpux-stdint.h: New.
60839f5d 6742 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6743 __STDC_EXT__ for all compiles.
60839f5d
EB
6744 * config/pa/pa-hpux.h: Ditto.
6745 * config/pa/pa-hpux10.h: Ditto.
6746 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6747
af04e659
CM
67482009-04-28 Catherine Moore <clm@codesourcery.com>
6749
6750 * debug.h (set_name): Add comment.
6751
04ef80ce
AP
67522009-04-28 Andrew Pinski <pinskia@gmail.com>
6753
6754 PR target/39929
6755 * config/darwin.c (machopic_gen_offset): Check
6756 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6757 * config/arm/arm.c (require_pic_register): Likewise.
6758
65ad77af
PB
67592009-04-28 Paolo Bonzini <bonzini@gnu.org>
6760
8224166e
UB
6761 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6762 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6763 m32c_promote_prototypes): Delete.
65ad77af 6764
1b15a008
MM
67652009-04-28 Michael Matz <matz@suse.de>
6766
6767 PR middle-end/39922
6768 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6769 constants.
6770
7569a6cc
RG
67712009-04-28 Richard Guenther <rguenther@suse.de>
6772
f1028b9d 6773 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6774
ead204d9
RR
67752009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6776
6777 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6778 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6779 * config/arm/arm-tune.md: Regenerate.
6780
f2c45f08 67812009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6782
f2c45f08
AM
6783 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6784 block if there are complex incoming edges.
6785 (sel_merge_blocks): Remove useless assert.
6786 (sel_redirect_edge_and_branch): Check that edge was redirected.
6787 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6788 (sel_find_rgns): Delete declaration.
6789 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6790 the region when it is not a preheader.
6791
7a00d767
UB
67922009-04-28 Uros Bizjak <ubizjak@gmail.com>
6793
6794 PR c/39323
6795 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6796
448ee662
RG
67972009-04-28 Richard Guenther <rguenther@suse.de>
6798
6799 * tree.h (SSA_NAME_VALUE): Remove.
6800 (struct tree_ssa_name): Remove value_handle member.
6801 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6802 array for jump threading.
6803 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6804 SSA_NAME_VALUEs.
6805 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6806 * tree-flow.h (threadedge_initialize_values): Declare.
6807 (threadedge_finalize_values): Likewise.
6808 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6809 (SSA_NAME_VALUE): Define.
6810 (threadedge_initialize_values): New function.
6811 (threadedge_finalize_values): Likewise.
6812 * tree-ssa-dom.c (ssa_name_values): New global variable.
6813 (SSA_NAME_VALUE): Define.
f1028b9d 6814 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6815
8644a673
IR
68162009-04-28 Ira Rosen <irar@il.ibm.com>
6817
6818 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6819 Use REPORT_VECTORIZED_LOCATIONS instead
6820 REPORT_VECTORIZED_LOOPS.
6821 * tree-vectorizer.c (vect_verbosity_level): Make static.
6822 (vect_loop_location): Rename to vect_location.
6823 (vect_set_verbosity_level): Update comment.
6824 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6825 and vect_location.
6826 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6827 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6828 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6829 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6830 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6831 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6832 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6833 REPORT_UNVECTORIZED_LOCATIONS.
6834 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6835 and vect_used_in_loop and to vect_unused_in_scope and
6836 vect_used_in_scope.
6837 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6838 (vect_verbosity_level): Remove declaration.
6839 (vect_analyze_operations): Likewise.
6840 (vect_analyze_stmt): Declare.
6841 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6842 REPORT_UNVECTORIZED_LOCATIONS.
6843 (vect_get_loop_niters): Fix indentation.
6844 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6845 (vect_analyze_loop_operations): New function.
6846 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6847 vect_analyze_operations.
6848 (vect_is_simple_reduction): Use new names.
6849 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6850 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6851 to specify whether the data references can be a part of interleaving
6852 chain.
8644a673
IR
6853 (vect_analyze_data_ref_dependence): Use new names.
6854 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6855 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6856 * tree-vect-patterns.c (widened_name_p): Use new names.
6857 (vect_recog_dot_prod_pattern): Likewise.
6858 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6859 (process_use, vect_mark_stmts_to_be_vectorized,
6860 vect_model_simple_cost, vect_model_store_cost,
6861 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6862 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6863 vectorizable_operation, vectorizable_type_demotion,
6864 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6865 vectorizable_condition): Likewise.
6866 (vect_analyze_operations): Split into vect_analyze_loop_operations
6867 and ...
6868 (vect_analyze_stmt): ... new function.
6869 (new_stmt_vec_info): Use new names.
6870 (vect_is_simple_use): Use new names and fix comment.
6871 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6872 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6873
b91322f2
UB
68742009-04-28 Uros Bizjak <ubizjak@gmail.com>
6875
6876 PR target/39911
6877 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6878 and integer modes for x87 operands. Do not ICE for unsupported size,
6879 generate error instead. Generate error for unsupported operand types.
6880 ['z']: Do not handle HImode memory operands specially. Warning
6881 for floating-point operands. Fallthru to 'Z' for unsupported operand
6882 types. Do not ICE for unsupported size, generate error instead.
6883 (output_387_binary_op): Use %Z to output operands.
6884 (output_fp_compare): Ditto.
6885 (output_387_reg_move): Ditto.
6886
b2ed71b6
BE
68872009-04-28 Ben Elliston <bje@au.ibm.com>
6888
6889 PR c++/35652
6890 Revert:
6891
6892 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6893
6894 * builtins.c (c_strlen): Do not warn here.
6895 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6896 * c-common.c (pointer_int_sum): Take an explicit location.
6897 Warn about offsets out of bounds.
6898 * c-common.h (pointer_int_sum): Adjust declaration.
6899
81f40b79
ILT
69002009-04-27 Ian Lance Taylor <iant@google.com>
6901
6902 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6903 names to symkind.
6904 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6905 * df-core.c (df_set_flags): Change return type to int. Change
6906 type of old_flags to int.
6907 (df_clear_flags): Likewise.
6908 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6909 (df_get_conditional_uses): Likewise.
6910 * df.h (df_set_flags, df_clear_flags): Update declarations.
6911 * dwarf2out.c (struct indirect_string_node): Change type of form
6912 field to enum dwarf_form.
6913 (AT_string_form): Change return type to enum dwarf_form.
6914 * fixed-value.c (fixed_compare): Add cast to enum type.
6915 * fwprop.c (update_df): Change 0 to VOIDmode.
6916 * gensupport.c: Change 0 to UNKNOWN.
6917 * gimple.h (gimple_cond_code): Add cast to enum type.
6918 * haifa-sched.c (reemit_notes): Add cast to enum type.
6919 * hooks.c (hook_int_void_no_regs): Remove function.
6920 * hooks.h (hook_int_void_no_regs): Remove declaration.
6921 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6922 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6923 * real.c (real_arithmetic): Add cast to enum type.
6924 (real_compare): Likewise.
6925 * target.h (struct gcc_target): Change return type of
6926 branch_target_register_class to enum reg_class.
6927 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6928 default_branch_target_register_class.
7a00d767 6929 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6930 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6931 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6932 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6933 cast to int.
6934 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6935 ERROR_MARK.
6936 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6937 vect_uninitialized_def. Change 0 to ERROR_MARK.
6938 * tree-vect-stmts.c (supportable_widening_operation): Don't
6939 initialize icode1 and icode2.
7a00d767 6940 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6941 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6942 and to STD_C89.
6943 (cmn_err_flag_specs): Change 0 to STD_C89.
6944 (cmn_err_char_table): Likewise.
6945 * config/arm/arm.c (get_arm_condition_code): Change type of code
6946 to enum arm_cond_code.
6947 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6948 (IWMMXT_BUILTIN2): Likewise.
6949 (neon_builtin_type_bits): Don't define typedef.
6950 (neon_builtin_datum): Change type of bits field to int.
6951 (arm_expand_neon_args): Add cast to enum type.
6952 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6953 TLS_MODEL_NONE.
6954 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6955 casts to enum type.
6956 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6957 MIPS_FP_COND_f.
6958 * config/mips/mips.md (jal_macro): Return enum constant.
6959 (single_insn): Likewise.
6960 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6961 CODE_FOR_nothing.
6962 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6963 casts to enum type.
6964 * config/s390/s390.c (s390_tune_flags): Change type to int.
6965 (s390_arch_flags): Likewise.
7a00d767 6966 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6967 * config/s390/s390.h (s390_tune_flags): Update declaration.
6968 (s390_arch_flags): Likewise.
6969 * config/sh/sh.c (prepare_move_operands): Compare
6970 tls_symbolic_operand result with enum constant.
6971 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6972 (sh_expand_prologue): Add cast to enum type.
6973 (sh_expand_epilogue): Likewise.
6974 (tls_symbolic_operand): Change return type to enum tls_model.
6975 (fpscr_set_from_mem): Add cast to enum type.
6976 (legitimize_pic_address): Compare tls_symbolic_operand result with
6977 enum constant.
6978 (sh_target_reg_class): Change return type to enum reg_class.
6979 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6980 PROCESSOR_xxx.
7a00d767
UB
6981 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6982 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6983 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6984 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6985 (delayed_branch, tls_call_delay): Likewise.
6986 (eligible_for_sibcall_delay): Likewise.
6987 (eligible_for_return_delay): Likewise.
6988 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6989 (spu_expand_builtin_1): Likewise.
6990
6991 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6992 for all types of conversions.
6993 (output_init_element): Issue -Wc++-compat warning if needed when
6994 initializing a bitfield with enum type.
6995 * c-parser.c (c_parser_expression): Set original_type to
6996 original_type of right hand operand of comman operator.
6997
e4ae5e77
RW
69982009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6999
7000 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7001 grammar nits.
7a00d767 7002 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
7003 * doc/cpp.texi (Standard Predefined Macros)
7004 (Implementation-defined behavior): Likewise.
7a00d767 7005 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
7006 * doc/gimple.texi (GIMPLE Exception Handling)
7007 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 7008 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
7009 * doc/invoke.texi (Warning Options, Optimize Options)
7010 (AVR Options, Darwin Options): Likewise.
7011 (Optimize Options): Reformulate -fwhole-program description.
7012 * doc/loop.texi (Lambda): Likewise.
7013 * doc/md.texi (Output Template, Define Constraints)
7014 (Standard Names, Insn Splitting): Likewise.
7015 * doc/options.texi (Option properties): Likewise.
7016 * doc/passes.texi (Tree-SSA passes): Likewise.
7017 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7018 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7019 (File Names and DBX): Likewise.
7020 * doc/trouble.texi (Incompatibilities): Likewise.
7021
1883802f 70222009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
7023
7024 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7025 instruction is correct.
7026
1883802f 70272009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
7028
7029 Allow non-constant arguments to conversion intrinsics.
7030 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7031 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7032 * spu.c (print_operand): Handle 'v' and 'w'.
7033 (exp2_immediate_p, spu_gen_exp2): Define.
7034 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7035 spu_convtf_1): Update parameter descriptions.
7a00d767 7036 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
7037 * constraints.md ('v', 'w'): New.
7038 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7039 Remove.
7040 (i2f, I2F): New define_mode_attr.
7041 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7042 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7043 fixuns_truncv4sfv4si2): Update to use mode attribute.
7044 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7045 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7046 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7047 patterns for combine.
7048
5f39ad47
SB
70492009-04-27 Steven Bosscher <steven@gcc.gnu.org>
7050
7051 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7052 (cprop, hoist, pre, store_motion): New debug counters.
7053 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7054 is not an RTL pass anymore.
7055 (pass_profiling): Remove extern decl for pass removed in 2005.
7056 (pass_gcse, pass_jump_bypass): Remove.
7057 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7058 to 0 for clean state.
7059 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7060 * cse.c (gate_handle_cse_after_global_opts,
7061 rest_of_handle_cse_after_global_opts): New functions.
7062 (pass_cse_after_global_opts): New pass, does local CSE.
7063 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7064 (TV_CPROP): New timevar.
7065 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7066 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7067 (gcse_main, recompute_all_luids): Remove.
7068 (compute_hash_table_work): Call max_reg_num instead of reading
7069 max_gcse_regno.
7070 (cprop_jump): Don't set run_jump_opt_after_gcse.
7071 (constprop_register): Always allow to alter jumps.
7072 (cprop_insn): Likewise.
7073 (do_local_cprop): Likewise.
7074 (local_cprop_pass): Likewise. Return non-zero if something changed.
7075 (cprop): Remove function, fold interesting bits into one_cprop_pass.
7076 (find_implicit_sets): Add note about missed optimization opportunity.
7077 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7078 pass_rtl_cprop execute function.
7079 Don't bother tracking the pass number, each pass gets its own dumpfile
7080 now anyway.
7081 Always allow to alter jumpsand bypass jumps.
7082 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7083 will just find no suitable set.
7084 (pre_edge_insert): Fix dumping, this function is for PRE only.
7085 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7086 pass_rtl_pre execute function.
7087 (hoist_code): Return non-zero if something changed. Keep track of
7088 substitutions and insertions for statistics gathering similar to PRE.
7089 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7090 called from the pass_rtl_hoist execute function. Show pass statistics.
7091 (compute_store_table): Use max_reg_num directly instead of using the
7092 formerly global max_gcse_regno.
7093 (build_store_vectors): Likewise.
7094 (replace_store_insn): Fix dumping.
7095 (store_motion): Rename to ...
7096 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
7097 pass, called from the pass_rtl_store_motion execute function. Keep
7098 track of substitutions and insertions for statistics gathering similar
7099 to PRE.
7100 (bypass_jumps): Remove, fold interesting bits into ...
7101 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
7102 from the pass_rtl_cprop execute function.
7103 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7104 pass_jump_bypass): Remove.
7105 (gate_handle_gcse, rest_of_handle_gcse): Remove.
7106 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7107 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7108 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7109 (gate_rtl_store_motion, execute_rtl_store_motion,
7110 pass_rtl_store_motion): New.
7111 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7112 make it clear that -fcse-skip-blocks is a no-op for backward compat.
7113 * passes.c (init_optimization_passes): Remove pass_gcse and
7114 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
7115 and cse_after_global_opts in place of pass_gcse. Schedule cprop
7116 instead of pass_jump_bypass.
7117
c685de4a
RG
71182009-04-27 Richard Guenther <rguenther@suse.de>
7119
7120 PR middle-end/39928
7121 * gimplify.c (gimplify_expr): If we are required to create
7122 a temporary make sure it ends up as register.
7123
72d41f29
L
71242009-04-27 H.J. Lu <hongjiu.lu@intel.com>
7125
7126 PR target/39903
7127 * config/i386/i386.c (construct_container): Don't call
7128 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7129 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7130
e97809c6
MM
71312009-04-27 Michael Matz <matz@suse.de>
7132
7133 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7134 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7135 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7136 (dump_replaceable_exprs): Take a bitmap.
7137 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7138 array.
7139 (expand_gimple_basic_block): Likewise.
7140 * tree-ssa-ter.c (struct temp_expr_table_d): Make
7141 replaceable_expressions member a bitmap.
7142 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7143 (mark_replaceable): Likewise.
7144 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7145 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7146
211ca15c
RG
71472009-04-27 Richard Guenther <rguenther@suse.de>
7148
7149 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7150 (verify_stmts): Dispatch to gimple/type verification code.
7151 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7152 issue with call argument types.
7153
fca5f3d1
MM
71542009-04-27 Michael Matz <matz@suse.de>
7155
7156 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7157 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7158 to above.
7159
a1fa3e79 71602009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 7161 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
7162
7163 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7164 a label's basic block.
7165 (mark_target_live_regs): Tidy and rework obsolete comments.
7166 Change back DF problem to LIVE. If a label starts a basic block,
7167 assume that all registers that used to be live then still are.
7168 (init_resource_info): If a label starts a basic block, set its
7169 BLOCK_FOR_INSN accordingly.
7170 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7171
33b223c0
RG
71722009-04-27 Richard Guenther <rguenther@suse.de>
7173
7174 * tree-flow-inline.h (function_ann): Remove.
7175 (get_function_ann): Likewise.
7176 * tree-dfa.c (create_function_ann): Remove.
7177 * tree-flow.h (struct static_var_ann_d): Remove.
7178 (struct function_ann_d): Likewise.
7179 (union tree_ann_d): Remove fdecl member.
7180 (function_ann_t): Remove.
7181 (function_ann, get_function_ann, create_function_ann): Remove
7182 declarations.
7183
e3136fa2
UB
71842009-04-27 Uros Bizjak <ubizjak@gmail.com>
7185
7186 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7187
f87c9042
JH
71882009-04-27 Jan Hubicka <jh@suse.cz>
7189
7190 * ipa-pure-const.c (struct funct_state_d): New fields
7191 state_previously_known, looping_previously_known; remove
7192 state_set_in_source.
7193 (analyze_function): Use new fields.
7194 (propagate): Avoid assumption that state_set_in_source imply
7195 nonlooping.
7196
7197 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7198 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7199 * cfgloop.h (finite_loop_p): Declare.
7200
33abd718
MM
72012009-04-26 Michael Matz <matz@suse.de>
7202
e3136fa2 7203 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7204
ddc34084
MM
72052009-04-26 Michael Matz <matz@suse.de>
7206
7207 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7208 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7209 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7210 pass_mark_used_blocks): Remove.
7211 * tree-optimize.c (pass_free_datastructures,
7212 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7213 * passes.c (init_optimization_passes): Don't call
7214 pass_mark_used_blocks, remove dead code.
7215
1fec7ed4
L
72162009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7217
7218 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7219 * tree-ssa-live.h (register_ssa_partition): Likewise.
7220
4e3825db
MM
72212009-04-26 Michael Matz <matz@suse.de>
7222
7223 Expand from SSA.
7224 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7225 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7226 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7227 SSA names.
7228 (compare_pairs): Swap cost comparison.
7229 (coalesce_ssa_name): Don't use change_partition_var.
7230 * tree-nrv.c (struct nrv_data): Add modified member.
7231 (finalize_nrv_r): Set it.
7232 (tree_nrv): Use it to update statements.
7233 (pass_nrv): Require PROP_ssa.
7234 * tree-mudflap.c (mf_decl_cache_locals,
7235 mf_build_check_statement_for): Use make_rename_temp.
7236 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7237 * alias.c (find_base_decl): Handle SSA names.
7238 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7239 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7240 * rtl.h (set_reg_attrs_for_parm): Declare.
7241 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7242 to "optimized", remove unused locals at finish.
7243 (execute_free_datastructures): Make global, call
7244 delete_tree_cfg_annotations.
7245 (execute_free_cfg_annotations): Don't call
7246 delete_tree_cfg_annotations.
7247
7248 * ssaexpand.h: New file.
7249 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7250 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7251 (expand_expr_real_1): Expand SSA names.
7252 * cfgexpand.c (toplevel): Include ssaexpand.h.
7253 (SA): New global variable.
7254 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7255 (SSAVAR): New macro.
7256 (set_rtl): New helper function.
7257 (add_stack_var): Deal with SSA names, use set_rtl.
7258 (expand_one_stack_var_at): Likewise.
7259 (expand_one_stack_var): Deal with SSA names.
7260 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7261 before unique numbers.
7262 (expand_stack_vars): Use set_rtl.
7263 (expand_one_var): Accept SSA names, add asserts for them, feed them
7264 to above subroutines.
7265 (expand_used_vars): Expand all partitions (without default defs),
7266 then only the local decls (ignoring those expanded already).
7267 (expand_gimple_cond): Remove edges when jumpif() expands an
7268 unconditional jump.
7269 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7270 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7271 SSA name.
7272 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7273 members of SA; deal with PARM_DECL partitions here; expand
7274 all PHI nodes, free tree datastructures and SA. Commit instructions
7275 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7276 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7277 info and statements at start, collect garbage at finish.
7278 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7279 (VAR_ANN_PARTITION) Remove.
7280 (change_partition_var): Don't declare.
7281 (partition_to_var): Always return SSA names.
7282 (var_to_partition): Only accept SSA names.
7283 (register_ssa_partition): Only check argument.
7284 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7285 member.
7286 (delete_var_map): Don't free it.
7287 (var_union): Only accept SSA names, simplify.
7288 (partition_view_init): Mark only useful SSA names as used.
7289 (partition_view_fini): Only deal with SSA names.
7290 (change_partition_var): Remove.
7291 (dump_var_map): Use ssa_name instead of partition_to_var member.
7292 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7293 basic blocks.
7294 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7295 (struct _elim_graph): New member const_dests; nodes member vector of
7296 ints.
7297 (set_location_for_edge): New static helper.
7298 (create_temp): Remove.
7299 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7300 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7301 (new_elim_graph): Allocate const_dests member.
7302 (clean_elim_graph): Truncate const_dests member.
7303 (delete_elim_graph): Free const_dests member.
7304 (elim_graph_size): Adapt to new type of nodes member.
7305 (elim_graph_add_node): Likewise.
7306 (eliminate_name): Likewise.
7307 (eliminate_build): Don't take basic block argument, deal only with
7308 partition numbers, not variables.
7309 (get_temp_reg): New static helper.
7310 (elim_create): Use it, deal with RTL temporaries instead of trees.
7311 (eliminate_phi): Adjust all calls to new signature.
7312 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7313 (rewrite_trees): Only do checking.
7314 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7315 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7316 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7317 contains_tree_r, MAX_STMTS_IN_LATCH,
7318 process_single_block_loop_latch, analyze_edges_for_bb,
7319 perform_edge_inserts): Remove.
7320 (expand_phi_nodes): New global function.
7321 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7322 functions, initialize new parameter, remember partitions having a
7323 default def.
7324 (finish_out_of_ssa): New global function.
7325 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7326 don't reset in_ssa_p here, don't disable TER when mudflap.
7327 (pass_del_ssa): Remove.
7328 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7329 partition members.
7330 (execute_free_datastructures): Declare.
7331 * Makefile.in (SSAEXPAND_H): New variable.
7332 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7333 * basic-block.h (commit_one_edge_insertion): Declare.
7334 * passes.c (init_optimization_passes): Move pass_nrv and
7335 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7336 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7337 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7338 (redirect_branch_edge): Deal with super block when expanding, split
7339 out jump patching itself into ...
7340 (patch_jump_insn): ... here, new static helper.
7341
17c665a9
MM
73422009-04-26 Michael Matz <matz@suse.de>
7343
7344 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7345 beyond num_ssa_names.
7346 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7347 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7348
92061771
JJ
73492009-04-26 Jakub Jelinek <jakub@redhat.com>
7350
ce372372
JJ
7351 PR inline-asm/39543
7352 * fwprop.c (forward_propagate_asm): New function.
7353 (forward_propagate_and_simplify): Propagate also into __asm, if it
7354 doesn't increase the number of referenced registers.
7355
92061771
JJ
7356 PR c/39889
7357 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7358
73592009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7360
7361 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7362 note_nonlocal_vla_type for nonlocal VLAs.
7363 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7364 contains_remapped_vars, remap_vla_decls): New functions.
7365 (convert_nonlocal_reference_stmt): If not optimizing, call
7366 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7367 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7368 if it wasn't found in var_map.
7369 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7370 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7371 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7372 declare_vars.
7373 * gimplify.c (nonlocal_vlas): New variable.
7374 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7375 referenced VLAs.
7376 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7377
4561e242
JJ
7378 * dwarf2out.c (loc_descr_plus_const): New function.
7379 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7380 mem_loc_descriptor, loc_descriptor_from_tree_1,
7381 descr_info_loc, gen_variable_die): Use it.
7382
a9548ddf
JJ
7383 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7384 !TREE_STATIC VAR_DECLs.
7385 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7386 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7387 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7388 DECL_BY_REFERENCE is valid.
7389 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7390 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7391 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7392 Copy DECL_BY_REFERENCE.
7393 (struct nesting_copy_body_data): New type.
7394 (nesting_copy_decl): New function.
7395 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7396 if they have variable length.
7397
10555d08
MM
73982009-04-26 Michael Matz <matz@suse.de>
7399
7400 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7401 mark new temporaries for renaming.
7402
e11187cc
JM
74032009-04-26 Joseph Myers <joseph@codesourcery.com>
7404
7405 PR c/39581
7406 * c-decl.c (global_bindings_p): Return negative value.
7407 (c_variable_size): New. Based on variable_size from
7408 stor-layout.c.
7409 (grokdeclarator): Call c_variable_size not variable_size.
7410
f6a51d31
UB
74112009-04-26 Uros Bizjak <ubizjak@gmail.com>
7412
7413 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7414
4b97723d
KT
74152009-04-26 Kai Tietz <kai.tietz@onevision.com>
7416
7417 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7418 Redefine it to just use mingw/include.
7419 (ASM_SPEC): Rules for -m32 and -m64.
7420 (LINK_SPEC): Use Likewise.
7421 (SPEC_32): New define.
7422 (SPEC_64): Likewise.
7423 (SUB_LINK_SPEC): Likewise.
7424 (MULTILIB_DEFAULTS): New define.
7425 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7426 Add multilib options.
7427 (MULTILIB_DIRNAMES): Likewise.
7428 (MULTILIB_OSDIRNAMES): Likewise.
7429 (LIBGCC): Likewise.
7430 (INSTALL_LIBGCC): Likewise.
7431
991d6621
JM
74322009-04-26 Joseph Myers <joseph@codesourcery.com>
7433
7434 PR c/39556
7435 * c-tree.h (enum c_inline_static_type): New.
7436 (record_inline_static): Declare.
7437 * c-decl.c (struct c_inline_static, c_inline_statics,
7438 record_inline_static, check_inline_statics): New.
7439 (pop_file_scope): Call check_inline_statics.
7440 (start_decl): Call record_inline_static instead of pedwarning
7441 directly for static in inline function.
7442 * c-typeck.c (build_external_ref): Call record_inline_static
7443 instead of pedwarning directly for static referenced in inline
7444 function.
7445
4a81774c
SB
74462009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7447
7448 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7449 not new but only being rescanned.
7450 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7451 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7452 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7453 record_set_info, compute_set, grealloc): Remove.
7454 (recompute_all_luids): New function.
7455 (gcse_main): Don't compute sets, and don't do related memory
7456 allocations/free-ing. If something changed before the end of the
7457 pass, update LUIDs using recompute_all_luids.
7458 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7459 (free_gcse_mem): Don't free it either.
7460 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7461 Use the df insn LUIDs.
7462 (load_killed_in_block): Likewise.
7463 (compute_hash_table_work): Don't compute reg_set_in_block.
7464 (compute_transp): Use DF_REG_DEF_CHAINs.
7465 (local_cprop_pass): Don't use compute_sets and related functions.
7466 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7467 Use get_max_uid() instead of max_cuid.
7468 (insert_insn_end_basic_block, pre_insert_copy_insn,
7469 update_ld_motion_stores): Don't try to
7470 keep reg_set tables up to date.
7471 (pre_insert_copies): Use df insn LUIDs.
7472 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7473 (reg_set_info): Don't use extra bitmap argument.
7474 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7475 information to compute regs_set_in_block.
7476 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7477 (bypass_jumps): Don't use compute_sets and friends.
7478
e8f99a9d
RW
74792009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7480
7481 PR testsuite/39710
7482 * opts.c (undocumented_msg): Do not leave blank even with
7483 ENABLE_CHECKING.
7484
6895bac8
JM
74852009-04-25 Joseph Myers <joseph@codesourcery.com>
7486
7487 * c-decl.c (build_enumerator): Allow values folding to integer
7488 constants but not integer constant expressions with a pedwarn if
7489 pedantic.
7490
24070fcb
JM
74912009-04-25 Joseph Myers <joseph@codesourcery.com>
7492
7493 PR c/39582
7494 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7495 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7496 type is an integer constant.
7497
d6d89aa1
UB
74982009-04-25 Uros Bizjak <ubizjak@gmail.com>
7499
7500 PR target/39897
7501 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7502 HImode operands.
7503
92f6fd0b
JM
75042009-04-25 Joseph Myers <joseph@codesourcery.com>
7505
7506 PR c/39564
7507 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7508 with variably modified return type and no storage class
7509 specifiers, except for the case of nested functions. Distinguish
7510 extern declarations of functions with variably modified return
7511 types from those of objects with variably modified types.
7512
a3710436
JH
75132009-04-25 Jan Hubicka <jh@suse.cz>
7514
7515 * tree.c (list_equal_p): New function.
7516 * tree.h (list_equal_p): Declare.
7517 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7518 basic_block_def, basic_block, const_basic_block): New.
7519 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7520 (redirect_eh_edge): New function.
7521 (make_eh_edge_update_phi): EH edges are not abnormal.
7522 * except.c: Include tree-flow.h.
7523 (list_match): New function.
7524 (eh_region_replaceable_by_p): New function.
7525 (replace_region): New function.
7526 (hash_type_list): New function.
7527 (hash_eh_region): New function.
7528 (eh_regions_equal_p): New function.
7529 (merge_peers): New function.
7530 (remove_unreachable_regions): Verify EH tree when checking;
7531 merge peers.
7532 (copy_eh_region_1): New function.
7533 (copy_eh_region): New function.
7534 (push_reachable_handler): New function.
7535 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7536 regions without label but with live RESX.
7537 * except.h (redirect_eh_edge_to_label): New.
7538 * tree-flow.h (redirect_eh_edge): New.
7539 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7540 basic_block_def, basic_block, const_basic_block): Remove.
7541 * Makefile.in (except.o): Add dependency on tree-flow.h
7542 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7543 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7544 Remove.
7545
3764d512
EB
75462009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7547
7548 PR bootstrap/39645
7549 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7550 on the destination of memcpy.
7551
1c62e8f2
PB
75522009-04-25 Paolo Bonzini <bonzini@gnu.org>
7553
7554 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7555 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7556 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7557
496a4ef5
JH
75582009-04-25 Jan Hubicka <jh@suse.cz>
7559
7560 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7561 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7562 to be reached by different label than left.
7563 (update_eh_edges): Update comment; remove edge_to_remove if possible
7564 and return true if suceeded.
7565 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7566 (cleanup_eh): Compute sharing map.
7567 * except.c (remove_eh_handler_and_replace): Add argument if we should
7568 update regions.
7569 (remove_unreachable_regions): Update for label sharing.
7570 (label_to_region_map): Likewise.
7571 (get_next_region_sharing_label): New function.
7572 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7573 prev_try pointers.
7574 (remove_eh_handler): Update.
7575 (remove_eh_region_and_replace_by_outer_of): New function.
7576 * except.h (struct eh_region): Add next_region_sharing_label.
7577 (remove_eh_region_and_replace_by_outer_of,
7578 get_next_region_sharing_label): Declare.
7579 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7580
75812009-04-25 Jan Hubicka <jh@suse.cz>
7582
7583 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7584 insert code even if they are not critical.
7585
75862009-04-25 Jan Hubicka <jh@suse.cz>
7587
7588 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7589 (gimple_can_remove_branch_p): EH edges won't remove branch by
7590 redirection.
7591 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7592 updating of non-abnormal EH edges.
7593 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7594 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7595 (split_critical_edges): Split also edges where emitting code on them
7596 will lead to splitting later.
7597
a3a5e3d1
UB
75982009-04-25 Uros Bizjak <ubizjak@gmail.com>
7599 H.J. Lu <hongjiu.lu@intel.com>
7600
7601 PR target/39590
7602 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7603 the configured assembler supports fildq and fistpq mnemonics.
7604 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7605 * configure: Regenerated.
7606 * config.in: Ditto.
7607
7608 * config/i386/i386.c (print_operand): Handle 'Z'.
7609 ['z']: Remove handling of special fild/fist suffixes.
7610 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7611 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7612 suffix of fild insn.
7613 (*floatsi<mode>2_vector_mixed): Ditto.
7614 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7615 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7616 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7617 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7618 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7619
23750d7f
BE
76202009-04-25 Ben Elliston <bje@au.ibm.com>
7621
7622 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7623 the source of a set operation.
7624
e6ff3083
AS
76252009-04-25 Anatoly Sokolov <aesok@post.ru>
7626
7627 * target.h (struct gcc_target): Add case_values_threshold field.
7628 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7629 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7630 * targhooks.c (default_case_values_threshold): New function.
7631 * targhooks.h (default_case_values_threshold): Declare function.
7632 * stmt.c (expand_case): Use case_values_threshold target hook.
7633 * expr.h (case_values_threshold): Remove declartation.
7634 * expr.c (case_values_threshold): Remove function.
7635 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7636
7637 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7638 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7639 (avr_case_values_threshold): Declare as static.
7640 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7641
7642 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7643 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7644 (mn10300_case_values_threshold): New function.
7645
569c72fc
L
76462009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7647
7648 * ira.c (setup_cover_and_important_classes): Add enum cast.
7649
ff3cb468
VM
76502009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7651
7652 * genpreds.c (write_enum_constraint_num): Output definition of
7653 CONSTRAINT_NUM_DEFINED_P macro.
7654 * ira.c (setup_cover_and_important_classes): Use
7655 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7656
4f7be849
DD
76572009-04-24 DJ Delorie <dj@redhat.com>
7658
7659 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7660 __SH2A_SINGLE_ONLY__ also.
7661
735b94a7
SE
76622009-04-24 Steve Ellcey <sje@cup.hp.com>
7663
7664 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7665 (movdf_internal): Ditto.
7666 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7667 SFmode and DFmode constants.
7668 (ia64_print_operand): Add 'G' format for printing
7669 floating point constants.
7670
77a30264
RG
76712009-04-24 Richard Guenther <rguenther@suse.de>
7672
7673 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7674 from unsigned additions.
7675
2b6da65c
JM
76762009-04-24 Joseph Myers <joseph@codesourcery.com>
7677
7678 * c-typeck.c (set_init_index): Allow array designators that are
7679 not integer constant expressions with a pedwarn if pedantic.
7680
f5a17c43
BS
76812009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7682
7683 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7684 zero if no overlap in nonzero bits between the operands.
7685
32e8bb8e
ILT
76862009-04-24 Ian Lance Taylor <iant@google.com>
7687
7688 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7689 (record_dead_and_set_regs): Likewise.
7690 * df.h (struct df_mw_hardreg): Change flags field to int.
7691 (struct df_base_ref): Likewise.
7692 (struct df): Change changeable_flags field to int.
7693 * df-scan.c (df_defs_record): Change clobber_flags to int.
7694 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7695 constants rather than #define macros.
7696 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7697 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7698 (enum dwarf_calling_convention): Likewise.
7699 (enum dwarf_line_number_x_ops): Likewise.
7700 (enum dwarf_call_frame_info): Likewise.
7701 (enum dwarf_source_language): Likewise.
7702 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7703 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7704 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7705 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7706 * genrecog.c (maybe_both_true_2): Change c to int.
7707 (write_switch): Likewise. Add cast to enum type.
7708 * gimplify.c (gimplify_omp_for): Handle return values from
7709 gimplify_expr using MIN rather than bitwise or.
7710 (gimplify_expr): Add cast to enum type.
7711 * ipa-prop.c (update_jump_functions_after_inlining): Change
7712 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7713 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7714 Add casts to enum type.
32e8bb8e
ILT
7715 (setup_cover_and_important_classes): Change cl to int. Add casts
7716 to enum type.
7717 (setup_class_translate): Change cl and mode to int.
7718 (ira_init_once): Change mode to int.
7719 (free_register_move_costs): Likewise.
7720 (setup_prohibited_mode_move_regs): Add casts to enum type.
7721 * langhooks.c (add_builtin_function_common): Rework assertion that
7722 value fits bitfield.
7723 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7724 * omega.c (omega_do_elimination): Avoid math on enum types.
7725 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7726 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7727 int local to handle integral_argment value.
7728 * regmove.c (try_auto_increment): Change PUT_MODE to
7729 PUT_REG_NOTE_KIND.
7730 * reload.c (push_secondary_reload): Add casts to enum type.
7731 (secondary_reload_class, find_valid_class): Likewise.
7732 * reload1.c (emit_input_reload_insns): Likewise.
7733 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7734 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7735 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7736 constant.
7737 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7738 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7739 enum type.
7740 (expand_complex_libcall): Add casts to enum type.
7741 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7742 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7743 with ERROR_MARK, not NUM_TREE_CODES.
7744 (vect_create_epilog_for_reduction): Likewise.
7745 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7746 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7747 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7748 enum machine_mode.
7749 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7750 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7751 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7752 * var-tracking.c (get_init_value): Change return type to enum
7753 var_init_status.
7754 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7755 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7756 arm_fp_model.
7757 (arm_override_options): Add casts to enum type.
7758 (arm_emit_tls_decoration): Likewise.
7759 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7760 to enum type.
7761 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7762 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7763 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7764 enum type.
7765 * config/s390/s390.c (code_for_builtin_64): Change to array of
7766 enum insn_code.
7767 (code_for_builtin_31): Likewise.
7768 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7769 const *.
7770 * config/sparc/sparc.c (sparc_override_options): Change value
7771 field in struct code_model to enum cmodel. In initializer change
7772 0 to NULL and add cast to enum type.
7773
7774 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7775 Change all callers. Issue a -Wc++-compat warning using
7776 lhs_origtype if necessary.
7777 (convert_for_assignment): Issue -Wc++-compat warnings about
7778 invalid conversions to enum type on assignment.
7779 * c-common.h (build_modify_expr): Update declaration.
7780
ac4fc08a
NC
77812009-04-24 Nick Clifton <nickc@redhat.com>
7782
7783 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7784 (function_arg_advance): Likewise.
7785 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7786 5th alternative.
7787
f22e891a
AK
77882009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7789
7790 * config/s390/constraints.md ('I', 'J'): Fix condition.
7791
ad58aabe
DN
77922009-04-24 Diego Novillo <dnovillo@google.com>
7793
7794 * gengtype-parse.c (parse_error): Add newline after message.
7795
879a4a01
L
77962009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7797
7798 * config/i386/sse.md (avxmodesuffixs): Removed.
7799 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7800 (*avx_pinsr<ssevecsize>): This.
7801
f63426af
BS
78022009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7803
7804 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7805 follow chains of regs with a single definition, and allow expressions
7806 that are function_invariant_p.
ce72fe6c 7807 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7808
30349c74
PB
78092009-04-24 Paolo Bonzini <bonzini@gnu.org>
7810
7811 PR middle-end/39867
7812 * fold-const.c (fold_cond_expr_with_comparison): When folding
7813 > and >= to MAX, make sure the MAX uses the same type as the
7814 comparison's operands.
7815
8d8256c1
NC
78162009-04-24 Nick Clifton <nickc@redhat.com>
7817
7818 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7819 addressing for DImode accesses.
7820 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7821 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7822
6216f94e
JJ
78232009-04-24 Jakub Jelinek <jakub@redhat.com>
7824
7825 PR rtl-optimization/39794
7826 * alias.c (canon_true_dependence): Add x_addr argument.
7827 * rtl.h (canon_true_dependence): Adjust prototype.
7828 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7829 * cselib.c (cselib_invalidate_mem): Likewise.
7830 * gcse.c (compute_transp): Likewise.
7831 * dse.c (scan_reads_nospill): Likewise.
7832 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7833 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7834 canon_base_addr of the group, plus optional offset.
7835 (struct group_info): Rename canon_base_mem to
7836 canon_base_addr.
7837 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7838 canon_rtx of base_mem.
7839
6de7a512
PB
78402009-04-23 Paolo Bonzini <bonzini@gnu.org>
7841
7842 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7843 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7844
4a3a2376
UW
78452009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7846
7847 * config/spu/spu-builtins.h: Delete file.
7848
7849 * config/spu/spu.h (enum spu_builtin_type): Move here from
7850 spu-builtins.h.
7851 (struct spu_builtin_description): Likewise. Add GTY marker.
7852 Do not use enum spu_function_code or enum insn_code.
7853 (spu_builtins): Add extern declaration.
7854
7855 * config/spu/spu.c: Do not include "spu-builtins.h".
7856 (enum spu_function_code, enum spu_builtin_type_index,
7857 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7858 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7859 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7860 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7861 (spu_builtin_types): Make static. Add GTY marker.
7862 (spu_builtins): Add extern declaration with GTY marker.
7863 Include "gt-spu.h".
7864
7865 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7866 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7867 Check programmatically whether all parameters are scalar.
7868
7869 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7870
bbaba73f
EB
78712009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7872
7873 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7874 assignment from the constructor either if the target is volatile.
7875
ee93c1c6
DJ
78762009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7877
7878 * config/arm/arm.md (insv): Do not share operands[0].
7879
b2f21330
NS
78802009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7881
7882 * config/vxlib-tls.c (active_tls_threads): Delete.
7883 (delete_hook_installed): New.
7884 (tls_delete_hook): Don't delete the delete hook.
7885 (tls_destructor): Delete it here.
7886 (__gthread_set_specific): Adjust installing the delete hook.
7887 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7888 __gthread_leave_tsd_dtor_context.
7889
4782dfa7
RAE
78902009-04-23 Rafael Avila de Espindola <espindola@google.com>
7891
7892 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7893
bf758008
UB
78942009-04-23 Uros Bizjak <ubizjak@gmail.com>
7895
7896 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7897 enum type.
7898 (alpha_rtx_costs): Ditto.
7899 (emit_unlikely_jump): Use add_reg_note.
7900 (emit_frame_store_1): Ditto.
7901 (alpha_expand_prologue): Ditto.
7902 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7903 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7904
7323a100
NC
79052009-04-23 Nick Clifton <nickc@redhat.com>
7906
7907 * config/v850/v850.md (epilogue): Remove suppressed code.
7908 (return): Rename to return_simple and remove test of frame size.
7909 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7910 to gen_return_simple.
7911
360032ba
JY
79122009-04-22 Jing Yu <jingyu@google.com>
7913
7914 PR testsuite/39781
7915 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7916
53650abe
AP
79172009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7918
7919 PR C/31499
7920 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7921 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7922 value is a VECTOR_CST, the element type is the element type of the
7923 vector.
7924
89043e8a
DD
79252009-04-22 DJ Delorie <dj@redhat.com>
7926
7927 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7928
023f059b
JJ
79292009-04-22 Jakub Jelinek <jakub@redhat.com>
7930
7931 * alias.c (find_base_term): Move around LO_SUM case, so that
7932 CONST falls through into PLUS/MINUS handling.
7933
2c0eba5a
JJ
7934 PR c/39855
7935 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7936 into 0, use omit_one_operand.
7937
9a461028
BE
79382009-04-23 Ben Elliston <bje@au.ibm.com>
7939
7940 * config/rs6000/linux-unwind.h (get_regs): Remove type
7941 puns. Change the type of `pc' to an array of unsigned ints and
7942 update all users. Constify frame24.
7943
653e2568
DD
79442009-04-22 DJ Delorie <dj@redhat.com>
7945
7946 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7947 declarations before code.
7948 (current_function_special_page_vector): Likewise.
7949 (m32c_expand_insv): Silence a warning.
7950
60839f5d 79512009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7952
7953 * alias.c: Update GTY annotations to new syntax.
7954 * basic-block.h: Likewise.
7955 * bitmap.h: Likewise.
7956 * c-common.h: Likewise.
7957 * c-decl.c: Likewise.
7958 * c-parser.c: Likewise.
7959 * c-pragma.c: Likewise.
7960 * c-tree.h: Likewise.
7961 * cfgloop.h: Likewise.
7962 * cgraph.h: Likewise.
7963 * config/alpha/alpha.c: Likewise.
7964 * config/arm/arm.h: Likewise.
7965 * config/avr/avr.h: Likewise.
7966 * config/bfin/bfin.c: Likewise.
7967 * config/cris/cris.c: Likewise.
7968 * config/darwin.c: Likewise.
7969 * config/frv/frv.c: Likewise.
7970 * config/i386/i386.c: Likewise.
7971 * config/i386/i386.h: Likewise.
7972 * config/i386/winnt.c: Likewise.
7973 * config/ia64/ia64.h: Likewise.
7974 * config/iq2000/iq2000.c: Likewise.
7975 * config/mips/mips.c: Likewise.
7976 * config/mmix/mmix.h: Likewise.
7977 * config/pa/pa.c: Likewise.
7978 * config/pa/pa.h: Likewise.
7979 * config/rs6000/rs6000.c: Likewise.
7980 * config/s390/s390.c: Likewise.
7981 * config/sparc/sparc.c: Likewise.
7982 * config/xtensa/xtensa.c: Likewise.
7983 * cselib.h: Likewise.
7984 * dbxout.c: Likewise.
7985 * dwarf2out.c: Likewise.
7986 * except.c: Likewise.
7987 * except.h: Likewise.
7988 * fixed-value.h: Likewise.
7989 * function.c: Likewise.
7990 * function.h: Likewise.
7991 * gimple.h: Likewise.
7992 * integrate.c: Likewise.
7993 * optabs.c: Likewise.
7994 * output.h: Likewise.
7995 * real.h: Likewise.
7996 * rtl.h: Likewise.
7997 * stringpool.c: Likewise.
7998 * tree-data-ref.c: Likewise.
7999 * tree-flow.h: Likewise.
8000 * tree-scalar-evolution.c: Likewise.
8001 * tree-ssa-address.c: Likewise.
8002 * tree-ssa-alias.h: Likewise.
8003 * tree-ssa-operands.h: Likewise.
8004 * tree.c: Likewise.
8005 * tree.h: Likewise.
8006 * varasm.c: Likewise.
8007 * varray.h: Likewise.
8008 * vec.h: Likewise.
bf758008 8009 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
8010 * doc/gty.texi: Update GTY documentation to new syntax.
8011 * gengtype-lex.l: Enforce attribute-like syntax for GTY
8012 annotations on structs.
8013 * gengtype-parse.c: Likewise.
8014
a123d175
MH
80152009-04-22 Mark Heffernan <meheff@google.com>
8016
bf758008 8017 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 8018
4c7c486a
KH
80192009-04-22 Kazu Hirata <kazu@codesourcery.com>
8020
8021 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8022 where appropriate.
8023
6e782a29
KH
80242009-04-22 Kazu Hirata <kazu@codesourcery.com>
8025
8026 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8027 the same as a PLUS without a shift. Increase the cost of a
8028 CONST_INT in MULT.
8029
38d2336a
MLI
80302009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8031
8032 * Makefile.in: Update dependencies.
bf758008 8033 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
8034 * errors.h: Remove bogus comment about compatibility.
8035 (warning): Update declaration.
8036 * genautomata.c: Update all calls to warning.
8037 * gimple.c: Do not include errors.h. Include toplev.h.
8038 * tree-ssa-structalias.c: Do not include errors.h.
8039 * omega.c: Likewise.
8040 * tree-ssa-reassoc.c: Likewise.
8041 * config/spu/spu-c.c: Likewise.
8042 * config/spu/t-spu-elf: Update dependencies.
8043
aea4deba
RG
80442009-04-22 Richard Guenther <rguenther@suse.de>
8045
8046 PR tree-optimization/39824
8047 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8048 make sure the types are compatible.
8049
cfc93532
MLI
80502009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8051
8052 PR c++/14875
8053 * c-common.c (c_parse_error): Take a token_flags parameter.
8054 Use token_type for the token type instead.
8055 Pass token_flags to cpp_type2name.
8056 * c-common.h (c_parse_error): Update declaration.
8057 * c-parser.c (c_parser_error): Pass 0 as token flags.
8058
8632d02a
AB
80592009-04-22 Andrey Belevantsev <abel@ispras.ru>
8060
8061 PR rtl-optimization/39580
8062 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
8063
4c33221c
UW
80642009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8065
8066 * function.c (expand_function_end): Do not emit a jump to the "naked"
8067 return label for fall-through returns.
8068 * except.c (sjlj_emit_function_exit): Always place the call to the
8069 unregister function at the location installed by expand_function_end.
8070
9925bce0
RG
80712009-04-22 Richard Guenther <rguenther@suse.de>
8072
8073 PR tree-optimization/39845
8074 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8075 (gen_inbound_check): Likewise.
8076
24a40b35
NS
80772009-04-22 Nathan Sidwell <nathan@codesourcery.com>
8078
8079 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8080 padding for PPC.
8081 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8082 * config/vxlib.c (__gthread_once): Add race guard for PPC.
8083
6c34a092
PB
80842009-04-22 Paolo Bonzini <bonzini@gnu.org>
8085
8086 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8087 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8088 shift counts to avoid out-of-bounds array accesses.
8089
baa48dfa
PB
80902009-04-22 Paolo Bonzini <bonzini@gnu.org>
8091
8092 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8093 (Pmode): Move above.
8094
7d83f4f5
UB
80952009-04-22 Uros Bizjak <ubizjak@gmail.com>
8096
8097 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8098 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8099 GET_CODE macro. Use IN_RANGE macro where appropriate.
8100 * config/alpha/alpha.h: Ditto.
8101 * config/alpha/alpha.md: Ditto.
8102 * config/alpha/constraints.md: Ditto.
8103 * config/alpha/predicates.md: Ditto.
8104
3ad606bc
PB
81052009-04-22 Paolo Bonzini <bonzini@gnu.org>
8106
8107 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8108 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8109 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8110 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8111 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8112 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8113 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8114 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8115 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8116 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8117 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8118 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8119 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8120 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8121 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8122 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8123 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8124 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8125 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8126 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8127 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8128 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8129 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8130 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8131 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8132 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8133 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8134
3cabd6d1
LB
81352009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8136
8137 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8138 references from comments.
8139 * cfgbuild.c: (count_basic_blocks): Delete.
8140 (find_basic_blocks_1): Delete.
8141 (find_basic_blocks): Delete.
8142 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 8143 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
8144 * except.h (finish_eh_generation): Delete.
8145 * basic-block.h (find_basic_blocks): Delete.
8146 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8147
270d1bcd
DK
81482009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
8149
8150 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
8151 (sdbout_parms): Likewise.
8152
b757d36f
KK
81532009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8154
8155 * config/sh/sh.c (prepare_cbranch_operands): Use
8156 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8157 (expand_cbranchdi4): Likewise.
8158 (from_compare): Add cast to enum type.
8159 (expand_cbranchsi4): Use add_reg_note.
8160 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8161 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8162 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8163 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8164 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8165 instead of CODE_FOR_nothing.
8166 (cbranchdi4): Likewise. Fix the order of arguments for
8167 gen_rtx_fmt_ee.
8168 (push_fpscr): Use add_reg_note.
8169 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8170 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8171
ad41bd84
JM
81722009-04-21 Joseph Myers <joseph@codesourcery.com>
8173
8174 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8175 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8176 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8177 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8178 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8179 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8180 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8181 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8182 config/alpha/x-vms, config/arc/t-arc,
8183 config/arm/README-interworking, config/arm/arm-c.c,
8184 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8185 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8186 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8187 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8188 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8189 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8190 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8191 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8192 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8193 config/cris/t-elfmulti, config/crx/t-crx,
8194 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8195 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8196 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8197 config/h8300/t-h8300, config/i386/athlon.md,
8198 config/i386/darwin-libgcc.10.4.ver,
8199 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8200 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8201 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8202 config/i386/t-linux64, config/i386/t-nwld,
8203 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8204 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8205 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8206 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8207 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8208 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8209 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8210 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8211 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8212 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8213 config/m68k/t-uclinux, config/mcore/t-mcore,
8214 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8215 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8216 config/mips/crtn.asm, config/mips/irix-crti.asm,
8217 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8218 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8219 config/mips/mips-fixed.md, config/mips/sb1.md,
8220 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8221 config/mips/t-iris6, config/mips/t-isa3264,
8222 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8223 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8224 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8225 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8226 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8227 config/mn10300/t-linux, config/mn10300/t-mn10300,
8228 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8229 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8230 config/picochip/libgccExtras/clzsi2.asm,
8231 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8232 config/rs6000/darwin-libgcc.10.4.ver,
8233 config/rs6000/darwin-libgcc.10.5.ver,
8234 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8235 config/rs6000/t-aix43, config/rs6000/t-aix52,
8236 config/rs6000/t-darwin, config/rs6000/t-fprules,
8237 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8238 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8239 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8240 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8241 config/rs6000/t-rtems, config/rs6000/t-spe,
8242 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8243 config/score/t-score-elf, config/sh/divcost-analysis,
8244 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8245 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8246 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8247 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8248 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8249 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8250 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8251 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8252 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8253 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8254 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8255 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8256 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8257 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8258 * config/h8300/genmova.sh: Include copyright and license notices
8259 in generated output.
8260 * config/h8300/mova.md: Regenerate.
8261 * doc/install.texi2html: Include word "Copyright" in copyright
8262 notice and use name "Free Software Foundation, Inc.".
8263 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8264 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8265 ChangeLog-2007, ChangeLog-2008: Correct dates.
8266
ca80e52b
EB
82672009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8268
8269 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8270 NE_EXPR operations as well.
8271 * c-parser.c (c_parser_condition): Do not set location information on
8272 the condition.
8273 (c_parser_conditional_expression): Likewise.
8274 (c_parser_binary_expression): Set location information on operators.
8275 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8276 TRUTH_NOT_EXPR has been folded.
8277 * fold-const.c (fold_truth_not_expr): Copy location information from
8278 the incoming expression to the outgoing one.
8279 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8280 recursive calls on the LHS of the operator but pass that of the
8281 operator to recursive calls on the RHS of the operator. Set it
8282 on the COND_EXPR.
8283 (shortcut_cond_expr): Set the locus of the operator on the second
8284 COND_EXPR and that of the expression on the first in degenerate cases.
8285 Pass the locus of the expression to calls to shortcut_cond_r.
8286 Set the locus of the 'then' block on the associated jump, if any.
8287 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8288 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8289 expression to call to gimplify_boolean_expr.
8290
35091630
KT
82912009-04-21 Kai Tietz <kai.tietz@onevision.com>
8292
8293 * config.gcc: Add additional configuration for
8294 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8295 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8296 (CPP_SPEC): Redefine for allowing -municode option.
8297 (STARTFILE_SPEC): Likewise.
8298 * config/i386/t-mingw-w64: New.
8299 * config/i386/mingw-w64.opt: New.
8300 (municode): Add new target option.
8301 * doc/invoke.texi (municode): Add documentation for new option.
8302
0267afc4
ILT
83032009-04-21 Ian Lance Taylor <iant@google.com>
8304
8305 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8306 Correct test for number of arguments.
8307 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8308
2ba9daa7
AS
83092009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8310
8311 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8312 argument of emit_library_call.
8313
ad8a1ac0
RG
83142009-04-21 Richard Guenther <rguenther@suse.de>
8315
8316 PR middle-end/39829
8317 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8318 inside VIEW_CONVERT_EXPRs.
8319
7156c8ab
MJ
83202009-04-21 Martin Jambor <mjambor@suse.cz>
8321
8322 * tree-switch-conversion.c (build_constructors): Split a long line.
8323 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8324 (build_one_array): Create assigns of constants if possible, do not
8325 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8326 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8327 make_rename_temp. Do not call mark_symbols_for_renaming, call
8328 update_stmt.
8329 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8330 find_new_referenced_vars, call update_stmt.
8331 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8332 instead of calling make_rename_temp. Do not call
8333 find_new_referenced_vars or mark_symbols_for_renaming, call
8334 update_stmt.
8335
2970ccb3
RG
83362009-04-21 Richard Guenther <rguenther@suse.de>
8337
8338 PR tree-optimization/39827
7d83f4f5 8339 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8340 (tree_ssa_phiprop): Pass the correct array size.
8341
47f402d1
UB
83422009-04-21 Uros Bizjak <ubizjak@gmail.com>
8343
8344 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8345
1e4ae551
MLI
83462009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8347
8348 PR 16202
8349 * c-typeck.c (lvalue_p): Move declaration ...
8350 * c-common.h (lvalue_p): ... to here.
8351 * c-common.c (candidate_equal_p): New.
8352 (add_tlist): Use it.
8353 (merge_tlist): Use it.
8354 (warn_for_collisions_1): Likewise.
8355 (warning_candidate_p): Accept more candidates.
8356 (verify_tree): A warning candidate can be an expression. Use
8357 candidate_equal_p.
8358
244609a6
BE
83592009-04-21 Ben Elliston <bje@au.ibm.com>
8360
8361 PR target/5267
8362 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8363 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8364 options. Remove -mcall-solaris documentation.
8365
9c650d90
MLI
83662009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8367
8368 PR c++/13358
8369 * doc/invoke.texi (-Wlong-long): Update description.
8370 * c-lex (interpret_integer): Only warn if there was no previous
8371 overflow and -Wlong-long is enabled.
8372 * c-decl.c (declspecs_add_type): Drop redundant flags.
8373 * c.opt (Wlong-long): Init to -1.
8374 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8375 and front-end warn_long_long. Wlong-long only depends on other
8376 flags if it is uninitialized.
8377 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8378 the same for CPP and FE.
8379 (restore_extension_diagnostics): Likewise.
8380
bbbbb16a
ILT
83812009-04-20 Ian Lance Taylor <iant@google.com>
8382
8383 Fix enum conversions which are invalid in C++:
47f402d1
UB
8384 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8385 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8386 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8387 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8388 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8389 (dbxout_parms): Likewise.
47f402d1 8390 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8391 (df_clear_flags): Likewise.
8392 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8393 top_flag parameter to int.
8394 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8395 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8396 Remove cast.
bbbbb16a
ILT
8397 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8398 (df_ref_create_structure, df_def_record_1): Likewise.
8399 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8400 (df_notes_rescan): Change 0 to VOIDmode in function call.
8401 (df_get_call_refs, df_insn_refs_collect): Likewise.
8402 (df_bb_regs_collect): Likewise.
8403 (df_entry_block_defs_collect): Likewise.
8404 (df_exit_block_uses_collect): Likewise.
8405 * df.h: Update declarations.
8406 * double-int.c (double_int_divmod): Add cast to enum type.
8407 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8408 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8409 (based_loc_descr): Likewise.
8410 (loc_descriptor_from_tree_1): Change first_op and second_op to
8411 enum dwarf_location_atom. Add cast to enum type.
8412 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8413 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8414 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8415 (do_store_flag): Likewise.
8416 * fixed-value.h (struct fixed_value): Change mode to enum
8417 machine_mode.
47f402d1 8418 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8419 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8420 function call.
8421 (insert_insn_decl, insert_decl, insert_state): Likewise.
8422 (automata_list_finish): Likewise.
8423 * genrecog.c (process_define_predicate): Add cast to enum type.
8424 * gensupport.c (init_predicate_table): Add cast to enum type.
8425 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8426 function call.
8427 (gimple_build_call_1, gimple_build_label): Likewise.
8428 (gimple_build_goto, gimple_build_asm_1): Likewise.
8429 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8430 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8431 (enum fallback): Rename from enum fallback_t.
8432 (fallback_t): Typedef as int.
8433 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8434 GSI_SAME_STMT in function call.
8435 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8436 enum type.
8437 (setup_reg_class_relations): Likewise.
47f402d1 8438 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8439 (setup_prohibited_class_mode_regs): Add cast to enum type.
8440 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8441 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8442 (record_address_regs): Change i to enum reg_class.
8443 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8444 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8445 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8446 (GET_MODE_2XWIDER_MODE): Likewise.
8447 (GET_CLASS_NARROWEST_MODE): Likewise.
8448 * omp-low.c (expand_omp_for): Add cast to enum type.
8449 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8450 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8451 * postreload.c (reload_cse_simplify_operands): Change rclass local
8452 to enum reg_class.
8453 * predict.c (combine_predictions_for_insn): Change best_predictor
8454 and predictor to enum br_predictor.
8455 (combine_predictions_for_bb): Likewise.
8456 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8457 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8458 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8459 * reginfo.c (init_move_cost): Add casts to enum type.
8460 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8461 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8462 enum reg_class.
8463 * reload.c (find_valid_class): Add casts to enum type.
8464 (push_reload): Change 0 to NO_REGS in function call.
8465 (find_reloads): Change this_alternative to array of enum
8466 reg_class. Remove some now-unnecessary casts.
8467 (make_memloc): Change 0 to VOIDmode in function call.
8468 * reload1.c (reload): Change 0 to VOIDmode in function call.
8469 (eliminate_regs_1, elimination_effects): Likewise.
8470 (eliminate_regs_in_insn): Likewise.
8471 (emit_input_reload_insns): Add cast to enum type.
8472 (delete_output_reload): Change 0 to VOIDmode in function call.
8473 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8474 to enum type in function call.
8475 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8476 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8477 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8478 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8479 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8480 (dump_function): Likewise.
8481 * tree-dump.h: Update declarations.
8482 * tree-pass.h: Update declarations.
8483 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8484 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8485 enum type.
8486 (arm_rtx_costs_1): Correct parenthesization.
8487 (arm_rtx_costs): Add casts to enum type.
8488 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8489 (vfp_emit_fstmd): Use add_rg_note.
8490 (emit_multi_reg_push, emit_sfm): Likewise.
8491 (thumb_set_frame_pointer): Likewise.
8492 (arm_expand_prologue): Likewise.
8493 (arm_regno_class): Change return type to enum reg_class.
8494 (thumb1_expand_prologue): Use add_reg_note.
8495 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8496 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8497 in function call.
8498 * config/arm/gentune.sh: Add cast to enum type.
8499 * config/arm/arm-tune.md: Rebuild.
8500 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8501 (ix86_split_fp_branch, predict_jump): Likewise.
8502 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8503 insn_code to enum rtx_code.
8504 (ix86_builtin_vectorized_function): Add cast to enum type.
8505 * config/i386/i386.md (truncdfsf2): Change slot to enum
8506 ix86_stack_slot.
8507 (truncxf<mode>2, isinf<mode>2): Likewise.
8508 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8509 enum type.
8510 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8511 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8512 (insert_bundle_state): Change 1 to INSERT in function call.
8513 (ia64_add_bundle_selector_before): Likewise.
8514 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8515 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8516 (restore_stack_nonlocal): Likewise.
8517 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8518 function call.
8519 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8520 function call.
8521 (mips_rtx_costs): Likewise.
8522 (mips_override_options): Add casts to enum type.
8523 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8524 in function call.
8525 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8526 (store_reg, set_reg_plus_d): Likewise.
8527 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8528 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8529 cast to enum type.
8530 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8531 function call.
8532 (emit_unlikely_jump): Use add_reg_note.
8533 (rs6000_emit_allocate_stack): Likewise.
8534 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8535 (output_toc): Change 1 to INSERT in function call.
8536 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8537 (rs6000_initialize_trampoline): Likewise.
8538 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8539 function call.
8540 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8541 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8542 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8543 (save_gprs): Use add_reg_note.
8544 (s390_emit_prologue): Likewise.
47f402d1 8545 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8546 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8547 (sparc_fold_builtin): Add cast to enum type.
8548 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8549 enum insn_code.
8550 (spu_expand_prologue): Use add_reg_note.
47f402d1 8551 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8552
85532009-04-20 Ian Lance Taylor <iant@google.com>
8554
8555 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8556 (c_parser_postfix_expression_after_primary): Get VEC for list of
8557 arguments. Get original types of arguments. Call
8558 build_function_call_vec.
8559 (cached_expr_list_1, cached_expr_list_2): New static variables.
8560 (c_parser_expr_list): Change return type to VEC *. Add
8561 p_orig_types parameter. Change all callers.
8562 (c_parser_release_expr): New static function.
8563 (c_parser_vec_to_tree_list): New static function.
8564 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8565 call build_function_call_vec.
8566 (build_function_call_vec): New function, based on old
8567 build_function_call.
8568 (convert_arguments): Remove nargs and argarray parameters. Change
8569 values to a VEC. Add origtypes parameter.
47f402d1 8570 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8571 (convert_for_assignment): Add origtype parameter. Change all
8572 callers. If warn_cxx_compat, check for conversion to an enum
8573 type when calling a function.
8574 (store_init_value): Add origtype parameter. Change all callers.
8575 (digest_init): Likewise.
8576 (struct init_node): Add origtype field.
8577 (add_pending_init): Add origtype parameter. Change all callers.
8578 (output_init_element): Likewise.
8579 (output_pending_init_elements): Pass origtype from init_node to
8580 output_init_element.
f28a61ab 8581 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8582 output_init_element.
8583 (c_finish_return): Add origtype parameter. Change all callers.
8584 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8585 caller.
8586 (sync_resolve_params): Likewise.
47f402d1 8587 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8588 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8589 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8590 * c-decl.c (finish_decl): Add origtype parameter. Change all
8591 callers. Call build_function_call_vec rather than
8592 build_function_call for cleanup.
8593 * c-tree.h: Update declarations.
8594 * c-common.h: Update declarations.
8595 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8596 params to first_param.
8597 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8598 params parameter from tree to void *.
8599 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8600 Change arglist parameter to have type void *, and to be a pointer
8601 to a VEC.
8602 * config/rs6000/rs6000-protos.h
8603 (altivec_resolve_overloaded_builtin): Update declaration.
8604 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8605 fnargs parameter to have type void *, and to be a pointer to a
8606 VEC. Call build_function_call_vec instead of
8607 build_function_call.
47f402d1 8608 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8609
6ff078d4 86102009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8611 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8612 H.J. Lu <hongjiu.lu@intel.com>
8613
8614 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8615
8616 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8617 (IX86_LEA_PRIORITY): Likewise.
8618 (distance_non_agu_define): New function.
8619 (distance_agu_use): Likewise.
8620 (ix86_lea_for_add_ok): Likewise.
8621 (ix86_dep_by_shift_count): Likewise.
8622
8623 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8624 should split for LEA.
8625
8626 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8627 function.
8628 (ix86_dep_by_shift_count): Likewise.
8629
87a5b4cc
RG
86302009-04-20 Richard Guenther <rguenther@suse.de>
8631
8632 * expr.c (handled_component_p): Move ...
8633 * tree.h (handled_component_p): ... here.
8634 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8635 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8636 and REALPART_EXPR to be in one group.
8637
438c239d
RG
86382009-04-20 Richard Guenther <rguenther@suse.de>
8639
8640 * basic-block.h (get_all_dominated_blocks): Declare.
8641 * dominance.c (get_all_dominated_blocks): New function.
8642 * tree-cfg.c (get_all_dominated_blocks): Remove.
8643 (remove_edge_and_dominated_blocks): Adjust.
8644 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8645 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8646 instead of recursing.
8647
fed5ae11
DK
86482009-04-20 Doug Kwan <dougkwan@google.com>
8649
8650 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8651 (struct cgraph_node_set_def): New type.
8652 (cgraph_node_set) New type. Also declare vector functions.
8653 (struct cgraph_node_set_element_def): New type.
8654 (cgraph_node_set_element): Ditto.
8655 (cgraph_node_set_iterator): New iterator type.
8656 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8657 cgraph_node_set_remove, dump_cgraph_node_set,
8658 debug_cgraph_node_set): New prototypes.
8659 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8660 cgraph_node_set_size): New inlines.
8661 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8662 including cgraph.h.
8663 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8664 argument to function 'write_summary'.
8665 * ipa.c: Include ggc.h.
8666 (hash_cgraph_node_set_element,
8667 eq_cgraph_node_set_element, cgraph_node_set_new,
8668 cgraph_node_set_add, cgraph_node_set_remove,
8669 cgraph_node_set_find, dump_cgraph_node_set,
8670 debug_cgraph_node_set): New functions.
8671 * Makefile.in (ipa.o): Add dependency on GGC_H.
8672
c4551b28
IR
86732009-04-20 Ira Rosen <irar@il.ibm.com>
8674
8675 PR tree-optimization/39675
2ba9daa7 8676 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8677 check of the return code of vect_schedule_slp. Check that
8678 stmt_vec_info still exists for the statement, before checking its
8679 vectorization type.
c4551b28 8680
21a495fb
MM
86812009-04-20 Michael Matz <matz@suse.de>
8682
8683 * Makefile.in (generated_files): Take out $(simple_generated_c).
8684
8e208874
DK
86852009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8686
8687 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8688 (UINTPTR_TYPE): Likewise.
8689
a45e580b
JM
86902009-04-19 Joseph Myers <joseph@codesourcery.com>
8691
8692 PR c/37481
8693 * c-typeck.c (digest_init): Check for initializing an array with a
8694 string literal.
8695
20845d35
JM
86962009-04-19 Joseph Myers <joseph@codesourcery.com>
8697
8698 PR c/19771
8699 * c-semantics.c (pop_stmt_list): Propagate
8700 STATEMENT_LIST_HAS_LABEL to parent statement list.
8701
28143fdd
AN
87022009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8703
8704 * config/mips/mips.h (mips_tune_attr): New macro.
8705 * config/mips/mips.md (cpu): Use it.
8706
da377db9
JM
87072009-04-19 Joseph Myers <joseph@codesourcery.com>
8708
8709 PR c/38243
8710 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8711 declaring a tag.
8712
3baf459d
DN
87132009-04-19 Diego Novillo <dnovillo@google.com>
8714
8715 * toplev.c (compile_file): Move call to coverage_finish ...
8716 * cgraphunit.c (ipa_passes): ... here.
8717 Call cgraph_process_new_functions.
8718 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8719 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8720
b6fa5b01
JH
87212009-04-19 Jan Hubicka <jh@suse.cz>
8722
47f402d1
UB
8723 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8724 cfun.
b6fa5b01
JH
8725 (dump_cgraph_node): Dump can throw external flag.
8726 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8727
ca409efd
MLI
87282009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8729
8730 PR c/32061
8731 PR c++/36954
8732 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8733 * common.opt (Wlogical-op): Move from here...
8734 * c.opt (Wlogical-op): ... to here.
8735 * c-typeck.c (parser_build_binary_op): Update call to
8736 warn_logical_operator.
8737 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8738 extra_warnings.
8739 * c-common.c (warn_logical_op): Update.
8740 * c-common.h (warn_logical_op): Update declaration.
8741
9db4cdd3
EB
87422009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8743
8744 * tree.c (protected_set_expr_location): Fix formatting.
8745
f37acdf9
JM
87462009-04-18 Joseph Myers <joseph@codesourcery.com>
8747
8748 PR c/27676
8749 * c-typeck.c (readonly_warning): new.
8750 (build_unary_op, build_modify_expr): Use readonly_warning for
8751 storing into something readonly but not const-qualified.
8752
2b4b7036
JM
87532009-04-18 Joseph Myers <joseph@codesourcery.com>
8754
8755 PR c/22367
8756 * c-typeck.c (build_unary_op): Check for taking address of
8757 expression of type void.
8758
3ce62965
JM
87592009-04-18 Joseph Myers <joseph@codesourcery.com>
8760
8761 PR c/35210
8762 * c-typeck.c (build_function_call): Check for calling a function
8763 with qualified void return types. Call require_complete_type when
8764 generating a trap.
8765
2505c5ed
JH
87662009-04-18 Jan Hubicka <jh@suse.cz>
8767
8768 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8769 Set nothrow flag.
8770 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8771 can_throw_external flag.
8772 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8773 * ipa-pure-const.c (ignore_edge): New function.
8774 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8775 only over can_throw_external edges.
8776 (local_pure_const): Add nothrow flag.
8777 * ipa-utils.c (searchc): Add ignore_edge callback.
8778 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8779 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8780 (set_nothrow_function_flags): Update cgraph.
8781 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8782
2586ba4b
RG
87832009-04-18 Richard Guenther <rguenther@suse.de>
8784
8785 PR middle-end/39804
8786 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8787 (fold_stmt): ... this and ...
8788 (fold_stmt_inplace): ... this.
8789 (fold_stmt_1): Fold references in calls and asms.
8790 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8791
1eefab17
KH
87922009-04-18 Kazu Hirata <kazu@codesourcery.com>
8793
8794 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8795 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8796
aa424b01
KH
87972009-04-18 Kazu Hirata <kazu@codesourcery.com>
8798
8799 * tree.c (function_args_count): Remove.
8800 * tree.h: Remove the prototype for function_args_count.
8801
613a896b
KH
88022009-04-18 Kazu Hirata <kazu@codesourcery.com>
8803
8804 * tree-iterator.c (expr_only): Remove.
8805 * tree.h: Remove the prototype for expr_only.
8806
579e694c
KH
88072009-04-18 Kazu Hirata <kazu@codesourcery.com>
8808
8809 * reginfo.c (cannot_change_mode_set_regs): Remove.
8810 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8811
ee7e3ad3
AS
88122009-04-08 Anatoly Sokolov <aesok@post.ru>
8813
8814 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8815 whether operands 0 and 1 overlaps.
8816
92ef7fb1
MLI
88172009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8818
8819 PR middle-end/36902
8820 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8821 pointer. Use warning_at instead of warning.
8822 (search_for_addr_array): Likewise.
8823 (check_array_bounds): Likewise.
8824 (check_all_array_refs): Check that the incoming edge is not in the
8825 list of edges to be removed.
8826 (check_all_array_refs): Avoid the temporal pointer.
8827 (vrp_visit_cond_stmt): Fix typo.
8828 (simplify_switch_using_ranges): Handle the case where the switch
8829 index is an integer constant.
8830
0e097268
AN
88312009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8832
8833 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8834
c782f1dd
KH
88352009-04-18 Kazu Hirata <kazu@codesourcery.com>
8836
8837 * doc/extend.texi, doc/invoke.texi: Fix typos.
8838
668fb0e8
CC
88392009-04-17 Cary Coutant <ccoutant@google.com>
8840
8841 * tree-flow-inline.h (get_lineno): Fix inverted test.
8842
4d4014c1
DN
88432009-04-17 Diego Novillo <dnovillo@google.com>
8844
8845 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8846 assertion for AVAIL_OUT.
8847
2984e1b6
MF
88482009-04-17 Mike Frysinger <vapier@gentoo.org>
8849
8850 PR target/38627
8851 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8852 * config/sh/linux-atomic.asm: Likewise.
8853
9994a182
DN
88542009-04-17 Diego Novillo <dnovillo@google.com>
8855
8856 * except.c (debug_eh_tree): New.
8857 (struct eh_region, struct eh_status): Move ...
8858 * except.h: ... here.
8859 (add_type_for_runtime): Declare extern.
8860 (lookup_type_for_runtime): Likewise.
8861 (debug_eh_tree): Declare.
8862 * Makefile.in (GTFILES): List except.h before except.c
8863
07485407
DN
88642009-04-17 Diego Novillo <dnovillo@google.com>
8865
47f402d1 8866 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8867 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8868 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8869 (find_vars_r): ... here.
8870 * tree-flow.h (find_referenced_vars_in): Declare.
8871 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8872 that AVAIL_OUT exists for BLOCK.
8873 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8874 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8875 (tree-parloops.o): Likewise.
8876
4e53d196
SB
88772009-04-17 Simon Baldwin <simonb@google.com>
8878
8879 * toplev.c (default_tree_printer): Add handling for %E format.
8880
413d3aa8
DN
88812009-04-17 Diego Novillo <dnovillo@google.com>
8882
47f402d1
UB
8883 * tree-pretty-print.c (dump_generic_node): Add break after
8884 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8885 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8886 FUNCTION_TYPE together. Call print_struct_decl when printing
8887 structures and TDF_SLIM is not given.
413d3aa8
DN
8888 (print_struct_decl): Fix logic for detecting recursion.
8889
5a691e98
RAE
88902009-04-17 Rafael Avila de Espindola <espindola@google.com>
8891
8892 PR 31567
8893 * gcc.c (create_at_file): New.
8894 (compile_input_file_p): New.
8895 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8896 * main.c (main): Update call to toplev_main.
8897 * toplev.c (toplev_main): Change signature. Call expandargv.
8898 * toplev.h (toplev_main): Change signature.
8899
9eacf7a6
EB
89002009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8901
8902 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8903 if the latter is not constant.
8904
58298177
DE
89052009-04-17 David Edelsohn <edelsohn@gnu.org>
8906
8907 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8908
5b4c43d7
EB
89092009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8910
8911 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8912 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8913
b51605c4
RG
89142009-04-17 Richard Guenther <rguenther@suse.de>
8915
8916 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8917 Handle component references view-converting an invariant address.
8918
9e3be889
AN
89192009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8920
8921 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8922 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8923 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8924 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8925 Use @deftypevr rather than @deftypevar.
8926
7c3e9dc3
RG
89272009-04-17 Richard Guenther <rguenther@suse.de>
8928
47f402d1 8929 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8930 (get_prop_source_stmt): Likewise.
8931 (can_propagate_from): Likewise.
8932
aca600aa
AS
89332009-04-17 Andrew Stubbs <ams@codesourcery.com>
8934
8935 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8936 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8937 (--with-multilib-list): Add default value.
8938 * configure: Regenerate.
8939 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8940 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8941 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8942 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8943 Don't add default cpu to multilib list unnecessarily, but do enable
8944 the relevant compiler option..
8945 Add support for --with-multilib-list=<blank> and
8946 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8947 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8948 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8949 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8950 TM_MULTILIB_CONFIG.
8951 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8952 (MULTILIB_OSDIRNAMES): New variable.
8953 * config/sh/t-1e: Delete file.
8954 * config/sh/t-mlib-sh1: Delete file.
8955 * config/sh/t-mlib-sh2: Delete file.
8956 * config/sh/t-mlib-sh2a: Delete file.
8957 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8958 * config/sh/t-mlib-sh2a-single: Delete file.
8959 * config/sh/t-mlib-sh2a-single-only: Delete file.
8960 * config/sh/t-mlib-sh2e: Delete file.
8961 * config/sh/t-mlib-sh3e: Delete file.
8962 * config/sh/t-mlib-sh4: Delete file.
8963 * config/sh/t-mlib-sh4-nofpu: Delete file.
8964 * config/sh/t-mlib-sh4-single: Delete file.
8965 * config/sh/t-mlib-sh4-single-only: Delete file.
8966 * config/sh/t-mlib-sh4a: Delete file.
8967 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8968 * config/sh/t-mlib-sh4a-single: Delete file.
8969 * config/sh/t-mlib-sh4a-single-only: Delete file.
8970 * config/sh/t-mlib-sh4al: Delete file.
8971 * config/sh/t-mlib-sh5-32media: Delete file.
8972 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8973 * config/sh/t-mlib-sh5-64media: Delete file.
8974 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8975 * config/sh/t-mlib-sh5-compact: Delete file.
8976 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8977 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8978 * doc/install.texi (Options specification): Add
8979 --with-multilib-list and --with-endian.
8980
cf8aba7f
RAE
89812009-04-17 Rafael Avila de Espindola <espindola@google.com>
8982
8983 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8984 REVISION_c.
8985 (OBJS-common): Add plugin-version.o.
8986 (plugin-version.o): New.
8987 * gcc-plugin.h (plugin_gcc_version): New.
8988 (plugin_default_version_check): New.
8989 (plugin_init_func, plugin_init): Add version argument.
8990 * plugin-version.c: New.
8991 * plugin.c (str_plugin_gcc_version_name): New.
8992 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8993 pass it to the init function.
8994 (plugin_default_version_check): New.
8995
61e20b90
RG
89962009-04-17 Richard Guenther <rguenther@suse.de>
8997
8998 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8999 for decl-vs-decl disambiguation.
9000
90c6fd8a
AK
90012009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
9002
9003 * config/s390/s390.h (s390_tune_attr): New macro definition.
9004 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9005
9fe9fe04
RG
90062009-04-17 Richard Guenther <rguenther@suse.de>
9007
9008 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9009 (fold_stmt_r): Likewise.
9010 (maybe_fold_reference): New function.
9011 (fold_gimple_assign): Handle cases fold_stmt_r did.
9012 (fold_stmt): Do not use fold_stmt_r.
9013 (fold_stmt_inplace): Likewise.
9014
7e673273
RG
90152009-04-17 Richard Guenther <rguenther@suse.de>
9016
9017 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9018 (record_equivalences_from_stmt): Remove useless checks and
9019 simplifications.
9020 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9021 the type is already suitable.
9022
fabf2749
PB
90232009-04-17 Paolo Bonzini <bonzini@gnu.org>
9024
9025 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9026
68f7b061
UB
90272009-04-17 Uros Bizjak <ubizjak@gmail.com>
9028
9029 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9030 (CMPtype): Define as __gcc_CMPtype.
9031
532bfb0a
AJ
90322009-04-17 Aurelien Jarno <aurelien@aurel32.net>
9033
9034 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9035 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9036
e3ac77ff
RG
90372009-04-17 Richard Guenther <rguenther@suse.de>
9038
9039 PR tree-optimization/39746
9040 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9041 special-casing for builtins and static variable use/def.
9042 (call_may_clobber_ref_p_1): Likewise.
9043
7072a650
ILT
90442009-04-16 Ian Lance Taylor <iant@google.com>
9045
9046 * df.h: Include "timevar.h".
9047 (struct df_problem): Change tv_id field to timevar_id_t.
9048 * tree-pass.h: Include "timevar.h".
9049 (struct opt_pass): Change tv_id field to timevar_id_t.
9050 * timevar.h (timevar_id_t): Define TV_NONE.
9051 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9052 TV_NONE rather than tv_id != 0.
9053 (execute_one_pass): Likewise.
9054 * Makefile.in (DF_H): Add $(TIMEVAR_H).
9055 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
9056 dependencies to $(TREE_PASS_H).
9057 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9058 to TV_NONE.
9059 (pass_branch_target_load_optimize2): Likewise.
9060 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9061 (pass_outof_cfg_layout_mode): Likewise.
9062 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9063 (pass_rebuild_cgraph_edges): Likewise.
9064 (pass_remove_cgraph_callee_edges): Likewise.
9065 * df-core.c (pass_df_initialize_opt): Likewise.
9066 (pass_df_initialize_no_opt): Likewise.
9067 (pass_df_finish): Likewise.
9068 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9069 * except.c (pass_set_nothrow_function_flags): Likewise.
9070 (pass_convert_to_eh_region_ranges): Likewise.
9071 * final.c (pass_compute_alignments): Likewise.
9072 * function.c (pass_instantiate_virtual_regs): Likewise.
9073 (pass_init_function): Likewise.
9074 (pass_leaf_regs): Likewise.
9075 (pass_match_asm_constraints): Likewise.
9076 * gimple-low.c (pass_lower_cf): Likewise.
9077 (pass_mark_used_blocks): Likewise.
9078 * init-regs.c (pass_initialize_regs): Likewise.
9079 * integrate.c (pass_initial_value_sets): Likewise.
9080 * ira.c (pass_ira): Likewise.
9081 * jump.c (pass_cleanup_barriers): Likewise.
9082 * omp-low.c (pass_expand_omp): Likewise.
9083 (pass_lower_omp): Likewise.
9084 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9085 * recog.c (pass_split_all_insns): Likewise.
9086 (pass_split_after_reload): Likewise.
9087 (pass_split_before_regstack): Likewise.
9088 (pass_split_before_sched2): Likewise.
9089 (pass_split_for_shorten_branches): Likewise.
9090 * reginfo.c (pass_reginfo_init): Likewise.
9091 (pass_subregs_of_mode_init): Likewise.
9092 (pass_subregs_of_mode_finish): Likewise.
9093 * passes.c (pass_postreload): Likewise.
9094 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9095 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9096 (pass_warn_function_return): Likewise.
9097 (pass_warn_function_noreturn): Likewise.
9098 * tree-complex.c (pass_lower_complex): Likewise.
9099 (pass_lower_complex_O0): Likewise.
9100 * tree-if-conv.c (pass_if_conversion): Likewise.
9101 * tree-into-ssa.c (pass_build_ssa): Likewise.
9102 * tree-mudflap.c (pass_mudflap_1): Likewise.
9103 (pass_mudflap_2): Likewise.
9104 * tree-nomudflap.c (pass_mudflap_1): Likewise.
9105 (pass_mudflap_2): Likewise.
9106 * tree-nrv.c (pass_return_slot): Likewise.
9107 * tree-object-size.c (pass_object_sizes): Likewise.
9108 * tree-optimize.c (pass_all_optimizations): Likewise.
9109 (pass_early_local_passes): Likewise.
9110 (pass_all_early_optimizations): Likewise.
9111 (pass_cleanup_cfg): Likewise.
9112 (pass_cleanup_cfg_post_optimizing): Likewise.
9113 (pass_free_datastructures): Likewise.
9114 (pass_free_cfg_annotations): Likewise.
9115 (pass_fixup_cfg): Likewise.
9116 (pass_init_datastructures): Likewise.
9117 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9118 (pass_late_warn_uninitialized): Likewise.
9119 (pass_update_address_taken): Likewise.
9120 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9121 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9122 (pass_cse_sincos): Likewise.
9123 (pass_convert_to_rsqrt): Likewise.
9124 * tree-ssa-structalias.c (pass_build_alias): Likewise.
9125 * tree-stdarg.c (pass_stdarg): Likewise.
9126 * tree-tailcall.c (pass_tail_recursion): Likewise.
9127 (pass_tail_calls): Likewise.
9128 * tree-vect-generic.c (pass_lower_vector): Likewise.
9129 (pass_lower_vector_ssa): Likewise.
9130 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9131
0051ef59
JM
91322009-04-16 Joseph Myers <joseph@codesourcery.com>
9133
9134 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9135 XLR entry.
9136 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9137 Handle -march=xlr.
9138 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9139 logical and signext.
9140
b3f8558a
KK
91412009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
9142
9143 PR target/39767
9144 * config/sh/predicates.md (arith_operand): Check if the operand
9145 of TRUNCATE is a REG.
9146
f57597d9
KH
91472009-04-16 Kazu Hirata <kazu@codesourcery.com>
9148
9149 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9150 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9151
b172d063
KH
91522009-04-16 Kazu Hirata <kazu@codesourcery.com>
9153
9154 * tree-iterator.c (tsi_split_statement_list_after,
9155 tsi_split_statement_list_before): Remove.
9156 * tree-iterator.h: Remove the prototypes for
532bfb0a 9157 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 9158
78fe4f1f
KH
91592009-04-16 Kazu Hirata <kazu@codesourcery.com>
9160
9161 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9162 * tree-ssa-propagate.h: Remove the prototype for
9163 stmt_makes_single_load.
9164
43dd3201
KH
91652009-04-16 Kazu Hirata <kazu@codesourcery.com>
9166
9167 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9168 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9169
4252a4aa
KH
91702009-04-16 Kazu Hirata <kazu@codesourcery.com>
9171
9172 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9173
bfb69968
KH
91742009-04-16 Kazu Hirata <kazu@codesourcery.com>
9175
9176 * except.c (eh_region_outer_p): Remove.
9177 * except.h: Remove the prototype for eh_region_outer_p.
9178
c7db7fa5
KH
91792009-04-16 Kazu Hirata <kazu@codesourcery.com>
9180
9181 * function.c (current_function_assembler_name): Remove.
9182 * function.h: Remove the prototype for
9183 current_function_assembler_name.
9184
efc0b2bd
ILT
91852009-04-16 Ian Lance Taylor <iant@google.com>
9186
532bfb0a 9187 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
9188 (add_reg_note): Call alloc_reg_note.
9189 * rtl.h (alloc_reg_note): Declare.
9190 * combine.c (try_combine): Use alloc_reg_note.
9191 (recog_for_combine, move_deaths): Likewise.
9192 (distribute_notes): Use alloc_reg_note and add_reg_note.
9193 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9194 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9195 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9196
6080348f
VM
91972009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9198
9199 PR rtl-optimization/39762
9200 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9201 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9202 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9203
6080348f
VM
9204 * ira-conflicts.c (process_regs_for_copy): Use function
9205 ira_get_register_move_cost instead of global
9206 ira_register_move_cost.
9207
9208 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9209 color_pass, move_spill_restore, update_curr_costs): Ditto.
9210
9211 * ira-lives.c (process_single_reg_class_operands): Ditto.
9212
9213 * ira-emit.c (emit_move_list): Ditto.
9214
9215 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9216 (record_reg_classes): Ditto. Use functions
9217 ira_get_register_move_cost and ira_get_may_move_cost instead of
9218 global vars ira_register_move_cost, ira_may_move_out_cost and
9219 ira_may_move_in_cost.
9220 (record_address_regs): Don't call ira_init_register_move_cost.
9221 Use function ira_get_may_move_cost instead of global
9222 ira_may_move_in_cost.
9223 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9224 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9225 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9226
646bea10
RG
92272009-04-16 Richard Guenther <rguenther@suse.de>
9228
9229 * tree-cfg.c (verify_gimple_assign_binary):
9230 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9231 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9232 (create_general_new_stmt): Note that this function is broken.
9233
02e819ff
RAE
92342009-04-16 Rafael Avila de Espindola <espindola@google.com>
9235
9236 * common.opt (fhelp): Add Var(help_flag).
9237 * gcc-plugin.h (plugin_info): Add help.
9238 * plugin.c (plugin_name_args): Add help.
9239 (register_plugin_info): Set plugin->help.
9240 (print_help_one_plugin): New.
9241 (print_plugins_help): New.
9242 * plugin.h (print_plugins_help): New.
9243 * toplev.c (toplev_main): Call print_plugins_help if needed.
9244
ccacdf06
RG
92452009-04-16 Richard Guenther <rguenther@suse.de>
9246
9247 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9248 (gimple_ior_addresses_taken_1): New function.
9249 (gimple_ior_addresses_taken): Likewise.
9250 * gimple.h (struct gimple_statement_with_ops_base): Remove
9251 addresses_taken member.
9252 (gimple_ior_addresses_taken): Declare.
9253 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9254 gimple_set_addresses_taken): Remove.
9255 * ipa-reference.c (mark_address): New function.
9256 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9257 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9258 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9259 (gimple_add_to_addresses_taken): Remove.
9260 (get_tmr_operands): Call mark_address_taken.
9261 (get_asm_expr_operands): Likewise.
9262 (get_expr_operands): Likewise.
9263 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9264 (free_stmt_operands): Do not free it.
9265 * tree-ssa.c (delete_tree_ssa): Likewise.
9266 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9267
346ef3fa
RG
92682009-04-16 Richard Guenther <rguenther@suse.de>
9269
9270 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9271 (walk_stmt_load_store_ops): Likewise.
9272 * gimple.c (get_base_loadstore): New function.
9273 (walk_stmt_load_store_addr_ops): Likewise.
9274 (walk_stmt_load_store_ops): Likewise.
9275 * ipa-pure-const.c (check_op): Simplify.
9276 (check_load, check_store): New functions.
9277 (check_stmt): Use walk_stmt_load_store_ops.
9278 * ipa-reference.c (mark_load): Adjust signature.
9279 (mark_store): Likewise.
9280 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9281
44e9f006
RAE
92822009-04-16 Rafael Avila de Espindola <espindola@google.com>
9283
9284 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9285 (plugin_info): New.
9286 * opts.c (common_handle_option): Don't call print_version.
9287 * plugin.c (plugin_name_args): Add version.
9288 (register_plugin_info): New.
9289 (register_callback): Handle PLUGIN_INFO.
9290 (try_init_one_plugin): New.
9291 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9292 if failed to init.
9293 (finalize_one_plugin): New.
9294 (finalize_plugins): New.
9295 (print_one_plugin): New.
9296 (print_plugins_versions): New.
9297 * plugin.h (print_plugins_versions): New.
9298 (finalize_plugins): New.
9299 * toplev.c (compile_file): Don't call initialize_plugins.
9300 (print_version): Call print_plugins_versions.
9301 (toplev_main): Call initialize_plugins. Print version if needed.
9302 Call finalize_plugins.
9303
41fd0f9b
RAE
93042009-04-16 Rafael Avila de Espindola <espindola@google.com>
9305
9306 * common.opt (fversion): New.
9307 * gcc.c (print_version): New.
9308 (process_command): Don't print the version. Just set print_version.
9309 (main): Print version. Call subprocesses if print_version and
9310 verbose_flag are set.
9311 * opts.c (common_handle_option): Handle OPT_fversion.
9312
550918ca 93132009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9314 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9315
9316 PR tree-optimization/39698
9317 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9318 type of the reduction variable. Only generate the def if
9319 it is needed.
9320
9321 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9322 make sure to first convert to an integer of the same precision.
9323 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9324 the type of the evolution correctly in computing the new
9325 induction variable base.
9326
54634841
RG
93272009-04-16 Richard Guenther <rguenther@suse.de>
9328
9329 PR middle-end/39625
9330 * tree-cfg.c (make_blocks): Split statements with to-be
9331 abnormal SSA names on the lhs.
9332
b6fc2cdb
PB
93332009-04-16 Paolo Bonzini <bonzini@gnu.org>
9334
9335 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9336 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9337 * c-typeck.c (really_start_incremental_init): Likewise.
9338 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9339 (TARGET_INITIALIZER): Remove it.
9340 * target.h (struct target): Remove vector_opaque_p.
9341 * tree.c (build_opaque_vector_type): New.
9342 * tree.h (TYPE_VECTOR_OPAQUE): New.
9343 (build_opaque_vector_type): Declare.
9344 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9345 * config/rs6000/rs6000.c (build_opaque_vector_type,
9346 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9347 (rs6000_init_builtins): Use build_opaque_vector_type for
9348 opaque_V4SI_type_node.
9349
a417cdd9
CM
93502009-04-15 Catherine Moore <clm@codesourcery.com>
9351
532bfb0a
AJ
9352 * debug.h (set_name): Declare.
9353 * dwarf2out.c (dwarf2out_set_name): Declare.
9354 (dwarf2_debug_hooks): Add set_name.
9355 (find_AT_string): New.
9356 (add_AT_string): Call find_AT_string.
9357 (dwarf2out_set_name): New.
9358 * cp/decl.c (grokdeclarator): Call set_name.
9359 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9360 * debug.c (do_nothing_debug_hooks): Likewise.
9361 * dbxout.c (dbx_debug_hooks): Likewise.
9362 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9363
60839f5d 93642009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9365
532bfb0a
AJ
9366 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9367 reg for single-precision FPU.
9368 * config/rs6000/rs6000.md (movsi_internal1): Only for
9369 !TARGET_SINGLE_FPU.
9370 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9371 single-precision FP regs.
9372
ada39f0b
RG
93732009-04-15 Richard Guenther <rguenther@suse.de>
9374
9375 * omp-low.c (lower_rec_input_clauses): Build correct address
9376 expressions.
9377 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9378 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9379 (generate_memset_zero): Fix types.
9380 * tree-profile.c (prepare_instrumented_value): Correctly
9381 widen a pointer.
9382
6866c6e8
ILT
93832009-04-15 Ian Lance Taylor <iant@google.com>
9384
9385 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9386 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9387 for -Wall and for -Wc++-compat.
9388 (c_common_post_options): For C++, set warn_enum_compare if not
9389 already set.
9390 * c-tree.h (struct c_expr): Add field original_type.
9391 (build_external_ref): Update declaration.
9392 * c-parser.c (c_parser_braced_init): Set original_type.
9393 (c_parser_initelt): Likewise.
9394 (c_parser_expr_no_commas): Likewise.
9395 (c_parser_conditional_expression): Likewise.
9396 (c_parser_cast_expression): Likewise.
9397 (c_parser_unary_expression): Likewise. Pull setting of
9398 original_code to top of function.
9399 (c_parser_sizeof_expression): Set original_type.
9400 (c_parser_alignof_expression): Likewise.
9401 (c_parser_postfix_expression): Likewise. Pull setting of
9402 original_code to top of function.
532bfb0a 9403 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9404 (c_parser_postfix_expression_after_primary): Likewise.
9405 (c_parser_expression): Likewise.
9406 * c-typeck.c (build_external_ref): Add type parameter. Change all
9407 callers.
9408 (c_expr_sizeof_expr): Set original_type field.
9409 (parser_build_unary_op): Likewise.
9410 (parser_build_binary_op): Likewise. Optionally warn about
9411 comparisons of enums of different types.
9412 (digest_init): Set original_type field.
9413 (really_start_incremental_init): Likewise.
9414 (push_init_level, pop_init_level): Likewise.
9415 * doc/invoke.texi (Warning Options): -Wenum-compare now
9416 supported in C.
9417
f116fecf
RG
94182009-04-15 Richard Guenther <rguenther@suse.de>
9419
9420 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9421 out a necessary conversion.
9422 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9423 names we didn't value number.
9424 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9425
25e20805
RG
94262009-04-15 Richard Guenther <rguenther@suse.de>
9427
9428 PR tree-optimization/39764
9429 * tree-ssa-ccp.c (get_value): Canonicalize value with
9430 canonicalize_float_value.
9431
90cc3676
JH
94322009-04-15 Jan Hubicka <jh@suse.cz>
9433
9434 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9435 Wrong version of patch.
9436
6d14c006
JH
94372009-04-15 Jan Hubicka <jh@suse.cz>
9438
9439 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9440
5afaa917
NS
94412009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9442
9443 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9444 our distinct integral and vector types.
9445
3b482fca
RAE
94462009-04-15 Rafael Avila de Espindola <espindola@google.com>
9447
9448 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9449 * init.c (build_vtbl_address): Remove call to assemble_external.
9450
6cd1d2e2
DJ
94512009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9452
9453 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9454 output for other floating point modes.
9455
dab71827
DN
94562009-04-14 Diego Novillo <dnovillo@google.com>
9457
9458 * diagnostic.c (diagnostic_report_diagnostic): Do not
9459 warn about loaded plugins for DK_ERROR and DK_WARNING.
9460 * c-decl.c (declspecs_add_type): Move call to
9461 invoke_plugin_callbacks ...
9462 * c-parser.c (c_parser_declspecs): ... here.
9463 * plugin.c (dump_active_plugins): Tidy output.
9464
68a607d8
DN
94652009-04-14 Diego Novillo <dnovillo@google.com>
9466 Le-Chun Wu <lcwu@google.com>
9467
9468 * configure.ac: Add --enable-plugin support.
9469 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9470 * Makefile.in (PLUGIN_H): Define.
9471 Export ENABLE_PLUGIN and GMPINC to site.exp.
9472 Add PLUGINLIBS to link command.
9473 Add/modify dependencies for plugin.o and files including plugin.h.
9474 (plugin.o): New.
9475 * config.in: Regenerate.
2ba9daa7 9476
68a607d8
DN
9477 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9478 OPT_fplugin_arg_.
9479
94802009-04-14 Le-Chun Wu <lcwu@google.com>
9481
9482 * tree-pass.h (register_one_dump_file): Add a prototype for
9483 register_one_dump_file.
9484 * toplev.c (compile_file): Call initialize_plugins.
9485 (do_compile): Call invoke_plugin_callbacks.
9486 (toplev_main): Call invoke_plugin_callbacks.
9487 * common.opt: Add -fplugin= and -fplugin-arg-.
9488 * gcc-plugin.h: New public header file for plugins to include.
9489 * plugin.c: New source file.
9490 * plugin.h: New internal header file.
9491 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9492
68a607d8
DN
9493 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9494
94952009-04-14 Diego Novillo <dnovillo@google.com>
9496
9497 * doc/plugins.texi: New.
9498 * doc/gccint.texi: Add reference to Plugins chapter.
9499 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9500 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9501 loaded plugins, if any.
9502 * timevar.def (TV_PLUGIN_INIT): Define.
9503 (TV_PLUGIN_RUN): Define.
9504 * plugin.c: Include timevar.h
9505 (plugins_active_p): New.
9506 (dump_active_plugins): New.
9507 (debug_active_plugins): New.
9508
50617257
JM
95092009-04-14 Joseph Myers <joseph@codesourcery.com>
9510
9511 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9512 library paths.
9513 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9514
b32f6fff
KH
95152009-04-14 Kazu Hirata <kazu@codesourcery.com>
9516
9517 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9518 the same as a minus without a shift.
9519
85d04fa2
NC
95202009-04-14 Nick Clifton <nickc@redhat.com>
9521
9522 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9523 comparisons with small integers will always produce a short
9524 branch.
9525
e495a0c8
RAE
95262009-04-14 Rafael Avila de Espindola <espindola@google.com>
9527
9528 Merge:
e495a0c8
RAE
9529 2008-12-19 Diego Novillo <dnovillo@google.com>
9530
532bfb0a 9531 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9532
ad41bd84 95332009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9534
9535 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9536 verification.
9537 (verify_gimple_assign_binary): Likewise. Handle shifts and
9538 rotates correctly.
9539 (verify_gimple_phi): Print the mismatched argument position.
9540 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9541 Fix types.
9542 (vect_update_init_of_dr): Likewise.
9543 * matrix-reorg.c (transform_access_sites): Do what the
9544 comment suggests.
9545 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9546
60839f5d 95472009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9548
9549 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9550 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9551 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9552 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9553 remove duplicate config
9554
b0e2d008
DR
95552009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9556
9557 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9558 file_name:line_number type locator of the call site.
2ba9daa7 9559
1244a8b7
VM
95602009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9561
9562 * genautomata.c: Put blank after comma.
9563 (automaton_decls): New.
9564 (struct unit_usage): Add comments to member next.
9565 (store_alt_unit_usage): Keep the list ordered.
9566 (unit_present_on_list_p, equal_alternatives_p): New.
9567 (check_regexp_units_distribution): Check units distribution
9568 correctness correctly.
9569 (main): Don't write automata if error is found. Return correct
9570 exit code.
2ba9daa7 9571
1244a8b7
VM
9572 * config/m68k/cf.md (cfv4_ds): Remove.
9573 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9574 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9575
9576 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9577 power4-load-ext, power4-store, power4-store-update,
9578 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9579 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9580 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9581 power4-sqrt, power4-isync): Modify reservation to make correct
9582 unit distribution to automata.
9583
9584 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9585 power5-store-update, power5-two, power5-three, power5-lmul,
9586 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9587
f7dd1864
AN
95882009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9589
9590 * except.c (pass_set_nothrow_function_flags): Set name and add
9591 TODO_dump_func.
9592 (set_nothrow_function_flags): Mention in the dump file when
9593 changing a function to nothrow.
9594
59a1171f
OS
95952009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9596
9597 PR/39066
9598 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9599 instead of unsigned long.
9600
934c2060
RR
96012009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9602
f7dd1864
AN
9603 * config/arm/arm.c (return_used_this_function): Remove.
9604 (arm_output_function_prologue): Remove use of
934c2060 9605 return_used_this_function.
f7dd1864 9606 (output_return_instruction): Replace use of
934c2060
RR
9607 return_used_this_function
9608 by cfun->machine->return_used_this_function.
f7dd1864
AN
9609 (arm_output_epilogue): Likewise.
9610 (arm_output_function_epilogue): Likewise.
9611 (thumb_unexpanded_epilogue): Likewise.
9612 * config/arm/arm.h (struct machine_function):
934c2060 9613 New member return_used_this_function.
f7dd1864 9614
ae5cc016
MM
96152009-04-12 Mark Mitchell <mark@codesourcery.com>
9616
9617 * doc/install.texi: Correct description of default directory for
9618 --with-gxx-include-dir.
9619
a0ce68df 96202009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9621
9622 * fold-const.c (build_range_check): Properly deal with enumeral and
9623 boolean base types.
9624
3906a4a1
SB
96252009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9626
9627 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9628 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9629 * params.h (MAX_GCSE_PASSES): Remove.
9630 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9631 in sequence. Remove ability to run multiple passes.
9632 (bypass_jumps): Report run as third CPROP pass.
9633
efaadb93
AN
96342009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9635
9636 PR middle-end/39651
9637 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9638 when deciding whether the whole SEQUENCE can throw.
9639
4c48007b
UB
96402009-04-12 Uros Bizjak <ubizjak@gmail.com>
9641
9642 PR target/39740
9643 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9644 offseted label references.
9645
b4104018
JH
96462009-04-11 Jan Hubicka <jh@suse.cz>
9647
9648 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9649
32848948
RG
96502009-04-11 Richard Guenther <rguenther@suse.de>
9651
9652 PR middle-end/39732
9653 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9654 return variables as TREE_ADDRESSABLE.
9655
8810712e
RG
96562009-04-11 Richard Guenther <rguenther@suse.de>
9657
9658 PR tree-optimization/39713
9659 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9660 reference trees have SSA_NAME operands.
9661
fa78c0c1
RG
96622009-04-11 Richard Guenther <rguenther@suse.de>
9663
9664 PR c/39712
9665 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9666 address expressions.
9667
4d722130
DK
96682009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9669
9670 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9671 match changes in Cygwin 1.7
9672 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9673 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9674
567a90f5
PB
96752009-04-10 Paolo Bonzini <bonzini@gnu.org>
9676
9677 PR tree-optimization/39701
9678 * doc/invoke.texi (Optimization Options): Document change in
9679 meaning and initialization of -fdelete-null-pointer-checks.
9680
1ad2f450
L
96812009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9682
9683 PR middle-end/39701
9684 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9685
9686 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9687 here.
9688
9689 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9690
1afc5373
CF
96912009-04-10 Chao-ying Fu <fu@mips.com>
9692
9693 * doc/tm.texi (Instruction Output): Document
9694 TARGET_ASM_FINAL_POSTSCAN_INSN.
9695 * target.h (final_postscan_insn): New field in asm_out.
9696 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9697 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9698 * final.c (final_scan_insn): Call
9699 targetm.asm_out.final_postscan_insn after outputting
9700 an asm macro and a normal instruction.
9701
9702 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9703 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9704 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9705 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9706 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9707
4d35e75c
PB
97082009-04-10 Paolo Bonzini <bonzini@gnu.org>
9709
9710 PR middle-end/39701
1ad2f450
L
9711 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9712 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9713
62c49b83
L
97142009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9715
9716 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9717
80558628
L
97182009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9719
9720 PR target/39678
9721 * config/i386/i386.c (classify_argument): Handle SCmode with
9722 (bit_offset % 64) != 0.
9723
8c70d28b
SL
97242009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9725
9726 * doc/invoke.texi (Optimize Options): Add cross-reference to
9727 -Q --help=optimizers examples.
9728
e1ff19bf
BE
97292009-04-10 Ben Elliston <bje@au.ibm.com>
9730
9731 PR target/36800
9732 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9733 regalign for the reg == fpr and TDmode case.
9734
52daca75
DA
97352009-04-09 David Ayers <ayers@fsfe.org>
9736
9737 PR objc/29200
9738 * objc/objc-act.c (warn_with_method): Remove helper function.
9739 (check_duplicates): Call warning and inform directly.
9740 (really_start_method): Likewise.
9741
b45f0e58
PB
97422009-04-09 Paolo Bonzini <bonzini@gnu.org>
9743
9744 * expmed.c (expand_divmod): Always use a comparison for a division
9745 by a large unsigned integer.
9746
1ad2f450
L
9747 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9748 for things others than variables or functions as nonzero.
b45f0e58 9749
748086b7
JJ
97502009-04-09 Nick Clifton <nickc@redhat.com>
9751
9752 * unwind-compat.c: Change copyright header to refer to version
9753 3 of the GNU General Public License with version 3.1 of the
9754 GCC Runtime Library Exception and to point readers at the
7a715bba 9755 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9756 * config/alpha/crtfastmath.c: Likewise.
9757 * config/alpha/linux-unwind.h: Likewise.
9758 * config/alpha/qrnnd.asm: Likewise.
9759 * config/alpha/vms-crt0-64.c: Likewise.
9760 * config/alpha/vms-crt0.c: Likewise.
9761 * config/alpha/vms-dwarf2.asm: Likewise.
9762 * config/alpha/vms-dwarf2eh.asm: Likewise.
9763 * config/alpha/vms-psxcrt0-64.c: Likewise.
9764 * config/alpha/vms-psxcrt0.c: Likewise.
9765 * config/alpha/vms_tramp.asm: Likewise.
9766 * config/arc/initfini.c: Likewise.
9767 * config/arc/lib1funcs.asm: Likewise.
9768 * config/arm/bpabi-v6m.S: Likewise.
9769 * config/arm/bpabi.S: Likewise.
9770 * config/arm/bpabi.c: Likewise.
9771 * config/arm/crti.asm: Likewise.
9772 * config/arm/crtn.asm: Likewise.
9773 * config/arm/ieee754-df.S: Likewise.
9774 * config/arm/ieee754-sf.S: Likewise.
9775 * config/arm/lib1funcs.asm: Likewise.
9776 * config/arm/libunwind.S: Likewise.
9777 * config/arm/linux-atomic.c: Likewise.
9778 * config/arm/mmintrin.h: Likewise.
9779 * config/arm/pr-support.c: Likewise.
9780 * config/arm/unaligned-funcs.c: Likewise.
9781 * config/arm/unwind-arm.c: Likewise.
9782 * config/arm/unwind-arm.h: Likewise.
9783 * config/avr/libgcc.S: Likewise.
9784 * config/bfin/crti.s: Likewise.
9785 * config/bfin/crtlibid.s: Likewise.
9786 * config/bfin/crtn.s: Likewise.
9787 * config/bfin/lib1funcs.asm: Likewise.
9788 * config/bfin/linux-unwind.h: Likewise.
9789 * config/cris/arit.c: Likewise.
9790 * config/cris/cris_abi_symbol.c: Likewise.
9791 * config/darwin-64.c: Likewise.
9792 * config/darwin-crt2.c: Likewise.
9793 * config/darwin-crt3.c: Likewise.
9794 * config/darwin.h: Likewise.
9795 * config/dbxelf.h: Likewise.
9796 * config/dfp-bit.c: Likewise.
9797 * config/dfp-bit.h: Likewise.
9798 * config/elfos.h: Likewise.
9799 * config/fixed-bit.c: Likewise.
9800 * config/fixed-bit.h: Likewise.
9801 * config/fp-bit.c: Likewise.
9802 * config/fp-bit.h: Likewise.
9803 * config/fr30/crti.asm: Likewise.
9804 * config/fr30/crtn.asm: Likewise.
9805 * config/fr30/lib1funcs.asm: Likewise.
9806 * config/freebsd-spec.h: Likewise.
9807 * config/frv/cmovd.c: Likewise.
9808 * config/frv/cmovh.c: Likewise.
9809 * config/frv/cmovw.c: Likewise.
9810 * config/frv/frvbegin.c: Likewise.
9811 * config/frv/frvend.c: Likewise.
9812 * config/frv/lib1funcs.asm: Likewise.
9813 * config/glibc-stdint.h: Likewise.
9814 * config/h8300/clzhi2.c: Likewise.
9815 * config/h8300/crti.asm: Likewise.
9816 * config/h8300/crtn.asm: Likewise.
9817 * config/h8300/ctzhi2.c: Likewise.
9818 * config/h8300/fixunssfsi.c: Likewise.
9819 * config/h8300/lib1funcs.asm: Likewise.
9820 * config/h8300/parityhi2.c: Likewise.
9821 * config/h8300/popcounthi2.c: Likewise.
9822 * config/i386/ammintrin.h: Likewise.
9823 * config/i386/att.h: Likewise.
9824 * config/i386/avxintrin.h: Likewise.
9825 * config/i386/biarch64.h: Likewise.
9826 * config/i386/bmmintrin.h: Likewise.
9827 * config/i386/cpuid.h: Likewise.
9828 * config/i386/cross-stdarg.h: Likewise.
9829 * config/i386/crtfastmath.c: Likewise.
9830 * config/i386/crtprec.c: Likewise.
9831 * config/i386/cygming-crtbegin.c: Likewise.
9832 * config/i386/cygming-crtend.c: Likewise.
9833 * config/i386/cygwin.asm: Likewise.
9834 * config/i386/emmintrin.h: Likewise.
9835 * config/i386/gmm_malloc.h: Likewise.
9836 * config/i386/gthr-win32.c: Likewise.
9837 * config/i386/i386.h: Likewise.
9838 * config/i386/immintrin.h: Likewise.
9839 * config/i386/linux-unwind.h: Likewise.
9840 * config/i386/linux64.h: Likewise.
9841 * config/i386/mm3dnow.h: Likewise.
9842 * config/i386/mmintrin-common.h: Likewise.
9843 * config/i386/mmintrin.h: Likewise.
9844 * config/i386/nmmintrin.h: Likewise.
9845 * config/i386/pmm_malloc.h: Likewise.
9846 * config/i386/pmmintrin.h: Likewise.
9847 * config/i386/smmintrin.h: Likewise.
9848 * config/i386/sol2-c1.asm: Likewise.
9849 * config/i386/sol2-ci.asm: Likewise.
9850 * config/i386/sol2-cn.asm: Likewise.
9851 * config/i386/sol2-gc1.asm: Likewise.
9852 * config/i386/tmmintrin.h: Likewise.
9853 * config/i386/unix.h: Likewise.
9854 * config/i386/w32-unwind.h: Likewise.
9855 * config/i386/wmmintrin.h: Likewise.
9856 * config/i386/x86-64.h: Likewise.
9857 * config/i386/x86intrin.h: Likewise.
9858 * config/i386/xmmintrin.h: Likewise.
9859 * config/ia64/crtbegin.asm: Likewise.
9860 * config/ia64/crtend.asm: Likewise.
9861 * config/ia64/crtfastmath.c: Likewise.
9862 * config/ia64/crti.asm: Likewise.
9863 * config/ia64/crtn.asm: Likewise.
9864 * config/ia64/fde-glibc.c: Likewise.
9865 * config/ia64/lib1funcs.asm: Likewise.
9866 * config/ia64/linux-unwind.h: Likewise.
9867 * config/ia64/quadlib.c: Likewise.
9868 * config/ia64/unwind-ia64.c: Likewise.
9869 * config/linux.h: Likewise.
9870 * config/m32c/m32c-lib1.S: Likewise.
9871 * config/m32c/m32c-lib2-trapv.c: Likewise.
9872 * config/m32c/m32c-lib2.c: Likewise.
9873 * config/m32r/initfini.c: Likewise.
9874 * config/m68hc11/larith.asm: Likewise.
9875 * config/m68hc11/m68hc11-crt0.S: Likewise.
9876 * config/m68k/cf.md: Likewise.
9877 * config/m68k/crti.s: Likewise.
9878 * config/m68k/crtn.s: Likewise.
9879 * config/m68k/lb1sf68.asm: Likewise.
9880 * config/m68k/linux-unwind.h: Likewise.
9881 * config/mcore/crti.asm: Likewise.
9882 * config/mcore/crtn.asm: Likewise.
9883 * config/mcore/lib1.asm: Likewise.
9884 * config/mips/linux-unwind.h: Likewise.
9885 * config/mips/loongson.h: Likewise.
9886 * config/mips/mips16.S: Likewise.
9887 * config/mmix/crti.asm: Likewise.
9888 * config/mmix/crtn.asm: Likewise.
9889 * config/pa/fptr.c: Likewise.
9890 * config/pa/hpux-unwind.h: Likewise.
9891 * config/pa/lib2funcs.asm: Likewise.
9892 * config/pa/linux-atomic.c: Likewise.
9893 * config/pa/linux-unwind.h: Likewise.
9894 * config/pa/milli64.S: Likewise.
9895 * config/pa/quadlib.c: Likewise.
9896 * config/pa/stublib.c: Likewise.
9897 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9898 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9899 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9900 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9901 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9902 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9903 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9904 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9905 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9906 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9907 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9908 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9909 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9910 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9911 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9912 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9913 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9914 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9915 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9916 * config/rs6000/750cl.h: Likewise.
9917 * config/rs6000/altivec.h: Likewise.
9918 * config/rs6000/biarch64.h: Likewise.
9919 * config/rs6000/crtresfpr.asm: Likewise.
9920 * config/rs6000/crtresgpr.asm: Likewise.
9921 * config/rs6000/crtresxfpr.asm: Likewise.
9922 * config/rs6000/crtresxgpr.asm: Likewise.
9923 * config/rs6000/crtsavfpr.asm: Likewise.
9924 * config/rs6000/crtsavgpr.asm: Likewise.
9925 * config/rs6000/darwin-asm.h: Likewise.
9926 * config/rs6000/darwin-fallback.c: Likewise.
9927 * config/rs6000/darwin-fpsave.asm: Likewise.
9928 * config/rs6000/darwin-ldouble.c: Likewise.
9929 * config/rs6000/darwin-tramp.asm: Likewise.
9930 * config/rs6000/darwin-unwind.h: Likewise.
9931 * config/rs6000/darwin-vecsave.asm: Likewise.
9932 * config/rs6000/darwin-world.asm: Likewise.
9933 * config/rs6000/e500crtres32gpr.asm: Likewise.
9934 * config/rs6000/e500crtres64gpr.asm: Likewise.
9935 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9936 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9937 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9938 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9939 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9940 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9941 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9942 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9943 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9944 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9945 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9946 * config/rs6000/eabi-ci.asm: Likewise.
9947 * config/rs6000/eabi-cn.asm: Likewise.
9948 * config/rs6000/eabi.asm: Likewise.
9949 * config/rs6000/linux-unwind.h: Likewise.
9950 * config/rs6000/linux64.h: Likewise.
9951 * config/rs6000/paired.h: Likewise.
9952 * config/rs6000/paired.md: Likewise.
9953 * config/rs6000/ppc64-fp.c: Likewise.
9954 * config/rs6000/ppu_intrinsics.h: Likewise.
9955 * config/rs6000/rs6000.h: Likewise.
9956 * config/rs6000/si2vmx.h: Likewise.
9957 * config/rs6000/sol-ci.asm: Likewise.
9958 * config/rs6000/sol-cn.asm: Likewise.
9959 * config/rs6000/spe.h: Likewise.
9960 * config/rs6000/spu2vmx.h: Likewise.
9961 * config/rs6000/sysv4.h: Likewise.
9962 * config/rs6000/tramp.asm: Likewise.
9963 * config/rs6000/vec_types.h: Likewise.
9964 * config/s390/linux-unwind.h: Likewise.
9965 * config/s390/tpf-unwind.h: Likewise.
9966 * config/score/crti.asm: Likewise.
9967 * config/score/crtn.asm: Likewise.
9968 * config/sh/crt1.asm: Likewise.
9969 * config/sh/crti.asm: Likewise.
9970 * config/sh/crtn.asm: Likewise.
9971 * config/sh/divtab-sh4-300.c: Likewise.
9972 * config/sh/divtab-sh4.c: Likewise.
9973 * config/sh/divtab.c: Likewise.
9974 * config/sh/lib1funcs-4-300.asm: Likewise.
9975 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9976 * config/sh/lib1funcs.asm: Likewise.
9977 * config/sh/lib1funcs.h: Likewise.
9978 * config/sh/linux-atomic.asm: Likewise.
9979 * config/sh/linux-unwind.h: Likewise.
9980 * config/sh/shmedia.h: Likewise.
9981 * config/sh/sshmedia.h: Likewise.
9982 * config/sh/ushmedia.h: Likewise.
9983 * config/sparc/crtfastmath.c: Likewise.
9984 * config/sparc/linux-unwind.h: Likewise.
9985 * config/sparc/sol2-c1.asm: Likewise.
9986 * config/sparc/sol2-ci.asm: Likewise.
9987 * config/sparc/sol2-cn.asm: Likewise.
9988 * config/spu/divmodti4.c: Likewise.
9989 * config/spu/divv2df3.c: Likewise.
9990 * config/spu/float_disf.c: Likewise.
9991 * config/spu/float_unsdidf.c: Likewise.
9992 * config/spu/float_unsdisf.c: Likewise.
9993 * config/spu/float_unssidf.c: Likewise.
9994 * config/spu/mfc_multi_tag_release.c: Likewise.
9995 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9996 * config/spu/mfc_tag_release.c: Likewise.
9997 * config/spu/mfc_tag_reserve.c: Likewise.
9998 * config/spu/mfc_tag_table.c: Likewise.
9999 * config/spu/multi3.c: Likewise.
10000 * config/spu/spu_internals.h: Likewise.
10001 * config/spu/spu_intrinsics.h: Likewise.
10002 * config/spu/spu_mfcio.h: Likewise.
10003 * config/spu/vec_types.h: Likewise.
10004 * config/spu/vmx2spu.h: Likewise.
10005 * config/stormy16/stormy16-lib2.c: Likewise.
10006 * config/svr4.h: Likewise.
10007 * config/sync.c: Likewise.
10008 * config/v850/lib1funcs.asm: Likewise.
10009 * config/vxlib-tls.c: Likewise.
10010 * config/vxlib.c: Likewise.
10011 * config/vxworks-dummy.h: Likewise.
10012 * config/xtensa/crti.asm: Likewise.
10013 * config/xtensa/crtn.asm: Likewise.
10014 * config/xtensa/ieee754-df.S: Likewise.
10015 * config/xtensa/ieee754-sf.S: Likewise.
10016 * config/xtensa/lib1funcs.asm: Likewise.
10017 * config/xtensa/lib2funcs.S: Likewise.
10018 * config/xtensa/linux-unwind.h: Likewise.
10019 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10020 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10021 * coretypes.h: Likewise.
10022 * crtstuff.c: Likewise.
10023 * defaults.h: Likewise.
10024 * dwarf2.h: Likewise.
10025 * emutls.c: Likewise.
10026 * gbl-ctors.h: Likewise.
10027 * gcov-io.h: Likewise.
10028 * ginclude/float.h: Likewise.
10029 * ginclude/iso646.h: Likewise.
10030 * ginclude/stdarg.h: Likewise.
10031 * ginclude/stdbool.h: Likewise.
10032 * ginclude/stddef.h: Likewise.
10033 * ginclude/stdfix.h: Likewise.
10034 * ginclude/stdint-gcc.h: Likewise.
10035 * ginclude/tgmath.h: Likewise.
10036 * gthr-aix.h: Likewise.
10037 * gthr-dce.h: Likewise.
10038 * gthr-gnat.c: Likewise.
10039 * gthr-gnat.h: Likewise.
10040 * gthr-lynx.h: Likewise.
10041 * gthr-mipssde.h: Likewise.
10042 * gthr-nks.h: Likewise.
10043 * gthr-posix.c: Likewise.
10044 * gthr-posix.h: Likewise.
10045 * gthr-posix95.h: Likewise.
10046 * gthr-rtems.h: Likewise.
10047 * gthr-single.h: Likewise.
10048 * gthr-solaris.h: Likewise.
10049 * gthr-tpf.h: Likewise.
10050 * gthr-vxworks.h: Likewise.
10051 * gthr-win32.h: Likewise.
10052 * gthr.h: Likewise.
10053 * libgcc2.c: Likewise.
10054 * libgcc2.h: Likewise.
10055 * libgcov.c: Likewise.
10056 * tsystem.h: Likewise.
10057 * typeclass.h: Likewise.
10058 * unwind-c.c: Likewise.
10059 * unwind-compat.h: Likewise.
10060 * unwind-dw2-fde-compat.c: Likewise.
10061 * unwind-dw2-fde-darwin.c: Likewise.
10062 * unwind-dw2-fde-glibc.c: Likewise.
10063 * unwind-dw2-fde.c: Likewise.
10064 * unwind-dw2-fde.h: Likewise.
10065 * unwind-dw2.c: Likewise.
10066 * unwind-dw2.h: Likewise.
10067 * unwind-generic.h: Likewise.
10068 * unwind-pe.h: Likewise.
10069 * unwind-sjlj.c: Likewise.
10070 * unwind.inc: Likewise.
10071 * config/arm/neon-gen.ml: Change generated copyright header to
10072 refer to version 3 of the GNU General Public License with
10073 version 3.1 of the GCC Runtime Library Exception and to point
10074 readers at the COPYING3 and COPYING3.RUNTIME files and the
10075 FSF's license web page.
10076 * config/arm/arm_neon.h: Regenerate.
10077
100782009-04-09 Jakub Jelinek <jakub@redhat.com>
10079
10080 * config/cris/cris.md: Change copyright header to refer to version
10081 3 of the GNU General Public License.
10082 * doc/install.texi2html: Change copyright header to refer to version
10083 3 of the GNU General Public License and to point readers at the
10084 COPYING3 file and the FSF's license web page.
10085 * config/vax/linux.h: Likewise.
10086
4a77c72b
PB
100872009-04-09 Paolo Bonzini <bonzini@gnu.org>
10088
1ad2f450
L
10089 * config/i386/i386.md (cmpcc): New.
10090 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10091 (sync_compare_and_swap_cc*): Delete.
10092
10093 * config/s390/s390.c (s390_compare_emitted): Remove.
10094 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10095 s390_compare_emitted used to be handled. Assert that modes match.
10096 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10097 refer to sync_compare_and_swap_ccsi.
10098 * config/s390/s390.h (s390_compare_emitted): Remove.
10099 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10100 instead of s390_compare_emitted.
10101 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10102 instead of s390_compare_emitted.
10103 * config/s390/s390.md (cmpcc): New.
10104 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10105 CC_REGNUM, do not pretend it's set.
10106 (sync_compare_and_swap_cc*): Delete.
10107 * config/s390/predicates.md (cc_reg_operand): New.
10108
10109 * expr.c (sync_compare_and_swap_cc): Delete.
10110 * optabs.h (sync_compare_and_swap_cc): Delete.
10111 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10112 is being used with can_compare_p.
10113 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10114 (find_cc_set): New.
10115 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10116 look for a MODE_CC set instead. Use emit_store_flag.
10117 (expand_compare_and_swap_loop): Likewise, with some additional
10118 complication to avoid a force_reg when useless. Use
10119 emit_cmp_and_jump_insns.
10120 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10121 * doc/md.texi (sync_compare_and_swap_cc): Merge with
10122 sync_compare_and_swap documentation.
4a77c72b 10123
0c0efb33
JH
101242009-04-09 Jan Hubicka <jh@suse.cz>
10125
10126 * except.c (find_prev_try): Break out from ....
10127 (duplicate_eh_regions): ... here; properly update prev_try pointers
10128 when duplication part of tree.
10129 (dump_eh_tree): Improve dumping.
10130 (verify_eh_region): New.
10131 (verify_eh_tree): Use it.
10132
22a65a54
RG
101332009-04-06 Richard Guenther <rguenther@suse.de>
10134
10135 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10136 &ARRAY addresses by adjusting their types and prepending
10137 a conversion.
10138 * tree-cfg.c (verify_gimple_assign_single): Verify that
10139 addresses are correct.
10140
f76968e6
RG
101412009-04-09 Richard Guenther <rguenther@suse.de>
10142
10143 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10144 indices into an array reference if possible.
10145 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10146 Fold POINTER_PLUS_EXPR statements with invariant address.
10147
c90c5fb5
AM
101482009-04-09 Alan Modra <amodra@bigpond.net.au>
10149
10150 PR target/39634
10151 * config.gcc (powerpc64-*-linux*): Always build biarch.
10152
17cede2e
JM
101532009-04-09 Joseph Myers <joseph@codesourcery.com>
10154
10155 PR c/39613
10156 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10157 it and pedwarn if this results in an INTEGER_CST.
10158
a3337ea2
KG
101592009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10160
10161 * doc/install.texi: Update minimum GMP version. Remove obsolete
10162 text in MPFR section.
10163
ce9ba79b
JJ
101642009-04-08 Jakub Jelinek <jakub@redhat.com>
10165
10166 * dwarf2out.c (class_scope_p): New static inline.
10167 (class_or_namespace_scope_p): Use it.
10168 (gen_variable_die): Use DW_TAG_member tag for static data member
10169 declarations instead of DW_TAG_variable.
10170
4f0ae266
JJ
10171 PR middle-end/39573
10172 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10173 variables.
10174
d27f0ddc
RG
101752009-04-08 Richard Guenther <rguenther@suse.de>
10176
10177 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10178 valueize random data.
10179
557cc596
DE
101802009-04-08 David Edelsohn <edelsohn@gnu.org>
10181
10182 * config.gcc (aix tm_file): Add aix-stdint.h.
10183 (aix tm clause use_gcc_stdint): Set to wrap.
10184 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 10185
75ccc1e7
RG
101862009-04-08 Richard Guenther <rguenther@suse.de>
10187
10188 PR middle-end/36291
10189 * tree-dfa.c (add_referenced_var): Do not recurse into
10190 global initializers.
10191 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10192 exposed variables.
10193 (fold_const_aggregate_ref): Likewise.
10194
c6963675
PB
101952009-04-08 Paolo Bonzini <bonzini@gnu.org>
10196
6c44cf79
L
10197 * recog.c (ordered_comparison_operator): New.
10198 * gensupport.c (std_preds): Add it.
c6963675
PB
10199 * doc/md.texi (Machine-Independent Predicates): Document it.
10200
6d07ad98
JH
102012009-04-08 Jan Hubicka <jh@suse.cz>
10202
10203 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10204 * function.h (rtl_eh): Remove exception_handler_label_map.
10205 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10206 remove_exception_handler_label, for_each_eh_label_1): Remove.
10207 (rtl_remove_unreachable_regions): Remove.
10208 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10209 (find_exception_handler_labels): Don't build the hashtable.
10210 (maybe_remove_eh_handler): Remove.
10211 (for_each_eh_label): Rewrite to walk the tree.
10212 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10213 * except.h (maybe_remove_eh_handler): Remove.
10214 * passes.c (init_optimization_passes): Schedule second EH cleanup
10215 before out-of-ssa.
10216 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10217 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10218
7ddf71e3
PB
102192009-04-08 Paolo Bonzini <bonzini@gnu.org>
10220
10221 * genoutput.c (validate_optab_operands): New.
10222 (gen_insn, gen_expand): Call it.
10223
10224 * genflags.c (gen_insn): Detect misused iterators.
10225 (main): Pass line_no to gen_insn, exit with status 1 on error.
10226
10227 * genextract.c (line_no): Make global.
10228 (VEC_safe_set_locstr): Change assertion to error message.
10229 (main): Exit with status 1 on error.
10230
4d84fe7c
JM
102312009-04-08 Joseph Myers <joseph@codesourcery.com>
10232
10233 PR c/39614
10234 PR c/39673
10235 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10236 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10237 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10238 * c-convert.c (convert): Do not call fold on results of conversion
10239 functions when the result is a C_MAYBE_CONST_EXPR.
10240 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10241 of __builtin_choose_expr.
10242 * c-typeck.c (remove_c_maybe_const_expr): New.
10243 (build_unary_op, build_conditional_expr, build_compound_expr,
10244 build_binary_op, c_objc_common_truthvalue_conversion): Call
10245 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10246 integer operands.
10247
60839f5d 102482009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10249
2ba9daa7 10250 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10251 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10252
8e481a2c
DS
102532009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10254
10255 PR bootstrap/39660
10256 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10257 mix declarations and code.
10258
ee618c17
BE
102592009-04-08 Ben Elliston <bje@au.ibm.com>
10260
10261 * gcc.c: Replace `CC' with `GCC' throughout.
10262
f2a758a2
L
102632009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10264
10265 * doc/invoke.texi: Document Atom support.
10266
6ea2bd47
JM
102672009-04-07 Jason Merrill <jason@redhat.com>
10268
10269 PR c++/25185
10270 * c-common.h, c-common.c: Add flag_pretty_templates.
10271 * c-opts.c (c_common_handle_option): Set it.
10272 * c.opt: Add -fno-pretty-templates.
10273 * doc/invoke.texi (C++ Dialect Options): Likewise.
10274
fcb82ab0
UB
102752009-04-07 Uros Bizjak <ubizjak@gmail.com>
10276
10277 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10278 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10279 (ia64_expand_builtin): Likewise.
10280
dc5e7298
MJ
102812009-04-07 Martin Jambor <mjambor@suse.cz>
10282
10283 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10284 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10285 ADDR_EXPRS are include too.
10286
0609b355
RG
102872009-04-07 Richard Guenther <rguenther@suse.de>
10288
10289 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10290 decls are only used if passes as parameters or if they are
10291 local statics and the call is not to a builtin.
10292 (call_may_clobber_ref_p_1): Likewise.
10293
d8e535fa
PB
102942009-04-07 Paolo Bonzini <bonzini@gnu.org>
10295
10296 * expr.c (do_store_flag): Remove last argument. Simplify code
10297 to avoid duplication of tests already done by can_compare_p.
10298 (expand_expr_real_1): Adjust caller.
10299
c3c64f50
PB
103002009-04-07 Paolo Bonzini <bonzini@gnu.org>
10301
fcb82ab0
UB
10302 * optabs.c (can_compare_p): Test the predicate of a
10303 cbranch and cstore pattern.
c3c64f50 10304
9a53bc17
PB
103052009-04-07 Paolo Bonzini <bonzini@gnu.org>
10306
fcb82ab0
UB
10307 * expr.c (convert_move): Use emit_store_flag instead of
10308 "emulating" it.
9a53bc17 10309
67b8f1c1
PB
103102009-04-07 Paolo Bonzini <bonzini@gnu.org>
10311
fcb82ab0
UB
10312 * config/i386/i386.c (ix86_compare_emitted): Remove.
10313 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10314 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10315 * config/i386/i386.h (ix86_compare_emitted): Remove.
10316 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10317 instead of ix86_compare_emitted.
10318 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10319
44509946
AS
103202009-04-07 Andrew Stubbs <ams@codesourcery.com>
10321
10322 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10323 Add t-sysroot-suffix to tmake_file.
10324 * config/print-sysroot-suffix.sh: New file.
10325 * config/t-sysroot-suffix: New file.
10326
ca22d882
BE
103272009-04-07 Ben Elliston <bje@au.ibm.com>
10328
10329 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10330 as the latter produces a warning when the target does not support
10331 infinity.
10332
95aac11b
BE
103332009-04-07 Ben Elliston <bje@au.ibm.com>
10334
10335 * dfp.c: Replace type punning assignments with memcpy throughout.
10336 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10337
633dd061
AM
103382009-04-07 Alan Modra <amodra@bigpond.net.au>
10339
10340 PR target/39634
10341 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10342 Include soft-fp/t-softfp after rs6000/t-linux64.
10343
fe0a25ec
EB
103442009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10345
10346 * stor-layout.c (set_sizetype): Use the full precision of their
10347 machine mode for bitsize types.
10348
0c011bc3
L
103492009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10350
10351 * config/i386/i386.md: Revert 2 accidental checkins.
10352
b6837b94 103532009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10354 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10355 H.J. Lu <hongjiu.lu@intel.com>
10356
10357 Atom pipeline model, tuning and insn selection.
10358 * config.gcc (atom): Add atom config options and target.
10359
10360 * config/i386/atom.md: New.
10361
10362 * config/i386/i386.c (atom_cost): New cost.
10363 (m_ATOM): New macro flag.
10364 (initial_ix86_tune_features): Set m_ATOM.
10365 (x86_accumulate_outgoing_args): Likewise.
10366 (x86_arch_always_fancy_math_387): Likewise.
10367 (processor_target): Add Atom cost.
10368 (cpu_names): Add Atom cpu name.
10369 (override_options): Set Atom ISA.
10370 (ix86_issue_rate): New case PROCESSOR_ATOM.
10371 (ix86_adjust_cost): Likewise.
10372
10373 * config/i386/i386.h (TARGET_ATOM): New target macro.
10374 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10375 (TARGET_OPT_AGU): New target option.
10376 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10377 (processor_type): Add PROCESSOR_ATOM.
10378
10379 * config/i386/i386.md (cpu): Add new value "atom".
10380 (use_carry, movu): New attr.
10381 (atom.md): Include atom.md.
10382 (adddi3_carry_rex64): Set attr "use_carry".
10383 (addqi3_carry): Likewise.
10384 (addhi3_carry): Likewise.
10385 (addsi3_carry): Likewise.
10386 (*addsi3_carry_zext): Likewise.
10387 (subdi3_carry_rex64): Likewise.
10388 (subqi3_carry): Likewise.
10389 (subhi3_carry): Likewise.
10390 (subsi3_carry): Likewise.
10391 (x86_movdicc_0_m1_rex64): Likewise.
10392 (*x86_movdicc_0_m1_se): Likewise.
10393 (x86_movsicc_0_m1): Likewise.
10394 (*x86_movsicc_0_m1_se): Likewise.
10395 (*adddi_1_rex64): Emit add insn as much as possible.
10396 (*addsi_1): Likewise.
10397 (return_internal): Set atom_unit.
10398 (return_internal_long): Likewise.
10399 (return_pop_internal): Likewise.
10400 (*rcpsf2_sse): Set atom_sse_attr attr.
10401 (*qrt<mode>2_sse): Likewise.
10402 (*prefetch_sse): Likewise.
10403
10404 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10405 PROCESSOR_ATOM.
10406 (ix86_target_macros_internal): Likewise.
10407
10408 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10409 (*prefetch_sse_rex): Likewise.
10410 (sse_rcpv4sf2): Likewise.
10411 (sse_vmrcpv4sf2): Likewise.
10412 (sse_sqrtv4sf2): Likewise.
10413 (<sse>_vmsqrt<mode>2): Likewise.
10414 (sse_ldmxcsr): Likewise.
10415 (sse_stmxcsr): Likewise.
10416 (*sse_sfence): Likewise.
10417 (sse2_clflush): Likewise.
10418 (*sse2_mfence): Likewise.
10419 (*sse2_lfence): Likewise.
10420 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10421 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10422 (avx_movdqu<avxmodesuffix>): Likewise.
10423 (avx_lddqu<avxmodesuffix>): Likewise.
10424 (sse2_movntv2di): Change attr "type" to "ssemov".
10425 (sse2_movntsi): Likewise.
10426 (rsqrtv8sf2): Change attr "type" to "sseadd".
10427 (sse3_addsubv2df3): Set attr "atom_unit".
10428 (sse3_h<plusminus_insn>v4sf3): Likewise.
10429 (*sse2_pmaddwd): Likewise.
10430 (*vec_extractv2di_1_rex64): Likewise.
10431 (*vec_extractv2di_1_avx): Likewise.
10432 (sse2_psadbw): Likewise.
10433 (ssse3_phaddwv8hi3): Likewise.
10434 (ssse3_phaddwv4hi3): Likewise.
10435 (ssse3_phadddv4si3): Likewise.
10436 (ssse3_phadddv2si3): Likewise.
10437 (ssse3_phaddswv8hi3): Likewise.
10438 (ssse3_phaddswv4hi3): Likewise.
10439 (ssse3_phsubwv8hi3): Likewise.
10440 (ssse3_phsubwv4hi3): Likewise.
10441 (ssse3_phsubdv4si3): Likewise.
10442 (ssse3_phsubdv2si3): Likewise.
10443 (ssse3_phsubswv8hi3): Likewise.
10444 (ssse3_phsubswv4hi3): Likewise.
10445 (ssse3_pmaddubsw128): Likewise.
10446 (sse3_pmaddubsw: Likewise.
10447 (ssse3_palignrti): Likewise.
10448 (ssse3_palignrdi): Likewise.
10449
53e350d3
GP
104502009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10451
10452 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10453
439ef907
RG
104542009-04-06 Richard Guenther <rguenther@suse.de>
10455
10456 PR tree-optimization/28868
10457 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10458 of which PHI results we inserted.
10459 (insert_into_preds_of_block): Record inserted PHIs.
10460 (eliminate): Eliminate redundant PHI nodes.
10461 (init_pre): Init inserted_phi_names.
10462
4bad83f5
RG
104632009-04-06 Richard Guenther <rguenther@suse.de>
10464
10465 PR tree-optimization/39643
10466 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10467 IMAGPART_EXPRs of complex constants.
10468 (execute_fold_all_builtins): If we folded a call queue
10469 TODO_update_address_taken.
10470
570c4247
JH
104712009-04-06 Jan Hubicka <jh@suse.cz>
10472
10473 PR middle-end/39659
10474 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10475 flag.
10476
a460d7a1
AS
104772009-04-06 Andrew Stubbs <ams@codesourcery.com>
10478
10479 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10480 delay slot.
10481 (ic_invalidate_array): Likewise.
10482
60839f5d 104832009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10484
10485 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10486 alignment for library calls.
10487
7d253f6e
DS
104882009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10489
10490 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10491 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10492 * config/i386/mingw-stdint.h: New file.
10493
941c3614
RB
104942009-04-05 Richard Guenther <rguenther@suse.de>
10495
10496 PR tree-optimization/39648
10497 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10498 our &A vs. &A[0] IL deficiencies.
10499
12633413
JH
105002009-04-04 Jan Hubicka <jh@suse.cz>
10501
941c3614
RB
10502 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10503 removed toplevel regions.
12633413
JH
10504 (sjlj_mark_call_sites): Likewise.
10505
bb2aaded
DK
105062009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10507
10508 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10509 (cygwin tm clause use_gcc_stdint): Set to wrap.
10510 * config/i386/cygwin-stdint.h: New file.
10511
86290011
RG
105122009-04-04 Richard Guenther <rguenther@suse.de>
10513
10514 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10515 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10516 single-argument PHIs if we are in loop-closed SSA form.
10517 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10518 for the pre-condition.
10519 (slpeel_tree_peel_loop_to_edge): Likewise.
10520 (vect_build_loop_niters): Take an optional sequence to append stmts.
10521 (vect_generate_tmps_on_preheader): Likewise.
10522 (vect_do_peeling_for_loop_bound): Take extra guards for the
10523 pre-condition.
10524 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10525 the cost model check.
10526 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10527 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10528 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10529 (vect_do_peeling_for_loop_bound): Likewise.
10530 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10531 loop bound only record extra pre-conditions, do not apply loop
10532 versioning.
10533
5eeeac64
RG
105342009-04-04 Richard Guenther <rguenther@suse.de>
10535
10536 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10537 renaming code.
10538
1ff7d06b
JH
105392009-04-04 Jan Hubicka <jh@suse.cz>
10540
10541 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10542 last_basic_block for size of bb->index indexed array.
10543 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10544 compute_out, link_btr_uses, build_btr_def_use_webs,
10545 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10546
14925fcd
JH
105472009-04-04 Jan Hubicka <jh@suse.cz>
10548
10549 * except.c (remove_eh_handler_and_replace): Break out from ...
10550 (remove_eh_handler): ... here.
10551 (bring_to_root): New function.
10552 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10553 handled ones, bring others to root of tree.
10554
4e6d1743
JH
105552009-04-04 Jan Hubicka <jh@suse.cz>
10556
4cb735f7
JH
10557 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10558 (all_phis_safe_to_merge): New function.
10559 (update_info): New structure.
10560 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10561 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10562
c6803d43
RG
105632009-04-04 Richard Guenther <rguenther@suse.de>
10564
10565 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10566 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10567 (append_vuse): Likewise.
10568
54f5943c
JJ
105692009-04-04 Jakub Jelinek <jakub@redhat.com>
10570
10571 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10572 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10573 instead of REG_UNSAVED for DW_CFA_undefined.
10574 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10575 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10576 outermost frame.
10577
aad2bccb
RE
105782009-04-04 Richard Earnshaw <rearnsha@arm.com>
10579
10580 PR target/39501
10581 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10582 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10583 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10584
aa7069aa
RG
105852009-04-04 Richard Guenther <rguenther@suse.de>
10586
10587 PR tree-optimization/8781
10588 PR tree-optimization/37892
10589 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10590 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10591 (valueize_refs): Call it for *& valueizations.
10592 (shared_reference_ops_from_ref): Rename to ...
10593 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10594 (shared_reference_ops_from_call): Rename to ...
10595 (valueize_shared_reference_ops_from_call): ... this and valueize.
10596 (vn_reference_lookup): Update.
10597 (visit_reference_op_call): Likewise.
10598 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10599 (eliminate): Value-replace the call address in call statements.
10600
cd15ad3e
RG
106012009-04-04 Richard Guenther <rguenther@suse.de>
10602
10603 PR tree-optimization/39636
10604 * tree-ssa-forwprop.c
10605 (forward_propagate_addr_into_variable_array_index): Check for
10606 GIMPLE_ASSIGN before accessing the rhs code.
10607
462f3262
JM
106082009-04-03 Jason Merrill <jason@redhat.com>
10609
10610 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10611
6adb807e
SE
106122009-04-03 Steve Ellcey <sje@cup.hp.com>
10613
10614 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10615 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10616 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10617 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10618 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10619 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10620 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10621 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10622 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10623 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10624 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10625 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10626 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10627 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10628 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10629 Use fr_reg_or_fp01_operand instead of fr_register_operand
10630
10631 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10632 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10633 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10634
174b3107
VM
106352009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10636
b844e5d8
L
10637 PR rtl-optimization/39607
10638 PR rtl-optimization/39631
7a715bba
UB
10639
10640 Revert:
2ba9daa7 10641
174b3107
VM
10642 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10643 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10644 instead of DF_LR_OUT.
10645 * ira-lives.c (process_bb_node_lives): Ditto.
10646 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10647 instead of DF_LR_{OUT,IN}.
10648 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10649 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10650
535b544a
SB
106512009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10652
10653 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10654 (execute_lower_omp): Always run but take the short way out if -fopenmp
10655 is not given.
10656 (gate_lower_omp): Remove, forcing the pass manager to always run the
10657 pass and always set PROP_gimple_lomp.
10658 (pass_lower_omp): Remove gate function.
10659 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10660 PROP_trees. Instead, require it.
10661 * ipa-cp.c (pass_ipa_cp): Likewise.
10662 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10663 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10664 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10665 and PROP_gimple_leh.
10666
5006671f
RG
106672009-04-03 Richard Guenther <rguenther@suse.de>
10668
10669 PR middle-end/13146
10670 PR tree-optimization/23940
10671 PR tree-optimization/33237
10672 PR middle-end/33974
10673 PR middle-end/34093
10674 PR tree-optimization/36201
10675 PR tree-optimization/36230
10676 PR tree-optimization/38049
10677 PR tree-optimization/38207
10678 PR tree-optimization/38230
10679 PR tree-optimization/38301
10680 PR tree-optimization/38585
10681 PR middle-end/38895
10682 PR tree-optimization/38985
10683 PR tree-optimization/39299
10684 * tree-ssa-structalias.h: Remove.
10685 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10686 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10687 (struct vuse_element_d): Remove.
10688 (struct vuse_vec_d): Likewise.
10689 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10690 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10691 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10692 VUSE_ELEMENT_VAR): Likewise.
10693 (struct voptype_d): Likewise.
10694 (NUM_VOP_FREE_BUCKETS): Likewise.
10695 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10696 (struct stmt_operands_d): Remove.
10697 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10698 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10699 VDEF_NUM, VDEF_VECT): Likewise.
10700 (copy_virtual_operands): Remove.
10701 (operand_build_cmp): Likewise.
10702 (create_ssa_artificial_load_stmt): Likewise.
10703 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10704 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10705 vuse_index and mayuse_index members. Pack and move done and iter_type
10706 members to the front.
10707 (SSA_OP_VMAYUSE): Remove.
10708 (SSA_OP_VIRTUAL_USES): Adjust.
10709 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10710 (unlink_stmt_vdef): Declare.
10711 (add_to_addressable_set): Remove.
10712 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10713 (vrp_visit_stmt): Likewise.
10714 * doc/tree-ssa.texi (Alias analysis): Update.
10715 * doc/invoke.texi (max-aliased-vops): Remove docs.
10716 (avg-aliased-vops): Likewise.
10717 * tree-into-ssa.c (syms_to_rename): Remove.
10718 (need_to_update_vops_p): Likewise.
10719 (need_to_initialize_update_ssa_p): Rename to ...
10720 (update_ssa_initialized_fn): ... this. Track function we are
10721 initialized for.
10722 (symbol_marked_for_renaming): Simplify.
10723 (add_new_name_mapping): Do not set need_to_update_vops_p.
10724 (dump_currdefs): Use SYMS_TO_RENAME.
10725 (rewrite_update_stmt): Always walk all uses/defs.
10726 (dump_update_ssa): Adjust.
10727 (init_update_ssa): Take function argument. Track what we are
10728 initialized for.
10729 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10730 (create_new_def_for): Initialize for cfun, assert we are initialized
10731 for cfun.
10732 (mark_sym_for_renaming): Simplify.
10733 (mark_set_for_renaming): Do not initialize update-ssa.
10734 (need_ssa_update_p): Simplify. Take function argument.
10735 (name_mappings_registered_p): Assert we ask for the correct function.
10736 (name_registered_for_update_p): Likewise.
10737 (ssa_names_to_replace): Likewise.
10738 (release_ssa_name_after_update_ssa): Likewise.
10739 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10740 (dump_decl_set): Do not print a newline.
10741 (debug_decl_set): Do it here.
10742 (dump_update_ssa): And here.
10743 * tree-ssa-loop-im.c (move_computations): Adjust.
10744 (movement_possibility): Likewise.
10745 (determine_max_movement): Likewise.
10746 (gather_mem_refs_stmt): Likewise.
10747 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10748 or NAME_MEMORY_TAG.
10749 * tree-complex.c (update_all_vops): Remove.
10750 (expand_complex_move): Adjust.
10751 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10752 Simplify test for memory referencing statement. Exclude
10753 non-invariant ADDR_EXPRs.
10754 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10755 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10756 (rdg_flag_uses): Likewise.
10757 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10758 related code.
10759 (tree_optimize_tail_calls_1): Also split the
10760 edge from the entry block if we have degenerate PHI nodes in
10761 the first basic block.
10762 * tree.c (init_ttree): Remove memory-tag related code.
10763 (tree_code_size): Likewise.
10764 (tree_node_structure): Likewise.
10765 (build7_stat): Re-write to be build6_stat.
10766 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10767 (SSA_VAR_P): Adjust.
10768 (struct tree_memory_tag): Remove.
10769 (struct tree_memory_partition_tag): Likewise.
10770 (union tree_node): Adjust.
10771 (build7): Re-write to be build6.
10772 * tree-pass.h (pass_reset_cc_flags): Remove.
10773 (TODO_update_address_taken): New flag.
10774 (pass_simple_dse): Remove.
10775 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10776 * params.h (MAX_ALIASED_VOPS): Remove.
10777 (AVG_ALIASED_VOPS): Likewise.
10778 * omp-low.c (expand_omp_taskreg): Update SSA form.
10779 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10780 aliases the lhs in a copy stmt.
10781 * tree-ssa-dse.c (struct address_walk_data): Remove.
10782 (memory_ssa_name_same): Likewise.
10783 (memory_address_same): Likewise.
10784 (get_kill_of_stmt_lhs): Likewise.
10785 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10786 unused stores. Look through PHI nodes into post-dominated regions.
10787 (dse_optimize_stmt): Simplify. Properly remove stores.
10788 (tree_ssa_dse): Compute dominators.
10789 (execute_simple_dse): Remove.
10790 (pass_simple_dse): Likewise.
10791 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10792 gimple_loaded_syms and gimple_stored_syms computation.
10793 * toplev.c (dump_memory_report): Dump alias and pta stats.
10794 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10795 (vn_reference_eq): Likewise.
10796 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10797 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10798 valueize_vuses): Remove.
10799 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10800 (get_def_ref_stmt_vuse): ... this.
10801 (vn_reference_lookup_2): New function.
10802 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10803 walking equivalent vuses. Simplify.
10804 (vn_reference_lookup): Likewise.
10805 (vn_reference_insert): Likewise.
10806 (vn_reference_insert_pieces): Likewise.
10807 (visit_reference_op_call): Simplify.
10808 (visit_reference_op_load): Likewise.
10809 (visit_reference_op_store): Likewise.
10810 (init_scc_vn): Remove shared_lookup_vuses initialization.
10811 (free_scc_vn): Remove shared_lookup_vuses freeing.
10812 (sort_vuses, sort_vuses_heap): Remove.
10813 (get_ref_from_reference_ops): Export.
10814 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10815 vector with single vuse pointer.
10816 (vn_reference_lookup_pieces, vn_reference_lookup,
10817 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10818 (shared_vuses_from_stmt): Remove.
10819 (get_ref_from_reference_ops): Declare.
10820 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10821 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10822 memory-tag related code.
10823 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10824 (likely_value): Add comment, skip static-chain of call statements.
10825 (surely_varying_stmt_p): Adjust.
10826 (gimplify_and_update_call_from_tree): Likewise.
10827 (execute_fold_all_builtins): Do not rebuild alias info.
10828 (gimplify_and_update_call_from_tree): Properly update VOPs.
10829 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10830 (copy_ref_info): Remove memory-tag related code.
10831 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10832 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10833 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10834 computation.
10835 * tree-ssa-dom.c (gimple_p): Remove typedef.
10836 (eliminate_redundant_computations): Adjust.
10837 (record_equivalences_from_stmt): Likewise.
10838 (avail_expr_hash): Likewise.
10839 (avail_expr_eq): Likewise.
7a715bba 10840 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10841 (stmt_makes_single_load): Likewise.
10842 (stmt_makes_single_store): Likewise.
10843 * tree-ssa-alias.c: Rewrite completely.
10844 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10845 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10846 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10847 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10848 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10849 Remove public functions.
10850 (pass_reset_cc_flags): Remove.
10851 (pass_build_alias): Move ...
10852 * tree-ssa-structalias.c (pass_build_alias): ... here.
10853 * tree-ssa-alias.c (may_be_aliased): Move ...
10854 * tree-flow-inline.h (may_be_aliased): ... here.
10855 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10856 count_uses_and_derefs): Move ...
10857 * gimple.c: ... here.
10858 * gimple.h (count_uses_and_derefs): Declare.
10859 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10860 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10861 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10862 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10863 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10864 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10865 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10866 New functions.
10867 * tree-dfa.c (refs_may_alias_p): Move ...
10868 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10869 * tree-ssa-alias.h: New file.
10870 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10871 (statement_sink_location): Likewise.
10872 * opts.c (decode_options): Do not adjust max-aliased-vops or
10873 avg-aliased-vops values.
10874 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10875 (TV_CALL_CLOBBER): Likewise.
10876 (TV_FLOW_SENSITIVE): Likewise.
10877 (TV_FLOW_INSENSITIVE): Likewise.
10878 (TV_MEMORY_PARTITIONING): Likewise.
10879 (TV_ALIAS_STMT_WALK): New timevar.
10880 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10881 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10882 (get_address_description): Remove memory-tag related code.
10883 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10884 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10885 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10886 and immediate uses in statements. Document.
10887 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10888 (dump_symbols): Remove.
10889 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10890 * alias.c (get_deref_alias_set): New function split out from ...
10891 (get_alias_set): ... here.
10892 * alias.h (get_deref_alias_set): Declare.
10893 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10894 type parameter. Remove restrict pointer handling. Create a
10895 ref-all pointer in case type-based alias sets do not conflict.
10896 (vect_analyze_data_refs): Remove SMT related code.
10897 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10898 (vectorizable_load): Likewise.
10899 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10900 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10901 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10902 Ignore vops and SMTs.
10903 (dr_analyze_alias): Likewise..
10904 (free_data_ref): Likewise.
10905 (create_data_ref): Likewise.
10906 (analyze_all_data_dependences): Likewise.
10907 (get_references_in_stmt): Adjust.
10908 * tree-flow-inline.h (gimple_aliases_computed_p,
10909 gimple_addressable_vars, gimple_call_clobbered_vars,
10910 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10911 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10912 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10913 gimple_mem_ref_stats): Remove.
10914 (gimple_vop): New function.
10915 (op_iter_next_use): Remove vuses and mayuses cases.
10916 (op_iter_next_def): Remove vdefs case.
10917 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10918 (clear_and_done_ssa_iter): Do not set removed fields.
10919 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10920 Assert we are not iterating over vuses or vdefs if not also
10921 iterating over uses or defs.
10922 (op_iter_init_use): Likewise.
10923 (op_iter_init_def): Likewise.
10924 (op_iter_next_vdef): Remove.
10925 (op_iter_next_mustdef): Likewise.
10926 (op_iter_init_vdef): Likewise.
10927 (compare_ssa_operands_equal): Likewise.
10928 (link_use_stmts_after): Handle vuse operand.
10929 (is_call_used): Use is_call_clobbered.
10930 (is_call_clobbered): Global variables are always call clobbered,
10931 query the call-clobbers bitmap.
10932 (mark_call_clobbered): Ignore global variables.
10933 (clear_call_clobbered): Likewise.
10934 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10935 virtual operands sanity check.
10936 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10937 Remove.
10938 (TARGET_MEM_REF): Remove TMR_TAG operand.
10939 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10940 Remove call-clobber related code.
10941 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10942 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10943 partitions or escape reason.
10944 (get_single_def_stmt, get_single_def_stmt_from_phi,
10945 get_single_def_stmt_with_phi): Remove.
10946 (dump_referenced_vars): Tidy.
10947 (get_ref_base_and_extent): Allow bare decls.
10948 (collect_dfa_stats): Adjust.
10949 * graphite.c (rename_variables_in_stmt): Adjust.
10950 (graphite_copy_stmts_from_block): Likewise.
10951 (translate_clast): Likewise.
10952 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10953 (EXPR_DIES): New.
10954 (translate_vuse_through_block): Use the oracle.
10955 (phi_translate_1): Adjust.
10956 (value_dies_in_block_x): Use the oracle. Cache the outcome
10957 in EXPR_DIES.
10958 (valid_in_sets): Check if the VUSE for
10959 a REFERENCE is available.
10960 (eliminate): Do not remove stmts during elimination,
10961 instead queue and remove them afterwards.
10962 (do_pre): Do not rebuild alias info.
10963 (pass_pre): Run TODO_rebuild_alias before PRE.
10964 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10965 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10966 (mark_all_v_defs_stmt): Remove.
10967 (mark_all_v_defs_seq): Adjust.
10968 (sra_replace): Likewise.
10969 (scalarize_use): Likewise.
10970 (scalarize_copy): Likewise.
10971 (scalarize_init): Likewise.
10972 (scalarize_ldst): Likewise.
10973 (todoflags): Remove.
10974 (tree_sra): Do not rebuild alias info.
10975 (tree_sra_early): Adjust.
10976 (pass_sra): Run TODO_update_address_taken before SRA.
10977 * tree-predcom.c (set_alias_info): Remove.
10978 (prepare_initializers_chain): Do not call it.
10979 (mark_virtual_ops_for_renaming): Adjust.
10980 (mark_virtual_ops_for_renaming_list): Remove.
10981 (initialize_root_vars): Adjust.
10982 (initialize_root_vars_lm): Likewise.
10983 (prepare_initializers_chain): Likewise.
10984 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10985 (may_propagate_copy_into_stmt): Likewise.
10986 (merge_alias_info): Do nothing for now.
10987 (propagate_tree_value_into_stmt): Adjust.
10988 (stmt_may_generate_copy): Likewise.
10989 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10990 not mark symbols for renaming.
10991 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10992 with the same statement, make sure to update the new pointed-to one.
10993 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10994 call statements, do not mark symbols for renaming.
10995 (mark_operand_necessary): Dump something.
10996 (ref_may_be_aliased): New function.
10997 (mark_aliased_reaching_defs_necessary_1): New helper function.
10998 (mark_aliased_reaching_defs_necessary): Likewise.
10999 (mark_all_reaching_defs_necessary_1): Likewise.
11000 (mark_all_reaching_defs_necessary): Likewise.
11001 (propagate_necessity): Do not process virtual PHIs. For
11002 non-aliased loads mark all reaching definitions as necessary.
11003 For aliased loads and stores mark the immediate dominating
11004 aliased clobbers as necessary.
11005 (visited): New global static.
11006 (perform_tree_ssa_dce): Free visited bitmap after propagating
11007 necessity.
11008 (remove_dead_phis): Perform simple dead virtual PHI removal.
11009 (remove_dead_stmt): Properly unlink virtual operands when
11010 removing stores.
11011 (eliminate_unnecessary_stmts): Schedule PHI removal after
11012 stmt removal.
11013 * tree-ssa-ter.c (is_replaceable_p): Adjust.
11014 (process_replaceable): Likewise.
11015 (find_replaceable_in_bb): Likewise.
11016 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11017 based on the single gimple vop.
11018 (verify_flow_insensitive_alias_info): Remove.
11019 (verify_flow_sensitive_alias_info): Likewise.
11020 (verify_call_clobbering): Likewise.
11021 (verify_memory_partitions): Likewise.
11022 (verify_alias_info): Likewise.
11023 (verify_ssa): Adjust..
11024 (execute_update_addresses_taken): Export. Update SSA
11025 manually. Optimize only when optimizing. Use a local bitmap.
11026 (pass_update_address_taken): Remove TODO_update_ssa, add
11027 TODO_dump_func.
11028 (pass_update_address_taken): Just use TODO_update_address_taken.
11029 (init_tree_ssa): Do not initialize addressable_vars.
11030 (verify_ssa): Verify new VUSE / VDEF properties.
11031 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11032 Do not call verify_alias_info.
11033 (delete_tree_ssa): Clear the VUSE, VDEF operands.
11034 Do not free the loaded and stored syms bitmaps. Reset the escaped
11035 and callused solutions. Do not free addressable_vars.
11036 Remove memory-tag related code.
11037 (warn_uninitialized_var): Aliases are always available.
11038 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11039 * lambda-code.c (can_put_in_inner_loop): Adjust.
11040 (can_put_after_inner_loop): Likewise.
11041 (perfect_nestify): Likewise.
11042 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11043 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11044 (vectorizable_conversion): Do not mark symbols for renaming.
11045 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11046 (expand_call_inline): Unlink the calls virtual operands before
11047 replacing it.
11048 (tree_function_versioning): Do not call update_ssa if we are not
11049 updating clones. Simplify.
11050 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11051 (propagate_with_phi): Likewise..
11052 * tree-outof-ssa.c (create_temp): Remove memory tag and call
11053 clobber code. Assert we are not aliased or global.
11054 * tree-flow.h: Include tree-ssa-alias.h
11055 (enum escape_type): Remove.
11056 (struct mem_sym_stats_d): Likewise.
11057 (struct mem_ref_stats_d): Likewise.
11058 (struct gimple_df): Add vop member. Remove global_var,
11059 call_clobbered_vars, call_used_vars, addressable_vars,
11060 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
11061 escaped and callused members.
11062 (struct ptr_info_def): Remove all members, add points-to solution
11063 member pt.
11064 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11065 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11066 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11067 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11068 (tree-ssa-alias.o): Likewise.
11069 (toplev.o): Add tree-ssa-alias.h
11070 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11071 * gimple.c (gimple_set_bb): Fix off-by-one error.
11072 (is_gimple_reg): Do not handle memory tags.
11073 (gimple_copy): Also copy virtual operands.
11074 Delay updating the statement. Do not reset loaded and stored syms.
11075 (gimple_set_stored_syms): Remove.
11076 (gimple_set_loaded_syms): Likewise.
11077 (gimple_call_copy_skip_args): Copy the virtual operands
11078 and mark the new statement modified.
11079 * tree-ssa-structalias.c (may_alias_p): Remove.
11080 (set_uids_in_ptset): Take the alias set to prune with as
11081 parameter. Fold in the alias test of may_alias_p.
11082 (compute_points_to_sets): Compute whether a ptr is dereferenced
11083 in a local sbitmap.
11084 (process_constraint): Deal with &ANYTHING on the lhs, reject all
11085 other ADDRESSOF constraints on the lhs.
11086 (get_constraint_for_component_ref): Assert that we don't get
11087 ADDRESSOF constraints from the base of the reference.
11088 Properly generate UNKNOWN_OFFSET for DEREF if needed.
11089 (struct variable_info): Remove collapsed_to member.
11090 (get_varinfo_fc): Remove.
11091 (new_var_info): Do not set collapsed_to.
11092 (dump_constraint): Do not follow cycles.
11093 (dump_constraint_graph): Likewise.
11094 (build_pred_graph): Likewise.
11095 (build_succ_graph): Likewise.
11096 (rewrite_constraints): Likewise.
11097 (do_simple_structure_copy): Remove.
11098 (do_rhs_deref_structure_copy): Remove.
11099 (do_lhs_deref_structure_copy): Remove.
11100 (collapse_rest_of_var): Remove.
11101 (do_structure_copy): Re-implement.
11102 (pta_stats): New global variable.
11103 (dump_pta_stats): New function.
11104 (struct constraint_expr): Make offset signed.
11105 (UNKNOWN_OFFSET): Define special value.
11106 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11107 (solution_set_expand): New helper function split out from ...
11108 (do_sd_constraint): ... here.
11109 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
11110 (do_ds_constraint): Likewise.
11111 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
11112 and CALLUSED = *CALLUSED.
11113 (set_union_with_increment): Make inc argument signed.
11114 (type_safe): Remove.
11115 (get_constraint_for_ptr_offset): Handle unknown and negative
11116 constant offsets.
11117 (first_vi_for_offset): Handle offsets before start. Bail
11118 out early for offsets beyond the variable extent.
11119 (first_or_preceding_vi_for_offset): New function.
11120 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11121 Together with ESCAPED = *ESCAPED this properly computes reachability.
11122 (find_what_var_points_to): New function.
11123 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11124 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11125 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11126 pt_solutions_intersect): New functions.
11127 (compute_call_used_vars): Remove.
11128 (compute_may_aliases): New main entry into PTA computation.
11129 * gimple.h (gimple_p): New typedef.
11130 (struct gimple_statement_base): Remove references_memory_p.
11131 (struct gimple_statement_with_memory_ops_base): Remove
11132 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
11133 members.
11134 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11135 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11136 gimple_set_references_memory): Remove.
11137 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11138 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11139 New functions.
11140 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11141 (verify_expr): Allow RESULT_DECL.
11142 (gimple_duplicate_bb): Do not copy virtual operands.
11143 (gimple_duplicate_sese_region): Adjust.
11144 (gimple_duplicate_sese_tail): Likewise.
11145 (mark_virtual_ops_in_region): Remove.
11146 (move_sese_region_to_fn): Do not call it.
11147 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11148 and pass_simple_dse.
11149 (execute_function_todo): Handle TODO_update_address_taken,
11150 call execute_update_addresses_taken for TODO_rebuild_alias.
11151 (execute_todo): Adjust.
11152 (execute_one_pass): Init dump files early.
11153 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11154 call-clobbered.
11155 (create_general_new_stmt): Clear vops.
11156 * tree-ssa-reassoc.c (get_rank): Adjust.
11157 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11158 symbols for renaming.
11159 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11160 (PARAM_AVG_ALIASED_VOPS): Likewise.
11161 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11162 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 11163 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
11164 (operand_build_cmp, copy_virtual_operands,
11165 create_ssa_artificial_load_stmt, add_to_addressable_set,
11166 gimple_add_to_addresses_taken): Remove public functions.
11167 (unlink_stmt_vdef): New function.
11168
457d1d00
AM
111692009-04-03 Alan Modra <amodra@bigpond.net.au>
11170
11171 * config.gcc (powerpc-*-linux*): Merge variants.
11172
e19da24c 111732009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 11174 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
11175
11176 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11177 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11178 cop0_sp_offset.
11179 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11180 keep_interrupts_masked_p, use_debug_exception_return_p.
11181 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11182 keep_interrupts_masked, use_debug_exception_return.
11183 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11184 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11185 New functions.
11186 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11187 (mips_print_operand): Process COP0 registers to print $0 .. $31
11188 correctly for GAS to process.
11189 (mips_interrupt_extra_call_saved_reg_p): New function.
11190 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11191 extra registers.
11192 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11193 (mips_compute_frame_info): Add supports for interrupt context that
11194 includes doubleword accumulators and COP0 registers.
11195 (mips_for_each_saved_acc): New function.
11196 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11197 mips_for_each_saved_reg.
11198 (mips_save_reg): Save accumulators.
11199 (mips_kernel_reg_p): A new for_each_rtx callback.
11200 (mips_expand_prologue): Support interrupt handlers.
11201 (mips_restore_reg): Restore accumulators.
11202 (mips_expand_epilogue): Support interrupt handlers.
11203 (mips_can_use_return_insn): Return false for interrupt handlers.
11204 (mips_epilogue_uses): New function.
11205 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11206 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11207 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11208 cop0_move): New instructions.
11209 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11210 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11211 defines.
11212 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11213 New defines.
11214 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11215 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11216 interrupt handlers, we use K0 as the temporary register.
11217 (EPILOGUE_USES): Change to a function call.
11218 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11219 handlers, we use K0 as the temporary register.
2ba9daa7 11220
e19da24c
CF
11221 * doc/extend.texi (Function Attributes): Document interrupt,
11222 use_shadow_register_set, keep_interrupts_masked,
11223 use_debug_exception_return for MIPS attributes.
11224
aa1ca044
AM
112252009-04-03 Alan Modra <amodra@bigpond.net.au>
11226
11227 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11228 Remove a number of t-files from tmake_file.
11229 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11230 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11231 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11232 target_prototype, not TARGET_PROTOTYPE.
11233 (LINK_OS_GNU_SPEC): Define.
11234 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11235 and darwin-ldoubdle.c.
11236
14fdc613
MM
112372009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11238
11239 PR driver/39293
11240 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11241 (cpp_options): Ditto.
11242 (default_compilers): Ditto.
11243 (display_help): Ditto.
11244 (process_command): Ditto.
11245 (do_spec_1): Ditto.
11246 (set_input): Use lbasename instead of duplicate code.
11247 (save_temps_prefix): New static for -save-temps=obj.
11248 (save_temps_length): Ditto.
2ba9daa7 11249
14fdc613
MM
11250 * doc/invoke.texi (-save-temps=obj): Document new variant to
11251 -save-temps switch.
11252
d3aa398e
JL
112532009-04-02 Jeff Law <law@redhat.com>
11254
11255 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11256 variable.
11257
83f0ccb8
L
112582009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11259
11260 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11261 * configure: Regenerated.
11262
dcb6e951
RAE
112632009-04-02 Rafael Avila de Espindola <espindola@google.com>
11264
11265 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11266 share the argument list.
11267
d85478c2
RAE
112682009-04-02 Rafael Avila de Espindola <espindola@google.com>
11269
11270 Merge
11271
11272 2009-02-12 Diego Novillo <dnovillo@google.com>
11273
83f0ccb8
L
11274 * varpool.c (debug_varpool): New.
11275 * cgraph.h (debug_varpool): Declare.
d85478c2 11276
34f42a49
JH
112772009-04-02 Jan Hubicka <jh@suse.cz>
11278
11279 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11280 pass.
11281
a4747b4a
L
112822009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11283
11284 * config/i386/i386.c (ix86_abi): Move initialization to ...
11285 (override_options): Here.
11286
63a9de54
CB
112872009-04-02 Christian Bruel <christian.bruel@st.com>
11288
11289 * config/sh/sh.c (sh_dwarf_register_span): New function.
11290 (TARGET_DWARF_REGISTER_SPAN): Define.
11291 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11292
2f0fa28e
IR
112932009-04-02 Ira Rosen <irar@il.ibm.com>
11294
11295 PR tree-optimization/39595
2ba9daa7 11296 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11297 interleaved loads group is not greater than the SLP group size.
11298
bbf7ce11
RAE
112992009-04-02 Rafael Avila de Espindola <espindola@google.com>
11300
11301 * builtins.c (is_builtin_name): New.
11302 (called_as_built_in): Use is_builtin_name.
11303 * tree.h (is_builtin_name): New.
11304 * varasm.c (incorporeal_function_p): Use is_builtin_name
11305
47e4dfcf
AS
113062009-04-02 Andrew Stubbs <ams@codesourcery.com>
11307
11308 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11309
d0940d56
DS
113102009-04-02 Dodji Seketeli <dodji@redhat.com>
11311
11312 PR c++/26693
532bfb0a 11313 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11314 * c-common.c (set_underlying_type): ... here.
11315 Also, make sure the function properly sets TYPE_STUB_DECL() on
11316 the newly created typedef variant type.
11317 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11318 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11319 points.
d0940d56 11320
bf1cbdc6
RG
113212009-04-02 Richard Guenther <rguenther@suse.de>
11322
11323 PR tree-optimization/37221
11324 * tree-flow.h (degenerate_phi_result): Declare.
11325 * tree-ssa-dom.c (degenerate_phi_result): Export.
11326 * tree-scalar-evolution.c (analyze_initial_condition): If
11327 the initial condition is defined by a degenerate PHI node
11328 use the degenerate value.
11329
87cfb32c
EB
113302009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11331
11332 PR rtl-optimization/39588
11333 * combine.c (merge_outer_ops): Do not set the constant when this
11334 is not necessary.
11335 (simplify_shift_const_1): Do not modify it either in this case.
11336
bbb6eae8
SB
113372009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11338
11339 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11340 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11341
839a3b8a
JJ
113422009-04-01 Janis Johnson <janis187@us.ibm.com>
11343
11344 PR c/29027
11345 * c-lex.c (interpret_float): Default (no suffix) is double.
11346
667e8acb
XDL
113472009-04-1 Xinliang David Li <davidxl@google.com>
11348
11349 * config/i386/i386.c (legitimate_constant_p): Recognize
11350 all one vector constant.
11351
60839f5d 113522009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11353
60839f5d 11354 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11355 Change #include order to silence two warnings.
11356
60839f5d 113572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11358
60839f5d 11359 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11360 (ASM_SPEC): Pass -k to the assembler for PIC code.
11361
60839f5d 113622009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11363
60839f5d
EB
11364 * config.gcc: Add vax-*-linux* to the switch.
11365 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11366 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11367
60839f5d 113682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11369
60839f5d 11370 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11371 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11372 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11373 ashlsi3, rotrsi3, <unnamed>): Likewise.
11374
60839f5d 113752009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11376
60839f5d 11377 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11378 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11379 * config/vax/constraints.md: Likewise.
11380 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11381 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11382 * config/vax/predicates.md: Likewise.
11383 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11384 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11385 * config/vax/vax.h: Likewise.
11386 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11387
60839f5d 113882009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11389
60839f5d 11390 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11391 (indirectable_address_p, adjacent_operands_p): Add spaces around
11392 braces.
60839f5d 11393 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11394
60839f5d 113952009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11396
60839f5d 11397 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11398 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11399 index_term_p, reg_plus_index_p, legitimate_address_p,
11400 vax_mode_dependent_address_p): Update comments to match functions
11401 modified by the recent int->bool conversion.
11402
60839f5d 114032009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11404
60839f5d
EB
11405 * config/vax/builtins.md: Update copyright message.
11406 * config/vax/constraints.md: Likewise.
11407 * config/vax/netbsd-elf.h: Likewise.
11408 * config/vax/predicates.md: Likewise.
11409 * config/vax/vax-protos.h: Likewise.
11410 * config/vax/vax.c: Likewise.
11411 * config/vax/vax.h: Likewise.
11412 * config/vax/vax.md: Likewise.
11413 * config/vax/vax.opt: Likewise.
c4e75102 11414
60839f5d 114152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11416
60839f5d 11417 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11418 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11419 * config/vax/constraints.md (B, R): Likewise.
11420 * config/vax/predicates.md (external_memory_operand,
c4e75102 11421 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11422 * config/vax/vax.c (vax_output_int_add): Likewise.
11423 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11424 untyped_call): Likewise.
11425
60839f5d 114262009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11427
7a715bba
UB
11428 * config/vax/predicates.md: New file.
11429 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11430 external_const_operand, nonsymbolic_operand, external_memory_operand,
11431 indirect_memory_operand, indexed_memory_operand,
11432 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11433 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11434 predicate.
7a715bba
UB
11435 * config/vax/constraints.md: New file.
11436 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11437 New constraint.
11438 * config/vax/builtins.md: New file.
11439 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11440 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11441 jbbccisi): Define.
c4e75102
MT
11442 * config/vax/vax.opt (mqmath): Add option.
11443 * config/vax/vax.md (isfx): Extend with DI.
11444 (VAXintQH, VAXintQHSD): Define.
11445 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11446 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11447 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11448 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11449 (movdi): Update constraints and use vax_output_int_move().
11450 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11451 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11452 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11453 nonlocal_goto): New.
11454 (mov<mode>): Extend accepted operand types.
11455 (subdi3_old): Rename from subdi3, change update constraints and use
11456 a new implementation.
60839f5d 11457 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11458 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11459 MOVE_RATIO, CLEAR_RATIO): Define.
11460 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11461 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11462 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11463 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11464 (split_quadword_operands): Make static and really allow variable
11465 splitting.
11466 (print_operand_address): Update for PIC generation.
11467 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11468 indexable_address_p, fixup_mathdi_operand,
11469 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11470 (vax_float_literal, legitimate_constant_p,
11471 indirectable_constant_address_p, index_term_p,
11472 reg_plus_index_p): Return bool instead of int.
11473 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11474 where needed.
11475 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11476 generation.
11477 (vax_output_conditional_branch): Indent.
11478 (legitimate_constant_address_p, indirectable_constant_address_p,
11479 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11480 vax_mode_dependent_address_p): Return bool instead of int, update for
11481 PIC generation.
11482 * config/vax/vax-protos.h (legitimate_constant_address_p,
11483 legitimate_constant_p, legitimate_address_p,
11484 vax_mode_dependent_address_p): Change declaration to bool.
11485 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11486 vax_expand_addsub_di_operands, vax_output_int_subtract,
11487 vax_output_movmemsi): Declare.
11488 (split_quadword_operands, vax_float_literal): Delete declaration.
11489 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11490 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11491 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11492 ASM_OUTPUT_DWARF_PCREL): Define.
11493 (ASM_SPEC): Change definition to allow PIC generation.
11494
9332c6eb
L
114952009-04-01 Steve Ellcey <sje@cup.hp.com>
11496
11497 * doc/sourcebuild.texi: Update front-end requirements.
11498
d93e052c
JJ
114992009-04-01 Jakub Jelinek <jakub@redhat.com>
11500
11501 PR target/39226
11502 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11503 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11504 (booldi3_internal3): Use boolean_or_operator instead of
11505 boolean_operator.
11506
6ccb2a4a
JM
115072009-04-01 Joseph Myers <joseph@codesourcery.com>
11508
11509 PR c/39605
11510 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11511 declarator whose size is not an integer constant expression but
11512 folds to an integer constant, then treat it as a constant
11513 subsequently.
11514
299b87f8
RG
115152009-04-01 Richard Guenther <rguenther@suse.de>
11516
11517 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11518 i * 4 + 2 to (i * 2 + 1) * 2.
11519
b85eb797
JJ
115202009-04-01 Jakub Jelinek <jakub@redhat.com>
11521
11522 PR c/37772
11523 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11524 return if c_parser_asm_string_literal returned NULL.
11525
235e1fe8
NC
115262009-04-01 Nick Clifton <nickc@redhat.com>
11527
11528 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11529 already defined.
11530 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11531 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11532 other typedefs to avoid conflicts with libgcc2.c. Define labels
11533 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11534 include it.
11535 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11536 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11537 then include it.
11538
d6868399
RAE
115392009-04-01 Rafael Avila de Espindola <espindola@google.com>
11540
7a715bba
UB
11541 * varasm.c (default_function_rodata_section): Declare DOT as
11542 const char*.
d6868399 11543
73d21f56 115442009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11545 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11546
11547 PR/39492
11548 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11549 Make object_name unique for each process.
11550
03742a9b
JJ
115512009-04-01 Jakub Jelinek <jakub@redhat.com>
11552
11553 PR other/39591
11554 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11555 addressable variables in the parallel that could go out of scope while
11556 running queued tasks.
11557
4223ff5f
AS
115582009-04-01 Anatoly Sokolov <aesok@post.ru>
11559
11560 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11561 (CASE_VALUES_THRESHOLD): Redefine.
11562 * config/avr/avr.c (avr_override_options): Remove initialization of
11563 avr_case_values_threshold variable.
11564 (avr_case_values_threshold): Remove variable. Add new function.
11565 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11566 * config/avr/avr.opt (mno-tablejump): Remove option.
11567 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11568
e893f6f3
DD
115692009-04-01 DJ Delorie <dj@redhat.com>
11570
11571 * varasm.c (default_function_rodata_section): Don't assume
11572 anything about where the first '.' in the section name is.
11573
b246d100
AM
115742009-04-01 Alan Modra <amodra@bigpond.net.au>
11575
11576 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11577 rs6000_emit_stack_tie.
11578
d3e37a9e
ILT
115792009-03-31 Ian Lance Taylor <iant@google.com>
11580
11581 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11582 gimple_code with GIMPLE_RESX, not RESX.
11583
c1b61fca
JM
115842009-03-31 Joseph Myers <joseph@codesourcery.com>
11585
11586 * c-common.c (c_get_ident): New.
7a715bba 11587 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11588
c2d2ad48
BE
115892009-04-01 Ben Elliston <bje@au.ibm.com>
11590
11591 * config/rs6000/sysv4.opt (msdata): Improve option description.
11592
13d1a6e7
SE
115932009-03-31 Steve Ellcey <sje@cup.hp.com>
11594
11595 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11596 (divdf3_internal_lat): Remove.
11597 (divxf3_internal_lat): Remove.
11598 (divxf3_internal_thr): Remove.
11599 (divxf): Use divxf3_internal.
11600 * config/ia64/div.md (divsf3_internal_lat): New.
11601 (divdf3_internal_lat): New.
11602 (divxf3_internal): New.
11603
207bf79d
JM
116042009-03-31 Joseph Myers <joseph@codesourcery.com>
11605
11606 PR c/448
11607 * Makefile.in (USE_GCC_STDINT): Define.
11608 (stmp-int-hdrs): Install stdint.h if applicable.
11609 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11610 if known.
11611 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11612 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11613 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11614 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11615 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11616 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11617 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11618 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11619 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11620 (c_common_nodes_and_builtins): Initialize
11621 underlying_wchar_type_node. Do not initialize
11622 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11623 nodes for new types.
11624 (c_stddef_cpp_builtins): Define macros for new types.
11625 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11626 Remove.
11627 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11628 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11629 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11630 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11631 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11632 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11633 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11634 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11635 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11636 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11637 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11638 int16_type_node, int32_type_node, int64_type_node,
11639 uint8_type_node, uint16_type_node, c_uint32_type_node,
11640 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11641 int_least32_type_node, int_least64_type_node,
11642 uint_least8_type_node, uint_least16_type_node,
11643 uint_least32_type_node, uint_least64_type_node,
11644 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11645 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11646 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11647 uintptr_type_node): Define.
11648 * c-cppbuiltin.c (builtin_define_constants,
11649 builtin_define_type_minmax): New.
11650 (builtin_define_stdint_macros): Define more macros.
11651 (c_cpp_builtins): Define more limit macros.
11652 (type_suffix): New.
11653 (builtin_define_type_max): Define in terms of
11654 builtin_define_type_minmax. Remove is_long parameter. All
11655 callers changed.
11656 * config.gcc (use_gcc_stdint): Define.
11657 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11658 Add newlib-stdint.h for generic targets.
11659 * config/glibc-stdint.h, config/newlib-stdint.h,
11660 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11661 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11662 * config/score/score.h (UINTPTR_TYPE): Define.
11663 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11664 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11665 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11666 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11667 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11668 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11669 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11670 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11671 * config/spu/spu.h (STDINT_LONG32): Define.
11672 * configure.ac (use_gcc_stdint): Substitute.
11673 * configure: Regenerate.
11674 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11675 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11676 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11677 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11678 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11679 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11680 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11681 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11682 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11683 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11684 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11685 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11686 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11687 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11688 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11689 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11690 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11691 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11692 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11693 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11694 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11695 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11696 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11697 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11698 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11699 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11700 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11701 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11702 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11703
ed853664
BS
117042009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11705
11706 * loop-iv.c (suitable_set_for_replacement): Renamed from
11707 simplify_using_assignment; changed to return bool and to accept new
11708 args DEST and SRC. Return true iff we find a source/destination pair
11709 that can be used to make a replacement, and fill SRC and DEST if so.
11710 Remove arg ALTERED. Don't deal with altered regs here. All callers
11711 changed.
11712 (simplify_using_initial_values): Deal with altered regs here and track
11713 more precisely the effect they have on the validity of our expression.
11714
1569e190
BS
11715 * loop-iv.c (simplify_using_condition): A condition of the form
11716 (EQ REG CONST) can be used to simply make a substitution.
11717 (simplify_using_initial_values): Keep track of conditions we have seen
11718 and keep using them to simplify new expressions, while applying the
11719 same substitutions to them as to the expression.
11720
1d1eb80c
BS
11721 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11722 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11723 GEU/LTU reversed.
11724
28af33b0
BS
11725 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11726 changed. Use this when trying to improve the upper bound.
11727 Generate the comparison by using simplify_gen_relational.
11728
b30321cd
BS
11729 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11730
60081874
BS
11731 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11732 functions.
2ba9daa7 11733 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11734 replace_in_expr to make replacements. Call replace_single_def_regs
11735 once on the initial version of the expression.
11736
bebc6e07
RR
117372009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11738
fcb82ab0 11739 PR target/27237
bebc6e07 11740 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11741
6b12efe9
RG
117422009-03-31 Richard Guenther <rguenther@suse.de>
11743
11744 PR middle-end/31029
11745 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11746 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11747
108f6c2f
RG
117482009-03-31 Richard Guenther <rguenther@suse.de>
11749
11750 * tree.h (div_if_zero_remainder): Declare.
11751 * fold-const.c (div_if_zero_remainder): Export.
11752 * tree-ssa-forwprop.c
11753 (forward_propagate_addr_into_variable_array_index): Handle
11754 constant array index addition outside of the variable index.
11755
8f612190
JM
117562009-03-31 Joseph Myers <joseph@codesourcery.com>
11757
11758 PR target/39592
11759 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11760 define_splits, floatunssi<mode>2): Require x87 conversions from
11761 DImode to be permitted.
11762
47580d22
JM
117632009-03-31 Joseph Myers <joseph@codesourcery.com>
11764
11765 PR preprocessor/15638
11766 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11767
ba4d8f9d
RG
117682009-03-31 Richard Guenther <rguenther@suse.de>
11769
11770 PR middle-end/23401
11771 PR middle-end/27810
11772 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11773 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11774 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11775 a separate statement.
11776 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11777 (lookup_tmp_var): Likewise.
11778 (is_gimple_formal_tmp_or_call_rhs): Remove.
11779 (is_gimple_reg_or_call_rhs): Rename to ...
11780 (is_gimple_reg_rhs_or_call): ... this.
11781 (is_gimple_mem_or_call_rhs): Rename to ...
11782 (is_gimple_mem_rhs_or_call): ... this.
11783 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11784 DECL_GIMPLE_REG_P only if is_formal is true.
11785 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11786 for non-proper post-modify expression gimplification.
11787 (gimplify_self_mod_expr): For post-modify expressions gimplify
11788 the lvalue to a minimal lvalue.
11789 (rhs_predicate_for): Remove formal temp case.
11790 (gimplify_modify_expr_rhs): Likewise.
11791 (gimplify_addr_expr): Use is_gimple_reg.
11792 (gimplify_expr): Remove formal temp cases.
11793 (gimple_regimplify_operands): Likewise.
11794 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11795 and FILTER_EXPR like constants.
11796 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11797 is_gimple_reg.
11798 (is_gimple_formal_tmp_rhs): Remove.
11799 (is_gimple_reg_rhs): Remove special casing.
11800 (is_gimple_mem_rhs): Fix.
11801 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11802 (is_gimple_formal_tmp_var): Remove.
11803 (is_gimple_formal_tmp_reg): Likewise.
11804 (is_gimple_min_lval): Allow invariant component ref parts.
11805 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11806 is_gimple_formal_tmp_reg): Remove declarations.
11807 * tree-cfg.c (verify_expr): Verify that variables with address
11808 taken do not have DECL_GIMPLE_REG_P set.
11809 * tree-mudflap.c (mf_build_check_statement_for): Use
11810 force_gimple_operand instead of gimplify_expr.
11811
8de9b877
AZ
118122009-03-31 Ayal Zaks <zaks@il.ibm.com>
11813
11814 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11815 schedulable rows to compute_split_row.
11816
b5e3caf2
BE
118172009-03-31 Ben Elliston <bje@au.ibm.com>
11818
11819 PR target/31635
11820 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11821 OPT_mvrsave.
11822
9752c4ad
AM
118232009-03-31 Alan Modra <amodra@bigpond.net.au>
11824
11825 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11826 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11827 * configure: Regenerate.
11828 * config.in: Regenerate.
11829 * config/rs6000/rs6000.opt (mtls-markers): Add.
11830 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11831 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11832 (tls_ld_aix, tls_ld_sysv): Likewise.
11833 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11834 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11835
b597d1b6
AM
118362009-03-31 Alan Modra <amodra@bigpond.net.au>
11837
11838 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11839
a203a221
JH
118402009-03-30 Jan Hubicka <jh@suse.cz>
11841
b597d1b6
AM
11842 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11843 out of RESX.
11844 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11845 detection and label handling.
a203a221 11846
5b0c0b2c
VM
118472009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11848
11849 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11850 left_conflicts_size.
11851 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11852 ALLOCNO_LEFT_CONFLICTS_SIZE.
11853
11854 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11855 remove_allocno_from_bucket_and_push,
11856 allocno_spill_priority_compare, push_allocnos_to_stack,
11857 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11858 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11859 (setup_allocno_left_conflicts_num): Ditto. Rename to
11860 setup_allocno_left_conflicts_size.
11861 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11862 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11863 setup_allocno_left_conflicts_size instead of
11864 setup_allocno_left_conflicts_num.
11865
11866 * ira-build.c (ira_create_allocno): Use
11867 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11868 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11869
9a48a93f
VM
118702009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11871
11872 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11873 instead of DF_LR_OUT.
11874
11875 * ira-lives.c (process_bb_node_lives): Ditto.
11876
11877 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11878 instead of DF_LR_{OUT,IN}.
11879
11880 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11881
11882 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11883
4c936d4f
JH
118842009-03-30 Jan Hubicka <jh@suse.cz>
11885
11886 * except.c (label_to_region_map): Fix thinko.
11887
f4d9f129
SE
118882009-03-30 Steve Ellcey <sje@cup.hp.com>
11889
11890 PR middle-end/38237
11891 * tree.h (tree_find_value): New declaration.
11892 * tree.c (tree_find_value): New function.
11893 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11894
b3f27c15
JJ
118952009-03-30 Jakub Jelinek <jakub@redhat.com>
11896
11897 PR debug/39563
11898 * c-decl.c (struct c_binding): Add locus field.
11899 (bind): Add locus argument, set locus field from it.
11900 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11901 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11902 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11903 implicitly_declare, undeclared_variable, lookup_label,
11904 declare_label, c_make_fname_decl, c_builtin_function,
11905 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11906 bind callers.
11907
ad41bd84 119082009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11909
11910 PR target/38781
11911 * config/i386/i386.c (classify_argument): Check total size of
11912 structure.
11913
133f9369
MJ
119142009-03-30 Martin Jambor <mjambor@suse.cz>
11915
11916 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11917 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11918 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11919 respectively.
11920
11921 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11922 seen_variable_array_ref while also traversing a union.
11923
11924 * tree-inline.c (optimize_inline_calls): Do not call
11925 cgraph_node_remove_callees.
11926 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11927 (pass_remove_cgraph_callee_edges): New variable.
11928 * passes.c (init_optimization_passes): Add
11929 pass_remove_cgraph_callee_edges after early inlining and before all
11930 late intraprocedural passes.
11931
11932 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11933
1190f2eb
PB
119342009-03-30 Paolo Bonzini <bonzini@gnu.org>
11935
11936 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11937 Fix typos in names.
11938
fedc1775
PB
119392009-03-30 Paolo Bonzini <bonzini@gnu.org>
11940
fcb82ab0
UB
11941 * combine.c (simplify_comparison): Use have_insn_for.
11942 * dojump.c (do_jump): Likewise.
fedc1775 11943
65c5ae8b
PB
119442009-03-30 Paolo Bonzini <bonzini@gnu.org>
11945
11946 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11947 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11948 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11949 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11950 instead of sparc_compare_emitted.
11951 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11952 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11953 instead of sparc_compare_emitted.
11954
d25aa7ab
PB
119552009-03-30 Paolo Bonzini <bonzini@gnu.org>
11956
11957 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11958 enter/exit cfglayout mode.
11959 (pass_partition_block): Require it.
11960 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11961 (combine_instructions): Track basic blocks instead of labels.
11962 (update_cfg_for_uncondjump): New.
11963 (try_combine): Use it. Update jumps after rescanning.
11964 (pass_combine): Require PROP_cfglayout.
11965 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11966
9c9e26f5
PB
119672009-03-30 Paolo Bonzini <bonzini@gnu.org>
11968
fcb82ab0
UB
11969 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11970 Provide/destroy PROP_cfglayout respectively.
11971 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11972 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11973
28ddeea1
PB
119742009-03-30 Paolo Bonzini <bonzini@gnu.org>
11975
11976 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11977 fold_convert_const_fixed_from_fixed,
11978 fold_convert_const_fixed_from_int,
11979 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11980 set TREE_CONSTANT_OVERFLOW.
11981 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11982 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11983
ebfd146a
IR
119842009-03-30 Ira Rosen <irar@il.ibm.com>
11985
11986 * tree-vect-loop-manip.c: New file.
11987 * tree-vectorizer.c: Update documentation and included files.
11988 (vect_loop_location): Make extern.
11989 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11990 (rename_variables_in_bb, rename_variables_in_loop,
11991 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11992 slpeel_update_phi_nodes_for_guard1,
11993 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11994 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11995 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11996 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11997 find_loop_location): Likewise.
11998 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11999 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12000 get_vectype_for_scalar_type, vect_is_simple_use,
12001 supportable_widening_operation, supportable_narrowing_operation):
12002 Likewise.
12003 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
12004 (new_loop_vec_info, destroy_loop_vec_info,
12005 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
12006 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12007 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12008 (vect_supportable_dr_alignment): Likewise.
12009 * tree-vectorizer.h (tree-data-ref.h): Include.
12010 (vect_loop_location): Declare.
12011 Reorganize function declarations according to the new file structure.
12012 * tree-vect-loop.c: New file.
2ba9daa7 12013 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
12014 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12015 * tree-vect-data-refs.c: New file.
12016 * tree-vect-patterns.c (timevar.h): Don't include.
12017 * tree-vect-stmts.c: New file.
2ba9daa7 12018 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 12019 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
12020 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12021 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
12022 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12023 (tree-vect-analyze.o): Remove.
12024 (tree-vect-transform.o): Likewise.
12025 (tree-vect-data-refs.o): Add rule.
2ba9daa7 12026 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
12027 tree-vect-slp.o): Likewise.
12028 (tree-vect-patterns.o): Remove redundant dependencies.
12029 (tree-vectorizer.o): Likewise.
12030 * tree-vect-slp.c: New file.
12031
40a1cfba
RW
120322009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12033
12034 * optc-gen.awk: Warn if an option flag has multiple different
12035 help strings.
12036
a9a7a9a2
SP
120372009-03-30 Sebastian Pop <sebastian.pop@amd.com>
12038
12039 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12040 -floop-block): Document dependences on PPL, CLooG and Graphite.
12041
8ce94e44
JM
120422009-03-30 Joseph Myers <joseph@codesourcery.com>
12043
12044 PR rtl-optimization/323
12045 * c-common.c (c_fully_fold, convert_and_check,
12046 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12047 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12048 * c-common.def (EXCESS_PRECISION_EXPR): New.
12049 * c-cppbuiltin.c (builtin_define_float_constants): Define
12050 constants with enough digits for long double.
12051 * c-lex.c (interpret_float): Interpret constant with excess
12052 precision where appropriate.
12053 * c-opts.c (c_common_post_options): Set
12054 flag_excess_precision_cmdline. Give an error for
12055 -fexcess-precision=standard for C++ for processors where the
12056 option is significant.
12057 * c-parser.c (c_parser_conditional_expression): Handle excess
12058 precision in condition.
12059 * c-typeck.c (convert_arguments): Handle arguments with excess
12060 precision.
12061 (build_unary_op): Move excess precision outside operation.
12062 (build_conditional_expr): Likewise.
12063 (build_compound_expr): Likewise.
12064 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12065 (build_modify_expr): Handle excess precision in RHS.
12066 (convert_for_assignment): Handle excess precision in converted
12067 value.
12068 (digest_init, output_init_element, process_init_element): Handle
12069 excess precision in initializer.
12070 (c_finish_return): Handle excess precision in return value.
12071 (build_binary_op): Handle excess precision in operands and add
12072 excess precision as needed for operation.
12073 * common.opt (-fexcess-precision=): New option.
12074 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12075 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12076 For standard excess precision, output explicit conversion to and
12077 truncation from XFmode.
12078 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12079 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12080 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12081 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12082 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12083 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12084 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12085 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12086 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12087 define_splits, sqrt<mode>2): Disable where appropriate for
12088 standard excess precision.
12089 * convert.c (convert_to_real): Do not shorten arithmetic to type
12090 for which excess precision would be used.
12091 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12092 * doc/invoke.texi (-fexcess-precision=): Document option.
12093 (-mfpmath=): Correct index entry.
12094 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12095 flag_excess_precision): New.
12096 * langhooks.c (lhd_post_options): Set
12097 flag_excess_precision_cmdline.
12098 * opts.c (common_handle_option): Handle -fexcess-precision=.
12099 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12100 init_excess_precision): New.
12101 (lang_dependent_init_target): Call init_excess_precision.
12102 * tree.c (excess_precision_type): New.
12103 * tree.h (excess_precision_type): Declare.
12104
1e57bf47
JM
121052009-03-30 Joseph Myers <joseph@codesourcery.com>
12106
12107 PR c/35235
12108 * c-typeck.c (build_component_ref): Do not copy qualifiers from
12109 non-lvalue to component.
12110
148e4216
JM
121112009-03-29 Joseph Myers <joseph@codesourcery.com>
12112
12113 PR preprocessor/34695
12114 * Makefile.in (c-opts.o): Depend on c-tree.h.
12115 * c-common.c: Move down include of diagnostic.h.
12116 (done_lexing, c_cpp_error): New.
12117 * c-common.h (done_lexing): Declare.
12118 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12119 (parse_in).
12120 * c-opts.c: Include c-tree.h.
12121 (c_common_init_options): Set preprocessor error callback.
12122 (c_common_handle_option): Do not set preprocessor
12123 inhibit_warnings, warnings_are_errors, warn_system_headers,
12124 pedantic_errors or inhibit_warnings flags.
12125 (c_common_post_options): Do not check cpp_errors (parse_in).
12126 (c_common_finish): Do not output dependencies if there were
12127 errors. Do not check return value of cpp_finish.
12128 * c-ppoutput.c (pp_file_change): Set input_location.
12129 * c-tree.h (c_cpp_error): Declare.
12130 * diagnostic.c (diagnostic_set_info_translated): Also initialize
12131 override_column.
12132 (diagnostic_build_prefix): Check override_column.
12133 * diagnostic.h (diagnostic_info): Add override_column field.
12134 (diagnostic_override_column): Define.
12135
2ec5deb5
PB
121362009-03-28 Paolo Bonzini <bonzini@gnu.org>
12137
ba20e309
UB
12138 * c-common.c (c_expand_expr, c_staticp): Remove.
12139 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12140 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12141 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12142 * c-gimplify.c (gimplify_compound_literal_expr,
12143 optimize_compound_literals_in_ctor): Remove.
12144 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12145 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12146 * c-semantics.c (emit_local_var): Remove.
12147
12148 * langhooks-def.h (lhd_expand_expr): Remove.
12149 * langhooks.c (lhd_expand_expr): Remove.
12150 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12151
12152 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12153 handling from c-semantics.c; don't call into langhook.
12154 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12155 * gimplify.c (gimplify_compound_literal_expr,
12156 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12157 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12158 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12159 as was done in c-gimplify.c.
12160 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12161 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12162 Move from c-common.h.
12163 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
12164
12165 * tree.c (staticp): Do not call langhook.
12166 * langhooks.c (lhd_staticp): Delete.
12167 * langhooks-def.h (lhd_staticp): Delete prototype.
12168 (LANG_HOOKS_STATICP): Delete.
12169 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12170
ba20e309
UB
12171 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12172 instead of DECL_STMTs.
2ec5deb5 12173
928c19bb
JM
121742009-03-29 Joseph Myers <joseph@codesourcery.com>
12175
12176 PR c/456
12177 PR c/5675
12178 PR c/19976
12179 PR c/29116
12180 PR c/31871
12181 PR c/35198
12182 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12183 void_type_node.
12184 (fold_call_expr): Return a NOP_EXPR from folding rather than the
12185 contained expression.
ba20e309 12186 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
12187 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
12188 conditional expressions for C.
12189 (decl_constant_value_for_optimization): Move from
ba20e309 12190 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
12191 whether optimizing and that the expression is a VAR_DECL not of
12192 array type instead of doing such checks in the caller. Do not
12193 check pedantic. Call gcc_unreachable for C++.
12194 * c-common.def (C_MAYBE_CONST_EXPR): New.
12195 * c-common.h (c_fully_fold, c_save_expr,
12196 decl_constant_value_for_optimization): New prototypes.
12197 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12198 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12199 EXPR_INT_CONST_OPERANDS): Define.
12200 * c-convert.c (convert): Strip nops from expression.
12201 * c-decl.c (groktypename): Take extra parameters expr and
12202 expr_const_operands. Update call to grokdeclarator.
12203 (start_decl): Update call to grokdeclarator. Add statement for
12204 expressions used in type of decl.
12205 (grokparm): Update call to grokdeclarator.
12206 (push_parm_decl): Update call to grokdeclarator.
12207 (build_compound_literal): Add parameter non_const and build a
12208 C_MAYBE_COSNT_EXPR if applicable.
12209 (grokdeclarator): Take extra parameters expr and
12210 expr_const_operands. Track expressions used in declaration
12211 specifiers and declarators. Fold array sizes and track whether
12212 they are constant expressions and whether they are integer
12213 constant expressions.
12214 (parser_xref_tag): Set expr and expr_const_operands fields in
12215 return value.
12216 (grokfield): Update call to grokdeclarator.
12217 (start_function): Update call to grokdeclarator.
12218 (build_null_declspecs): Set expr and expr_const_operands fields in
12219 return value.
12220 (declspecs_add_type): Handle expressions in typeof specifiers.
12221 * c-parser.c (c_parser_declspecs): Set expr and
12222 expr_const_operands fields for declaration specifiers.
12223 (c_parser_enum_specifier): Likewise.
12224 (c_parser_struct_or_union_specifier): Likewise.
12225 (c_parser_typeof_specifier): Likewise. Update call to
12226 groktypename. Fold expression as needed. Return expressions with
12227 type instead of adding statements.
12228 (c_parser_attributes): Update calls to c_parser_expr_list.
12229 (c_parser_statement_after_labels): Fold expression before passing
12230 to objc_build_throw_stmt.
12231 (c_parser_condition): Fold expression.
12232 (c_parser_asm_operands): Fold expression.
12233 (c_parser_conditional_expression): Use c_save_expr. Update call
12234 to build_conditional_expr.
12235 (c_parser_alignof_expression): Update call to groktypename.
12236 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12237 original_code. Fold expression argument of va_arg. Create
12238 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12239 argument to va_arg. Update calls to groktypename. Fold array
12240 index for offsetof. Verify that first argument to
12241 __builtin_choose_expr has integer type.
12242 (c_parser_postfix_expression_after_paren_type): Update calls to
12243 groktypename and build_compound_literal. Handle expressions with
12244 side effects in type name.
12245 (c_parser_postfix_expression_after_primary): Update call to
12246 c_parser_expr_list. Set original_code for calls to
12247 __builtin_constant_p.
12248 (c_parser_expr_list): Take extra parameter fold_p. Fold
12249 expressions if requested.
12250 (c_parser_objc_type_name): Update call to groktypename.
12251 (c_parser_objc_synchronized_statement): Fold expression.
12252 (c_parser_objc_receiver): Fold expression.
12253 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12254 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12255 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12256 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12257 (struct c_typespec): Add elements expr and expr_const_operands.
12258 (struct c_declspecs): Add elements expr and expr_const_operands.
12259 (groktypename, build_conditional_expr, build_compound_literal):
12260 Update prototypes.
12261 (in_late_binary_op): Declare.
12262 * c-typeck.c (note_integer_operands): New function.
12263 (in_late_binary_op): New variable.
12264 (decl_constant_value_for_broken_optimization): Move to c-common.c
12265 and rename to decl_constant_value_for_optimization.
12266 (default_function_array_conversion): Do not strip nops.
12267 (default_conversion): Do not call
12268 decl_constant_value_for_broken_optimization.
12269 (build_array_ref): Do not fold result.
12270 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12271 result when operand is a VLA.
12272 (c_expr_sizeof_type): Update call to groktypename. Handle
12273 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12274 result when operand names a VLA type.
12275 (build_function_call): Update call to build_compound_literal.
12276 Only fold result for calls to __builtin_* functions. Strip
12277 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12278 the function designator.
12279 (convert_arguments): Fold arguments. Update call to
12280 convert_for_assignment.
12281 (build_unary_op): Handle increment and decrement of
12282 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12283 decrement earlier. Fold operand of increment and decrement.
12284 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12285 built for integer operand. Wrap returns that are INTEGER_CSTs
12286 without being integer constant expressions or that have integer
12287 constant operands without being INTEGER_CSTs.
12288 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12289 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12290 result is an integer constant expression or can be used in
12291 unevaluated parts of one and avoid folding and wrap as
12292 appropriate. Fold operands before possibly doing -Wsign-compare
12293 warnings.
12294 (build_compound_expr): Wrap result for C99 if operands can be used
12295 in integer constant expressions.
12296 (build_c_cast): Update call to digest_init. Do not ignore
12297 overflow from casting floating-point constants to integers. Wrap
12298 results that could be confused with integer constant expressions,
12299 null pointer constants or floating-point constants.
12300 (c_cast_expr): Update call to groktypename. Handle expressions
12301 included in type name.
12302 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12303 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12304 Update calls to convert_for_assignment.
12305 (convert_for_assignment): Take new parameter
12306 null_pointer_constant. Do not strip nops or call
12307 decl_constant_value_for_broken_optimization. Set
12308 in_late_binary_op for conversions to boolean.
12309 (store_init_value): Update call to digest_init.
12310 (digest_init): Take new parameter null_pointer_constant. Do not
12311 call decl_constant_value_for_broken_optimization. pedwarn for
12312 initializers not constant expressions. Update calls to
12313 convert_for_assignment.
12314 (constructor_nonconst): New.
12315 (struct constructor_stack): Add nonconst element.
12316 (really_start_incremental_init, push_init_level, pop_init_level):
12317 Handle constructor_nonconst and nonconst element.
12318 (set_init_index): Call constant_expression_warning for array
12319 designators.
12320 (output_init_element): Fold value. Set constructor_nonconst as
12321 applicable. pedwarn for initializers not constant expressions.
12322 Update call to digest_init. Call constant_expression_warning
12323 where constant initializers are required.
12324 (process_init_element): Use c_save_expr.
12325 (c_finish_goto_ptr): Fold expression.
12326 (c_finish_return): Fold return value. Update call to
12327 convert_for_assignment.
12328 (c_start_case): Fold switch expression.
12329 (c_process_expr_stmt): Fold expression.
12330 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12331 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12332 (build_binary_op): Track whether results are integer constant
12333 expressions or may occur in such, disable folding and wrap results
12334 as applicable. Fold operands for -Wsign-compare warnings unless
12335 in_late_binary_op.
12336 (c_objc_common_truthvalue_conversion): Handle results folded to
12337 integer constants that are not integer constant expressions.
12338 * doc/extend.texi: Document when typeof operands are evaluated,
12339 that condition of __builtin_choose_expr is an integer constant
12340 expression, and more about use of __builtin_constant_p in
12341 initializers.
12342
5babbcc0
RG
123432009-03-29 Richard Guenther <rguenther@suse.de>
12344
12345 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12346 propagate addresses of array references.
12347
0340f2ba
SB
123482009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12349
12350 * regmove.c (perhaps_ends_bb_p): Remove.
12351 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12352 from INSN and check that the main loop stays within that basic block.
12353 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12354 (regmove_forward_pass): Split out from regmove_optimize. Use
12355 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12356 (regmove_backward_pass): Split out from regmove_optimize. Use
12357 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12358 (regmove_optimize): Simplify.
12359
eeae74a1
L
123602009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12361
12362 PR target/39545
12363 * config/i386/i386.c (classify_argument): Ignore flexible array
12364 member in struct and warn ABI change.
12365
a24078b2
L
123662009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12367
12368 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12369
12370 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12371 (ix86_adjust_cost): Updated.
12372
a8da523f
JH
123732009-03-29 Jan Hubicka <jh@suse.cz>
12374
12375 PR middle-end/28850
12376 * tree-pass.h (pass_cleanup_eh): New function.
12377 (remove_unreachable_regions): Break code handling RTL
12378 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12379 that can not be reached by runtime.
12380 (can_be_reached_by_runtime): New function.
12381 (label_to_region_map): New function.
12382 (num_eh_regions): New function.
12383 (rtl_remove_unreachable_regions): New function.
12384 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12385 (remove_eh_region): New function.
12386 * except.h: Include sbitmap and vecprim.
12387 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12388 num_eh_regions): Declare.
12389 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12390 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12391 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12392 (tree_empty_eh_handler_p): New function.
12393 (cleanup_empty_eh): New function.
12394 (cleanup_eh): New function.
12395 (pass_cleanup_eh): New function.
12396
98f358e5
JH
123972009-03-29 Jan Hubicka <jh@suse.cz>
12398
12399 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12400 for removed regions.
12401
13a9fa44
JH
124022009-03-29 Jan Hubicka <jh@suse.cz>
12403
12404 * except.c (dump_eh_tree): Dump all datastructures.
12405
e38cf733
JH
124062009-03-29 Jan Hubicka <jh@suse.cz>
12407
12408 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12409 (duplicate_eh_regions_1): Likewise.
12410 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12411 vector; call EH verification.
12412 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12413 Be ready for region being removed.
12414
12802c2b
JH
124152009-03-29 Jan Hubicka <jh@suse.cz>
12416
12417 * bitmap.c (bitmap_last_set_bit): New function.
12418 * bitmap.h (bitmap_last_set_bit): Declare.
12419
4ea80a41
DA
124202009-03-29 David Ayers <ayers@fsfe.org>
12421
12422 PR objc/27377
12423 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12424 by calling objc_compare_types and surpress warnings about
12425 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12426
4ea80a41 124272009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12428
12429 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12430 call initialize_inline_failed.
12431 (initialize_inline_failed): Move it from here ...
12432 * cgraph.c (initialize_inline_failed): ... to here.
12433 (cgraph_create_edge): Call initialize_inline_failed rather than
12434 setting inline_failed directly.
12435
7fb0ee07
BE
124362009-03-29 Ben Elliston <bje@au.ibm.com>
12437
12438 PR target/32542
12439 * sysv4.opt (msdata): Improve comment.
12440 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12441 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12442
0be77bf2
BE
124432009-03-29 Ben Elliston <bje@au.ibm.com>
12444
12445 PR target/30451
12446 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12447 load and store attributes.
12448
593812b6
BE
124492009-03-29 Ben Elliston <bje@au.ibm.com>
12450
12451 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12452 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12453 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12454 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12455 __builtin_infq and __builtin_huge_valq.
12456
8272d11d
AS
124572009-03-28 Anatoly Sokolov <aesok@post.ru>
12458
12459 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12460 atmega8m1 devices.
12461 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12462 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12463
74fe548b
XDL
124642009-03-28 Xinliang David Li <davidxl@google.com>
12465
2ba9daa7 12466 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12467 (do_dbg_cnt): New function.
12468
33977f81
JH
124692009-03-28 Jan Hubicka <jh@suse.cz>
12470
12471 Merge from pretty-ipa:
12472
12473 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12474
33977f81
JH
12475 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12476 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12477 * passes.c (function_called_by_processed_nodes_p): New.
12478 * ipa-pure-const.c (check_call): Fix handling of operands.
12479 (analyze_function): Dump debug output for skipped bodies.
12480 (local_pure_const): Use function_called_by_processed_nodes_p.
12481 * dwarf2out.c (reference_to_unused): Use output.
12482 * passes.c (do_per_function_toporder): Likewise.
12483
12484 2008-11-12 Jan Hubicka <jh@suse.cz>
12485
12486 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12487 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12488 state_set_in_source enum
12489 (check_decl): Ignore memory tags; do not set fake looping flags;
12490 dump diagnostics.
12491 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12492 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12493 (check_call, analyze_function): Rewrite.
12494 (check_stmt): New.
12495 (add_new_function): Update call of analyze_function.
12496 (generate_summary): Add call of analyze_function.
12497 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12498 (local_pure_const): New function.
12499 (pass_local_pure_const): New pass.
12500 * ipa-inline.c (inline_transform): Set after_inlining.
12501 * tree-eh.c (stmt_can_throw_external): New.
12502 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12503 work with aliasing built.
12504 * tree-flow.h (stmt_can_throw_external): New.
12505 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12506 and local pure/const pass in early and late optimization queue.
ba20e309 12507
617f3897
MJ
125082009-03-28 Martin Jambor <mjambor@suse.cz>
12509
12510 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12511 allow_func_align.
12512 (fold_binary): Allow function decl aligment consideration is the
12513 second argument is integer constant one.
12514 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12515 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12516 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12517
fe89fbc5
JH
125182009-03-28 Jan Hubicka <jh@suse.cz>
12519
12520 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12521 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12522 * function.h (rtl_data): Add nothrow flag.
12523 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12524 set DECL_NOTHROW for AVAILABLE functions.
12525
574872ff
JJ
125262009-03-28 Jakub Jelinek <jakub@redhat.com>
12527
b3bf8855
JJ
12528 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12529 following vector keyword has expansion starting with pixel or bool
12530 keyword, expand vector to __vector and pixel or bool to __pixel or
12531 __bool.
12532
574872ff
JJ
12533 PR c++/39554
12534 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12535 warn_if_disallowed_function_p): Removed.
12536 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12537 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12538 warning_if_disallowed_function_p.
12539 * flags.h (warn_if_disallowed_function_p,
12540 warn_disallowed_functions): Removed.
12541 * common.opt (Wdisallowed-function-list=): Removed.
12542 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12543
b005da11
RG
125442009-03-28 Richard Guenther <rguenther@suse.de>
12545
12546 PR tree-optimization/38723
12547 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12548 the entry block.
12549
1de812a6
JH
125502009-03-28 Jan Hubicka <jh@suse.cz>
12551
12552 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12553 test introduced by my previous patch.
12554
fbb789d4
RG
125552009-03-28 Richard Guenther <rguenther@suse.de>
12556
12557 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12558 the PHIs value undefined.
12559
6f1873a1
JH
125602009-03-28 Jan Hubicka <jh@suse.cz>
12561
12562 * tree-pass.h (pass_fixup_cfg): New pass.
12563 * ipa-inline.c (inline_transform): Set
12564 always_inline_functions_inlined/after_inlining.
12565 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12566 (pass_fixup_cfg): New pass.
12567 * passes.c (init_optimization_passes): Add fixup_cfg.
12568
17021bc8
RG
125692009-03-28 Richard Guenther <rguenther@suse.de>
12570
12571 PR tree-optimization/38458
12572 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12573 argument use the arguments copy-of value.
12574
e8114fba
RG
125752009-03-28 Richard Guenther <rguenther@suse.de>
12576
12577 PR tree-optimization/38180
12578 * tree-ssa-ccp.c (get_default_value): Simplify.
12579 (likely_value): Likewise.
12580 (surely_varying_stmt_p): Properly handle VOP case.
12581 (ccp_initialize): Likewise.
12582 (ccp_fold): Handle propagating through *&.
12583 (fold_const_aggregate_ref): Also handle decls.
12584
257eb6e3
JH
125852009-03-28 Jan Hubicka <jh@suse.cz>
12586
12587 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12588 * cgraph.h (cgraph_node): Likewise.
12589 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12590 (cgraph_reset_node): Use process flag.
12591 (cgraph_mark_functions_to_output): Likewise.
12592 (cgraph_expand_function): Likewise.
12593 (cgraph_expand_all_functions): Likewise.
12594 (cgraph_output_in_order): Likewise.
12595 * dwarf2out.c (reference_to_unused): Likewise.
12596 * passes.c do_per_function_toporder): Likewise.
12597
61a05df1
JH
125982009-03-28 Jan Hubicka <jh@suse.cz>
12599
12600 Bring from lto-branch:
ba20e309 12601
61a05df1
JH
12602 2008-09-03 Doug Kwan <dougkwan@google.com>
12603
12604 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12605 enums instead of reason strings.
12606 * cgraph.c (cgraph_create_edge): Same.
12607 (cgraph_inline_failed_string): New function.
12608 * cgraph.h (cgraph_inline_failed_t): New enum type.
12609 (cgraph_inline_failed_string): New prototype.
12610 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12611 char pointer to cgraph_inline_failed_t.
12612 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12613 (cgraph_default_inline_p): Ditto.
60839f5d 12614 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12615 to cgraph_inline_failed_t pointer.
12616 * cif-code.def: New file.
12617 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12618 reason string.
12619 (cgraph_check_inline_limits): Change type of REASON to pointer to
12620 cgraph_inline_failed_t. Replace reason strings with enums.
12621 (cgraph_default_inline_p): Ditto.
12622 (cgraph_recursive_inlining_p): Ditto.
12623 (update_caller_keys): Change type of FAILED_REASON to
12624 cgraph_inline_failed_t.
12625 (cgraph_set_inline_failed): Change type of REASON to pointer to
12626 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12627 convert enums to strings for text output.
12628 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12629 to be of type cgraph_inline_failed_t. Replace reason strings with
12630 enums. Call cgraph_inline_failed_string to covert enums
12631 to strings for text output.
12632 (cgraph_decide_inlining): Replace reason strings with enums.
12633 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12634 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12635 for text output.
12636 * tree-inline.c (expand_call_inline): Change type of REASON
12637 to cgraph_inline_failed_t. Replace reason strings with enums.
12638 Call cgraph_inline_failed_string for text output.
12639 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12640 (cgraph.o): Ditto.
12641
144e8aac
JH
126422009-03-28 Jan Hubicka <jh@suse.cz>
12643
12644 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12645 cgraph_clone_node): Remove master clone handling.
12646 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12647 * cgraph.h (master_clone): Remove.
12648 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12649 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12650 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12651
4a371c8d
JH
126522009-03-28 Jan Hubicka <jh@suse.cz>
12653
12654 * cgraph.c (cgraph_function_body_availability): Functions declared
12655 inline are always safe to assume that it is not going to be replaced.
12656
6cdb0ee3
RG
126572009-03-28 Richard Guenther <rguenther@suse.de>
12658
12659 PR tree-optimization/38513
12660 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12661 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12662 EXC_PTR_EXPR and FILTER_EXPR.
12663 (get_ref_from_reference_ops): Likewise.
12664
8ca1fd76
RG
126652009-03-28 Richard Guenther <rguenther@suse.de>
12666
12667 PR tree-optimization/38968
12668 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12669 Use FLOOR_MOD_EXPR to compute misalignment.
12670
a254e44d
RG
126712009-03-28 Richard Guenther <rguenther@suse.de>
12672
12673 PR tree-optimization/37795
12674 * tree.h (combine_comparisons): Declare.
12675 * fold-const.c (combine_comparisons): Export.
12676 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12677 comparisons.
12678 (ifcombine_iforif): Use combine_comparisons.
12679
a8ee227c
JH
126802009-03-28 Jan Hubicka <jh@suse.cz>
12681
12682 * tree-eh.c (inlinable_call_p): New function.
12683 (make_eh_edges): Use it.
12684 (verify_eh_edges): Use it.
12685 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12686 * except.c (reachable_next_level): Add inlinable_function argument
12687 (sjlj_find_directly_reachable_regions): Update.
12688 (add_reachable_handler): Do not set saw_any_handlers.
12689 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12690 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12691 Add new inlinable call parameter.
12692 (can_throw_internal, can_throw_external): Update.
12693 * except.h (can_throw_internal_1, can_throw_external_1,
12694 foreach_reachable_handler): Update declaration.
12695
52c0e446
JM
126962009-03-28 Joseph Myers <joseph@codesourcery.com>
12697
12698 * config/arm/t-arm-coff, config/h8300/coff.h,
12699 config/i386/i386-aout.h, config/i386/i386-coff.h,
12700 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12701 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12702 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12703 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12704 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12705 sys-types.h: Remove.
12706 * Makefile.in: Remove protoize and fixproto support and references
12707 in comments.
12708 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12709 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12710 Remove.
12711 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12712 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12713 unprotoize$(exeext).
12714 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12715 (.PHONY): Don't depend on proto.
12716 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12717 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12718 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12719 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12720 build/gen-protos.o, build/scan.o, xsys-protos.h,
12721 build/fix-header$(build_exeext), build/fix-header.o,
12722 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12723 stmp-install-fixproto): Remove.
12724 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12725 SYSCALLS.c or fixproto files.
12726 (install-common): Don't install protoize.
12727 (install-headers-tar, install-headers-cpio, install-headers-cp):
12728 Don't depend on $(STMP_FIXPROTO).
12729 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12730 install fixproto files or write out fixproto settings.
12731 (uninstall): Don't uninstall protoize.
12732 * config.gcc (use_fixproto): Remove.
12733 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12734 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12735 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12736 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12737 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12738 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12739 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12740 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12741 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12742 * config/t-vxworks (STMP_FIXPROTO): Remove.
12743 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12744 STMP_FIXPROTO): Remove.
12745 * config.in, configure: Regenerate.
12746 * crtstuff.c (gid_t, uid_t): Don't undefine.
12747 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12748 (arm-*-coff, arm-*-aout: Remove target entries.
12749 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12750 Remove mention of AIX 4.1.
12751 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12752 * doc/invoke.texi (Running Protoize): Remove.
12753 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12754 (Protoize Caveats): Remove.
12755 * tsystem.h: Update comments on headers assumed to exist.
12756
20a07f44
VM
127572009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12758
12759 * genautomata.c: Add a new year to the copyright. Add a new
12760 reference.
12761 (struct insn_reserv_decl): Add comments for member bypass_list.
12762 (find_bypass): Remove.
12763 (insert_bypass): New.
12764 (process_decls): Use insert_bypass.
12765 (output_internal_insn_latency_func): Output all bypasses with the
12766 same input insn in one switch case.
12767
12768 * rtl.def (define_bypass): Describe bypass choice.
12769 * doc/md.texi (define_bypass): Ditto.
12770
3a0d06c1
RB
127712009-03-27 Richard Guenther <rguenther@suse.de>
12772
12773 * gimplify.c (mark_addressable): Export.
12774 * tree-flow.h (mark_addressable): Declare.
12775 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12776 * tree-ssa.c (verify_phi_args): Verify that address taken
12777 variables have TREE_ADDRESSABLE set.
12778
127792009-03-27 Richard Guenther <rguenther@suse.de>
12780
12781 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12782 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12783 Do not mark decls TREE_ADDRESSABLE.
12784 (build_fold_addr_expr): Adjust.
12785 (fold_addr_expr): Remove.
12786 (fold_unary): Use build_fold_addr_expr.
12787 (fold_comparison): Likewise.
12788 (split_address_to_core_and_offset): Likewise.
12789 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12790 TREE_ADDRESSABLE.
12791 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12792 (gimplify_modify_expr_to_memcpy): Mark source and destination
12793 addressable.
12794 * omp-low.c (create_omp_child_function): Mark the object decl
12795 TREE_ADDRESSABLE.
12796 (lower_rec_input_clauses): Mark the var we take the address of
12797 TREE_ADDRESSABLE.
12798 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12799
2ac26e15
L
128002009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12801
12802 PR middle-end/39315
12803 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12804 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12805
472c7fbd
RG
128062009-03-27 Richard Guenther <rguenther@suse.de>
12807
12808 PR tree-optimization/39120
12809 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12810 constraints.
12811 (handle_lhs_call): Process return constraints. Add escape
12812 constraints if necessary.
12813 (handle_const_call): Fill out return constraints. Make nested
12814 case more precise. Avoid consttmp if possible.
12815 (handle_pure_call): Fill out return constraints. Avoid
12816 callused if possible.
12817 (find_func_aliases): Simplify call handling.
12818
128192009-03-27 Richard Guenther <rguenther@suse.de>
12820
12821 PR tree-optimization/39120
12822 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12823 as a representative.
12824 (solve_graph): Do propagate CALLUSED.
12825 (handle_pure_call): Use a scalar constraint from CALLUSED for
12826 the return value.
12827 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12828 solutions.
12829
d9223014
L
128302009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12831
12832 PR c/39323
12833 * c-common.c (handle_aligned_attribute): Properly check alignment
12834 overflow. Use (1U << i) instead of (1 << i).
12835
ba20e309 12836 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12837
12838 * expr.h (get_mem_align_offset): Updated.
12839
12840 * tree.h (tree_decl_common): Change align to "unsigned int" and
12841 move it before pointer_alias_set.
12842
689b689c
L
128432009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12844 Jakub Jelinek <jakub@redhat.com>
12845
12846 PR target/38034
12847 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12848 gr_register_operand with gr_reg_or_0_operand.
12849 (cmpxchg_rel_di): Likewise.
12850 (sync_lock_test_and_set<mode>): Likewise.
12851
c619e982
L
128522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12853
12854 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12855 (true_regnum): Likewise.
12856
12857 * rtlanal.c (subreg_info): Moved to ...
12858 * rtl.h (subreg_info): Here. New.
12859 (subreg_get_info): New.
12860
12861 * rtlanal.c (subreg_get_info): Make it extern.
12862
51212b32
L
128632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12864
12865 PR target/39472
12866 * config/i386/i386.c (ix86_abi): New.
12867 (override_options): Handle -mabi=.
ba20e309 12868 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12869 (ix86_call_abi_override): Likewise.
12870 (init_cumulative_args): Likewise.
12871 (function_arg_advance): Likewise.
12872 (function_arg_64): Likewise.
12873 (function_arg): Likewise.
12874 (ix86_pass_by_reference): Likewise.
12875 (ix86_function_value_regno_p): Likewise.
12876 (ix86_build_builtin_va_list_abi): Likewise.
12877 (setup_incoming_varargs_64): Likewise.
12878 (is_va_list_char_pointer): Likewise.
12879 (ix86_init_machine_status): Likewise.
ba20e309 12880 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12881 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12882 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12883 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12884 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12885 with ix86_abi.
12886 (ix86_fn_abi_va_list): Updated.
12887
12888 * config/i386/i386.h (ix86_abi): New.
12889 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12890 (CONDITIONAL_REGISTER_USAGE): Likewise.
12891 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12892 (machine_function): Likewise.
12893
12894 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12895 with ix86_abi.
12896 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12897 (STACK_BOUNDARY): Likewise.
12898 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12899
12900 * config/i386/i386.opt (mabi=): New.
12901
12902 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12903 return enum calling_abi.
12904 (ix86_function_type_abi): Likewise.
12905 (ix86_function_abi): Removed.
12906
12907 * doc/invoke.texi: Document -mabi= option for x86.
12908
7338ea63
KG
129092009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12910
12911 * builtins.c (real_dconstp): Delete.
12912 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12913
68599f33
DS
129142009-03-27 Dodji Seketeli <dodji@redhat.com>
12915 Jakub Jelinek <jakub@redhat.com>
12916
12917 PR debug/37959
12918 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12919 (gen_subprogram_die): When a function is explicit, generate the
12920 DW_AT_explicit attribute.
12921 * langhooks.h (struct lang_hooks_for_decls): Add
12922 function_decl_explicit_p langhook.
12923 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12924 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12925
9f5e9983
JJ
129262009-03-27 Jakub Jelinek <jakub@redhat.com>
12927
64d7685c
JJ
12928 * builtins.c (fold_builtin_memory_op): Optimize memmove
12929 into memcpy if we can prove source and destination don't overlap.
12930
9f5e9983
JJ
12931 * tree-inline.c: Include gt-tree-inline.h.
12932 (clone_fn_id_num): New variable.
12933 (clone_function_name): New function.
12934 (tree_function_versioning): Use it.
12935 * Makefile.in (GTFILES): Add tree-inline.c.
12936
e54d52a8
MM
129372009-03-27 Mark Mitchell <mark@codesourcery.com>
12938
12939 * BASE-VER: Change to 4.5.0.
12940
e9d51dc6
XDL
129412009-03-27 Xinliang David Li <davidxl@google.com>
12942
12943 PR tree-optimization/39557
12944 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12945
4577cea1
XDL
129462009-03-27 Xinliang David Li <davidxl@google.com>
12947
12948 PR tree-optimization/39548
2ba9daa7 12949 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12950 candidate check.
12951
0f7464f4
L
129522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12953
12954 * c-common.c (pointer_int_sum): Use %wd on return from
12955 tree_low_cst.
12956
a8847a7f
L
129572009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12958
12959 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12960 on return from tree_low_cst.
12961
b0957daf
AP
129622009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12963
12964 PR c++/36799
ba20e309
UB
12965 * ginclude/stdarg.h (va_copy): Define also for
12966 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12967
a5f805df
MLI
129682009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12969
12970 PR c++/35652
12971 * builtins.h (c_strlen): Do not warn here.
12972 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12973 * c-common.c (pointer_int_sum): Take an explicit location.
12974 Warn about offsets out of bounds.
12975 * c-common.h (pointer_int_sum): Adjust declaration.
12976
6f401211
RW
129772009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12978
a5f805df
MLI
12979 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12980 markup glitch.
6f401211 12981
5a59b39e
JJ
129822009-03-26 Jakub Jelinek <jakub@redhat.com>
12983
12984 PR c++/39554
12985 * opts.c (warn_if_disallowed_function_p): Don't assume
12986 get_callee_fndecl must return non-NULL.
12987
d5f89b53
VM
129882009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12989
12990 PR rtl-optimization/39522
12991 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12992 when reg_reloaded_valid is set.
12993
61238a79
UW
129942009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12995
12996 * config/spu/divv2df3.c: New file.
12997 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12998 (DPBIT_FUNCS): Filter out _div_df.
12999
03f8829b
BS
130002009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
13001
13002 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13003 a jump insn, count that jump in the distance to the loop start.
13004
9fdcdc74
KK
130052009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
13006
13007 PR target/39523
13008 * config/sh/sh.c (calc_live_regs): Fix condition for global
13009 registers except PIC_OFFSET_TABLE_REGNUM.
13010
46994828
KT
130112009-03-25 Kai Tietz <kai.tietz@onevision.com>
13012
13013 PR/39518
13014 * doc/invoke.texi (-mconsole): New.
13015 (-mcygwin): New.
13016 (-mno-cygwin): New.
13017 (-mdll): New.
13018 (-mnop-fun-dllimport): New.
13019 (-mthread): New.
13020 (-mwin32): New.
13021 (-mwindows): New.
13022 (sub section "i386 and x86-64 Windows Options"): New.
13023
60839f5d 130242009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
13025
13026 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13027 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13028
ae560440
RG
130292009-03-25 Richard Guenther <rguenther@suse.de>
13030
13031 PR middle-end/39497
13032 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13033 of -Wno-error.
13034
cd510f15
AM
130352009-03-25 Andrey Belevantsev <abel@ispras.ru>
13036
13037 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13038 neither of haifa/selective schedulers are working.
13039
44ab0f0e
RW
130402009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13041
13042 * doc/invoke.texi (Debugging Options): Fix description of
13043 -fno-merge-debug-strings.
13044
ad9646c7
HPN
130452009-03-24 Hans-Peter Nilsson <hp@axis.com>
13046
e6142656
HPN
13047 * config/cris/libgcc.ver: New version-script.
13048 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13049
ad9646c7
HPN
13050 * configure.ac <GAS features, nop mnemonic>: Add pattern
13051 crisv32-*-* for "nop".
ba20e309 13052 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
13053 * configure: Regenerate.
13054
09ac4473
IR
130552009-03-24 Ira Rosen <irar@il.ibm.com>
13056
13057 PR tree-optimization/39529
13058 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13059 mark_sym_for_renaming for the tag copied to the new vector
13060 pointer.
13061
d94a427e
AL
130622009-03-24 Arthur Loiret <aloiret@debian.org>
13063
ba20e309 13064 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
13065 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13066 EXTRA_SPEC_FUNCTIONS.
13067 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13068 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13069 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13070 -march and -mtune options.
13071
60839f5d 130722009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
13073
13074 * config/m68k/t-rtems: Add m5329 multilib.
13075
603f5959
DS
130762009-03-24 Dodji Seketeli <dodji@redhat.com>
13077 Jakub Jelinek <jakub@redhat.com>
13078
13079 PR debug/39524
13080 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13081 nodes.
13082
c5cdb03f
JJ
130832009-03-23 Jakub Jelinek <jakub@redhat.com>
13084
13085 PR c/39495
13086 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13087 instead of c_parser_expression_conv, if original_code isn't one of the
13088 4 allowed comparison codes, fail.
13089
3691626c
RG
130902009-03-23 Richard Guenther <rguenther@suse.de>
13091
13092 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13093 * tree.h (struct tree_type): Likewise.
13094 * reload.h (struct insn_chain): Likewise.
13095 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13096 * function.h (struct function): Likewise.
13097 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13098
88ccb72a
JJ
130992009-03-23 Jakub Jelinek <jakub@redhat.com>
13100
13101 PR tree-optimization/39516
13102 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13103
60839f5d 131042009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 13105
2ba9daa7 13106 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
13107 should be set true if BITS_PER_WORD of target is bigger than 32
13108
f82162f8
HPN
131092009-03-22 Hans-Peter Nilsson <hp@axis.com>
13110
13111 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13112 Translate -B-options to -rpath-link. Correct existing
13113 rpath-link and conditionalize on !nostdlib.
13114
048fd785
RW
131152009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13116
13117 * doc/extend.texi (Function Attributes, Variable Attributes):
13118 Fix typos.
13119 * doc/invoke.texi (Debugging Options, Optimize Options)
13120 (i386 and x86-64 Options, MCore Options): Likewise.
13121
6e75c1a9
JJ
131222009-03-20 Jakub Jelinek <jakub@redhat.com>
13123
13124 PR debug/37890
13125 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13126 it for block local namespace aliases.
13127 (gen_decl_die): Pass context_die to gen_namespace_die.
13128
ea1199ee
JJ
131292009-03-19 Jakub Jelinek <jakub@redhat.com>
13130
13131 PR c/39495
13132 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13133 minimum or maximum value.
13134
58929c10
AO
131352009-03-19 Alexandre Oliva <aoliva@redhat.com>
13136
13137 * reginfo.c (globalize_reg): Recompute derived reg sets.
13138
60839f5d 131392009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
13140
13141 PR target/39063
13142 * libgcc2.c (mprotect): Do not use signed arguments for
13143 VirtualProtect, use DWORD arguments. Also fix the 'may
13144 be used uninitialized' warning for the np variable.
13145
f57c2f04
JJ
131462009-03-19 Jakub Jelinek <jakub@redhat.com>
13147
13148 PR target/39496
13149 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13150 functions using regparm calling conventions when not optimizing.
13151 (ix86_function_sseregparm): Similarly for sseregparm calling
13152 conventions.
13153
9e517d61
LF
131542009-03-19 Li Feng <nemokingdom@gmail.com>
13155
13156 PR middle-end/39500
13157 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13158 dependence if the first conflict is after niter iterations.
13159
8ef20026
HPN
131602009-03-19 Hans-Peter Nilsson <hp@axis.com>
13161
13162 PR middle-end/38609
13163 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13164 functions with dynamic stack-pointer adjustments.
13165
64e4a1a6
BE
131662009-03-19 Ben Elliston <bje@au.ibm.com>
13167
13168 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13169 option; change to -msdata=data.
13170
9a0f3e86
RW
131712009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13172
13173 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13174 and -fopenmp.
13175
09bc5979
EB
131762009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13177
13178 PR target/35180
13179 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13180
332459cd
SL
131812009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13182
13183 * doc/invoke.texi (Code Gen Options): Expand discussion of
13184 -fno-common.
13185
8f5929e1
JJ
131862009-03-18 Jakub Jelinek <jakub@redhat.com>
13187
13188 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13189 * matrix-reorg.c (struct matrix_info): Likewise.
13190 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13191 * rtl.h (struct mem_attrs): Likewise.
13192 * df.h (struct df): Likewise.
13193 * tree-data-ref.h (struct data_dependence_relation): Likewise.
13194 * ira-int.h (struct ira_allocno): Likewise.
13195 * df-scan.c (struct df_collection_rec): Likewise.
13196 * ira.c (struct equivalence): Likewise.
13197 * function.c (struct temp_slot): Likewise.
13198 * cfgloop.h (struct loop): Likewise.
13199
d130d647
JJ
13200 PR debug/39485
13201 * function.c (use_register_for_decl): When not optimizing, disregard
13202 register keyword for variables with types containing methods.
13203
9968d233
SP
132042009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13205
13206 PR middle-end/39447
13207 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13208 (is_simple_operand): Call contains_component_ref_p before calling data
13209 reference analysis that would fail on COMPONENT_REFs.
13210
13211 * tree-vrp.c (search_for_addr_array): Fix formatting.
13212
69484bfd
RG
132132009-03-18 Richard Guenther <rguenther@suse.de>
13214
13215 * tree-vect-transform.c (vect_loop_versioning): Fold the
13216 generated comparisons.
13217 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13218 (slpeel_tree_peel_loop_to_edge): Likewise.
13219
66811228
RW
132202009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13221
0631b69f
RW
13222 PR middle-end/37805
13223 * opts.c (print_specific_help): In addition to `undocumented',
13224 accept `separate' and `joined' flags if passed alone. Describe
13225 output by the first matched one of those.
13226 (common_handle_option): Skip over empty strings.
13227 * gcc.c (display_help): Fix help string for `--help='.
13228 * doc/invoke.texi (Option Summary, Overall Options): With
13229 `--help=', classes and qualifiers can both be repeated, but
13230 only the latter can be negated. One should not pass only
13231 negated qualifiers. Fix markup and examples.
13232
66811228
RW
13233 Revert
13234 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13235 PR middle-end/37805
13236 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13237 and -fhelp=separate.
13238
3c072c6b
JY
132392009-03-17 Jing Yu <jingyu@google.com>
13240
13241 PR middle-end/39378
80c65208
JY
13242 * function.h (struct rtl_data): Move is_thunk from here...
13243 (struct function): ...to here.
13244 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13245 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13246 cfun.
80c65208
JY
13247 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13248 cfun.
13249 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13250 (alpha_output_function_end_prologue): Likewise.
13251 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13252 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13253 (rs6000_output_function_epilogue): Likewise.
13254 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13255
9ade279b
UB
132562009-03-17 Uros Bizjak <ubizjak@gmail.com>
13257
13258 PR target/39482
13259 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13260 from different units in a single alternative.
13261 (*truncdfsf_i387): Ditto.
13262 (*truncxfsf2_mixed): Ditto.
13263 (*truncxfdf2_mixed): Ditto.
13264
16e60c17
JJ
132652009-03-17 Jakub Jelinek <jakub@redhat.com>
13266
98381eb4
JJ
13267 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13268 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13269
df5deb18
JJ
13270 PR debug/39474
13271 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13272 unused non-artificial variables when not optimizing.
13273
a3f596ba
JJ
13274 PR debug/39471
13275 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13276 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13277 NAMESPACE_DECL in its DECL_INITIAL.
13278
6b2b8871
JJ
13279 PR middle-end/39443
13280 * optabs.c (set_user_assembler_libfunc): New function.
13281 * expr.h (set_user_assembler_libfunc): New prototype.
13282 * c-common.c: Include libfuncs.h.
13283 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13284 for memcmp, memset, memcpy, memmove and abort.
13285 * Makefile.in (c-common.o): Depend on libfuncs.h.
13286
16e60c17
JJ
13287 PR debug/39412
13288 * dwarf2out.c (gen_inlined_enumeration_type_die,
13289 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13290 gen_tagged_type_instantiation_die): Removed.
13291 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13292 do nothing.
13293
4d936aca
JJ
132942009-03-17 Janis Johnson <janis187@us.ibm.com>
13295
13296 PR testsuite/38526
13297 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13298 its use.
13299 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13300 (check-parallel-%): Ditto.
13301 (check-consistency): Ditto.
13302
4e9b2e50
KT
133032009-03-17 Kai Tietz <kai.tietz@onevision.com>
13304
13305 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13306 local variable rhs by NULL_TREE.
13307
21440b2d
L
133082009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13309
13310 PR target/39477
9ade279b 13311 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13312
d8905c6a
L
133132009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13314
13315 PR target/39476
9ade279b 13316 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13317
133182009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13319
13320 PR target/39473
13321 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13322 for ms->sysv ABI calls only in 64bit mode.
13323
13324 * config/i386/i386.md (untyped_call): Support 32bit.
13325
cdcabece
L
133262009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13327
13328 * doc/extend.texi: Replace x86_65 with x86_64.
13329
97b4ba9f
JJ
133302009-03-16 Jakub Jelinek <jakub@redhat.com>
13331
13332 PR tree-optimization/39455
13333 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13334 mismatches for POINTER_TYPE_P (type).
13335 (number_of_iterations_le): Likewise.
13336
60839f5d 133372009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13338
13339 * config/picochip/picochip.c: Removed profiling support.
13340 * config/picochip/picochip.md: Removed profiling instruction.
13341 * config/picochip/picochip.h: Removed profiling builtin.
13342
f38095f3
JM
133432009-03-16 Joseph Myers <joseph@codesourcery.com>
13344
13345 * doc/install.texi (--with-host-libstdcxx): Document.
13346
2cb4817b
AS
133472009-03-14 Anatoly Sokolov <aesok@post.ru>
13348
13349 PR target/34299
13350 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13351 generate a warning if the function name does not begin with
13352 "__vector" and the function has either the 'signal' or 'interrupt'
13353 attribute, from here to ...
13354 (avr_declare_function_name): ...here. New function.
13355 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13356 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13357
39b2ac74
JJ
133582009-03-14 Jakub Jelinek <jakub@redhat.com>
13359
13360 PR bootstrap/39454
13361 * cse.c (fold_rtx): Don't modify original const_arg1 when
13362 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13363 separate variable instead.
13364 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13365 from out of range shift counts.
13366 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13367
ad41bd84 133682009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13369
60839f5d 13370 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13371 diagnostic.h with $(DIAGNOSTIC_H).
13372
ad41bd84 133732009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13374
13375 PR target/39431
13376 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13377 predicate.
13378 * config/i386/sync.md (sync_compare_and_swap<mode>,
13379 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13380 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13381 into a register.
13382 (sync_double_compare_and_swapdi_pic,
13383 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13384 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13385
122c59c7
L
133862009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13387
13388 PR target/39445
9ade279b 13389 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13390
cec8874f
L
133912009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13392
13393 PR target/39327
13394 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13395 (avx_addsubv4df3): Likewise.
13396 (*avx_addsubv4sf3): Likewise.
13397 (sse3_addsubv4sf3): Likewise.
13398
bbb52802
L
133992009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13400
13401 PR target/38824
9ade279b 13402 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13403
a812fb07
VM
134042009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13405
13406 PR debug/39432
13407 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13408 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13409 registers for allocnos created from user-defined variables.
13410
4caab5ba
UW
134112009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13412
13413 PR target/39181
13414 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13415 of non-integer mode as well.
13416
498e51ca
AN
134172009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13418
13419 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13420 for functions for which the parameter types are unknown.
13421
9bfaf89d
JJ
134222009-03-11 Jakub Jelinek <jakub@redhat.com>
13423
13424 PR target/39137
9ade279b 13425 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13426 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13427 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13428 * config/i386/i386.c (ix86_local_alignment): For
13429 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13430 long long variables on the stack to avoid dynamic realignment.
13431 Allow the first argument to be a decl rather than type.
13432 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13433
18a3bdcb
NC
134342009-03-11 Nick Clifton <nickc@redhat.com>
13435
13436 PR target/5362
40190a76
NC
13437 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13438 options.
13439 Add description to mno-lsim option.
13440 * config/mcore/mcore.h: Remove comment about deprecated m4align
13441 option.
13442 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13443 * doc/invoke.texi: Add description of mno-lsim and
13444 mstack-increment options.
13445
18a3bdcb
NC
13446 * config/fr30/fr30.opt: Document the -mno-lsim option.
13447 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13448 and -mno-lsim options.
13449
dc215785
UW
134502009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13451
13452 * fold-const.c (fold_comparison): Only call fold_inf_compare
13453 if the mode supports infinities.
13454
7716876b
JM
134552009-03-11 Jason Merrill <jason@redhat.com>
13456
13457 PR debug/39086
13458 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13459 end already did. Notice GIMPLE_CALL modifications of the result.
13460 Don't copy debug information from an ignored decl or a decl from
13461 another function.
13462
ddef83d2
RG
134632009-03-10 Richard Guenther <rguenther@suse.de>
13464 Nathan Froyd <froydnj@codesourcery.com>
13465
13466 PR middle-end/37850
9ade279b 13467 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13468 (__divMODE3): Likewise.
13469
9a9ba8d9
JJ
134702009-03-09 Jakub Jelinek <jakub@redhat.com>
13471
13472 PR tree-optimization/39394
13473 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13474 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13475
929b7fc3
AK
134762009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13477
13478 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13479 inline asms for register asm ("") declarations.
13480
1803581d
EB
134812009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13482
13483 * fold-const.c (fold_unary): Fix comment.
13484
8454d27e
JH
134852009-03-07 Jan Hubicka <jh@suse.cz>
13486
13487 PR target/39361
969a5433
JJ
13488 * tree-inline.c (setup_one_parameter): Do replacement of const
13489 argument by constant in SSA form.
8454d27e 13490
3a695389
UW
134912009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13492
13493 PR middle-end/38028
13494 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13495 determine alignment passed to assign_stack_local.
13496 (assign_parms_unsplit_complex): Likewise.
13497 * except.c (sjlj_build_landing_pads): Likewise.
13498
9f0e7885
JJ
134992009-03-06 Jakub Jelinek <jakub@redhat.com>
13500
65401a0b
JJ
13501 PR middle-end/39360
13502 * tree-flow.h (add_referenced_var): Return bool instead of void.
13503 * tree-dfa.c (add_referenced_var): Return result of
13504 referenced_var_check_and_insert call.
13505 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13506 of referenced_var_check_and_insert.
13507
9f0e7885 13508 PR debug/39372
9ade279b 13509 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13510 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13511 DIE, don't emit it if abstract origin already has it.
13512 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13513 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13514
3b664bd1
JBG
135152009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13516
ba20e309 13517 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13518 detection.
13519 (write_tm_constrs_h): Indent generated code.
13520
d8f8ca80
RR
135212009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13522
13523 * doc/extend.texi (Function Attributes): Add documentation
13524 for isr attributes.
13525
6c3d550c
JJ
135262009-03-06 Jakub Jelinek <jakub@redhat.com>
13527
13528 PR debug/39387
13529 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13530 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13531
f9e96751
BS
135322009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13533
13534 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13535 the loop as bad.
13536
ee0ee7e2
JJ
135372009-03-05 Jakub Jelinek <jakub@redhat.com>
13538
13539 PR debug/39379
13540 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13541 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13542
6c6094f1
UB
135432009-03-05 Uros Bizjak <ubizjak@gmail.com>
13544
13545 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13546 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13547 constants instead of magic numbers.
13548 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13549 (QI_REG_P): Ditto.
13550 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13551 (x86_64_ms_abi_int_parameter_registers): Ditto.
13552 (x86_64_int_return_registers): Ditto.
09f8a8d3 13553 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13554 (ix86_expand_call): Ditto for clobbered_registers array.
13555 (ix86_hard_regno_mode_ok): Ditto.
13556 (x86_extended_QIreg_mentioned_p): Ditto.
13557
b267bd41
R
135582009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13559
6c6094f1 13560 PR tree-optimization/39349
1f3ad3f0
R
13561 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13562
b267bd41
R
13563 * combine.c (gen_lowpart_for_combine): Use omode when generating
13564 clobber.
13565
1242bc9d
R
135662009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13567
6c6094f1 13568 PR rtl-optimization/39235
1242bc9d
R
13569 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13570
48f03606
ZD
135712009-03-04 Zdenek Dvorak <ook@ucw.cz>
13572
13573 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13574
b505e785
RG
135752009-03-04 Richard Guenther <rguenther@suse.de>
13576
13577 PR tree-optimization/39362
13578 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13579 that occur in abnormal PHIs should be varying.
13580
f017bf5e
ZD
135812009-03-04 Zdenek Dvorak <ook@ucw.cz>
13582
13583 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13584 Extend comments.
13585 (simple_iv): Take loop as an argument instead of statement.
13586 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13587 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13588 to simple_iv.
13589 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13590 Ditto.
13591 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13592 * matrix-reorg.c (analyze_transpose): Ditto.
13593 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13594 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13595 * tree-predcom.c (ref_at_iteration): Ditto.
13596 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13597
6a66f28e
RG
135982009-03-04 Richard Guenther <rguenther@suse.de>
13599
13600 PR tree-optimization/39358
13601 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13602 escaped_id and callused_id.
13603 (solve_graph): Likewise.
13604
57e454ee
RG
136052009-03-04 Richard Guenther <rguenther@suse.de>
13606
13607 PR tree-optimization/39339
13608 * tree-sra.c (try_instantiate_multiple_fields): Make it
13609 no longer ICE on the above.
13610
a6fe9ed4
JM
136112009-03-03 Joseph Myers <joseph@codesourcery.com>
13612
13613 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13614 that fits within Pmode.
13615
dc672951
SE
136162009-03-03 Steve Ellcey <sje@cup.hp.com>
13617
13618 PR middle-end/10109
13619 * tm.texi (LIBCALL_VALUE): Update description.
13620
8b9d598f
SE
136212009-03-03 Steve Ellcey <sje@cup.hp.com>
13622
13623 PR middle-end/34443
13624 * doc/extend.texi (section): Update description.
13625
13e4e36e
L
136262009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13627
13628 PR middle-end/39345
13629 * tree-inline.c (remapped_type): New.
13630 (can_be_nonlocal): Call remapped_type instead of remap_type.
13631
067dd3c9
JJ
136322009-03-03 Jakub Jelinek <jakub@redhat.com>
13633
13634 PR fortran/39354
13635 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13636 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13637
9bd9f738
RG
136382009-03-03 Richard Guenther <rguenther@suse.de>
13639
13640 PR middle-end/39272
13641 * tree.c (tree_nonartificial_location): New function.
13642 * tree.h (tree_nonartificial_location): Declare.
13643 * builtins.c (expand_builtin_memory_chk): Provide location
13644 of the call location for artificial function pieces.
13645 (maybe_emit_chk_warning): Likewise.
13646 (maybe_emit_sprintf_chk_warning): Likewise.
13647 (maybe_emit_free_warning): Likewise.
13648 * expr.c (expand_expr_real_1): Likewise.
13649
f07049c8
JJ
136502009-03-03 Jakub Jelinek <jakub@redhat.com>
13651
13652 PR tree-optimization/39343
13653 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13654 COMPONENT_REF t has ARRAY_TYPE.
13655
7d4fba4a
SP
136562009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13657
13658 PR middle-end/39335
13659 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13660 when the type precision of the induction variable should be
13661 larger than the type precision of nit.
13662 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13663 * graphite.c (graphite_loop_normal_form): Same.
13664 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13665
78168632
UB
136662009-03-02 Uros Bizjak <ubizjak@gmail.com>
13667
13668 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13669 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13670 numbers to describe clobbered registers.
78168632 13671 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13672 * config/i386/mmx.md (mmx_emms): Ditto.
13673 (mmx_femms): Ditto.
78168632 13674
63553059
RS
136752009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13676
13677 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13678 of ABI_64.
13679
500a1f85
UW
136802009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13681
13682 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13683 (spu_section_type_flags): New function.
13684
962aae34
UB
136852009-03-02 Uros Bizjak <ubizjak@gmail.com>
13686
13687 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13688 reg_class_contents of FLOAT_REGS into a temporary.
13689
6dfb529c 136902009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13691 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13692
13693 PR tree-optimization/39318
13694 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13695 information to the vectorized statement.
13696
6b5629db
UB
136972009-03-01 Uros Bizjak <ubizjak@gmail.com>
13698
434426d2
UB
13699 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13700 variable. Use defined names instead of magic constants for REX SSE
13701 registers.
6b5629db 13702
14e5b285
RG
137032009-03-01 Richard Guenther <rguenther@suse.de>
13704
13705 PR tree-optimization/39331
13706 * omp-low.c (lower_send_shared_vars): Do not receive new
13707 values for the reference of DECL_BY_REFERENCE parms or results.
13708
526d73ab
JH
137092009-03-01 Jan Hubicka <jh@suse.cz>
13710
13711 PR debug/39267
13712 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13713 BLOCK_NONLOCALIZED_VAR): New macros.
13714 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13715 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13716 gen_decl_die): Add origin argument. Allow generation of die with
13717 origin at hand only.
526d73ab 13718 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13719 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13720 of gen_*.
526d73ab
JH
13721 (gen_block_die): Fix checking for unused blocks.
13722 (process_scope_var): Break out from .... ; work with origins only.
13723 (decls_for_scope) ... here; process nonlocalized list.
13724 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13725 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13726 vars.
526d73ab
JH
13727 (dump_scope_block): Dump them.
13728 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13729 (remap_block): Likewise.
13730 (can_be_nonlocal): New predicate.
13731 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13732
7a9d3fe8
RW
137332009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13734
13735 * configure: Regenerate.
13736
b3cdf3cb
RW
137372009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13738
a16d1645 13739 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13740 Reuse help texts for duplicate options which do not have any.
a16d1645 13741
1156c176
RW
13742 * gcc.c (display_help): Document --version.
13743
033505fc
RW
13744 * gcc.c (main): If print_help_list and verbose_flag, ensure
13745 driver output comes before subprocess output.
13746
4d077054
RW
13747 * optc-gen.awk: Assign all remaining fields to help string,
13748 space-separated, for multi-line help in *.opt.
13749
a072f1cf
RW
13750 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13751 -Wno-pedantic-ms-format is for MinGW targets only.
13752
b3cdf3cb
RW
13753 * doc/options.texi (Option file format): Fix bad indentation,
13754 restoring dropped sentence.
13755
a3aadcc5
JH
137562009-02-28 Jan Hubicka <jh@suse.cz>
13757
13758 * tree-inline.c (tree_function_versioning): Output debug info.
13759
1cf5abb3
JH
137602009-02-28 Jan Hubicka <jh@suse.cz>
13761
13762 PR debug/39267
13763 * tree-inline.c (setup_one_parameter): Do not copy propagate
13764 arguments when not optimizing.
13765
c4d3f42f
L
137662009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13767
13768 PR target/39327
13769 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13770 (avx_addsubv4df3): Likewise.
13771 (*avx_addsubv4sf3): Likewise.
13772 (sse3_addsubv4sf3): Likewise.
13773 (*avx_addsubv2df3): Likewise.
13774 (sse3_addsubv2df3): Likewise.
13775 (avx_unpckhps256): Correct item selectors.
13776 (avx_unpcklps256): Likewise.
13777 (avx_unpckhpd256): Likewise.
13778 (avx_unpcklpd256): Likewise.
13779
eb50f5f4
JH
137802009-02-28 Jan Hubicka <jh@suse.cz>
13781
13782 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13783 static vars.
13784 (copy_arguments_for_versioning): If var is declared don't declare it.
13785 (tree_function_versioning): First setup substitutions and then copy
13786 args.
13787
26140130
JH
137882009-02-27 Jan Hubicka <jh@suse.cz>
13789
13790 PR debug/39267
13791 * cgraph.h (varpool_output_debug_info): Remove.
13792 * cgraphunit.c (varpool_output_debug_info): Remove.
13793 * dwarf2out.c (deferred_locations_struct): New struct
13794 (deferred_locations): New type.
13795 (deferred_locations_list): New static var.
13796 (deffer_location): New function.
13797 (gen_variable_die): Use it.
13798 (decls_for_scope): Output info on local static vars.
13799 (dwarf2out_finish): Process deferred locations.
13800 * varpool.c (varpool_output_debug_info): Remove.
13801
cff7525f
JH
138022009-02-27 Jan Hubicka <jh@suse.cz>
13803
13804 PR debug/39267
13805 * tree.h (TREE_PROTECTED): Fix comment.
13806 (BLOCK_HANDLER_BLOCK): Remove.
13807 (struct tree_block): Remove handler_block add body_block.
13808 (inlined_function_outer_scope_p): New.
13809 (is_body_block): Remove.
13810 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13811 * dwarf2out.c (is_inlined_entry_point): Remove.
13812 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13813 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13814 code.
cff7525f
JH
13815 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13816 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13817 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13818 block with multiple subblocks.
cff7525f
JH
13819 (dump_scope_block): Prettier output; dump more flags and info.
13820 (dump_scope_blocks): New.
13821 (remove_unused_locals): Use dump_scope_blocks.
13822 * tree-flow.h (dump_scope_blocks): Declare.
13823 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13824 * stmt.c (is_body_block): Remove.
13825 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13826 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13827
c20993b9
SP
138282009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13829
13830 PR middle-end/39308
2ba9daa7 13831 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13832 number_of_iterations_exit from a gcc_assert.
13833
e3cba5e5
AK
138342009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13835
60839f5d 13836 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13837 jumps if COND is NULL.
13838 (find_cond_jump): New function.
13839 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13840 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13841
9dadeeb8
UB
138422009-02-26 Uros Bizjak <ubizjak@gmail.com>
13843
13844 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13845 force_const_mem returns NULL_RTX.
13846
625d3251
EB
138472009-02-26 Jan Hubicka <jh@suse.cz>
13848
13849 PR debug/39267
13850 * cgraph.h (varpool_output_debug_info): Remove.
13851 * cgraphunit.c (varpool_output_debug_info): Remove.
13852 * dwarf2out.c (deferred_locations_struct): New struct
13853 (deferred_locations): New type.
13854 (deferred_locations_list): New static var.
13855 (deffer_location): New function.
13856 (gen_variable_die): Use it.
13857 (decls_for_scope): Output info on local static vars.
13858 (dwarf2out_finish): Process deferred locations.
13859 * varpool.c (varpool_output_debug_info): Remove.
13860
38432148 138612009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13862
13863 PR rtl-optimization/39241
13864 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13865 to subreg_offset_representable_p.
13866
62d049cf
PB
138672009-02-25 Paolo Bonzini <bonzini@gnu.org>
13868
13869 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13870 execute function prototype. Get f and nregs from max_reg_num
13871 and get_insns. Remove the first backward pass as it's dead,
13872 guard the forward pass by flag_expensive_optimizations.
13873 (rest_of_handle_regmove): Delete.
13874 (pass_regmove): Replace it with regmove_optimize.
13875
f618d33e
MJ
138762009-02-25 Martin Jambor <mjambor@suse.cz>
13877
13878 PR tree-optimization/39259
13879 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13880 calls_alloca function flags.
f618d33e
MJ
13881 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13882 calls are detected.
13883
c8a05f7c
PB
138842009-02-25 Paolo Bonzini <bonzini@gnu.org>
13885
13886 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13887 flags_set_1_rtx, flags_set_1_set): Delete.
13888 (regmove_optimize): Do not call mark_flags_life_zones.
13889
6d2538f5
JB
138902009-02-24 Julian Brown <julian@codesourcery.com>
13891
13892 PR target/35965
13893 * config/arm/arm.c (require_pic_register): Only set
13894 cfun->machine->pic_reg once per function.
13895
a2fa6772
SL
138962009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13897
13898 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13899 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13900
5472de36
SE
139012009-02-24 Steve Ellcey <sje@cup.hp.com>
13902
13903 PR target/33785
13904 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13905
844216f3
RG
139062009-02-24 Richard Guenther <rguenther@suse.de>
13907
13908 PR debug/39285
13909 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13910
71adbef3 139112009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13912 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13913
13914 PR tree-optimization/39233
13915 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13916 from converting them to a generic type.
13917
f1a558e0
SP
139182009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13919
13920 PR tree-optimization/39260
13921 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13922 contains a condition with a real type.
13923 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13924
d8028f2c
JM
139252009-02-23 Jason Merrill <jason@redhat.com>
13926
13927 PR c++/38880
13928 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13929 narrowing_initializer_constant_valid_p.
2ba9daa7 13930 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13931 null_pointer_node for adding a pointer to itself.
13932
9283b513
JH
139332009-02-23 Jan Hubicka <jh@suse.cz>
13934
13935 PR c/12245
9dadeeb8
UB
13936 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13937 resizing.
9283b513 13938
61e04322
JH
139392009-02-23 Jan Hubicka <jh@suse.cz>
13940
9dadeeb8
UB
13941 PR tree-optimization/37709
13942 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13943 * tree.h (block_ultimate_origin): Declare.
13944 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13945 * tree-ssa-live.c (remove_unused_scope_block_p):
13946 Eliminate blocks containig no instructions nor live variables nor
13947 nested blocks.
13948 (dump_scope_block): New function.
13949 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13950 enable dumping at TDF_DETAILS.
61e04322 13951
38432148 139522009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13953
13954 * config/i386/i386.c (classify_argument): Don't allow COImode
13955 and OImode.
13956 (function_arg_advance_32): Don't allow OImode.
13957 (function_arg_32): Likewise.
13958 (function_value_32): Likewise.
13959 (return_in_memory_32): Likewise.
13960 (function_arg_64): Remove OImode comment.
13961
38432148 139622009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13963
13964 PR target/39261
13965 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13966 ix86_expand_vector_set for V4DImode in 64bit mode only.
13967 (ix86_expand_vector_init_one_var): Likewise.
13968
dcd739a6
SP
139692009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13970
13971 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13972
6c3b938d
RS
139732009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13974
8e361f23 13975 PR bootstrap/39257
6c3b938d
RS
13976 * loop-iv.c: Revert last change.
13977 * emit-rtl.c: Likewise.
13978
38432148 139792009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13980
13981 PR target/39256
13982 * config/i386/i386.c (type_natural_mode): Remove an extra
13983 space in the warning message.
13984 (function_value_32): Handle 32-byte vector modes.
13985 (return_in_memory_32): Likewise.
13986
2ec62529
RS
139872009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13988
13989 * loop-iv.c (truncate_value): New function.
13990 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13991 of lowpart_subreg.
13992 (lowpart_subreg): Move to...
13993 * emit-rtl.c: ...here.
13994
ecb8c3cc 139952009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13996
ecb8c3cc
DS
13997 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13998 accidental and undocumented change at revision 140860.
13999
ae46a823
JM
140002009-02-21 Joseph Myers <joseph@codesourcery.com>
14001
14002 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14003 take gimple_seq * arguments.
14004 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14005 types_compatible_p langhook.
14006
07d8efe3 140072009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 14008 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
14009
14010 * config/arm/arm.c (arm_builtin_va_list): New function.
14011 (arm_expand_builtin_va_start): Likewise.
14012 (arm_gimplify_va_arg_expr): Likewise.
14013 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14014 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14015 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14016 (va_list_type): New variable.
14017 (arm_mangle_type): Mangle va_list_type appropriately.
14018
b1fb9f56
JJ
140192009-02-20 Jakub Jelinek <jakub@redhat.com>
14020
14021 PR middle-end/39157
14022 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14023 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14024 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14025 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14026 parameter to 1000 for -O1 by default.
14027 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14028 parameter.
14029 * loop-invariant.c: Include params.h.
14030 (move_loop_invariants): Don't call move_single_loop_invariants on
14031 very large loops.
14032
5bc0807c
JM
140332009-02-20 Jaka Mocnik <jaka@xlab.si>
14034
14035 * calls.c (emit_library_call_value_1): Use slot_offset instead of
14036 offset when calculating bounds for indexing stack_usage_map. Fixes
14037 a buffer overflow with certain target setups.
14038
c69cd1f5
JJ
140392009-02-20 Jakub Jelinek <jakub@redhat.com>
14040
14041 PR target/39240
14042 * calls.c (expand_call): Clear try_tail_call if caller and callee
14043 disagree in promotion of function return value.
14044
09812622
JJ
140452009-02-19 Jakub Jelinek <jakub@redhat.com>
14046
14047 PR target/39175
14048 * c-common.c (c_determine_visibility): If visibility changed and
14049 DECL_RTL has been already set, call make_decl_rtl to update symbol
14050 flags.
14051
68017cb4
L
140522009-02-19 H.J. Lu <hongjiu.lu@intel.com>
14053
14054 PR c++/39188
14055 * varasm.c (assemble_variable): Don't check DECL_NAME when
14056 globalizing a variable.
14057
ab4194da
JM
140582009-02-19 Joseph Myers <joseph@codesourcery.com>
14059
14060 PR c/38483
14061 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14062 expression before any __builtin_trap call.
14063 * c-typeck.c (build_function_call): Convert and check function
14064 arguments before generating a call to a trap. Evaluate the
14065 function arguments before the trap.
14066
6b67572e
UB
140672009-02-19 Uros Bizjak <ubizjak@gmail.com>
14068
14069 PR target/39228
14070 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14071 (UNSPEC_FXAM_MEM): New unspec.
14072 (fxam<mode>2_i387_with_temp): New insn and split pattern.
14073 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
14074 memory using fxam<mode>2_i387_with_temp to remove excess precision.
14075
9e39dba6
RG
140762009-02-19 Richard Guenther <rguenther@suse.de>
14077
14078 PR tree-optimization/39207
14079 PR tree-optimization/39074
14080 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14081 storedanything_tree): New.
14082 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 14083 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
14084 (build_succ_graph): Add edges from STOREDANYTHING to all
14085 non-direct nodes.
14086 (init_base_vars): Initialize STOREDANYTHING.
14087 (compute_points_to_sets): Free substitution info after
14088 building the succ graph.
14089 (ipa_pta_execute): Likewise.
14090
14091 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14092 field.
14093 (do_ds_constraint): Do not add to special var or non-pointer
14094 field solutions.
14095 (type_could_have_pointers): Split out from ...
14096 (could_have_pointers): ... here. For arrays use the element type.
14097 (create_variable_info_for): Initialize may_have_pointers.
14098 (new_var_info): Likewise.
14099 (handle_lhs_call): Make the HEAP variable unknown-sized.
14100 (intra_create_variable_infos): Use a type with pointers for
14101 PARM_NOALIAS, make it unknown-sized.
14102
fd7b2603
L
141032009-02-18 H.J. Lu <hongjiu.lu@intel.com>
14104
14105 PR target/39224
6b67572e 14106 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 14107
98b80692
JM
141082009-02-18 Jason Merrill <jason@redhat.com>
14109
14110 PR target/39179
14111 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14112 value if DECL_EXTERNAL.
14113 * tree-sra.c (sra_walk_gimple_assign): Likewise.
14114 * target.h (gcc_target::binds_local_p): Clarify "module".
14115 * tree.h (TREE_PUBLIC): Clarify "module".
14116
0705d3f4
L
141172009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
14118
14119 PR target/38891
14120 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14121 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14122
bce08d50
L
141232009-02-17 H.J. Lu <hongjiu.lu@intel.com>
14124
14125 PR target/39082
14126 * c.opt (Wabi): Support C and ObjC.
14127 (Wpsabi): New.
14128
14129 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14130
14131 * config/i386/i386.c (classify_argument): Warn once about the ABI
14132 change when passing union with long double.
14133
14134 * doc/invoke.texi: Update -Wabi for warning psABI changes.
14135
5600f233
JM
141362009-02-18 Joseph Myers <joseph@codesourcery.com>
14137
14138 PR c/35447
14139 * c-parser.c (c_parser_compound_statement): Always enter and leave
14140 a scope.
14141
8cd01fe6
JDA
141422009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14143
14144 PR target/34587
14145 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14146
418df9d7
JJ
141472009-02-18 Jakub Jelinek <jakub@redhat.com>
14148
14149 PR tree-optimization/36922
14150 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14151 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14152 Likewise.
14153
082d2ebb
RS
141542009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14155
14156 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14157 to 0 for EABI64.
14158
17de576c
RS
141592009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14160
14161 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14162
6d8d5435
RS
141632009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14164
14165 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14166 tree sharing.
14167
e69ff910
RB
141682009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14169 Richard Sandiford <rdsandiford@googlemail.com>
14170
14171 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14172 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14173 (loongson_biadd): ...this.
14174
6b24ee26
RG
141752009-02-17 Richard Guenther <rguenther@suse.de>
14176
14177 PR tree-optimization/39202
14178 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14179 a var make sure to follow existing collapses.
14180
91ab2c86
RG
141812009-02-17 Richard Guenther <rguenther@suse.de>
14182
14183 PR middle-end/39214
14184 * langhooks.c (lhd_print_error_function): Check for NULL block.
14185
73a63870
RG
141862009-02-17 Richard Guenther <rguenther@suse.de>
14187
14188 PR tree-optimization/39204
14189 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14190 of the PHI arg.
14191
0e08f686
UB
141922009-02-17 Uros Bizjak <ubizjak@gmail.com>
14193
14194 * config/soft-fp/double.h: Update from glibc CVS.
14195
a60b7ddb
RG
141962009-02-17 Richard Guenther <rguenther@suse.de>
14197
14198 PR tree-optimization/39207
14199 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14200 strict-aliasing warnings for pointers pointing to NULL.
14201
a47e20fd
JM
142022009-02-16 Joseph Myers <joseph@codesourcery.com>
14203
14204 PR c/35446
14205 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14206 skipping until next close brace.
14207
50aab7dc
L
142082009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14209
14210 PR target/37049
14211 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14212 to function argument boundary.
14213
68e53db0
HS
142142009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14215
14216 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14217 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14218 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14219 "b", since it is not needed anymore.
14220
09e361bb
JJ
142212009-02-16 Jakub Jelinek <jakub@redhat.com>
14222
14223 * gthr-dce.h: Uglify function parameter and local variable names.
14224 * gthr-gnat.h: Likewise.
14225 * gthr-mipssde.h: Likewise.
14226 * gthr-nks.h: Likewise.
14227 * gthr-posix95.h: Likewise.
14228 * gthr-posix.h: Likewise.
14229 * gthr-rtems.h: Likewise.
14230 * gthr-single.h: Likewise.
14231 * gthr-solaris.h: Likewise.
14232 * gthr-tpf.h: Likewise.
14233 * gthr-vxworks.h: Likewise.
14234 * gthr-win32.h: Likewise.
14235
47f5a48f
L
142362009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14237
14238 PR target/39196
14239 * config/i386/i386.md: Restrict the new peephole2 to move
14240 between MMX/SSE registers.
14241
68c9ab45
RG
142422009-02-15 Richard Guenther <rguenther@suse.de>
14243
14244 Revert
14245 2009-02-13 Richard Guenther <rguenther@suse.de>
14246
14247 * configure.ac: Enable LFS.
14248 * configure: Re-generate.
14249 * config.in: Likewise.
14250
d7815554
UW
142512009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14252
14253 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14254 spu_srqwbyte, spu_srqwbytebc): Define.
14255 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14256 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14257 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14258 "shrqby_<mode>"): New insn-and-split patterns.
14259 * config/spu/spu.c (expand_builtin_args): Determine and return
14260 number of operands using spu_builtin_description data.
14261 (spu_expand_builtin_1): Use it.
14262
c208436c
SE
142632009-02-13 Steve Ellcey <sje@cup.hp.com>
14264
14265 PR target/38056
14266 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14267 TARGET_CONST_GP.
14268
c2e7ba7e
L
142692009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14270
14271 PR target/39149
14272 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14273 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14274
72f4e3a7
L
142752009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14276
14277 PR target/39152
14278 * config/i386/i386.md: Restrict the new peephole2 to move
14279 between the general purpose registers.
14280
53f648e2
L
142812009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14282
14283 PR target/39162
14284 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14285 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14286 (function_arg_advance): Updated.
14287 (function_arg): Likewise.
14288 (ix86_function_value): Likewise.
14289 (ix86_return_in_memory): Likewise.
14290 (ix86_sol10_return_in_memory): Likewise.
14291 (ix86_gimplify_va_arg): Likewise.
14292 (function_arg_32): Don't warn ABX ABI change here.
14293 (function_arg_64): Likewise.
14294
38432148 142952009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14296
14297 * loop-iv.c (implies_p): In the final case, test that operands 0
14298 of the two comparisons match.
14299
dd2139e7
BS
14300 * config/bfin/bfin.c (find_prev_insn_start): New function.
14301 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14302 (find_next_insn_start): Move.
14303
601b3e1a
RG
143042009-02-13 Richard Guenther <rguenther@suse.de>
14305
14306 * configure.ac: Enable LFS.
14307 * configure: Re-generate.
14308 * config.in: Likewise.
14309
f007042e
JM
143102009-02-13 Joseph Myers <joseph@codesourcery.com>
14311
14312 PR c/35444
14313 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14314 sizes on syntax error after some arguments have been parsed.
14315
3f238e8b
JJ
143162009-02-12 Jakub Jelinek <jakub@redhat.com>
14317
14318 * doc/invoke.texi (-fira): Remove.
14319
328e13b7
L
143202009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14321
14322 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14323 * recog.c: Likewise.
14324 * rtl.h: Likewise.
14325
c252db20
L
143262009-02-12 Uros Bizjak <ubizjak@gmail.com>
14327
14328 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14329 (umul_ppmm): Likewise.
14330 (count_leading_zeros): Likewise.
14331 (count_trailing_zeros): Likewise.
14332 (UMUL_TIME): Likewise.
14333
143342009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14335
ba181049
UB
14336 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14337 soft-fp/t-softfp to tmake_file.
c252db20
L
14338
14339 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14340 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14341 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14342 IA64_BUILTIN_INFQ]: New.
c252db20
L
14343 (ia64_init_builtins): Initialize __builtin_infq,
14344 __builtin_fabsq and __builtin_copysignq if not HPUX.
14345 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14346 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14347
14348 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14349 SHARED is defined.
14350 (__fixtfti): Likewise.
14351 (__fixunstfti): Likewise.
14352 (__floattitf): Likewise.
14353
14354 * config/ia64/libgcc-glibc.ver: New.
14355 * config/ia64/t-fprules-softfp: Likewise.
14356 * config/ia64/sfp-machine.h: Likewise.
14357
14358 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14359 (LIBGCC2_TF_CEXT): Likewise.
14360 (TF_SIZE): Likewise.
14361 (TARGET_INIT_LIBFUNCS): Likewise.
14362
ba181049 14363 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14364 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14365
f13eae6a
L
143662009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14367
14368 * config/i386/i386.c (construct_container): Rewrite processing
14369 BLKmode with X86_64_SSE_CLASS.
14370
12019aec
L
143712009-02-12 Paolo Bonzini <bonzini@gnu.org>
14372
14373 PR target/39152
14374 * config/i386/i386.md: Replace simplify_replace_rtx with
14375 replace_rtx in the new peephole2.
14376
28c11eb3
NS
143772009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14378
14379 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14380 loop unrolling do not happen at -O2.
14381
c7b94907
MM
143822009-02-12 Michael Matz <matz@suse.de>
14383
14384 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14385
61e98967
JJ
143862009-02-12 Jakub Jelinek <jakub@redhat.com>
14387
14388 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14389 for -g3.
14390
a2a237b5
BE
143912009-02-12 Ben Elliston <bje@au.ibm.com>
14392
14393 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14394 patterns when updating the back chain. Missed in the 2009-02-10
14395 change.
14396
853eda8d
JJ
143972009-02-11 Janis Johnson <janis187@us.ibm.com>
14398
14399 * doc/extend.texi (Decimal Floating Types): Update identifier of
14400 draft TR and list of missing support.
14401
3ad6b266
JJ
144022009-02-11 Jakub Jelinek <jakub@redhat.com>
14403
14404 PR middle-end/39154
14405 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14406 bit to variable length decl's flags, add it also to its
14407 pointer replacement variable.
14408
b058b753
UB
144092009-02-11 Uros Bizjak <ubizjak@gmail.com>
14410 Jakub Jelinek <jakub@redhat.com>
14411
14412 PR target/39118
14413 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14414 (memory_blockage): New expander.
14415 (*memory_blockage): New insn pattern.
14416 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14417 instead of general blockage at the end of function prologue when
14418 frame pointer is used to access red zone area. Do not emit blockage
14419 when profiling, it is emitted in generic code.
14420 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14421 function epilogue when frame pointer is used to access red zone area.
14422
bab64f23
PB
144232009-02-11 Paolo Bonzini <bonzini@gnu.org>
14424
0ce6dcfa 14425 PR target/38824
bab64f23
PB
14426 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14427 by arithmetic with memory operands.
14428 * config/i386/predicates.md (commutative_operator): New.
14429
8fd94bda
JJ
144302009-02-10 Janis Johnson <janis187@us.ibm.com>
14431
14432 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14433 bulleted lists.
14434
794511d2
EB
144352009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14436
14437 * alias.h (record_alias_subset): Declare.
14438 * alias.c (record_alias_subset): Make global.
14439
6da7fc87
NC
144402009-02-10 Nick Clifton <nickc@redhat.com>
14441
14442 * tree-parloops.c: Change license to GPLv3.
14443 * ipa-struct-reorg.c: Change license to GPLv3.
14444 * ipa-struct-reorg.h: Change license to GPLv3.
14445
a03813c8
SE
144462009-02-10 Steve Ellcey <sje@cup.hp.com>
14447
14448 PR c/39084
14449 * c-decl.c (start_struct): Return NULL on error.
14450
fc3103e7
JJ
144512009-02-10 Jakub Jelinek <jakub@redhat.com>
14452
9b43d37b
JJ
14453 PR middle-end/39124
14454 * cfgloopmanip.c (remove_path): Call remove_bbs after
14455 cancel_loop_tree, not before it.
14456
fc3103e7 14457 PR target/39139
b058b753 14458 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14459 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14460 VAR_DECLs were seen.
14461 * tree-ssa-live.c (remove_unused_locals): Recompute
14462 cfun->has_local_explicit_reg_vars.
14463 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14464 copies or clearings if cfun->has_local_explicit_reg_vars.
14465
dbf9ee15
UB
144662009-02-10 Uros Bizjak <ubizjak@gmail.com>
14467
14468 PR target/39118
14469 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14470 of function prologue when frame pointer is used to access
14471 red zone area.
14472
bdec4dc7
RG
144732009-02-10 Richard Guenther <rguenther@suse.de>
14474
14475 PR middle-end/39127
14476 * gimplify.c (gimple_regimplify_operands): Always look if
14477 we need to create a temporary.
14478
7cae94fc
RG
144792009-02-10 Richard Guenther <rguenther@suse.de>
14480
14481 PR tree-optimization/39132
14482 * tree-loop-distribution.c (todo): New global var.
14483 (generate_memset_zero): Trigger TODO_rebuild_alias.
14484 (tree_loop_distribution): Return todo.
14485
a8800687
L
144862009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14487
14488 PR target/39119
14489 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14490 (x86_64_reg_class_name): Removed.
14491 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14492 first one isn't X86_64_SSE_CLASS or any other ones aren't
14493 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14494 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14495 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14496 and 3 X86_64_SSEUP_CLASS.
14497 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14498 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14499
d4bacef0
BE
145002009-02-10 Ben Elliston <bje@au.ibm.com>
14501
14502 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14503 form instruction to update the stack back chain word, even if the
14504 user has disabled the generation of update instructions.
14505 (movdi_<mode>_update_stack): New.
14506 (movsi_update_stack): Likewise.
14507 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14508 always use an update form instruction to update the stack back
14509 chain word.
14510
01d7d2f3
SP
145112009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14512
14513 PR middle-end/38953
b058b753
UB
14514 * graphite.c (if_region_set_false_region): After moving a region in
14515 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14516 (gloog): Remove wrong fix for PR38953.
14517
e41e2ab4
UW
145182009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14519
14520 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14521 generation due to implicit sign extension.
14522
4bb07c5d
EB
145232009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14524
14525 PR middle-end/38981
14526 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14527 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14528
f060a261
RG
145292009-02-09 Richard Guenther <rguenther@suse.de>
14530
14531 PR middle-end/35202
14532 * convert.c (convert_to_real): Disable (float)fn((double)x)
14533 to fnf(x) conversion if errno differences may occur and
14534 -fmath-errno is set.
14535
5a7e237c
AS
145362009-02-07 Anatoly Sokolov <aesok@post.ru>
14537
14538 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14539 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14540 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14541
feab5a67
JM
145422009-02-06 Joseph Myers <joseph@codesourcery.com>
14543
14544 PR c/35434
14545 * c-common.c (handle_alias_attribute): Disallow attribute for
14546 anything not a FUNCTION_DECL or VAR_DECL.
14547
90ef2296
JJ
145482009-02-06 Janis Johnson <janis187@us.ibm.com>
14549
14550 PR c/39035
14551 * real.c (do_compare): Special-case compare of zero against
14552 decimal float value.
14553
1de2c900
JM
145542009-02-06 Joseph Myers <joseph@codesourcery.com>
14555
14556 PR c/36432
14557 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14558 as indicating flexible array members unless the field itself is
14559 being declarared as the incomplete array.
14560
e901811a
JH
145612009-02-06 Jan Hubicka <jh@suse.cz>
14562
14563 PR tree-optimization/38844
14564 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14565 is already inlined.
14566
3cfa762b
RG
145672009-02-06 Richard Guenther <rguenther@suse.de>
14568
14569 PR middle-end/38977
14570 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14571 fork because we may expand it as __gcov_fork.
14572
8506528c
NC
145732009-02-06 Nick Clifton <nickc@redhat.com>
14574
dbf9ee15 14575 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14576
85169114
PB
145772009-02-06 Paolo Bonzini <bonzini@gnu.org>
14578
14579 PR tree-optimization/35659
14580 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14581 vn_phi_eq): Shortcut if hashcode does not match.
14582 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14583 NULL operands.
14584 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14585 and avoid iterative_hash_expr.
14586 (FOR_EACH_VALUE_ID_IN_SET): New.
14587 (value_id_compare): Remove.
14588 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14589 sort expressions by value id.
14590
6d39673d
KK
145912009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14592
14593 PR target/38991
14594 * config/sh/predicates.md (general_movsrc_operand): Don't check
14595 the subreg of system registers here.
14596
e6e1c050
JJ
145972009-02-05 Jakub Jelinek <jakub@redhat.com>
14598
14599 PR c++/39106
14600 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14601 on the copied decl.
14602
65a74b5d
PB
146032009-02-05 Paolo Bonzini <bonzini@gnu.org>
14604
14605 PR rtl-optimization/39110
14606 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14607 addresses, not aligned ones.
14608
08e14b2a
DB
146092009-02-05 Daniel Berlin <dberlin@dberlin.org>
14610 Richard Guenther <rguenther@suse.de>
14611
14612 PR tree-optimization/39100
14613 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14614 comment says and add edges.
14615
5006381c
JM
146162009-02-05 Joseph Myers <joseph@codesourcery.com>
14617
14618 PR c/35435
14619 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14620 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14621
2ba9daa7 146222009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14623
14624 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14625 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14626 register_bb_in_sese, new_sese, free_sese): Moved.
14627 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14628 outermost_loop_in_scop, build_scop_iteration_domain,
14629 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14630 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14631 Use loop_in_sese_p instead of loop_in_scop_p.
14632 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14633 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14634 (scopdet_basic_block_info): Fix bug in scop detection.
14635 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14636 eq_loop_to_cloog_loop): Remove.
14637 (nb_loops_around_loop_in_scop, nb_loop
14638 ref_nb_loops): Moved here...
14639 * graphite.h (ref_nb_loops): ... from here.
14640 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14641 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14642 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14643 * testsuite/gcc.dg/graphite/scop-19.c: New
14644
48e8382e
PB
146452009-02-04 Paolo Bonzini <bonzini@gnu.org>
14646 Hans-Peter Nilsson <hp@axis.com>
14647
14648 PR rtl-optimization/37889
14649 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14650 Move offset handling from PLUS to before the switch. Use new
14651 arguments when considering SYMBOL_REFs too.
14652 (rtx_addr_can_trap_p): Pass dummy offset and size.
14653 (enum may_trap_p_flags): Remove.
14654 (may_trap_p_1): Pass size from MEM_SIZE.
14655
14656 PR rtl-optimization/38921
14657 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14658 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14659 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14660 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14661
69349ea5
L
146622009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14663
14664 AVX Programming Reference (January, 2009)
14665 * config/i386/sse.md (*vpclmulqdq): New.
14666
b545e411
JJ
146672009-02-04 Jakub Jelinek <jakub@redhat.com>
14668
14669 PR tree-optimization/38977
14670 PR gcov-profile/38292
bf9b2cc9 14671 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14672
5b43bf05
HS
146732009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14674
14675 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14676 non-indexable addresses even before reload.
14677
062c4bb3
JM
146782009-02-03 Joseph Myers <joseph@codesourcery.com>
14679
14680 PR c/29129
14681 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14682 as having variable size. Do not give an error for unnamed
14683 parameters with [*] declarators. Give a warning for type names
14684 with [*] declarators and mark them as variable size.
14685 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14686 for sizeof applied to [*] type names.
14687
6175f578
AP
146882009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14689
14690 PR C++/36607
14691 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14692
d4f4bc84
JJ
146932009-02-03 Jakub Jelinek <jakub@redhat.com>
14694
14695 * gcc.c (process_command): Update copyright notice dates.
14696 * gcov.c (print_version): Likewise.
14697 * gcov-dump.c (print_version): Likewise.
14698 * mips-tfile.c (main): Likewise.
14699 * mips-tdump.c (main): Likewise.
14700
f6294de7
JM
147012009-02-03 Joseph Myers <joseph@codesourcery.com>
14702
14703 PR c/35433
14704 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14705 for composite type involving a zero-length array type.
14706
754ccf7c
JJ
147072009-02-03 Jakub Jelinek <jakub@redhat.com>
14708
70f16287
JJ
14709 PR target/35318
14710 * function.c (match_asm_constraints_1): Skip over
14711 initial optional % in the constraint.
14712
754ccf7c
JJ
14713 PR inline-asm/39059
14714 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14715 supported, don't accept FIXED_CSTs.
14716 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14717 and _Sat is used without _Fract/_Accum. Set specs->type to
14718 integer_type_node for cts_fract/cts_accum if fixed point is not
14719 supported.
14720
965fdadf
CM
147212009-02-02 Catherine Moore <clm@codesourcery.com>
14722
dbf9ee15 14723 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14724
2e8a796f
RS
147252009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14726
14727 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14728 (ABI_HAS_64BIT_SYMBOLS): Use it.
14729 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14730
e0079468
PB
147312009-02-02 Paul Brook <paul@codesourcery.com>
14732
14733 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14734
eca72963
JJ
147352009-02-02 Jakub Jelinek <jakub@redhat.com>
14736
14737 PR inline-asm/39058
14738 * recog.h (asm_operand_ok): Add constraints argument.
14739 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14740 recurse on matching constraint.
14741 (check_asm_operands): Pass constraints as 3rd argument to
14742 asm_operand_ok. Don't look up matching constraint here.
14743 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14744 to asm_operand_ok.
14745
b5bde9ff
BE
147462009-02-02 Ben Elliston <bje@au.ibm.com>
14747
14748 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14749 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14750
30f3e427
JDA
147512009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14752
be7659ba
JDA
14753 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14754 information. Remove some obsolete information. Reorganize.
14755
30f3e427
JDA
14756 * config/pa/fptr.c: Revert license to GPL 2.
14757 * config/pa/milli64.S: Likewise.
14758
3cbfaf98
DK
147592009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14760
14761 PR target/38904
14762 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14763 LIBRARY name in, instead of hard-coding it.
14764 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14765 extra target make frag to tmake_files according to EH model.
14766 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14767 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14768 frags that define makefile variable EH_MODEL appropriately.
14769 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14770 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14771 to "-sjlj" according to type of EH configured.
14772 (LIBGCC_SONAME): Concatenate it to shared library base name.
14773 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14774 to "_sjlj" according to type of EH configured.
14775 (LIBGCC_SONAME): Concatenate it to shared library base name.
14776 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14777 (SHLIB_LINK): Add missing semicolon to if-else construct.
14778 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14779 string value of "pe_dll" command-line option.
14780 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14781 (SHLIB_SONAME): Use it when overriding t-cygming default.
14782 (SHLIB_IMPLIB): Override t-cygming default.
14783 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14784 string value of "pe_dll" command-line option.
14785
8d0b6068
DK
147862009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14787
14788 PR target/38952
14789 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14790 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14791
14c28276
RG
147922009-01-31 Richard Guenther <rguenther@suse.de>
14793
14794 PR tree-optimization/38937
14795 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14796 computing the transitive closure.
14797
5f4d82c2
RG
147982009-01-30 Richard Guenther <rguenther@suse.de>
14799
14800 PR tree-optimization/39041
14801 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14802 Propagate variable indices only if the types match for this stmt.
14803
d0728ae0
JJ
148042009-01-30 Jakub Jelinek <jakub@redhat.com>
14805
14806 PR target/39013
14807 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14808 inline but never defined.
14809
6b67572e 148102009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14811
14812 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14813 (*insv_h_di_reg_extimm): New insn.
14814 (*insv_l<mode>_reg_extimm): New insn.
14815
148162009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14817
14818 * config/picochip/picochip.c (flag_conserve_stack): set
14819 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14820 fconserve-stack. Reduce call-overhead used by inliner.
14821
9fec758d 148222009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14823
14824 PR/38157
14825 * common.opt (flag_conserve_stack): Initialised to zero.
14826
7f1c539c
KT
148272009-01-30 Kai Tietz <kai.tietz@onevision.com>
14828
14829 PR/39002
14830 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14831 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14832 method.
14833
3631be48
L
148342009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14835
14836 * ira-color.c (allocno_reload_assign): Update comments.
14837 * regmove.c (regmove_optimize): Likewise.
14838
14839 * ra.h: Removed.
14840
416ac4d4
RM
148412009-01-29 Robert Millan <rmh@aybabtu.com>
14842
60839f5d
EB
14843 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14844 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14845 `MD_UNWIND_SUPPORT'.
60839f5d 14846 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14847
d5e54bc1
KH
148482009-01-29 Kazu Hirata <kazu@codesourcery.com>
14849
14850 PR tree-optimization/39007
14851 * tree-loop-distribution.c (generate_builtin): Use
14852 recompute_dominator to compute the immediate dominator of the
14853 basic block just after the loop.
14854
38432148 148552009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14856
14857 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14858 (ASM_OUTPUT_DWARF_PCREL): Define.
14859
38432148 148602009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14861
14862 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14863 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14864 global. Modify entries about regmove and IRA.
14865
14866 * ra-conflict.c: Remove the file.
14867
14868 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14869
14870 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14871 (pass_regclass_init): Rename to pass_reginfo_init.
14872
14873 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14874
14875 * toplev.h (flag_ira): Remove.
14876
14877 * caller-save.c (setup_save_areas): Remove flag_ira.
14878
bf9b2cc9 14879 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14880
14881 * global.c: Remove the file.
14882
ba20e309 14883 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14884
14885 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14886
14887 * regmove.c: Modify file description.
14888 (find_use_as_address, try_auto_increment): Define them only if
14889 AUTO_INC_DEC is defined.
14890 (replacement_quality, replace_in_call_usage, fixup_match_1,
14891 stable_and_no_regs_but_for_p): Remove.
14892 (reg_set_in_bb): Make it static.
14893 (regmove_optimize): Remove flag_ira and code which worked for
14894 !flag_ira.
14895
14896 * local-alloc.c: Remove the file.
14897
14898 * common.opt (fira): Remove.
14899
14900 * ira.c: Include except.h.
14901 (eliminable_regset): Move from global.c.
14902 (mark_elimination): Ditto. Remove flag_ira.
14903 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14904 equiv_mem_modified, validate_equiv_mem_from_store,
14905 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14906 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14907 no_equiv, recorded_label_ref): Move from local-alloc.c.
14908 (update_equiv_regs): Ditto. Make it static.
14909 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14910 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14911 (build_insn_chain): Ditto. Make it static.
14912 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14913 Rename to init_live_subregs.
14914 (gate_ira): Remove flag_ira.
14915
14916 * regclass.c: Rename reginfo.c. Change file description.
14917 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14918 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14919 (init_reg_sets_1): Remove code for evaluation of
14920 reg_class_superclasses and losing_caller_save_reg_set.
14921 (init_regs): Remove init_reg_autoinc.
14922 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14923 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14924 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14925 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14926 corresponding entries.
14927 (dump_regclass, record_operand_costs, scan_one_insn,
14928 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14929 record_address_regs, auto_inc_dec_reg_p): Remove.
14930 (gt-regclass.h): Rename to gt-reginfo.h.
14931
14932 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14933 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14934
14935 * Makefile.in (RA_H): Remove.
14936 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14937 Rename regclass.o to reginfo.o.
14938 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14939 gt-reginfo.h.
14940 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14941 (GTFILES): Rename regclass.c to reginfo.c.
14942
14943 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14944 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14945
14946 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14947 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14948 Remove flag_ira.
6b67572e 14949 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14950
c95b2534 149512009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14952
14953 PR middle-end/35854
14954 * doc/invoke.texi (rtl debug options): Complete rewrite.
14955 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14956 to auto_inc_dec".
14957 * mode-switching.c (pass_mode_switching): Rename pass from
14958 "mode-sw" to "mode_sw".
14959 * except.c (pass_convert_to_eh_ranges): Rename pass from
14960 "eh-ranges" to "eh_ranges".
14961 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14962 to "subreg1".
2ba9daa7
AS
14963
14964
72a54528
AM
149652009-01-29 Andrey Belevantsev <abel@ispras.ru>
14966 Alexander Monakov <amonakov@ispras.ru>
14967
14968 PR middle-end/38857
14969 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14970 register.
14971 (move_exprs_to_boundary): Change return type and pass through
14972 should_move from move_op. Relax assert. Update usage ...
14973 (schedule_expr_on_boundary): ... here. Use should_move instead of
14974 cant_move.
14975 (move_op_orig_expr_found): Indicate that insn was disconnected from
14976 stream.
14977 (code_motion_process_successors): Do not call after_merge_succs
14978 callback if original expression was not found when traversing any of
14979 the branches.
14980 (code_motion_path_driver): Change return type. Update prototype.
14981 (move_op): Update comment. Add a new parameter (should_move). Update
14982 prototype. Set *should_move based on indication provided by
14983 move_op_orig_expr_found.
14984
001b9eb6
PH
149852009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14986
14987 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14988 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14989 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14990 * config/rs6000/rs6000.c (rs6000_override_options): Default
14991 avoid-indexed-addresses on for Power6, off for everything else.
14992 (avoiding_indexed_address_p): New function.
14993 (rs6000_legitimize_address): Use it.
14994 (rs6000_legitimate_address): Likewise.
14995 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14996
59dc4898
KH
149972009-01-28 Kazu Hirata <kazu@codesourcery.com>
14998
14999 PR tree-optimization/38997
15000 * tree-loop-distribution.c (generate_memset_zero): Use
15001 POINTER_PLUS_EXPR for a pointer addition.
15002
07da44ab
AK
150032009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
15004
15005 * config/s390/s390.md (bswap<mode>2): New pattern added.
15006
cdc15d23
WG
150072009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15008
15009 * config/s390/s390.md (*tls_load_31): Added type attribute.
15010
d46f24b6
WG
150112009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15012
15013 * config/s390/s390.md: Fix a few comments.
15014
729e750f
WG
150152009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15016
15017 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15018 (*tm<mode>_full): Fixed z10prop attribute.
15019 (*tst<mode>_extimm): Fixed z10prop attribute.
15020 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15021 (*tstqiCCT_cconly): Fixed z10prop attribute.
15022 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15023 (*movsi_larl): Fixed z10prop attribute.
15024 (*movsi_zarch): Fixed z10prop attribute.
15025 (*movsi_eas): Fixed z10prop attribute.
15026 (*movhi): Fixed z10prop attribute.
15027 (*movqi): Fixed z10prop attribute.
15028 (*movstrictqi): Fixed z10prop attribute.
15029 (*mov<mode>): Fixed z10prop attribute.
15030 (*movcc): Fixed z10prop attribute.
15031 (*sethighpartdi_64): Fixed z10prop attribute.
15032 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15033 (*negdi2_sign_cc): Fixed z10prop attribute.
15034 (*negdi2_sign): Fixed z10prop attribute.
15035 (*absdi2_sign_cc): Fixed z10prop attribute.
15036 (*absdi2_sign): Fixed z10prop attribute.
15037 (*negabsdi2_sign_cc): Fixed z10prop attribute.
15038 (*negabsdi2_sign): Fixed z10prop attribute.
15039 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15040 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15041 (doloop_si64): Fixed z10prop attribute.
15042 (doloop_si31): Fixed z10prop attribute.
15043 (doloop_long): Fixed z10prop attribute.
15044 (indirect_jump): Fixed z10prop attribute.
15045 (nop): Fixed z10prop attribute.
15046 (main_base_64): Fixed z10prop attribute.
15047 (reload_base_64): Fixed z10prop attribute.
15048
c7789bfb
JJ
150492009-01-28 Jakub Jelinek <jakub@redhat.com>
15050
15051 PR rtl-optimization/38740
6b67572e
UB
15052 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15053 if !optimize.
c7789bfb
JJ
15054 * config/mips/mips.c (mips_reorg): Likewise.
15055
de081cfd
RG
150562009-01-28 Richard Guenther <rguenther@suse.de>
15057
15058 PR tree-optimization/38926
15059 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15060 with the correct value id to a value.
15061 (do_regular_insertion): Use the value number of edoubleprime
15062 for the value number of the expr.
15063
15064 Revert
15065 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 15066
d748c406
UB
15067 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15068 a PHI ask VN if it is already available.
15069 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15070 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 15071
a9d386a1
JJ
150722009-01-28 Jakub Jelinek <jakub@redhat.com>
15073
15074 PR middle-end/38934
15075 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15076 set to varying whenever max has TREE_OVERFLOW set, similarly
15077 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15078
97a170cd
RG
150792009-01-28 Richard Guenther <rguenther@suse.de>
15080
15081 PR middle-end/38908
15082 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15083 uninitialized aggregate uses in call arguments.
15084
89ebafc6
PB
150852009-01-28 Paolo Bonzini <bonzini@gnu.org>
15086
15087 PR tree-optimization/38984
15088 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15089 the nothing_id variable if -fno-delete-null-pointer-checks.
15090
bef3c57b
UB
150912009-01-28 Uros Bizjak <ubizjak@gmail.com>
15092
15093 PR target/38988
15094 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15095 (set_got_offset_rex64): Ditto.
15096
0c6390fa
L
150972009-01-27 H.J. Lu <hongjiu.lu@intel.com>
15098
15099 PR target/38941
15100 * doc/extend.texi: Improve local variable with asm reg.
15101
bee6fa6d
AN
151022009-01-27 Adam Nemet <anemet@caviumnetworks.com>
15103
15104 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15105 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15106 was not supplied then set warn_packed_bitfield_compat to the
15107 default value of 1.
15108 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15109 against 1.
15110
b5c3dfbb
RG
151112009-01-27 Richard Guenther <rguenther@suse.de>
15112
15113 PR tree-optimization/38503
15114 * cfgexpand.c (expand_gimple_basic_block): Ignore
15115 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15116 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15117 variables that cannot have TBAA applied.
15118 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15119 statements.
15120
d748c406 151212009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
15122
15123 PR middle-end/38969
15124 * calls.c (initialize_argument_information): Do not wrap complex
15125 arguments in SAVE_EXPR.
15126
9112bb38
AT
151272009-01-26 Andreas Tobler <a.tobler@schweiz.org>
15128
15129 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 15130 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 15131
4757704f
RG
151322009-01-26 Richard Guenther <rguenther@suse.de>
15133
15134 PR tree-optimization/38745
15135 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15136 from special handling.
15137
e3e6cff4
RG
151382009-01-26 Richard Guenther <rguenther@suse.de>
15139
15140 PR tree-optimization/38745
15141 * tree-ssa.c (execute_update_addresses_taken): Do not include
15142 variables that cannot possibly be a register in not_reg_needs.
15143 Do not clear TREE_ADDRESSABLE on vars that may not become
15144 registers.
15145 * tree-ssa.c (update_alias_info_1): Include those in the set
15146 of addressable vars.
15147
dc874b53
RG
151482009-01-26 Richard Guenther <rguenther@suse.de>
15149
15150 PR middle-end/38851
15151 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15152 * tree-ssa-dse.c: Include langhooks.h
15153 (execute_simple_dse): Remove stores with zero size.
15154
849421a3
JJ
151552009-01-24 Jakub Jelinek <jakub@redhat.com>
15156
15157 PR c/38957
15158 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15159 as PLUS_EXPR.
15160
82f70421
JB
151612009-01-24 Julian Brown <julian@codesourcery.com>
15162
15163 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15164 config/arm/linux-atomic.c.
15165 * config/arm/linux-atomic.c: New.
15166
863412d6
EB
151672009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15168
15169 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15170 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15171 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15172
8c684300
L
151732009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15174
15175 PR c/38938
93f1527a 15176 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
15177 properly.
15178
b840fb02
SP
151792009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15180
15181 PR tree-optimization/38953
15182 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15183 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15184 (gloog): Split the exit of the scop when the scop exit is a loop exit.
15185 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15186 changed the CFG.
15187
ecee559f
PB
151882009-01-24 Paul Brook <paul@codesourcery.com>
15189
15190 * config/arm/neon.md (neon_type): Move to arm.md.
15191 (neon_mov<VSTRUCT>): Add neon_type attribute.
15192 * config/arm/arm.md (neon_type): Move to here.
15193 (conds): Add "unconditioal" and use as default for NEON insns.
15194
61ad0914
BE
151952009-01-24 Ben Elliston <bje@au.ibm.com>
15196
15197 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15198 void *' warning from -Wc++-compat.
15199 * Makefile.in (dominance.o-warn): Remove.
15200
38432148 152012009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15202
15203 PR tree-optimization/38932
15204 * fold-const.c (fold_unary_ignore_overflow): New.
15205 * tree.h (fold_unary_ignore_overflow): Declare.
15206 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15207 * tree-ssa-sccvn.c (visit_reference_op_load,
15208 simplify_unary_expression): Likewise.
15209
2cd36c22
AN
152102009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15211
15212 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15213 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15214 regardless of their type.
15215 * c-common.c (handle_packed_attribute): Don't ignore packed on
15216 bitfields.
15217 * c.opt (Wpacked-bitfield-compat): New warning option.
15218 * stor-layout.c (place_field): Warn if offset of a field changed.
15219 * doc/extend.texi (packed): Mention the ABI change.
15220 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15221 (Warning Options): Add it to the list.
15222
e4e624ab
L
152232009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15224
15225 * c-opts.c (c_common_post_options): Fix a typo in comments.
15226
d0ea0759
SE
152272009-01-22 Steve Ellcey <sje@cup.hp.com>
15228
15229 PR middle-end/38615
15230 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15231 variables to static.
15232 * doc/invoke.texi (-fmerge-all-constants): Update description.
15233
87673f84
UB
152342009-01-22 Uros Bizjak <ubizjak@gmail.com>
15235
15236 PR target/38931
15237 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15238 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15239
96339268
RE
152402009-01-22 Richard Earnshaw <rearnsha@arm.com>
15241
15242 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15243 a word boundary.
15244 (LOCAL_ALIGNMENT): Similarly.
15245
442dc742 152462009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15247 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15248
15249 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15250 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15251 * config/arm/arm-tune.md: Regenerate.
15252 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15253 -march=iwmmxt2.
15254
9b34732e
MS
152552009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15256
15257 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15258 version number to five.
15259
03c2a308
DS
152602009-01-22 Dodji Seketeli <dodji@redhat.com>
15261
15262 PR c++/38930
ba20e309 15263 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15264 * c-common.c (set_underlying_type): Likewise.
15265 (is_typedef_decl ): Likewise
15266 * tree.h: Likewise
15267 (set_underlying_type): Likewise.
15268 (is_typedef_type): Likewise.
15269
1240d76e
VM
152702009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15271
15272 PR middle-end/38587
15273 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15274 crossing setjmps.
15275
b8a1087d
DK
152762009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15277
15278 PR bootstrap/37660
15279 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15280 (LIBGCC_SPEC): Don't define.
15281 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15282
435da628
UB
152832009-01-21 Uros Bizjak <ubizjak@gmail.com>
15284
15285 PR rtl-optimization/38879
15286 * alias.c (base_alias_check): Unaligned access via AND address can
15287 alias all surrounding object types except those with sizes equal
15288 or wider than the size of unaligned access.
15289
d597b3ce
DS
152902009-01-21 Dodji Seketeli <dodji@redhat.com>
15291
15292 PR c++/26693
ba20e309 15293 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15294 * c-common.c (set_underlying_type): ... here.
435da628 15295 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15296 the newly created typedef variant type.
15297 (is_typedef_decl ): New entry point.
15298 * tree.h: Added a new member member_types_needing_access_check to
15299 struct tree_decl_non_common.
15300 (set_underlying_type): New entry point.
15301 (is_typedef_type): Likewise.
15302
71a6fe66
BM
153032009-01-21 Bingfeng Mei <bmei@broadcom.com>
15304
15305 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15306 Check whether two instructions have memory references that
15307 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15308 are helper functions for traversing.
15309 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15310 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15311 not to draw dependency edge for instructions with non-conflicting
15312 alias sets.
15313
5a248274
JM
153142009-01-20 Joseph Myers <joseph@codesourcery.com>
15315
15316 PR other/38758
6b67572e
UB
15317 * longlong.h: Update copyright years. Use soft-fp license notice.
15318 Sync __clz_tab declaration with glibc.
5a248274 15319
4b84f3de
SE
153202009-01-20 Steve Ellcey <sje@cup.hp.com>
15321
15322 PR target/30687
15323 * doc/extend.texi (syscall_linkage): New.
15324 (version_id): Modify.
15325
37348bf1 153262009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15327 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15328
15329 PR tree-optimization/38747
15330 PR tree-optimization/38748
15331 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15332 conversion if the base address is an indirect reference and the
15333 aliasing sets could cause issues.
15334
d0a58904
SP
153352009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15336
2ba9daa7 15337 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15338 explaining why these options are not documented.
15339
71e7afb2
SP
153402009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15341
15342 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15343 gimple_call_lhs is NULL.
15344
38432148 153452009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15346
15347 PR target/38868
15348 * emit-rtl.c (adjust_address_1): Make sure memref is never
15349 overwritten.
15350
cbb8dee3
BE
153512009-01-20 Ben Elliston <bje@au.ibm.com>
15352
15353 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15354 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15355 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15356 const qualifier from arg 2.
15357
72c66596
IS
153582009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15359
435da628 15360 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15361
f68211cd
VM
153622009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15363
15364 PR c/38869
15365 * rtl.h (reinit_regs): New prototype.
15366 * regclass.c: Include ira.h.
15367 (reinit_regs): New.
15368 * Makefile.in (regclass.o): Add ira.h.
15369 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15370
6e4f1168
L
153712009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15372
15373 PR target/38736
15374 * c-common.c (handle_aligned_attribute): Use
15375 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15376 default alignment value.
15377
15378 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15379
15380 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15381 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15382
15383 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15384 __BIGGEST_ALIGNMENT__.
15385
15386 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15387
890065bf
RG
153882009-01-18 Richard Guenther <rguenther@suse.de>
15389
15390 PR tree-optimization/38819
15391 * tree-flow.h (operation_could_trap_helper_p): Declare.
15392 * tree-eh.c (operation_could_trap_helper_p): Export.
15393 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15394 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15395 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15396 are about to insert a possibly trapping instruction and fail
15397 in this case.
15398
a729d731
AS
153992009-01-18 Andreas Schwab <schwab@suse.de>
15400
15401 * doc/install.texi (Configuration): Remove obsolete paragraph
15402 about use of --with-gnu-ld with --with-gnu-as.
15403
a640c13b
KH
154042009-01-18 Kazu Hirata <kazu@codesourcery.com>
15405
15406 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15407 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15408 Follow spelling conventions.
15409
dba2cc0c
BE
154102009-01-18 Ben Elliston <bje@au.ibm.com>
15411
15412 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15413 C++ warning about implicit conversion from void * to struct
15414 bitmap_head_def *.
15415 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15416 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15417
2207a498
DK
154182009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15419
15420 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15421
8137e465
SP
154222009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15423 Tobias Grosser <tobi.grosser@amd.com>
15424
15425 * graphite.c (graphite_trans_scop_block): Do not block single
15426 nested loops.
15427
5be1c58c
AO
154282009-01-16 Alexandre Oliva <aoliva@redhat.com>
15429
15430 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15431 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15432 test with assertion.
15433
786ce82d
RG
154342009-01-16 Richard Guenther <rguenther@suse.de>
15435
15436 PR tree-optimization/38835
15437 PR middle-end/36227
15438 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15439 and INT + PTR -> (INT)(PTR p+ INT) folding.
15440 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15441
c1cb09ad
AN
154422009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15443
15444 PR target/38554
15445 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15446 the subreg from a lowpart subreg if it is also casting the value.
15447
bcab4e19
SP
154482009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15449 Tobias Grosser <tobi.grosser@amd.com>
15450
15451 * graphite.c (compare_prefix_loops): New.
15452 (build_scop_canonical_schedules): Rewritten.
15453 (graphite_transform_loops): Move build_scop_canonical_schedules
15454 after build_scop_iteration_domain.
15455
0b040072
SP
154562009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15457 Tobias Grosser <tobi.grosser@amd.com>
15458
2ba9daa7 15459 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15460 the dimension of the iteration domain. Do copy the domain
15461 only when it exists.
15462 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15463 (add_conditions_to_constraints): New.
15464 (can_generate_code_stmt, can_generate_code): Removed.
15465 (gloog): Do not call can_generate_code.
15466 (graphite_transform_loops): Call add_conditions_to_constraints
15467 after building the iteration domain.
15468
56c6a499
JJ
154692009-01-16 Jakub Jelinek <jakub@redhat.com>
15470
15471 PR tree-optimization/38789
15472 * tree-ssa-threadedge.c
15473 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15474 __builtin_constant_p.
15475
c95b2534 154762009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15477
15478 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15479 examined before deleting them.
2ba9daa7 15480
c433cb14
RE
154812009-01-16 Richard Earnshaw <rearnsha@arm.com>
15482
15483 * function.c (aggregate_value_p): Correctly extract the function
15484 type from CALL_EXPR_FN lookup.
15485
c95b2534 154862009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15487
15488 * config/picochip/picochip.c (picochip_override_options): Revert
15489 CFI asm flag disable commited previously.
15490
c77bb78f
SP
154912009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15492 Tobias Grosser <tobi.grosser@amd.com>
15493 Jan Sjodin <jan.sjodin@amd.com>
15494
15495 * graphite.c (scan_tree_for_params): On substractions negate
15496 all the coefficients of the term.
15497 (clast_to_gcc_expression_red): New. Handle reduction expressions
15498 of more than two operands.
15499 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15500 (get_vdef_before_scop): Handle also the case of default definitions.
15501
574af2d6
RS
155022009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15503
15504 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15505 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15506 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15507
e939805b
L
155082009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15509 Joey Ye <joey.ye@intel.com>
15510
15511 PR middle-end/37843
15512 * cfgexpand.c (expand_stack_alignment): Don't update stack
15513 boundary nor check incoming stack boundary here.
15514 (gimple_expand_cfg): Update stack boundary and check incoming
15515 stack boundary here.
15516
c95b2534 155172009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15518
435da628 15519 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15520
0196c95e
JJ
155212009-01-14 Jakub Jelinek <jakub@redhat.com>
15522
15523 PR rtl-optimization/38245
15524 * calls.c (expand_call): Add stack arguments to
15525 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15526 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15527 in regs and partially in memory or BLKmode arguments.
15528 (emit_library_call_value_1): Add stack arguments to
15529 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15530 ACCUMULATE_OUTGOING_ARGS).
15531 * dce.c: Include tm_p.h.
15532 (find_call_stack_args): New function.
15533 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15534 argument.
15535 (mark_insn): Call find_call_stack_args for CALL_Ps.
15536 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15537 forwards. Allocate and free arg_stores bitmap if needed, pass it
15538 down to deletable_insn_p, don't mark stores set in arg_stores
15539 bitmap, clear the bitmap at the beginning of each bb.
15540 * Makefile.in (dce.o): Depend on $(TM_P_H).
15541
6df6bcfa
MM
155422009-01-14 Michael Meissner <gnu@the-meissners.org>
15543
15544 PR target/22599
435da628
UB
15545 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15546 to make sure the insn is a conditional test (bug 22599). Reformat a
15547 few long lines.
6df6bcfa 15548
765ec70c
SP
155492009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15550
15551 PR middle-end/38431
15552 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15553 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15554 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15555 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15556 scops have been code generated.
15557
7de2b688
BS
155582009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15559 * doc/gty.texi (Invoking the garbage collector): Added new node
15560 and section documenting ggc_collect.
15561
10bd6c5c
RG
155622009-01-14 Richard Guenther <rguenther@suse.de>
15563
15564 PR tree-optimization/38826
15565 PR middle-end/38477
15566 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15567 initialization notes only if we actually emitted a warning.
15568 (intra_create_variable_infos): Add constraints for a result decl
15569 that is passed by hidden reference.
15570 (build_pred_graph): Mark all related variables non-direct on
15571 address-taking.
15572
9c7c70ee
NC
155732009-01-14 Nick Clifton <nickc@redhat.com>
15574
15575 * ira-conflicts.c: Include addresses.h for the definition of
15576 base_reg_class.
435da628
UB
15577 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15578 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15579
cf0c2a60
VM
155802009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15581
15582 PR target/38811
15583 * Makefile.in (ira-lives.o): Add except.h.
15584
15585 * ira-lives.c: Include except.h.
15586 (process_bb_node_lives): Process can_throw_internal.
15587
d3302fd3
JJ
155882009-01-13 Jakub Jelinek <jakub@redhat.com>
15589
15590 PR rtl-optimization/38774
15591 * combine.c (simplify_set): When undoing cc_use change, don't do
15592 PUT_CODE on the newly created comparison, but instead put back the
15593 old comparison.
15594
7ab23fd0
JM
155952009-01-13 Joseph Myers <joseph@codesourcery.com>
15596
15597 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15598 values. Remove duplicate arm8 entry.
15599
f9344488
SP
156002009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15601
15602 PR tree-optimization/38786
15603 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15604 the SSA_NAME case of expand_scalar_variables_expr.
15605 Set the type of an expression to the type of its assign statement.
15606 (expand_scalar_variables_expr): Also gather the scalar computation
15607 used to index the memory access. Do not pass loop_p.
15608 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15609 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15610 the gimple_stmt_iterator where it inserts new code.
15611 Do not pass loop_p.
f9344488
SP
15612 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15613 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15614
2d8bb84d
SP
156152009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15616
15617 * graphite.h (debug_value): Removed.
15618 * graphite.c (debug_value): Removed.
15619
ff128632
RE
156202009-01-13 Richard Earnshaw <rearnsha@arm.com>
15621
435da628
UB
15622 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15623 ldrd/strd with two 32-bit instructions.
ff128632 15624
d5a0a47b
RE
156252009-01-13 Richard Earnshaw <rearnsha@arm.com>
15626
435da628
UB
15627 * config/arm/arm.c (struct processors): Pass for speed down into
15628 cost helper functions.
d5a0a47b
RE
15629 (const_ok_for_op): Handle COMPARE and inequality nodes.
15630 (arm_rtx_costs_1): Rewrite.
15631 (arm_size_rtx_costs): Update prototype.
15632 (arm_rtx_costs): Pass speed down to helper functions.
15633 (arm_slowmul_rtx_costs): Rework cost calculations.
15634 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15635 (arm_9e_rtx_costs): Likewise.
15636
26d5bf5b
UB
156372009-01-13 Uros Bizjak <ubizjak@gmail.com>
15638
15639 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15640 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15641 (alpha_legitimize_address): Do not split local symbols wider than
15642 UNITS_PER_WORD into HIGH/LO_SUM parts.
15643
5d14e3d5
DS
156442009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15645
15646 PR bootstrap/38580
15647 * gcc.c (process_command): Replace call to execvp with calls
15648 to pex_one and exit.
15649
33faafca
AS
156502009-01-03 Anatoly Sokolov <aesok@post.ru>
15651
15652 PR target/29141
15653 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15654 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15655 variant for devices with 3-byte PC.
ba20e309 15656 (__tablejump_elpm__): New.
33faafca 15657
634b5df5
JJ
156582009-01-12 Jakub Jelinek <jakub@redhat.com>
15659
15660 PR c/32041
15661 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15662 offsetof member-designator, handle it as `[0].'.
15663
2842bb86
JDA
156642009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15665
15666 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15667 function when not using named sections on targets with named sections
15668 if branch distance is less than 262132.
15669
76ee70f6
RE
156702009-01-12 Richard Earnshaw <rearnsha@arm.com>
15671
15672 * combine.c (combine_instructions): Recompute
15673 optimize_this_for_speed_p for each BB in the main combine loop.
15674
f56e675d
TB
156752009-01-12 Tomas Bily <tbily@suse.cz>
15676
15677 PR middlend/38385
26d5bf5b
UB
15678 * tree-loop-distribution.c (prop_phis): New function.
15679 (generate_builtin): Call prop_phis.
15680 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15681
c2152239
JJ
156822009-01-12 Jakub Jelinek <jakub@redhat.com>
15683
15684 PR tree-optimization/38807
15685 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15686 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15687
0e510b3e
AN
156882009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15689
15690 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15691 subreg of op0 to the original op0.
15692
c95b2534 156932009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15694
15695 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15696
53a7ff9a
MS
156972009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15698
15699 PR debug/7055
60839f5d 15700 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15701 starting with digits.
15702
b3a796bc
JJ
157032009-01-10 Jakub Jelinek <jakub@redhat.com>
15704
15705 PR target/38695
15706 * config/arm/arm.c (arm_is_long_call_p): Don't call
15707 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15708
b21b850e
SB
157092009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15710
15711 * regrename.c (regrename_optimize): Fix dumping.
15712 (find_oldest_value_reg): Preserve REG_POINTER.
15713 (copy_hardreg_forward_1): Likewise.
15714
e0e10d3a
DN
157152009-01-09 Diego Novillo <dnovillo@google.com>
15716
bf9b2cc9 15717 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15718 the restrictions on its use.
15719 (gimple_uid): Tidy.
15720 (gimple_set_uid): Tidy.
15721
c9da2ae8
JJ
157222009-01-09 Jakub Jelinek <jakub@redhat.com>
15723
15724 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15725 zero guard even if align_bytes != 0 and count is smaller than
15726 size_needed.
15727
38432148 157282009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15729
15730 PR rtl-optimization/38495
26d5bf5b 15731 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15732 (add_range_and_copies_from_move_list): Print all added ranges.
15733 Add ranges to memory optimized destination.
15734
260fda3d
JJ
157352009-01-09 Jakub Jelinek <jakub@redhat.com>
15736
6f6278ad
JJ
15737 PR target/38686
15738 PR target/38708
15739 * config/i386/i386.c (override_options): Reject
15740 -mstringop-strategy=rep_8byte with -m32.
15741 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15742 to 1. Do count comparison against epilogue_size_needed at compile
15743 time even when count_exp was constant forced into register. For
15744 size_needed don't jump to epilogue, instead just avoid aligning
15745 and invoke the body algorithm. If need_zero_guard, add zero guard
15746 even if count is non-zero, but smaller than size_needed + number of
15747 bytes that could be stored for alignment.
15748 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15749 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15750 but smaller than size_needed + number of bytes that could be stored
15751 for alignment. Compare size_needed with epilogue_size_needed instead
15752 of desired_align - align, don't adjust size_needed, pass
15753 epilogue_size_needed to the epilogue expanders.
15754
260fda3d 15755 PR c/35742
26d5bf5b 15756 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15757
67b846fa
JDA
157582009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15759
15760 * pa.c (last_address): Change to unsigned.
15761 (update_total_code_bytes): Change argument to unsigned. Don't
15762 check if insn addresses are set.
15763 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15764 addresses are not set.
15765 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15766
91c82473
NC
157672009-01-09 Nick Clifton <nickc@redhat.com>
15768
15769 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15770 DECL_DECLARED_INLINE_P.
15771
4017e262
JJ
157722009-01-09 Jakub Jelinek <jakub@redhat.com>
15773
0a49e5c2
JJ
15774 PR middle-end/38347
15775 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15776 GET_MODE (op0) in operand_subword_force calls.
15777
4017e262
JJ
15778 PR middle-end/38771
15779 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15780 fold_convert arg0 operands to TREE_TYPE (op0) first.
15781
7cd06356
VM
157822009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15783
15784 * params.def (ira-max-conflict-table-size): Decrease default value
15785 to 1000.
15786
96867bbd
JJ
157872009-01-08 Jakub Jelinek <jakub@redhat.com>
15788
15789 PR tree-optimization/37031
15790 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15791 on parameter_set.
15792 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15793 allocate it using gc instead of heap, use VEC_quick_push instead of
15794 VEC_safe_push.
15795 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15796 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15797 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15798 allocated vector from heap allocated.
15799 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15800 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15801 vector only after perfect_loop_nest_depth call.
15802
68f61c3d
SP
158032009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15804 Jan Sjodin <jan.sjodin@amd.com>
15805
15806 PR tree-optimization/38559
15807 * graphite.c (debug_value, copy_constraint,
15808 swap_constraint_variables, scale_constraint_variable, ): New.
15809 (get_lower_bound, get_upper_bound): Removed.
15810 (graphite_trans_bb_strip_mine): Clean up this code that works
15811 only for constant number of iterations. Fully copy upper and
15812 lower bound constraints, not only the constant part of them.
15813 * graphite.h (debug_value): Declared.
15814
82567e33
IR
158152009-01-08 Ira Rosen <irar@il.ibm.com>
15816
15817 PR tree-optimization/37194
15818 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15819 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15820 outside cost in case of known number of iterations.
15821
7da13f1d
NF
158222009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15823 Alan Modra <amodra@bigpond.net.au>
15824
15825 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15826 non-word-aligned REG+CONST addressing.
15827
c0f64575
UB
158282009-01-07 Uros Bizjak <ubizjak@gmail.com>
15829
15830 PR target/38706
15831 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15832 free_after_compilation when outputting a thunk.
15833 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15834 Do not call free_after_compilation here.
15835
301b6a4e
UB
158362009-01-07 Uros Bizjak <ubizjak@gmail.com>
15837
15838 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15839 (ix86_valid_target_attribute_inner_p): Ditto.
15840
6a114766
JS
158412009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15842
15843 PR tree-optimization/38492
15844 PR tree-optimization/38498
15845 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15846 * tree-chrec.h (scev_is_linear_expression): Declared.
15847 * graphite.c (graphite_cannot_represent_loop_niter): New.
15848 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15849 (graphite_loop_normal_form): Use gcc_assert.
15850 (scan_tree_for_params): Use CASE_CONVERT.
15851 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15852 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15853 Use gcc_assert. Discard scops that contain unhandled cases.
15854 (build_scop_conditions): Return a boolean status for unhandled cases.
15855 (strip_mine_profitable_p): Print the loop number, not its depth.
15856 (is_interchange_valid): Pass the depth of the loop nest, don't
15857 recompute it wrongly.
15858 (graphite_trans_bb_block): Same.
15859 (graphite_trans_bb_block): Print tentative of loop blocking.
15860 (graphite_trans_scop_block): Do not print that the loop has been
15861 blocked.
15862 (graphite_transform_loops): Do not handle scops that contain condition
15863 scalar phi nodes.
15864
65b82caa
L
158652009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15866
15867 AVX Programming Reference (December, 2008)
15868 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15869 (_mm256_stream_pd): Likewise.
15870 (_mm256_stream_ps): Likewise.
15871
15872 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15873 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15874 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15875 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15876 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15877 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15878 (ix86_expand_special_args_builtin): Likewise.
15879
15880 * config/i386/sse.md (AVXMODEDI): New.
15881 (avx_movnt<mode>): Likewise.
15882 (avx_movnt<mode>): Likewise.
15883 (<sse>_movnt<mode>): Remove AVX support.
15884 (sse2_movntv2di): Likewise.
15885
cef158f9
RG
158862009-01-07 Richard Guenther <rguenther@suse.de>
15887
15888 PR middle-end/38751
15889 * fold-const.c (extract_muldiv): Remove obsolete comment.
15890 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15891 to PLUS_EXPR canonicalization for the canonicalization.
15892
246cb5be
GP
158932009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15894
15895 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15896 hosted cross-compilers generating less efficient code.
15897
84b9b872
RS
158982009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15899
15900 * function.h (rtl_data): Add a dbr_scheduled_p field.
15901 * reorg.c (dbr_schedule): Set it.
15902 (gate_handle_delay_slots): Check it.
15903 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15904 (mips_reorg): Check flag_delayed_branch instead of
15905 mips_base_delayed_branch.
15906 (mips_override_options): Don't set mips_base_delayed_branch
15907 or flag_delayed_branch.
15908
ace984c8
RS
159092009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15910
15911 PR rtl-optimization/38426.
15912 * ira.c (ira): Set current_function_is_leaf earlier.
15913
7ad7809b
JJ
159142009-01-06 Jakub Jelinek <jakub@redhat.com>
15915
15916 PR rtl-optimization/38722
15917 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15918 too early, only set a flag and modify after last possible
15919 undo_all point.
15920
c52ec948
JJ
159212009-01-06 Janis Johnson <janis187@us.ibm.com>
15922
15923 PR c/34252
15924 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15925 * real.c (decimal_single_format): Correct values of emin and emax.
15926 (decimal_double_format): Ditto.
15927 (decimal_quad_format): Ditto.
15928 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15929 computation of DECnn_MIN and DECnn_MAX for corrected values of
15930 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15931 __DECnn_MIN__, and adjust its computation for the corrected value
15932 of emin.
15933
300240e1
JH
159342009-01-06 Jan Hubicka <jh@suse.cz>
15935
15936 PR target/38744
435da628 15937 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15938
271c069e
GP
159392009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15940
15941 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15942 Add Robert Clark to the list of testers.
15943
64e4c301 159442009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15945 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15946
435da628
UB
15947 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15948 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15949
7650b83e 159502009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15951 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15952
435da628
UB
15953 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15954 for w64 ABI.
15955 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15956 (ix86_nsaved_regs): Count only general purpose regs.
15957 (ix86_nsaved_sseregs): New.
15958 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15959 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15960 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15961 general purpose regs.
7650b83e
JH
15962 (ix86_emit_save_sse_regs_using_mov): New.
15963 (ix86_expand_prologue): Save SSE regs if needed.
15964 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15965 (ix86_emit_restore_sse_regs_using_mov): New.
15966 (ix86_expand_epilogue): Save SSE regs if needed.
15967
9aa5c1b2 159682009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15969 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15970
435da628
UB
15971 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15972 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15973 functions when accumulate outgoing args is off.
9aa5c1b2 15974
f7556aae
L
159752009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15976
15977 PR bootstrap/38742
15978 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15979 before using pseudos_have_intersected_live_ranges_p.
15980
15981 * ira-int.h (ira_assert): Always define.
15982
e47b7d04
L
159832009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15984
15985 AVX Programming Reference (December, 2008)
15986 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15987 (_mm256_permute2_pd): Likewise.
15988 (_mm_permute2_ps): Likewise.
15989 (_mm256_permute2_ps): Likewise.
15990 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15991 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15992
15993 * config/i386/i386.c (ix86_builtins): Remove
15994 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15995 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15996 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15997 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15998 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15999 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16000 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16001 __builtin_ia32_vpermil2ps256.
16002 (ix86_init_mmx_sse_builtins): Updated.
16003 (ix86_expand_args_builtin): Likewise.
16004
44b86471
JDA
160052009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16006
e47b7d04
L
16007 * pa.c (output_call): Relocate non-jump insns in the delay slot of
16008 long absolute calls when generating PA 2.0 code.
44b86471 16009
311aab06
VM
160102009-01-05 Vladimir Makarov <vmakarov@redhat.com>
16011
16012 PR rtl-optimization/38583
16013 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16014
16015 * params.def (ira-max-conflict-table-size): New.
16016
16017 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 16018
311aab06 16019 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 16020
311aab06
VM
16021 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16022 table. Report this. Return result of building.
16023 (ira_build_conflicts): Use ira_conflicts_p. Check result of
16024 building conflict table.
16025
301b6a4e 16026 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 16027 (ira_color): Use ira_conflicts_p.
2ba9daa7 16028
311aab06
VM
16029 * global.c: Include ira.h.
16030 (pseudo_for_reload_consideration_p, build_insn_chain): Use
16031 ira_conflicts_p.
16032
16033 * Makefile.in (global.o): Add ira.h.
2ba9daa7 16034
311aab06
VM
16035 * ira-build.c (mark_all_loops_for_removal,
16036 propagate_some_info_from_allocno): New.
16037 (remove_unnecessary_allocnos): Call
16038 propagate_some_info_from_allocno.
16039 (remove_low_level_allocnos): New.
16040 (remove_unnecessary_regions): Add parameter. Call
16041 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
16042 parameter to remove_unnecessary_regions.
16043 (ira_build): Remove all regions but root if the conflict table was
16044 not built. Update conflict hard regs for allocnos crossing calls.
16045
16046 * ira.c (ira_conflicts_p): New global.
16047 (ira): Define and use ira_conflicts_p.
16048
16049 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16050 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 16051 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 16052
5641785f
BE
160532009-01-06 Ben Elliston <bje@au.ibm.com>
16054
16055 * gengtype-lex.l (YY_NO_INPUT): Define.
16056
e4e5261f
AP
160572009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
16058
16059 PR c/34911
5641785f
BE
16060 * c-common.c (handle_vector_size_attribute): Also reject
16061 BOOLEAN_TYPE types.
e4e5261f 16062
7b10257f
SP
160632009-01-05 Sebastian Pop <sebastian.pop@amd.com>
16064
16065 PR tree-optimization/38492
16066 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
16067 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16068 rename_map_elt_info, eq_rename_map_elts,
16069 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
16070 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16071 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16072 (sese_build_livein_liveouts): New.
16073 (new_sese, free_sese): New.
16074 (new_scop): Call new_sese.
16075 (free_scop): Call free_sese.
16076 (rename_variables_from_edge, rename_phis_end_scop): Removed.
16077 (register_old_new_names): Renamed register_old_and_new_names.
16078 (register_scop_liveout_renames, add_loop_exit_phis,
16079 insert_loop_close_phis, struct igp,
16080 default_liveout_before_guard, add_guard_exit_phis,
16081 insert_guard_phis, copy_renames): New.
16082 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16083 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16084 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16085 (scop_adjust_phis_for_liveouts): New.
16086 (gloog): Call scop_adjust_phis_for_liveouts.
16087
16088 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 16089 num_ver and livein.
7b10257f
SP
16090 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16091 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16092 (struct scop): Added field liveout_renames.
16093 (SCOP_LIVEOUT_RENAMES): New.
16094
9761fcc7
HJ
160952009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
16096
16097 PR tree-optimization/38510
16098 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16099 (translate_clast): Call recompute_all_dominators before
16100 graphite_verify.
16101 (gloog): Call recompute_all_dominators before graphite_verify.
16102
161032009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 16104 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
16105
16106 PR tree-optimization/38500
16107 * graphite.c (create_sese_edges): Call fix_loop_structure after
16108 splitting blocks.
16109
c95b2534 161102009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
16111
16112 * config.gcc: Add m32r*-*-rtems*.
16113 * config/m32r/rtems.h: New file.
16114
fc0cd180
BE
161152009-01-05 Ben Elliston <bje@au.ibm.com>
16116
16117 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16118 (.po.pox): Likewise.
16119 (po/gcc.pot): Likewise.
16120
3106d8e5
DM
161212009-01-04 David S. Miller <davem@davemloft.net>
16122
16123 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16124 (STARTING_FRAME_OFFSET): Always set to zero.
16125
0009b473
RS
161262009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16127
16128 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16129 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16130 fixed-point types, and vectors of the same.
16131
4f24c6d6
RS
161322009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16133
16134 * config/mips/sync.md (*mb_barrier): Rename to...
16135 (*memory_barrier): ...this.
16136
1df48f5c
JW
161372009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
16138
16139 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 16140 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
16141 and put in alphabetical order. Fix 'target' name and put in order.
16142 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16143 typos.
16144
1a8c13b3
UB
161452009-01-04 Uros Bizjak <ubizjak@gmail.com>
16146
16147 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16148 (memory_barrier): Expand as unspec instead of unspec_volatile.
16149 Remove mem:BLK from insn operands. Use Pmode scratch register.
16150 (*memory_barrier): Define as unspec instead of unspec_volatile.
16151 Use (match_dup 0) as input operand.
16152
16153 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16154 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16155 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16156 scratch register. Remove operand 1.
16157 (*stbar): Define as unspec instead of unspec_volatile.
16158 Use (match_dup 0) as input operand, remove (const_int 8).
16159 (*membar): Define as unspec instead of unspec_volatile.
16160 Use (match_dup 0) as input operand, remove input operand 2.
16161
16162 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16163 (memory_barrier): Expand as unspec instead of unspec_volatile.
16164 Remove mem:BLK from insn operands. Use Pmode scratch register.
16165 (*memory_barrier): Define as unspec instead of unspec_volatile.
16166 Use (match_dup 0) as input operand.
16167
16168 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16169 Remove mem:BLK from insn operands. Use Pmode scratch register.
16170 Set volatile flag on operand 0.
16171 (*memory_barrier): New insn pattern.
16172
16173 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16174 insn operands.
16175 (*memory_barrier): Use (match_dup 0) as input operand.
16176
16177 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16178 Remove mem:BLK from insn operands. Use Pmode scratch register.
16179 Set volatile flag on operand 0.
301b6a4e 16180 (*mb_internal): New insn pattern.
1a8c13b3
UB
16181
16182 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16183
fb0703f7
SB
161842009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16185
16186 PR middle-end/38586
16187 * function.c (struct temp_slot): Move to the section of the file
16188 that deals with temp slots. Remove field 'address'.
16189 (temp_slot_address_table): New hash table of address -> temp slot.
16190 (struct temp_slot_address_entry): New struct, items for the table.
16191 (temp_slot_address_compute_hash, temp_slot_address_hash,
16192 temp_slot_address_eq, insert_temp_slot_address): Support functions
16193 for the new table.
16194 (find_temp_slot_from_address): Rewrite to use the new hash table.
16195 (remove_unused_temp_slot_addresses): Remove addresses of temp
16196 slots that have been made available.
16197 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16198 worker function for remove_unused_temp_slot_addresses.
16199 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16200 Add the temp slot address to the address -> temp slot map.
16201 (update_temp_slot_address): Update via insert_temp_slot_address.
16202 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16203 (pop_temp_slots): Likewise.
16204 (init_temp_slots): Allocate the address -> temp slot map, or empty
16205 the map if it is already allocated.
16206 (prepare_function_start): Initialize temp slot processing.
16207
b5a430f3
SB
162082009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16209
16210 PR middle-end/38584
16211 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16212 Calculate the size of all stack vars assuming no packing of stack
16213 vars will happen, replacing a quadratic algorithm with a linear one.
16214
5d560619
JJ
162152009-01-03 Jakub Jelinek <jakub@redhat.com>
16216
16217 PR target/38707
16218 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16219 can't be used.
16220
953a7caa
DN
162212009-01-03 Diego Novillo <dnovillo@google.com>
16222
16223 * doc/contrib.texi: Update contributions.
16224
5f26a230
JJ
162252009-01-03 Jakub Jelinek <jakub@redhat.com>
16226
493aa551
JJ
16227 PR c++/38705
16228 * builtins.c (fold_builtin_memory_op): Give up if either operand
16229 is volatile. Set srctype or desttype to non-qualified version
16230 of the other type.
16231
5f26a230
JJ
16232 PR c/38700
16233 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16234 and FUNCTION_DECLs.
16235
c95b2534 162362009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16237
16238 PR rtl-optimization/35805
16239 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16240 problem if fast dce is able to remove any instructions.
16241 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16242
0b355794
MM
162432009-01-02 Mark Mitchell <mark@codesourcery.com>
16244
16245 PR 33649
16246 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16247
0cf0d02b
JJ
162482009-01-02 Jakub Jelinek <jakub@redhat.com>
16249
16250 PR middle-end/38690
16251 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16252 * tree-pretty-print.c (op_code_prio): New function.
16253 (op_prio): No longer static. Use op_code_prio.
16254 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16255 Use op_prio and op_code_prio to determine if () should be
16256 printed around operand(s) or not.
16257
16258 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16259 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16260 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16261 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16262 pp_character instead of pp_string for single letter printing.
16263
e3606f3b
RS
162642009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16265
16266 * doc/extend.texi: Fix '#pragma GCC option' typo.
16267
c95b2534 162682009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16269
a5f061dc
RG
16270 * doc/install.texi (--enable-checking): Mention different
16271 default for stage1.
16272 (--enable-stage1-checking): Document.
00f39bd5 16273
26de0bcb
AP
162742009-01-01 Andrew Pinski <pinskia@gmail.com>
16275
16276 PR middle-end/30142
16277 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16278 case to be an error.
16279
7a7d8fab
BE
162802009-01-02 Ben Elliston <bje@au.ibm.com>
16281
16282 * config/fp-bit.h (pack_d): Constify argument.
16283 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16284 (isnan): Constify argument.
16285 (isinf): Likewise.
16286 (iszero): Likewise.
16287 (pack_d): Likewise.
16288 (_fpadd_parts): Constify return type.
16289 (_fpmul_parts): Likewise.
16290 (_fpdiv_parts): Likewise.
16291
b295aee2
JJ
162922009-01-01 Jakub Jelinek <jakub@redhat.com>
16293
16294 PR c/36489
16295 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16296 warn about overwriting initializer with side-effects or
16297 -Woverride-init if !IMPLICIT.
16298 (output_init_element): Likewise. Pass IMPLICIT down to
16299 add_pending_init.
16300 (process_init_element): Add IMPLICIT argument. Pass it down
16301 to output_init_element.
16302 (push_init_element, pop_init_level, set_designator): Adjust
16303 process_init_element callers.
16304 (set_nonincremental_init, set_nonincremental_init_from_string):
16305 Adjust add_pending_init callers.
16306 (output_pending_init_elements): Adjust output_init_element callers.
16307 * c-tree.h (process_init_element): Adjust prototype.
16308 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16309 process_init_element callers.
ad41bd84
JM
16310
16311\f
16312Copyright (C) 2009 Free Software Foundation, Inc.
16313
16314Copying and distribution of this file, with or without modification,
16315are permitted in any medium without royalty provided the copyright
16316notice and this notice are preserved.