]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Minor reformatting.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
b6d83244
RO
12009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2
3 * sdbout.c (sdbout_one_type): Fix braces in switch.
4
0bbf2ffa
RG
52009-06-23 Richard Guenther <rguenther@suse.de>
6
7 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
8 member.
9 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
10 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
11 var_callused, callused_tree, var_storedanything, storedanything_tree,
12 var_integer, integer_tree): Remove global variables.
13 (new_var_info): Do not pass new id, append the new var to the
14 global variable vector.
15 (do_ds_constraint): Use is_global_var member of the variable-info.
16 (new_scalar_tmp_constraint_exp): Adjust.
17 (create_function_info_for): Likewise.
18 (create_variable_info_for): Likewise.
19 (find_what_var_points_to): Remove dead code.
20 (init_base_vars): Simplify.
21 (compute_points_to_sets): Adjust.
22
28a5fb2e
AN
232009-06-22 Adam Nemet <anemet@caviumnetworks.com>
24
25 * combine.c (try_combine): Dump information about the insns we're
26 combining.
27
cfb8805e
AN
282009-06-22 Adam Nemet <anemet@caviumnetworks.com>
29
30 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
31 check when calling force_to_mode on TRUNCATE's operand.
32
df4ba119
ILT
332009-06-22 Ian Lance Taylor <iant@google.com>
34
35 * config/rs6000/rs6000.opt: Move msched-epilog before
36 msched-prolog.
37
c986683b
SB
382009-06-22 Steven Bosscher <steven@gcc.gnu.org>
39
40 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
41
5c6927bd
RW
422009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
43
44 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
45 override library linkage flags such as -static-libgcc or
46 -shared-libgcc.
47
19973be2
MK
482009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
49
50 * config/m68k/m68k-devices.def: Add line for MCF5221x.
51
7a5d2eb8
ILT
522009-06-22 Ian Lance Taylor <iant@google.com>
53
54 * config/linux.opt: Put mglibc ahead of muclibc.
55
56 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
57 for duplicate decls.
58
86e3c83a
MK
592009-06-22 Matthias Klose <doko@ubuntu.com>
60
61 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
62
0a7d7dea
MK
632009-06-22 Steven Bosscher <steven@gcc.gnu.org>
64
65 PR objc/28050
66 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
67 instead of NULL if a parser error occurs.
68
a77264d5
RO
692009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
70
71 * dwarf2out.c (dwarf2_debug_hooks): Initialize
72 non-DWARF2_DEBUGGING_INFO version.
73
54f549af
KT
742009-06-22 Kai Tietz <kai.tietz@onevision.com>
75
34481f28
UB
76 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
77 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
78
79 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
80 (LIBGCC2_TF_CEXT): Define.
81 (TF_SIZE): Define.
82
7cea01df
RR
832009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
84
85 PR target/40463
86 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
87
3ce14752
RR
882009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
89
34481f28
UB
90 * config/arm/arm.c (arm_override_options): Disable
91 -mcaller-super-interworking and -mcallee-super-interworking.
92 * doc/invoke.texi (ARM Options): Document this.
3ce14752 93
d58bc084
NS
942009-06-22 Nathan Sidwell <nathan@codesourcery.com>
95
96 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
97 * config/arm/constraints.md (j): New constraint for movw operands.
98 (N): Remove thumb2 meaning.
99 * config/arm/arm.md (*arm_movw): Delete.
100 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
101 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
102 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
103
ac6cb60c
MJ
1042009-06-22 Martin Jambor <mjambor@suse.cz>
105
106 PR tree-optimization/40492
107 * tree-sra.c (sra_modify_assign): Pass zero offsets to
108 build_ref_for_offset.
109
481683e1
SZ
1102009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
111
112 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
113 JUMP_TABLE_DATA_P predicates where applicable.
114 * auto-inc-dec.c: Ditto.
115 * builtins.c: Ditto.
116 * caller-save.c: Ditto.
117 * calls.c: Ditto.
118 * cfgcleanup.c: Ditto.
119 * cfglayout.c: Ditto.
120 * cfgrtl.c: Ditto.
121 * combine.c: Ditto.
122 * combine-stack-adj.c: Ditto.
123 * cse.c: Ditto.
124 * cselib.c: Ditto.
125 * dbxout.c: Ditto.
126 * df-scan.c: Ditto.
127 * dse.c: Ditto.
128 * dwarf2asm.c: Ditto.
129 * dwarf2out.c: Ditto.
130 * emit-rtl.c: Ditto.
131 * except.c: Ditto.
132 * explow.c: Ditto.
133 * expmed.c: Ditto.
134 * expr.c: Ditto.
135 * final.c: Ditto.
136 * function.c: Ditto.
137 * fwprop.c: Ditto.
138 * gcse.c: Ditto.
139 * genpreds.c: Ditto.
140 * genrecog.c: Ditto.
141 * ifcvt.c: Ditto.
142 * ira-costs.c: Ditto.
143 * ira-lives.c: Ditto.
144 * jump.c: Ditto.
145 * loop-iv.c: Ditto.
146 * lower-subreg.c: Ditto.
147 * modulo-sched.c: Ditto.
148 * optabs.c: Ditto.
149 * postreload.c: Ditto.
150 * print-rtl.c: Ditto.
151 * recog.c: Ditto.
152 * reginfo.c: Ditto.
153 * regmove.c: Ditto.
154 * reload1.c: Ditto.
155 * reload.c: Ditto.
156 * reorg.c: Ditto.
157 * rtlanal.c: Ditto.
158 * rtl.c: Ditto.
159 * sched-vis.c: Ditto.
160 * sdbout.c: Ditto.
161 * sel-sched-ir.c: Ditto.
162 * simplify-rtx.c: Ditto.
163 * targhooks.c: Ditto.
164 * var-tracking.c: Ditto.
165 * vmsdbgout.c: Ditto.
166
1407d6cf
MK
1672009-06-22 Matthias Klose <doko@ubuntu.com>
168
169 * Makefile.in (install-plugin): Always use DESTDIR.
170
28326880
OH
1712009-06-22 Olivier Hainque <hainque@adacore.com>
172
173 * config/pa/pa.c (output_call): Don't optimize post call jumps
174 into return address adjustments if the call may throw.
175
907dd0c7
RE
1762009-06-21 Richard Earnshaw <rearnsha@arm.com>
177
178 * arm.c (thumb1_output_casesi): New function.
179 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
180 optimizing for size or PIC.
181 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
182 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
183 (casesi): Handle Thumb-1 when optimizing for size or PIC.
184 (thumb1_casesi_internal_pic): New expand rule.
185 (thumb1_casesi_dispatch): New pattern.
186 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
187 thumb-1 mode.
188 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
189 in the text seciton when PIC or optimizing for size.
190 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
191 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
192 preservation properties of code.
193 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
194 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
195 (__gnu_thumb1_case_si): New function.
196 * t-arm (LIB1ASMSRC): Define here.
197 (LIB1ASMFUNCS): Add some common functions.
198 * t-arm-elf (LIB1ASMSRC): Delete.
199 (LIB1ASMFUNCS): Append to existing set.
200 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
201 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
202 * t-symbian (LIB1ASMFUNCS): Likewise.
203 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
204 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
205
2cee1509
RG
2062009-06-21 Richard Guenther <rguenther@suse.de>
207
208 PR tree-optimization/38729
209 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
210 to loops with a single exit if -fno-expensive-optimizations.
211
d24686d7
JJ
2122009-06-21 Jakub Jelinek <jakub@redhat.com>
213
214 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
215 (dataflow_set): Change vars type from htab_t to shared_hash.
216 (shared_hash_pool, empty_shared_hash): New variables.
217 (vars_clear): Removed.
218 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
219 shared_hash_find_slot_unshare, shared_hash_find_slot,
220 shared_hash_find_slot_noinsert, shared_hash_find): New
221 static inlines.
222 (shared_hash_unshare, shared_hash_destroy): New functions.
223 (unshare_variable): Unshare set->vars if shared, use
224 shared_hash_htab.
225 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
226 (get_init_value, find_src_set_src, dump_dataflow_set,
227 clobber_variable_part, emit_notes_for_differences): Use
228 shared_hash_htab.
229 (dataflow_set_init): Remove second argument, set vars to
230 empty_shared_hash instead of creating a new htab.
231 (dataflow_set_clear): Call shared_hash_destroy and set vars
232 to empty_shared_hash instead of calling vars_clear.
233 (dataflow_set_copy): Don't call vars_copy, instead just share
234 the src htab with dst.
235 (variable_union): Use shared_hash_*, use initially NO_INSERT
236 lookup if set->vars is shared. Don't keep slot cleared before
237 calling unshare_variable. Unshare set->vars if needed.
238 Even ->refcount == 1 vars must be unshared if set->vars is shared
239 and var needs to be modified.
240 (variable_canonicalize): New function.
241 (dataflow_set_union): If dst->vars is empty, just share src->vars
242 with dst->vars and traverse with variable_canonicalize to canonicalize
243 and unshare what is needed.
244 (dataflow_set_different): If old_set and new_set use the same shared
245 htab, they aren't different. If number of htab elements is different,
246 htabs are different. Use shared_hash_*.
247 (dataflow_set_destroy): Call shared_hash_destroy instead of
248 htab_delete.
249 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
250 second argument to dataflow_set_init.
251 (vt_initialize): Likewise. Initialize shared_hash_pool and
252 empty_shared_hash, move bb in/out initialization afterwards.
253 Use variable_htab_free instead of NULL as changed_variables del hook.
254 (variable_was_changed): Change type of second argument to pointer to
255 dataflow_set. When inserting var into changed_variables, bump
256 refcount. Unshare set->vars if set is shared htab and slot needs to
257 be cleared.
258 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
259 lookup if set->vars is shared. Unshare set->vars if needed.
260 Even ->refcount == 1 vars must be unshared if set->vars is shared
261 and var needs to be modified. Adjust variable_was_changed caller.
262 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
263 vars must be unshared if set->vars is shared and var needs to be
264 modified. Adjust variable_was_changed caller.
265 (emit_note_insn_var_location): Don't pool_free var.
266 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
267 instead of 1.
268 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
269 free_alloc_pool on shared_hash_pool.
270
525b459f
AG
2712009-06-20 Anthony Green <green@moxielogic.com>
272
273 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
274 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
275
825be69e
RG
2762009-06-20 Richard Guenther <rguenther@suse.de>
277
278 * tree-ssa-structalias.c (find_func_aliases): For memset use
279 a constraint from NULL if we memset to zero.
280 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
281 we explicitly handle that do not read from memory.
282 (call_may_clobber_ref_p_1): Properly handle builtins that may
283 set errno.
284
b14e9388
RG
2852009-06-20 Richard Guenther <rguenther@suse.de>
286
287 PR tree-optimization/40495
288 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
289 (new_scalar_tmp_constraint_exp): New function.
290 (process_constraint): Do not create temporary decls.
291 (process_all_all_constraints): Likewise.
292 (handle_const_call): Likewise.
293 (create_function_info_for): Do not set decl.
294
c885ca89
ILT
2952009-06-19 Ian Lance Taylor <iant@google.com>
296
297 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
298 (rs6000_attribute_table): Make static; move before use.
299
6569d386
EB
3002009-06-19 Eric Botcazou <ebotcazou@adacore.com>
301
302 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
303 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
304 Propagate the TREE_READONLY flag without overwriting it.
305 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
306 Propagate the TREE_READONLY flag onto the result.
307 (process_call_operands): Move around. Use correct constant value.
308
ce41c38b
RR
3092009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
310
311 PR target/40482
312 * config/arm/arm.c (thumb_shiftable_const): Truncate val to
313 32 bits.
314 * config/arm/arm.md: Likewise.
315
d130ae11
ILT
3162009-06-19 Ian Lance Taylor <ian@airs.com>
317
318 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
319 to GIMPLE_ERROR_MARK.
320
321 * c-typeck.c (build_conditional_expr): Add op1_original_type and
322 op2_original_type parameters. Warn about using different enum
323 types.
324 * c-parser.c (c_parser_conditional_expression): Pass original
325 types to build_conditional_expr.
326 * c-tree.h (build_conditional_expr): Update declaration.
327
d4aa4f4b
ILT
3282009-06-19 Ian Lance Taylor <iant@google.com>
329
330 * config/i386/i386.c (ix86_function_specific_save): Test that
331 fields match values, rather than testing the values are in a
332 certain range.
333
779704e7
RG
3342009-06-19 Richard Guenther <rguenther@suse.de>
335
336 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
337 ADDR_EXPR pointers.
338 (ptr_derefs_may_alias_p): Likewise.
339 (ptr_deref_may_alias_ref_p_1): New function.
340 (ptr_deref_may_alias_ref_p): Likewise.
341 (ref_maybe_used_by_call_p_1): Handle builtins that are not
342 covered by looking at the ESCAPED solution.
343 (call_may_clobber_ref_p_1): Likewise.
344 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
345 Handle NULL_TREE offset. Do not produce redundant constraints.
346 (process_all_all_constraints): New helper function.
347 (do_structure_copy): Use it.
348 (handle_lhs_call): Likewise.
349 (find_func_aliases): Handle some builtins with pointer arguments
350 and/or return values explicitly.
351
217655da
ILT
3522009-06-19 Ian Lance Taylor <iant@google.com>
353
354 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
355
50ae5fea
ILT
3562009-06-19 Ian Lance Taylor <iant@google.com>
357
358 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
359
642324bb
ILT
3602009-06-19 Ian Lance Taylor <iant@google.com>
361
362 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
363 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
364 version.
365
366 * c-decl.c (finish_decl): If -Wc++-compat, warn about
367 uninitialized const.
368
dc491a25
ILT
3692009-06-19 Ian Lance Taylor <iant@google.com>
370
371 * dse.c (struct store_info): Rename bitmap field to bmap. Change
372 all uses.
373
374 * c-decl.c (in_struct, struct_types): Remove.
375 (struct c_binding): Add in_struct field.
376 (c_binding_ptr): Define type, along with VEC.
377 (struct c_struct_parse_info): Define.
378 (struct_parse_info): New static variable.
379 (bind): Initialize in_struct field.
380 (start_struct): Remove enclosing_in_struct and
381 enclosing_struct_types parameters. Add
382 enclosing_struct_parse_info parameter. Change all callers. Set
383 struct_parse_info rather than in_struct and struct_types.
384 (grokfield): If -Wc++-compat and there is a symbol binding for the
385 field name, set the in_struct flag and push it on the
386 struct_parse_info->fields vector.
387 (warn_cxx_compat_finish_struct): New static function.
388 (finish_struct): Remove enclosing_in_struct and
389 enclosing_struct_types parameters. Add
390 enclosing_struct_parse_info parameter. Change all callers. Don't
391 set C_TYPE_DEFINED_IN_STRUCT here. Call
392 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
393 parameter. Only push on struct_types if warn_cxx_compat.
394 (finish_enum): Only push on struct_types if warn_cxx_compat.
395 (declspecs_add_type): Add loc parameter. Change all callers.
396 Change all error calls to error_at. Pass loc, not input_location,
397 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
398 defined in a struct. If -Wc++-compat and parsing a struct, record
399 that a typedef name was used.
400 * c-parser.c (c_parser_declspecs): Get location to pass to
401 declspecs_add_type.
402 (c_parser_struct_or_union_specifier): Update calls to start_struct
403 and finish_struct.
404 * c-tree.h (struct c_struct_parse_info): Declare.
405 (finish_struct, start_struct): Update declarations.
406 (declspecs_add_type): Update declaration.
407
88eeff6f
ILT
4082009-06-19 Ian Lance Taylor <iant@google.com>
409
410 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
411 variable with an anonymous type.
412
28a876a4
UB
4132009-06-19 Uros Bizjak <ubizjak@gmail.com>
414
415 * see.c: Remove for real.
416
dc6707b8
UB
4172009-06-19 Uros Bizjak <ubizjak@gmail.com>
418
419 * optabs.h (enum optab_index): Add new OTI_significand.
420 (significand_optab): Define corresponding macro.
421 * optabs.c (init_optabs): Initialize significand_optab.
422 * genopinit.c (optabs): Implement significand_optab using
423 significand?f2 patterns.
424 * builtins.c (expand_builtin_mathfn): Handle
425 BUILT_IN_SIGNIFICAND{,F,L}.
426 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
427 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
428
429 * config/i386/i386.md (significandxf2, significand<mode>2): New
430 expanders to implement significandf, significand and significandl
431 built-ins as inline x87 intrinsics.
432
dd26af70
AS
4332009-06-18 Anatoly Sokolov <aesok@post.ru>
434
435 * config/avr/avr.c (avr_override_options): Remove setting value of
436 PARAM_INLINE_CALL_COST.
437
394bd84d
RH
4382009-06-18 Richard Henderson <rth@redhat.com>
439
440 PR 40488
441 * tree-pass.h (TDF_ASMNAME): New.
442 * tree-dump.c (dump_options): Add asmname.
443 * doc/invoke.texi: Document it.
444
445 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
446 (dump_decl_name): ...here.
447 (dump_function_name): New flags arg; mind TDF_ASMNAME.
448 (dump_generic_node): Update dump_function_name calls.
449 (print_call_name): New flags arg; update all dump calls.
450 * diagnostic.h (print_call_name): Update.
451 * gimple-pretty-print.c (dump_gimple_call): Update.
452
2a457a9b
L
4532009-06-18 H.J. Lu <hongjiu.lu@intel.com>
454
455 PR target/40470
456 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
457
fca5bb5c
DN
4582009-06-18 Diego Novillo <dnovillo@google.com>
459
460 * doc/plugins.texi: Document plugin_is_GPL_compatible.
461 * plugin.c (str_license): Declare.
462 (try_init_one_plugin): Assert that the symbol
463 'plugin_is_GPL_compatible' exists.
464
b6680d72
SD
4652009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
466
467 * see.c: Remove.
468 * Makefile.in (OBJS-common): Remove see.o.
469 (see.o): Remove.
470 * common.opt (fsee): Mark as preserved for backward compatibility.
471 * opts.c (common_handle_option): Add OPT_fsee to the backward
472 compatibility section.
473 * passes.c (init_optimization_passes, pass_see): Remove pass.
474 * timevar.def (TV_SEE): Remove.
475 * tree-pass.h (pass_see): Remove declaration.
476 * doc/invoke.texi (-fsee): Remove documentation.
b6680d72 477
2a45675f
MJ
4782009-06-18 Martin Jambor <mjambor@suse.cz>
479
480 * tree-sra.c: Include statistics.h
481 (sra_stats): New variable.
482 (sra_initialize): Clear sra_stats.
483 (create_access_replacement): Increment sra_stats.replacements.
484 (get_access_replacement): Do not return twice.
485 (analyze_all_variable_accesses): Increment statistics counter by the
486 number of scalarized aggregates.
487 (generate_subtree_copies): Increment sra_stats.subtree_copies.
488 (sra_modify_expr): Increment sra_stats.exprs.
489 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
490 (sra_modify_assign): Increment sra_stats.exprs,
491 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
492 (perform_intra_sra): Update statistics counters.
493 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
494
bdc4827b
SL
4952009-06-18 Sandra Loosemore <sandra@codesourcery.com>
496
497 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
498 (arm_scalar_mode_supported_p): New function.
499
d9dd51dc
PB
5002009-06-18 Paul Brook <paul@codesourcery.com>
501 Sandra Loosemore <sandra@codesourcery.com>
502
503 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
504 (__extendhfsf2, __truncsfhf2): Define.
505 * config/arm/fp16.c: New file.
506 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
507 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
508
0fd8c3ad
SL
5092009-06-18 Sandra Loosemore <sandra@codesourcery.com>
510
511 * doc/extend.texi (Half-Precision): New section.
512 * doc/invoke.texi (Option Summary): List -mfp16-format.
513 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
514 * config/arm/arm.opt (mfp16-format=): New.
515 * config/arm/arm.c: Include intl.h.
516 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
517 (TARGET_INVALID_RETURN_TYPE): Redefine.
518 (TARGET_PROMOTED_TYPE): Redefine.
519 (TARGET_CONVERT_TO_TYPE): Redefine.
520 (arm_fp16_format): Define.
521 (all_fpus): Add entry for neon-fp16.
522 (fp_model_for_fpu): Likewise.
523 (struct fp16_format): Declare.
524 (all_fp16_formats): Define.
525 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
526 functions.
527 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
528 and no ldrh.
529 (arm_legitimate_index_p): Treat HFmode like HImode.
530 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
531 (coproc_secondary_reload_class): Special-case HFmode.
532 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
533 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
534 (arm_init_fp16_builtins): New.
535 (arm_init_builtins): Call it.
536 (arm_invalid_parameter_type): New.
537 (arm_invalid_return_type): New.
538 (arm_promoted_type): New.
539 (arm_convert_to_type).
540 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
541 format.
542 (arm_emit_fp16_const): New function.
543 (arm_mangle_type): Mangle __fp16 as "Dh".
544 * config/arm/arm.h (TARGET_VFPD32): Make it know about
545 FPUTYPE_NEON_FP16.
546 (TARGET_NEON_FP16): New.
547 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
548 (enum fputype): Add FPUTYPE_NEON_FP16.
549 (enum arm_fp16_format_type): Declare.
550 (arm_fp16_format): Declare.
551 (LARGEST_EXPONENT_IS_NORMAL): Define.
552 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
553 * config/arm/arm-modes.def (HFmode): Define.
554 * config/arm/vfp.md: (*movhf_vfp): New.
555 (extendhfsf2): New.
556 (truncsfhf2): New.
557 * config/arm/arm.md: (fpu): Add neon_fp16.
558 (floatsihf2, floatdihf2): New.
559 (fix_trunchfsi2, fix_trunchfdi2): New.
560 (truncdfhf2): New.
561 (extendhfdf2): New.
562 (movhf): New.
563 (*arm32_movhf): New.
564 (*thumb1_movhf): New.
565 (consttable_2): Add check for HFmode constants.
566 (consttable_4): Handle HFmode constants.
567
2c2f70e1
UB
5682009-06-18 Uros Bizjak <ubizjak@gmail.com>
569
570 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
571
db4fa1c1
OH
5722009-06-17 Olivier Hainque <hainque@adacore.com>
573
574 * collect2.c (main): Use CONST_CAST2 to perform char ** to
575 const char ** conversion in AIX specific section.
576
6bec4135
L
5772009-06-17 H.J. Lu <hongjiu.lu@intel.com>
578
579 * config/i386/i386.c (ix86_special_builtin_type): Remove
580 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
581 (bdesc_special_args): Updated.
582 (ix86_init_mmx_sse_builtins): Likewise.
583 (ix86_expand_special_args_builtin): Likewise.
584
958d6d58
RH
5852009-06-17 Richard Henderson <rth@redhat.com>
586
587 * tree-pretty-print.c (maybe_dump_asm_name): New.
588 (dump_decl_name): Use it.
589 (PRINT_FUNCTION_NAME): Merge into...
590 (dump_function_name): ... here. Use maybe_dump_asm_name.
591
ed5ef2e4
CC
5922009-06-17 Cary Coutant <ccoutant@google.com>
593
594 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
595 Change caller.
596 * debug.c (struct gcc_debug_hooks): Change placeholder for
597 source_line hook.
598 (debug_nothing_int_charstar_int): Replaced by...
599 (debug_nothing_int_charstar_int_bool): ...this.
600 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
601 source_line prototype.
602 (debug_nothing_int_charstar_int): Replaced by...
603 (debug_nothing_int_charstar_int_bool): ...this.
604 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
605 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
606 Output is_stmt operand when necessary.
01a0acb7 607 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
608 (notice_source_line): Add is_stmt parameter.
609 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
610 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
611 Change callers.
612 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
613 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
614
b0f43ca0
ILT
6152009-06-17 Ian Lance Taylor <iant@google.com>
616
617 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
618 Change all uses.
619 (struct store_by_pieces_d): Rename from store_by_pieces. Change
620 call uses.
621
23314e77
AN
6222009-06-17 Adam Nemet <anemet@caviumnetworks.com>
623
624 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
625 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
626 tree_strip_sign_nop_conversions and
627 tree_ssa_strip_useless_type_conversions rather than stripping
628 the operations here.
629 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
630 Declare them.
631 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
632 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
633 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
634 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
635 functions.
636
799dbb0f
ME
6372009-06-17 Michael Eager <eager@eagercon.com>
638
c637b0fa
UB
639 * config/rs6000/constraints.md (register_constraint "d"): New.
640 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
641 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
642 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
643 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
644 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
645 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
646 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
647 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
648 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
649 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
650 __fctiwz): Same.
651 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
652 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
653 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
654 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
655 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
656 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
657 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
658 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
659 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
660 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
661 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
662 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
663 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
664 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
665
1469de3c
ILT
6662009-06-16 Ian Lance Taylor <iant@google.com>
667
668 * profile.c (total_num_never_executed): Don't define.
669 (compute_branch_probabilities): Don't count or print
670 num_never_executed.
671 (init_branch_prob): Don't set total_num_never_executed.
672 (end_branch_prob): Don't print total_num_never_executed.
673
2cb0a60d
DD
6742009-06-17 David Daney <ddaney@caviumnetworks.com>
675
c637b0fa 676 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 677
82882240
DE
6782009-06-17 David Edelsohn <edelsohn@gnu.org>
679
680 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
681 (nabstd2_fpr): Same.
682
a1a65f89
SE
6832009-06-17 Steve Ellcey <sje@cup.hp.com>
684
685 * expr.c (expand_assignment): Change complex type check.
686
07ae5620
BS
6872009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
688
689 * doc/plugins.texi (Building GCC plugins): Added new section.
690
5eb4df45
ILT
6912009-06-17 Ian Lance Taylor <iant@google.com>
692
693 * c-pch.c (get_ident): Don't set size of templ array.
694 (pch_init): Don't set size of partial_pch array.
695
696 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
697 string constant to intialize an array whose size is the length of
698 the string.
699
4d61856d
RG
7002009-06-17 Richard Guenther <rguenther@suse.de>
701
702 PR tree-optimization/40389
703 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
704 to addressable types.
705 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
706
3cb8677c
RG
7072009-06-17 Richard Guenther <rguenther@suse.de>
708
709 PR middle-end/40460
710 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
711 if there is no evolution of left in the loop bail out.
712 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
713 chrec_fold_multiply.
714
a4d99c86
R
7152009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
716 Janis Johnson <janis187@us.ibm.com>
717
718 PR target/39254
719 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
720 for the symbol ref of a constant that is the source of a move
721 - nor for any other not-obvious-label-ref constants.
722
8dd1bca0
OR
7232009-06-16 Olatunji Ruwase <tjruwase@google.com>
724
1469de3c 725 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
726 traversal to avoid repeated insertion.
727
8019538f
ILT
7282009-06-16 Ian Lance Taylor <iant@google.com>
729
730 * vec.h (VEC_stack_alloc): Define different version if
731 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
732 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
733 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
734 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
735
7c45393e
L
7362009-06-16 H.J. Lu <hongjiu.lu@intel.com>
737
738 * config.gcc (extra_headers): Add ia32intrin.h for x86.
739
740 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
741 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
742 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
743 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
744 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
745 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 746 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
747 (bdesc_special_args): Add __builtin_ia32_rdtsc and
748 __builtin_ia32_rdtscp.
749 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
750 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 751 and __builtin_ia32_rorhi.
7c45393e
L
752 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
753 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 754 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
755 (ix86_expand_args_builtin): Likewise.
756 (ix86_expand_special_args_builtin): Likewise.
757
758 * config/i386/i386.md (UNSPECV_RDTSCP): New.
759 (UNSPECV_RDTSC): Likewise.
760 (UNSPECV_RDPMC): Likewise.
c637b0fa 761 (*bsr): Renamed to ...
7c45393e 762 (bsr): This
c637b0fa 763 (*bsr_rex64): Renamed to ...
7c45393e
L
764 (bsr_rex64): This.
765 (rdpmc): New.
766 (*rdpmc): Likewise.
767 (*rdpmc_rex64): Likewise.
768 (rdtsc): Likewise.
769 (*rdtsc): Likewise.
770 (*rdtsc_rex64): Likewise.
771 (rdtscp): Likewise.
772 (*rdtscp): Likewise.
773 (*rdtscp_rex64): Likewise.
774
775 * config/i386/ia32intrin.h: New.
776
777 * config/i386/x86intrin.h: Include <ia32intrin.h>.
778
504b33d8
ILT
7792009-06-16 Ian Lance Taylor <iant@google.com>
780
781 * ira-build.c (copy_info_to_removed_store_destinations):
782 Initialize parent_a.
783
f9551830
ILT
7842009-06-16 Ian Lance Taylor <iant@google.com>
785
786 * c-decl.c (grokdeclarator): Change size_varies to bool.
787
c32e2175
ILT
7882009-06-16 Ian Lance Taylor <iant@google.com>
789
790 * sel-sched.c: Make forward declarations of move_op_hooks and
791 fur_hooks explicitly extern.
792
415a06c2
ILT
7932009-06-16 Ian Lance Taylor <iant@google.com>
794
c637b0fa 795 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
796 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
797
675f99c9
ILT
7982009-06-16 Ian Lance Taylor <iant@google.com>
799
800 * resource.c (mark_referenced_resources): Change
801 include_delayed_effects parameter to bool. Change all callers.
802 (mark_end_of_function_resources): Likewise.
803 * reorg.c (insn_references_resource_p): Likewise.
804 (insn_sets_resource_p): Likewise.
805 * resource.h (mark_referenced_resources): Update declaration.
806 (mark_end_of_function_resources): Update declaration.
807
a322799d
DE
8082009-06-16 David Edelsohn <edelsohn@gnu.org>
809
810 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
811
c58c92f5
DE
8122009-06-16 David Edelsohn <edelsohn@gnu.org>
813
814 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
815 GCC can bootstrap on AIX with GNU Binutils 2.20.
816
95228603
ILT
8172009-06-16 Ian Lance Taylor <iant@google.com>
818
819 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
820
9c727c9a
ILT
8212009-06-16 Ian Lance Taylor <iant@google.com>
822
823 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
824 inline, not extern inline.
825 (exact_log2): Likewise.
826 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
827 test CLZ_HWI.
828 (exact_log2): Likewise, but don't test CTZ_HWI.
829
5fd8300b
ILT
8302009-06-16 Ian Lance Taylor <iant@google.com>
831
832 * bitmap.c (bitmap_clear): Don't declare as inline.
833 * gimple.c (gimplify_assign): Likewise.
834 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
835 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
836 (sched_scan_info): Remove duplicate definition.
837
7d882b83
ILT
8382009-06-16 Ian Lance Taylor <iant@google.com>
839
840 * c-common.c (skip_evaluation): Don't define.
841 (c_inhibit_evaluation_warnings): Define global variable.
842 (overflow_warning): Check c_inhibit_evaluation_warnings rather
843 than skip_evaluation.
844 (convert_and_check, warn_for_div_by_zero): Likewise.
845 * c-common.h (skip_evaluation): Don't declare.
846 (c_inhibit_evaluation_warnings): Declare.
847 * c-parser.c (c_parser_typeof_specifier): Set
848 c_inhibit_evaluation_warnings rather than skip_evaluation.
849 (c_parser_conditional_expression): Likewise.
850 (c_parser_binary_expression): Likewise.
851 (c_parser_sizeof_expression): Likewise.
852 (c_parser_alignof_expression): Likewise.
853 * c-typeck.c (build_indirect_ref): Check
854 c_inhibit_evaluation_warnings rather than skip_evaluation.
855 (build_conditional_expr, build_binary_op): Likewise.
856
2e407842
RG
8572009-06-16 Richard Guenther <rguenther@suse.de>
858
859 * tree-ssa-alias.c (is_escape_site): Remove.
860 * tree-ssa-alias.h (enum escape_type): Remove.
861 (is_escape_site): Likewise.
862 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
863 via casts and asms without deferring to is_escape_site.
864
f2ff8872
JJ
8652009-06-16 Jakub Jelinek <jakub@redhat.com>
866
867 PR middle-end/40446
868 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
869 use gen_lowpart if op0 has complex mode.
870
de70bb20
RG
8712009-06-16 Richard Guenther <rguenther@suse.de>
872
873 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
874 variables add them to ESCAPED.
c637b0fa 875 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 876
daa0eeb8
RAE
8772009-06-16 Rafael Avila de Espindola <espindola@google.com>
878
879 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
880 make_decl_one_only.
881
0ec19b8c
MJ
8822009-06-16 Martin Jambor <mjambor@suse.cz>
883
884 PR tree-optimization/40432
885 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
886 check whether we need to force gimple register operand.
887
2b26b801
MJ
8882009-06-16 Martin Jambor <mjambor@suse.cz>
889
890 PR tree-optimization/40413
891 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
892 build_ref_for_offset.
893 (propagate_subacesses_accross_link): Fix a typo in a comment.
894
7c5222ff
IR
8952009-06-16 Ira Rosen <irar@il.ibm.com>
896
897 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
898 with additional parameter.
c637b0fa 899 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
900 vect_nested_cycle.
901 (enum vect_relevant): Add comments.
902 (vect_is_simple_reduction): Add new argument.
903 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
904 Detect nested cycles.
905 (vect_is_simple_reduction): Update documentation, add an argument to
906 distinguish inner-loop reduction from nested cycle, detect nested
907 cycles, fix printings and indentation, don't swap operands in case
908 of nested cycle.
909 (get_initial_def_for_reduction): Handle subtraction.
910 (vect_create_epilog_for_reduction): Add new argument to specify
911 reduction variable.
912 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
913 (vectorizable_reduction): Handle nested cycles. In case of nested
914 cycle keep track of the reduction variable position. Call
7c5222ff
IR
915 vect_is_simple_reduction with additional parameter. Use original
916 statement code in reduction epilogue for nested cycle. Call
917 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
918 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
919 inner-loop vectorization.
7c5222ff
IR
920 (vect_recog_widen_sum_pattern): Likewise.
921 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
922 and reductions.
923 (vect_mark_stmts_to_be_vectorized): Likewise.
924 (vect_get_vec_def_for_operand): Handle nested cycles.
925
d376d545
RW
9262009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
927
928 * doc/invoke.texi (Debugging Options): Fix option index entries
929 for -fdump-statistics, -frandom-seed add entries for
930 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
931 (FRV Options): Fix entries for -mTLS, -mtls.
932 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
933 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
934 (M68hc1x Options): Fix @itemx for -mnominmax.
935 (MCore Options): Fix entry for -mno-lsim.
936 (MMIX Options): Fix entry for -mabi=mmixware.
937 (PDP-11 Options): Fix entry for -mbcopy-builtin.
938
bd117bb6
BS
9392009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
940
941 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
942 Mention the plugin mode of gengtype.
c637b0fa 943 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
944 * gengtype.c: Updated copyright.
945 (plugin_files, nb_plugin_files) Added new static variables.
946 (measure_input_list) Care about plugin_files.
947 (write_rtx_next): Added early return in plugin mode.
948 (create_file): Updated copyright year in generated file. Added
949 asserts.
950 (oprintf): Added early return if NULL outf.
951 (get_output_file_with_visibility): Care of plugin_files.
952 (get_output_file_name): May return null.
953 (write_local): Added early return.
954 (put_mangled_filename): Ditto.
955 (finish_root_table): Added check for base_files.
956 (write_roots): Care about null when plugins.
957 (main): Added plugin mode.
958
e1b7793c
ILT
9592009-06-15 Ian Lance Taylor <iant@google.com>
960
c637b0fa 961 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
962 * gcov.c (read_count_file): Add braces around variables declared
963 before label.
964
965 * c.opt (Wjump-misses-init): New warning.
966 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
967 -Wall and -Wc++-compat if not already set.
968 (c_common_post_options): Clear warn_jump_misses_init if it was not
969 set.
970 * c-decl.c (struct c_binding): Change type field to a union with
971 new label field. Make it the first field in the struct. Update
972 references to type to use u.type instead.
973 (struct c_spot_bindings): Define.
974 (struct c_goto_bindings): Define.
975 (c_goto_bindings_p): Define, along with VECs.
976 (struct c_label_vars): Define.
977 (struct c_scope): Add has_label_bindings field.
978 (bind_label, set_spot_bindings): New static functions.
979 (decl_jump_unsafe, update_spot_bindings): New static functions.
980 (update_label_decls): New static function.
981 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
982 Update binding u.label field to shadowed field.
983 (c_binding_start_stmt_expr): New function.
984 (c_binding_end_stmt_expr): New function.
985 (pushdecl): Don't call c_begin_vm_scope.
986 (make_label): Add defining and p_label_vars parameters. Change
987 all callers.
988 (lookup_label): Correct test for whether a label has not yet been
989 defined. Call bind_label rather than bind.
990 (warn_about_goto): New static function.
991 (lookup_label_for_goto): New function.
992 (declare_label): Call bind_label rather than bind.
993 (check_earlier_gotos): New static function.
994 (define_label): Don't give errors about jumping into statement
995 expressions or scopes of variably modified types. Call
996 set_spot_bindings and check_earlier_gotos. Call bind_label
997 instead of bind. Don't set label_context_stack_se or
998 label_context_stack_vm.
999 (c_get_switch_bindings): New function.
1000 (c_release_switch_bindings): New function.
1001 (c_check_switch_jump_warnings): New function.
1002 (start_function): Don't set label_context_stack_se or
1003 label_context_stack_vm.
1004 (finish_function): Likewise.
1005 * c-typeck.c (label_context_stack_se): Don't define.
1006 (label_context_stack_vm): Don't define.
1007 (c_finish_goto_label): Call lookup_label_for_goto rather than
1008 lookup_label. Don't give errors about jumping into a statement
1009 expression or the scope of a variably modified type. Don't set
1010 label_context_stack_se or label_context_stack_vm.
1011 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1012 fields. Add bindings field.
1013 (c_start_case): Don't set deleted fields. Set bindings field.
1014 (do_case): Rework order of tests. Don't check blocked_stmt_expr
1015 or blocked_vm. Call c_check_switch_jump_warnings.
1016 (c_finish_case): Don't test blocked_stmt_expr field. Call
1017 c_release_switch_bindings.
1018 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1019 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1020 set label_context_stack_se. Call c_bindings_start_stmt_expr.
1021 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1022 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1023 set label_context_stack_se. Call c_bindings_end_stmt_expr.
1024 (c_begin_vm_scope, c_end_vm_scope): Don't define.
1025 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1026 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1027 (C_DECL_UNJUMPABLE_VM): Don't define.
1028 (C_DECL_UNDEFINABLE_VM): Don't define.
1029 (struct c_label_list): Don't define.
1030 (struct c_label_context_se): Don't define.
1031 (struct c_label_context_vm): Don't define.
1032 (struct c_spot_bindings): Declare.
1033 (c_bindings_start_stmt_expr): Declare.
1034 (c_bindings_end_stmt_expr): Declare.
1035 (lookup_label_for_goto): Declare.
1036 (c_get_switch_bindings, c_release_switch_bindings): Declare.
1037 (c_check_switch_jump_warnings): Declare.
1038 (label_context_stack_se, label_context_stack_vm): Don't declare.
1039 (c_finish_goto_label): Update declaration.
1040 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1041 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1042 (Warning Options): Document -Wjump-misses-init.
1043
98a129b9
JJ
10442009-06-15 Jakub Jelinek <jakub@redhat.com>
1045
1046 * tree-object-size.c (addr_object_size): Fix a pasto in the last
1047 change.
1048
19751f1f
RAE
10492009-06-15 Rafael Avila de Espindola <espindola@google.com>
1050
1051 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1052
d40eb158
AH
10532009-06-15 Aldy Hernandez <aldyh@redhat.com>
1054
1055 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1056
10572009-06-15 Aldy Hernandez <aldyh@redhat.com>
1058
1059 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1060
fc26fae3
RAE
10612009-06-15 Rafael Avila de Espindola <espindola@google.com>
1062
1063 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1064 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1065 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1066 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
1067 * dwarf2asm.c (dw2_force_const_mem): Update call to
1068 make_decl_one_only.
fc26fae3
RAE
1069 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1070 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1071 * langhooks.c (lhd_comdat_group): Remove.
1072 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1073 * tree.h (DECL_COMDAT_GROUP): New.
1074 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1075 (tree_decl_with_vis): Add comdat_group. Remove one_only.
1076 (make_decl_one_only): Change signature.
1077 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1078 make_decl_one_only.
1079 (make_decl_one_only): Change signature.
1080 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1081
0eb92735
RG
10822009-06-15 Richard Guenther <rguenther@suse.de>
1083
1084 PR middle-end/40439
1085 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1086
0ab352d5
AK
10872009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1088
1089 * tree-ssa-math-opts.c: Remove extra divide.
1090
677fbff4
AK
10912009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1092
1093 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1094
03bd2f1a
AK
10952009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1096
1097 * passes.c: Add bswap pass.
1098 * tree-pass.h: Add pass_optimize_bswap declaration.
1099 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1100 Include rtl.h, expr.h and optabs.h for optab_handler check.
1101 (struct symbolic_number, pass_optimize_bswap): New definition.
1102 (do_shift_rotate, verify_symbolic_number_p): New functions.
1103 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1104 (gate_optimize_bswap): New function.
1105 * tree.c (widest_int_cst_value): New function.
1106 * tree.h (widest_int_cst_value): Prototype added.
1107
fb4c4640
SB
11082009-06-14 Steven Bosscher <steven@gcc.gnu.org>
1109
1110 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1111 REG_EQUAL/REG_EQUIV notes.
1112
1d24fdd9
RG
11132009-06-14 Richard Guenther <rguenther@suse.de>
1114
1115 PR middle-end/40389
1116 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1117 has its address taken if NRV was applied and it is addressable.
1118 * tree-ssa-structalias.c (get_constraint_for_address_of): New
1119 function split out from ...
1120 (get_constraint_for_1): ... here.
1121 (handle_rhs_call): Use it to mark the return slot escaped if
1122 it is addressable and NRV was applied.
1123
4b29c5e5
AH
11242009-06-13 Aldy Hernandez <aldyh@redhat.com>
1125
1126 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1127 Change first argument type to location_t.
1128 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1129 Do not set input_location.
1130 Use loc instead of input_location throughout.
1131
e1e6dc73
RG
11322009-06-13 Richard Guenther <rguenther@suse.de>
1133
1d24fdd9 1134 PR tree-optimization/40421
e1e6dc73
RG
1135 * tree-predcom.c (should_unroll_loop_p): Remove.
1136 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1137
8012b923
MM
11382009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1139
1140 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1141 Add location argument.
1142
4c4bde29
AH
11432009-06-13 Aldy Hernandez <aldyh@redhat.com>
1144
1145 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1146 build_decl.
1147 * config/s390/s390.c (s390_build_builtin_va_list): Same.
1148 (s390_gimplify_va_arg): Pass location to create_artificial_label.
1149 * config/spu/spu-protos.h: Add location to
1150 spu_resolve_overloaded_builtin.
1151 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1152 spu_build_builtin_va_list.
1153 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1154 argument. Pass location to build_function_call_vec.
1155 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1156 build_decl.
1157 (emit_fpu_switch): Same.
1158 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1159 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1160 to build_decl and create_artificial_label.
1161 (xtensa_gimplify_va_arg_expr): Same.
1162 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1163 (xstormy16_gimplify_va_arg_expr): Same.
1164 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1165 * config/arm/arm.c (arm_build_builtin_va_list): Same.
1166 * config/mips/mips.c (mips_build_builtin_va_list): Same.
1167 (mips16_build_function_stub): Same.
1168 (mips16_build_call_stub): Same.
1169
81beb031
RE
11702009-06-13 Richard Earnshaw <rearnsha@arm.com>
1171
1172 PR target/40327
1173 * arm/constraints.md (Pa, Pb): New constraints.
1174 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
1175 split pattern to deal with them.
1176
98f6c600
JS
11772009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
1178
1179 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1180 fix index entry for -Xpreprocessor.
1181
71856685
AH
11822009-06-12 Aldy Hernandez <aldyh@redhat.com>
1183
1184 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1185 Add location argument to build_decl call.
1186 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1187 (rs6000_init_builtins): Same.
1188 (spe_init_builtins): Same.
1189 (rs6000_gimplify_va_arg): Add location argument to
1190 create_artificial_label call.
1191
756b65f5
SB
11922009-06-12 Steven Bosscher <steven@gcc.gnu.org>
1193
1194 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1195 * combine-stack-adj.c (pass_stack_adjustments): Use it.
1196 * Makefile.in: Fix GGC dependency for gcse.o.
1197
c2255bc4
AH
11982009-06-12 Aldy Hernandez <aldyh@redhat.com>
1199
1200 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1201 * gimple-pretty-print.c (dump_gimple_stmt): Same.
1202 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1203 created.
1204 * c-parser.c (c_parser_binary_expression): Use current column while
1205 building binary operations.
1206 * common.opt (fshow-column): Enable by default.
1207 * tree-vrp.c (check_array_ref): Use warning_at.
1208 (check_array_bounds): Use location from call back if expr has no
1209 location.
1210 * tree.h: Add location argument to maybe_fold_*.
1211 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1212 (maybe_fold_offset_to_array_ref): Add location argument and use it.
1213 (maybe_fold_offset_to_component_ref): Same.
1214 (maybe_fold_offset_to_reference): Same.
1215 (maybe_fold_offset_to_address): Same.
1216 (maybe_fold_stmt_indirect): Same.
1217 (maybe_fold_stmt_addition): Same.
1218 (fold_stmt_r): Pass location to maybe_fold_*.
1219 (fold_gimple_assign): Same.
1220 * c-tree.h: Add location argument to finish_decl,
1221 default_function_array_conversion, store_init_value.
1222 * c-decl.c (define_label): Use error_at.
1223 (c_make_fname_decl): Pass location to finish_decl.
1224 (finish_decl): New location argument.
1225 (build_compound_literal): Pass location to store_init_value.
1226 (grokdeclarator): Pass location to finish_decl.
1227 (grokfield): Same.
1228 * c-typeck.c (array_to_pointer_conversion): New location argument.
1229 (function_to_pointer_conversion): Same.
1230 (default_function_array_conversion): Same.
1231 (parser_build_unary_op): Pass location to overflow_warning.
1232 (parser_build_binary_op): Same. Use warning_at.
1233 (build_unary_op): Pass location to array_to_pointer_conversion.
1234 (build_c_cast): Pass location to digest_init.
1235 (build_modify_expr): New location argument.
1236 (convert_for_assignment): Same.
1237 (store_init_value): Same.
1238 (digest_init): Same.
1239 (output_init_element): Pass location to digest_init and
1240 array_to_pointer_conversion.
1241 (c_finish_return): Pass location to convert_for_assignment.
1242 * gimplify.c (gimplify_conversion): Pass location to
1243 maybe_fold_offset_to_address.
1244 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1245 to maybe_fold_stmt_addition.
1246 * c-omp.c (c_finish_omp_atomic): Pass new location to
1247 build_modify_expr.
1248 (c_finish_omp_for): Same.
1249 * c-common.c (overflow_warning): New argument.
1250 * c-common.h: New argument to build_modify_expr, overflow_warning.
1251 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1252 finish_decl.
1253 (c_parser_initializer): Pass location to
1254 default_function_array_conversion.
1255 (c_parser_initelt): Same.
1256 (c_parser_initval): Same.
1257 (c_parser_asm_operands): Same.
1258 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
1259 (c_parser_conditional_expression): Same.
1260 (c_parser_binary_expression): Add location info to stack. Use it.
1261 (c_parser_unary_expression): Pass location to
1262 default_function_array_conversion, parser_build_unary_op,
1263 build_indirect_ref, c_parser_postfix_expression_after_primary.
1264 (c_parser_postfix_expression_after_primary): New location argument.
1265 Use it.
1266 (c_parser_expression_conv): Pass location to
1267 default_function_array_conversion.
1268 (c_parser_expr_list): Same.
1269 (c_parser_omp_atomic): Same.
1270 (c_parser_omp_for_loop): Same.
1271 * c-tree.h: (struct c_declarator): Add comment to id_loc.
1272 (build_array_declarator): New argument.
1273 * c-decl.c (build_array_declarator): Add location argument.
1274 (grokdeclarator): Set id_loc for cdk_array.
1275 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1276 build_array_declarator.
1277 * tree.c (build_omp_clause): Add location argument.
1278 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1279 (OMP_CLAUSE_LOCATION): New macro.
1280 (struct tree_omp_clause): Add location field.
1281 (build_omp_clause): Add argument.
1282 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1283 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1284 build_omp_clause.
1285 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1286 (cp_parser_omp_clause_collapse): Same.
1287 (cp_parser_omp_clause_default): Same.
1288 (cp_parser_omp_clause_if): Same.
1289 (cp_parser_omp_clause_nowait): Same.
1290 (cp_parser_omp_clause_num_threads): Same.
1291 (cp_parser_omp_clause_ordered): Same.
1292 (cp_parser_omp_clause_schedule): Same.
1293 (cp_parser_omp_clause_untied): Same.
1294 (cp_parser_omp_for_loop): Same.
1295 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1296 * c-tree.h (c_start_case): Add location argument.
1297 (c_process_expr_stmt): Same.
1298 (c_finish_goto_*): Same.
1299 * tree-parloops.c (initialize_reductions): Pass location to
1300 build_omp_clause.
1301 (create_parallel_loop): Same.
1302 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1303 (gfc_trans_omp_reduction_list): Same.
1304 (gfc_trans_omp_clauses): Same.
1305 (gfc_trans_omp_do): Same.
1306 * c-typeck.c (c_finish_goto_label): Same.
1307 (c_finish_goto_ptr): New location argument.
1308 (c_start_case): Same.
1309 (emit_side_effect_warnings): Same.
1310 (c_process_expr_stmt): Same.
1311 (c_finish_stmt_expr): Same.
1312 (c_finish_omp_clauses): Use error_at instead of error.
1313 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1314 build_omp_clause.
1315 * c-omp.c (c_split_parallel_clauses): New location argument.
1316 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1317 to build_omp_clause.
1318 (convert_local_reference_stmt): Same.
1319 (convert_gimple_call): Same.
1320 * c-common.h (c_split_parallel_clauses): New argument.
1321 * c-parser.c (c_parser_statement_after_labels): Pass location to
1322 c_finish_goto_label.
1323 (c_parser_switch_statement): Pass location to c_start_case.
1324 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1325 and c_process_expr_stmt.
1326 (c_parser_omp_variable_list): Add location argument.
c637b0fa 1327 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
1328 (c_parser_omp_clause_default): Same.
1329 (c_parser_omp_clause_if): Same.
1330 (c_parser_omp_clause_num_threads): Same.
1331 (-c_parser_omp_clause_ordered): Same.
1332 (c_parser_omp_clause_reduction): Pass location to
1333 c_parser_omp_variable_list.
1334 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1335 (c_parser_omp_clause_untied): Same.
1336 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 1337 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
1338
1339 * c-tree.h (check_for_loop_decls, undeclared_variable,
1340 build_component_ref, build_array_ref, build_external_ref,
1341 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1342 build_conditional_expr, build_compound_expr, c_cast_expr,
1343 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1344 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1345 argument.
1346 * c-semantics.c (build_stmt): Same.
1347 (build_case_label): Same.
1348 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1349 (undeclared_variable): New argument.
1350 (make_label): Same.
1351 (lookup_label): Pass location on down.
1352 (define_label): Same.
1353 (finish_decl): Same.
1354 (build_compound_literal): Same.
1355 (finish_struct): Same.
1356 (finish_function): Do not set location here.
1357 (check_for_loop_decls): New argument.
1358 * tree.c (save_expr): Set location.
1359 (build_empty_stmt): New argument.
1360 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1361 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1362 * builtins.c (gimplify_va_arg_expr): Use locations.
1363 (expand_builtin_sync_operation): Same.
1364 * c-typeck.c (build_component_ref): New argument.
1365 (build_array_ref): Same.
1366 (build_external_ref): Same.
1367 (c_expr_sizeof_expr): Same.
1368 (c_expr_sizeof_type): Same.
1369 (parser_build_unary_op): Same.
1370 (build_conditional_expr): Same.
1371 (build_compound_expr): Pass location on down.
1372 (build_compound_expr): New argument.
1373 (build_c_cast): Same.
1374 (c_cast_expr): Same.
1375 (build_asm_expr): Same.
1376 (c_finish_return): Same.
1377 (c_process_expr_stmt): Pass location on down.
1378 (c_finish_stmt_expr): New argument.
1379 (push_clenaup): Same.
1380 (c_finish_omp_parallel): Same.
1381 (c_finish_omp_task): Same.
1382 * gimplify.c (gimplify_call_expr): Pass location on down.
1383 * c-omp.c (c_finish_omp_master): New argument.
1384 (c_finish_omp_critical): Same.
1385 (c_finish_omp_ordered): Same.
1386 (c_finish_omp_barrier): Same.
1387 (-c_finish_omp_taskwait): Same.
1388 (c_finish_omp_atomic): Same.
1389 (c_finish_omp_flush): Same.
1390 * tree-inline.c (copy_tree_body_r): Pass location on down.
1391 (inline_forbidden_p): Remove use of input_location.
1392 * c-gimplify.c (c_build_bind_expr): New argument.
1393 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1394 (c_sizeof_or_alignof_type): New argument.
1395 (c_alignof_expr): Same.
1396 (build_va_arg): Same.
1397 (c_add_case_label): Same.
1398 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1399 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1400 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1401 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1402 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1403 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1404 New argument.
1405 * stub-objc.c (objc_build_selector_expr): Same.
1406 (objc_build_throw_stmt): Same.
1407 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1408 (c_parser_initelt): Same.
1409 (c_parser_compound_statement): Same.
1410 (c_parser_compound_statement_nostart): Same.
1411 (c_parser_label): Same.
1412 (c_parser_statement_after_labels): Same.
1413 (c_parser_if_body): Same.
1414 (c_parser_else_body): Same.
1415 (c_parser_if_statement): Same.
1416 (c_parser_switch_statement): Same.
1417 (c_parser_while_statement): Same.
1418 (c_parser_do_statement): Same.
1419 (c_parser_for_statement): Same.
1420 (c_parser_asm_statement): Same.
1421 (c_parser_conditional_expression): Same.
1422 (c_parser_binary_expression): Same.
1423 (c_parser_cast_expression): Same.
1424 (c_parser_unary_expression): Same.
1425 (c_parser_sizeof_expression): Same.
1426 (c_parser_alignof_expression): Same.
1427 (c_parser_postfix_expression): Same.
1428 (c_parser_expression): Same.
1429 (c_parser_objc_receiver): Same.
1430 (c_parser_omp_variable_list): Same.
1431 (c_parser_omp_structured_block): Same.
1432 (c_parser_omp_atomic): New argument.
1433 (c_parser_omp_barrier): Same.
1434 (c_parser_omp_critical): Same.
1435 (c_parser_omp_flush): Pass location on down.
1436 (c_parser_omp_for_loop): New argument.
1437 (c_parser_omp_for): Same.
1438 (c_parser_omp_master): Same.
1439 (c_parser_omp_ordered): Same.
1440 (c_parser_omp_sections_scope): Same.
1441 (c_parser_omp_sections): Same.
1442 (c_parser_omp_parallel): Same.
1443 (c_parser_omp_single): Same.
1444 (c_parser_omp_task): Same.
1445 (c_parser_omp_taskwait): Pass location on down.
1446 (c_parser_omp_construct): Same.
1447 (c_parser_omp_threadprivate): Same.
1448 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1449 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1450 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1451 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1452 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1453 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1454 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1455 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1456 config/i386/i386.c, stmt.c:
1457 Add location argument to the following function definitions and/or
1458 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1459 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1460 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1461 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1462 do_case, c_finish_bc_stmt, build_compound_literal,
1463 build_function_call.
1464 * c-decl.c (build_compound_literal): Add location argument.
1465 Make all diagnostic calls use location.
1466 (start_struct): Same.
1467 (finish_struct): Same.
1468 (start_enum): Same.
1469 (build_enumerator): Same.
1470 (start_function): Same.
1471 (grokdeclarator): Make all diagnostic calls use location.
1472 (store_parm_decls_oldstyle): Same.
1473 * c-typeck.c (build_function_call): Add location argument.
1474 Make all diagnostic calls use location.
1475 (do_case): Same.
1476 (c_finish_bc_stmt): Same.
1477 * tree-nested.c (get_trampoline_type): Add argument.
1478 Pass location to build_decl.
1479 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1480 * rtl.h (RTL_LOCATION): New.
1481 * c-common.c (c_add_case_label): Add location argument.
1482 Make all diagnostic calls use location.
1483 * c-common.h: Add location argument to make_fname_decl, do_case,
1484 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1485 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1486 Set it appropriately for every case. Pass enum_loc to start_enum
1487 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1488 parser_xref_tag.
1489 (c_parser_struct_or_union_specifier): Save location. Use it for
1490 start_struct, finish_struct, and parser_xref_tag.
1491
3d8b2a98
ILT
14922009-06-12 Ian Lance Taylor <iant@google.com>
1493
c637b0fa 1494 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
1495
1496 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1497 cpp_opts->warn_cxx_operator_names.
1498
737142ce
AP
14992009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1500
1501 PR tree-opt/38865
1502 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1503 is returns NULL and OP is a VCE, look through the VCE.
1504
d3a0d55d
ILT
15052009-06-12 Ian Lance Taylor <iant@google.com>
1506
1507 PR bootstrap/40430
1508 * collect2.c (main): Use CONST_CAST2 in code inside #if
1509 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1510
f85882d8
JY
15112009-06-12 Joey Ye <joey.ye@intel.com>
1512
1513 PR middle-end/39146
1514 * cfgexpand.c (get_decl_align_unit): Update
1515 max_used_stack_slot_alignment with align instead of
1516 stack_alignment_needed.
1517
1518 * function.c (assign_stack_local_1): Update
1519 max_used_stack_slot_alignment with alignment_in_bits instead
1520 of stack_alignment_needed.
1521 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1522 here.
1523
fc9f468b
JJ
15242009-06-12 Jakub Jelinek <jakub@redhat.com>
1525
1526 * dwarf2out.c (last_var_location_insn): New variable.
1527 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1528 (dwarf2out_var_location): Don't record anything after last real
1529 insn. Only change labels if there were any real instructions
1530 in between last note and this one, or if changed sections.
1531
7c1db202
RH
15322009-06-11 Richard Henderson <rth@redhat.com>
1533
f85882d8 1534 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
1535 note when storing the frame pointer in a register.
1536 (FRP): Don't redefine to nothing for epilogue.
1537 (alpha_expand_epilogue): Mark register and sp restores.
1538 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1539
7c1db202
RH
1540 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1541 when gen_lowpart is needed.
1542
f2ae7631
RH
15432009-06-11 Richard Henderson <rth@redhat.com>
1544
42755c21
RH
1545 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1546
f2ae7631
RH
1547 * dwarf2out.c (need_data_align_sf_opcode): New.
1548 (div_data_align): Move earlier.
1549 (def_cfa_1, reg_save): Use it.
1550
8ed0ce99
L
15512009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1552
1553 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1554 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1555 (ix86_handle_option): Handle OPT_mcrc32.
1556 (ix86_target_string): Add -mcrc32.
1557 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1558
1559 * config/i386/i386.h (TARGET_CRC32): New.
1560
c637b0fa 1561 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
1562 (sse4_2_crc32di): Likewise.
1563
c637b0fa 1564 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
1565
1566 * doc/invoke.texi: Document -mcrc32.
1567
9fd68a1f
RH
15682009-06-11 Richard Henderson <rth@redhat.com>
1569
8ed0ce99 1570 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
1571 * doc/invoke.texi (gdwarf-): Update docs.
1572 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1573 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1574 version level, and record it.
1575
1576 * dwarf2.h (DW_CIE_VERSION): Remove.
1577 * dwarf2out.c (DWARF_VERSION): Remove.
1578 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1579 (output_call_frame_info): Use CIE version 3 for dwarf3,
1580 or if the return register column is out of range for version 1.
1581 (dwarf_stack_op_name): Add all dwarf3 values.
1582 (DEBUG_PUBTYPES_SECTION): New.
1583 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1584 encoding change for dwarf3.
1585 (output_die) [dw_val_class_die_ref]: Likewise.
1586 (output_compilation_unit_header): Emit correct version for dwarf3.
1587 (output_line_info): Likewise.
1588 (output_pubnames): Update for DWARF_VERSION removal.
1589 (output_aranges): Likewise.
1590 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1591 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1592 (dwarf2out_finish): Likewise.
1593
4de8ce3b
DD
15942009-06-11 David Daney <ddaney@caviumnetworks.com>
1595
1596 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1597 in r148403.
1598
468059bc
DD
15992009-06-11 David Daney <ddaney@caviumnetworks.com>
1600
1601 PR c/39252
1602 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1603 * builtins.c (expand_builtin_unreachable): New function.
1604 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1605 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1606 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1607 successors.
1608 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1609 searching for missing barriers.
1610
b5a6e96f
FXC
16112009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1612
1613 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1614 when -fprofile-generate* was passed.
1615 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1616
6be6462e
AG
16172009-06-11 Anthony Green <green@moxielogic.com>
1618
c637b0fa 1619 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
1620 (rCC): Define.
1621 (*b<cond:code>): Support limited branch ranges for new PC-relative
1622 branch instructions.
1623 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1624
caaabe0a
JJ
16252009-06-11 Jakub Jelinek <jakub@redhat.com>
1626
e5219642
JJ
1627 * config/i386/i386.c (min_insn_size): Use get_attr_length
1628 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1629 For __asm return 0.
1630
caaabe0a
JJ
1631 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1632 instead of emit_insn_before.
1633
a567fa6a
ILT
16342009-06-10 Ian Lance Taylor <iant@google.com>
1635
1636 PR bootstrap/40408
1637 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1638 GIMPLE_SWITCH.
1639
6a753d5f
RE
16402009-06-10 Revital Eres <eres@il.ibm.com>
1641
1642 * passes.c (init_optimization_passes): Reschedule
1643 predictive-commoning pass before complete unroll pass.
1644
a550d677
MJ
16452009-06-10 Martin Jambor <mjambor@suse.cz>
1646
1647 * cgraph.c (cgraph_node_can_be_local_p): New function.
1648 (cgraph_make_node_local): New function.
1649 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1650 (cgraph_make_node_local): Declare.
1651
d8259b07
NF
16522009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1653
1654 * tree.h (tree_base): Add packed_flag and user_align fields.
1655 Decrease size of spare field.
1656 (TYPE_USER_ALIGN): Use user_align from tree_base.
1657 (DECL_USER_ALIGN): Likewise.
1658 (TYPE_PACKED): Use packed_flag from tree_base.
1659 (DECL_PACKED): Likewise.
1660 (tree_type): Delete packed_flag and user_align fields. Widen
1661 precision field. Widen mode field and shuffle fields to align
1662 mode on an 8-bit boundary.
1663 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1664 Renumber decl_flag_* fields. Fix comments. Widen
1665 decl_common_unused field.
c637b0fa 1666 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
1667 (DECL_EXTERNAL): Likewise.
1668 (DECL_BIT_FIELD): Likewise.
1669 (DECL_NONADDRESSABLE_P): Likewise.
1670 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1671 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1672
c2569604
ILT
16732009-06-10 Ian Lance Taylor <iant@google.com>
1674
1675 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1676 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1677 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1678 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1679 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1680 DEF_VEC_ALLOC_FUNC_P.
1681 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1682 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1683 DEF_VEC_ALLOC_FUNC_O.
1684 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1685 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1686 DEF_VEC_ALLOC_FUNC_I.
1687 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1688 (vec_stack_p_reserve_exact_1): Declare.
1689 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1690 (vec_stack_free): Declare.
1691 (VEC_stack_alloc): Define.
1692 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1693 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1694 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1695 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1696 for void_p.
1697 (stack_vecs): New static variable.
1698 (vec_stack_p_reserve_exact_1): New function.
1699 (vec_stack_o_reserve_1): New static function.
1700 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1701 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1702 (vec_stack_free): New function.
1703 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1704 (VEC_df_ref_stack_alloc): Define.
1705 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1706 DEF_VEC_ALLOC_P_STACK.
1707 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1708 (struct df_collection_rec): Change _vec fields to VEC. Remove
1709 _use fields.
1710 (df_free_collection_rec): Adjust for new fields.
1711 (df_insn_rescan): Use new df_collection_rec fields.
1712 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1713 (df_ref_create_structure, df_ref_record): Likewise.
1714 (df_get_conditional_uses, df_get_call_refs): Likewise.
1715 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1716 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1717 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 1718 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
1719 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1720 Remove count parameter. Change return type to void. Change all
1721 callers.
1722 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1723 Remove count parameter. Change return type to void. Change all
1724 callers.
1725 (df_install_refs): Change old_vec parameter to VEC. Remove count
1726 parameter. Change all callers.
1727 (df_install_mws): Change old_vec parameter to VEC. Remove count
1728 parameter. Change all callers.
1729 (df_refs_verify): Change new_rec parameter to VEC. Change call
1730 callers.
1731 (df_mws_verify): Likewise.
1732
e7aae3e8
AO
17332009-06-10 Alexandre Oliva <aoliva@redhat.com>
1734
1735 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1736
412ac8d5
L
17372009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1738
1739 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1740
cceb575c
AG
17412009-06-10 Anthony Green <green@moxielogic.com>
1742
1743 * config/moxie/crti.asm: New file.
1744 * config/moxie/crtn.asm: New file.
1745 * config/moxie/moxie.c: New file.
1746 * config/moxie/moxie.h: New file.
1747 * config/moxie/sfp-machine.h: New file.
1748 * config/moxie/moxie-protos.h: New file.
1749 * config/moxie/t-moxie: Created.
1750 * config/moxie/t-moxie-softfp: Created.
1751 * config/moxie/moxie.md: Created.
1752 * config/moxie/constraints.md: Created.
1753 * config.gcc: Add moxie support.
1754 * doc/md.texi (Machine Constraints): Add moxie constraints.
1755 * doc/contrib.texi (Contributors): Mention moxie port.
1756 * doc/install.texi (Specific): Mention the moxie port.
1757
bf406687
ILT
17582009-06-09 Ian Lance Taylor <iant@google.com>
1759
1760 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1761 compiling with C++.
1762 * optabs.c (optab_table): Only use designated initializers if
1763 HAVE_DESIGNATED_INITIALIZERS is defined.
1764 (convert_optab_table): Likewise.
1765 (init_optabs): Always call init_insn_codes if
1766 HAVE_DESIGNATED_INITIALIZERS is not defined.
1767
744aa42f
ILT
17682009-06-09 Ian Lance Taylor <iant@google.com>
1769
1770 * targhooks.c (default_builtin_vectorized_function): Change fn
1771 parameter to unsigned int.
1772 (default_builtin_vectorized_conversion): Change code parameter to
1773 unsigned int.
1774 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1775 * targhooks.h: Update declarations.
1776 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1777 parameter to unsigned int.
1778
1779 * c-typeck.c (comptypes_check_enum_int): New static function.
1780 (comptypes_internal): Add enum_and_int_p parameter. Change all
1781 callers.
1782 (comp_target_types): Add location parameter. Change all callers.
1783 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1784 Change all callers.
1785 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1786 (build_conditional_expr): Add colon_loc parameter. Change all
1787 callers.
c637b0fa 1788 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
1789 * c-parser.c (c_parser_conditional_expression): Pass location of
1790 colon to build_conditional_expr.
1791 * c-tree.h (build_conditional_expr): Update declaration.
1792
bcbe3b25
SP
17932009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1794
1795 * graphite.c: Revert previous patch.
1796
dc2a6925
SP
17972009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1798
1799 PR bootstrap/40103
1800 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1801
d81f5387
GS
18022009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1803
8ed0ce99
L
1804 * tree-ssa-loop-prefetch.c
1805 (loop_prefetch_arrays): Fixed a portability problem in printf format
1806 string.
d81f5387 1807
8056eb4f
MJ
18082009-06-09 Martin Jambor <mjambor@suse.cz>
1809
1810 PR tree-optimization/40351
c637b0fa
UB
1811 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1812 refrence to a potential artifical subaccess can be constructed.
8056eb4f 1813
bd9a3465
KK
18142009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1815
1816 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1817 (sh_override_options): Likewise.
1818 * config/sh/sh.c: Include params.h.
1819 (sh_optimization_options): New.
1820 (sh_override_options): Likewise.
1821 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1822 (OVERRIDE_OPTIONS): Use sh_override_options.
1823
8845deab
JJ
18242009-06-08 Jakub Jelinek <jakub@redhat.com>
1825
1826 * dwarf2out.c (emit_cfa_remember): New variable.
1827 (add_fde_cfi): If emit_cfa_remember, recurse to add
1828 DW_CFA_remember_state first.
1829 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1830 instead just set emit_cfa_remember.
1831
9ea81b0c
JH
18322009-06-08 Jan Hubicka <jh@suse.cz>
1833
1834 PR debug/40126
1835 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1836
21ecdec5
JH
18372009-06-08 Jan Hubicka <jh@suse.cz>
1838
1839 PR middle-end/39834
c637b0fa
UB
1840 * cgraphunit.c (save_inline_function_body): Do not copy transform
1841 hooks for saved inline bodies.
21ecdec5
JH
1842 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1843 for given function.
1844
72e48218
AN
18452009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1846
1847 * jump.c (returnjump_p): Handle delayed branches. Add missing
1848 function comment.
1849
6ce2002b
JH
18502009-06-08 Jan Hubicka <jh@suse.cz>
1851
1852 PR middle-end/40102
1853 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1854 original node might've been modified.
1855 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1856
eb9ed98a
JJ
18572009-06-08 Jakub Jelinek <jakub@redhat.com>
1858
1859 * tree-object-size.c (addr_object_size): Add OSI argument.
1860 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1861 (compute_builtin_object_size, expr_object_size): Adjust callers.
1862 (plus_stmt_object_size): Call addr_object_size instead of
1863 compute_builtin_object_size.
1864
db34470d 18652009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1866 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1867
1868 * tree-ssa-loop-prefetch.c
1869 (gather_memory_references): Introduced a counter for the number of
1870 memory references.
1871 (anything_to_prefetch_p): Introduced a counter for the number of
1872 prefetches.
1873 (is_loop_prefetching_profitable): New function with a cost model
1874 for prefetching.
1875 (loop_prefetch_arrays): Use the new cost model to determine if
1876 prefetching is profitable.
1877 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1878 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1879 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1880 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1881 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1882 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1883
eb7adebc
MM
18842009-06-08 Michael Matz <matz@suse.de>
1885
1886 PR debug/40012
eb7adebc
MM
1887 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1888 partitions use the same.
1889 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1890 for basevars of SSA_NAMEs.
1891 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1892 to not expand them twice.
1893 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1894 multiple places.
1895
2153915d
AO
18962009-06-08 Alexandre Oliva <aoliva@redhat.com>
1897
1898 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1899 (fdump-final-insns=, gtoggle): New.
1900 * doc/invoke.texi: Document them.
1901 * final.c (rest_of_clean_state): Dump final insn stream.
1902 * gcc.c (invoke_as): Hook in -fcompare-debug.
1903 (static_spec_functions): Add compare-debug-dump-opt,
1904 compare-debug-self-opt and compare-debug-auxbase-opt.
1905 (compare_debug, compare_debug_second, compare_debug_opt): New.
1906 (switches_debug_check, n_switches_debug_check): New.
1907 (debug_auxbase_opt, debug_check_temp_file): New.
1908 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1909 -fcompare-debug=*.
1910 (do_self_spec): Handle arguments after switches.
1911 (do_spec_1): Add .gk extension to temp file basenames for compare.
1912 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1913 (cc1_options): Use it instead of normal auxbase computation for
1914 the second compare-debug compilation.
1915 (compare_files): New.
1916 (main): Set up and implement compare debug mode.
1917 (compare_debug_dump_opt_spec_function): New.
1918 (compare_debug_self_opt_spec_function): New.
1919 (compare_debug_auxbase_opt_spec_function): New.
1920 * toplev.c (process_options): Handle flag_gtoggle,
1921 flag_dump_final_insns.
1922 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1923 during -fcompare-debug-second compilation.
1924
cdb88468
ILT
19252009-06-07 Ian Lance Taylor <iant@google.com>
1926
c637b0fa 1927 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
1928 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1929
1930 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1931 with no default node. Change warning with %H to warning_at.
1932 Don't clear warn_switch around case checking.
1933 * doc/invoke.texi (Warning Options): Clarify distinction between
1934 -Wswitch and -Wswitch-enum.
1935
4fe8e1a2
BRF
19362009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1937
1938 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1939
69952c1d
BRF
19402009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1941
1942 * gbl-ctors.h: Add header guard.
1943
b2ad0284
BRF
19442009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1945
1946 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1947 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1948 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1949 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1950 prototypes for removed functions.
1951 (expressions_equal_p): Move to ...
1952 * tree-ssa-sccvn.h: ... here and ...
1953 * matrix-reorg.c: ... adjust includes.
1954
c3df55f9
BRF
19552009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1956
1957 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1958
b5a7159f
BRF
19592009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1960
1961 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1962 (finish_function): Remove erroneous whitespace.
1963
95bca6b0
BRF
19642009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1965
2cd713a0
BRF
1966 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1967 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1968
19692009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1970
1971 * errors.c (internal_error): Commentary typo fix.
1972 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1973 * tree-ssa-pre.c: Ditto.
95bca6b0 1974
2cd713a0
BRF
19752009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1976
1977 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1978 them is supposed to hold actual statements.
1979
5bca4e80
ILT
19802009-06-06 Ian Lance Taylor <iant@google.com>
1981
1982 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1983 empty statements can now have attributes.
1984
47ac44d6
SZ
19852009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1986
1987 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1988 * config/mips/mips.md: Ditto.
1989
19b905ce
NF
19902009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1991
1992 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1993 _RELOCATABLE.
1994 (__eabi_uconvert): Likewise.
1995
16702e19
NF
19962009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1997
1998 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1999 CFI_* definitions with IN_GCC.
2000
a735afd1
DE
20012009-06-05 David Edelsohn <edelsohn@gnu.org>
2002
2003 * xcoffout.h (xcoffout_source_line): Update prototype.
2004
26a347c5
KG
20052009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2006
2007 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2008 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2009
9f706f23
JJ
20102009-06-05 Jakub Jelinek <jakub@redhat.com>
2011
2012 PR middle-end/40340
2013 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2014 inlined_function_outer_scope_p blocks for artificial inlines
2015 even at -g0/-g1.
2016 * tree.c (tree_nonartificial_location): Rewrite using
2017 block_nonartificial_location.
2018
8f439681
RE
20192009-06-05 Revital Eres <eres@il.ibm.com>
2020 Leehod Baruch <leehod@il.ibm.com>
2021
2022 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2023 (expand_expr_real_1): Remove comment.
2024 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2025 Vectorize misaligned access when the target supports it.
c637b0fa 2026 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
2027 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2028 and remove asset.
2029
b89f8e3c
JB
20302009-06-05 Julian Brown <julian@codesourcery.com>
2031
2032 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2033 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2034
47d1f191
RG
20352009-06-05 Richard Guenther <rguenther@suse.de>
2036
2037 PR bootstrap/40350
2038 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2039 as possibly unused.
2040
9f706f23 20412009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
2042
2043 * config/s390/s390.c (global_not_special_regno_p): New static inline.
2044 (save_gprs): Don't tell unwinder when a global register is saved.
2045 (s390_emit_epilogue): Emit needed epilogue unwind info.
2046
90f06248
AO
20472009-06-05 Alexandre Oliva <aoliva@redhat.com>
2048
2049 * dwarf2out.c (deferred_asm_name): New.
2050 (add_name_and_src_coords_attributes): Defer creation of
2051 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2052 computed yet.
2053 (move_linkage_attr): New.
2054 (dwarf2out_finish): Revisit deferrals and emit attributes at the
2055 right place.
2056
c10348e5
AO
20572009-06-05 Alexandre Oliva <aoliva@redhat.com>
2058
2059 * tree-nested.c (finalize_nesting_tree_1): Declare the
2060 frame_decl in the binding tree.
2061
6c52e687
CC
20622009-06-04 Cary Coutant <ccoutant@google.com>
2063
2064 * basic-block.h (struct basic_block_def): Add discriminator field.
2065 * dbxout.c (dbxout_source_line): Add new parameter. Change all
2066 callers.
2067 * debug.c (do_nothing_debug_hooks): Add additional entry.
2068 (debug_nothing_int_charstar_int): New function.
c637b0fa 2069 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
2070 (debug_nothing_int_charstar_int): New declaration.
2071 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
2072 discriminator value in .loc directive.
2073 * final.c (last_discriminator): New variable.
2074 (discriminator): New variable.
2075 (final_start_function): Initialize above variables, pass current
2076 discriminator to debug hook.
2077 (notice_source_line): Check for discriminator change.
2078 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2079 * sdbout.c (sdbout_source_line): New parameter.
2080 * tree-cfg.c (struct locus_discrim_map): New structure type.
2081 (discriminator_per_locus): New hash table.
2082 (build_gimple_cfg): Allocate and free discriminator hash table.
2083 (make_edges): Call assign_discriminator.
2084 (locus_map_hash): New function.
2085 (locus_map_eq): New function.
2086 (next_discriminator_for_locus): New function.
2087 (same_line_p): New function.
2088 (assign_discriminator): New function.
2089 (make_cond_expr_edges): Call assign_discriminator.
2090 (make_gimple_switch_edges): Likewise.
2091 (first_non_label_stmt): New function.
2092 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
2093 all callers.
2094 * xcoffout.c (xcoffout_source_line): Add new parameter.
2095
2096 * configure.ac (gcc_cv_as_discriminator): New configury check for
2097 gas support for discriminator.
2098 * configure: Regenerate.
2099 * config.in: Regenerate.
2100
e07e020b
RR
21012009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2102
2103 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2104 val after checking for integers.
2105
72fa3605
UB
21062009-06-04 Uros Bizjak <ubizjak@gmail.com>
2107
2108 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2109 X64_REGPARM_MAX.
2110 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2111 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2112 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2113 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2114 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
2115 X64_SSE_REGPARM_MAX.
2116 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2117 X64_SSE_REGPARM_MAX.
2118
bdde878c
AO
21192009-06-04 Alexandre Oliva <aoliva@redhat.com>
2120
2121 * gcc.c (report_times_to_file): New.
2122 (execute): Implement it.
2123 (process_command): Support -time=.
2124 * doc/invoke.texi: Document it.
2125
2ce59df7
AO
21262009-06-04 Alexandre Oliva <aoliva@redhat.com>
2127
2128 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2129 that have value exprs.
2130
78bd9046
AO
21312009-06-04 Alexandre Oliva <aoliva@redhat.com>
2132
2133 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2134 declarations for constants until...
2135 (dw2_output_indirect_constant_1): ... this point.
2136
e63d4106
RE
21372009-06-04 Richard Earnshaw <rearnsha@arm.com>
2138
2139 PR target/10242
2140 * arm.md (arm_addsi3): Don't try to split an add with an
2141 eliminable register until after reload has completed.
2142
6bc7bc14
ILT
21432009-06-03 Ian Lance Taylor <iant@google.com>
2144
2145 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2146 * genattrtab.c (write_length_unit_log): Likewise.
2147 * genchecksum.c (dosum): Likewise.
2148 * gengtype.c (write_rtx_next): Likewise.
2149 (finish_root_table, write_roots): Likewise.
2150 * gimple.c (gimple_ops_offset_): Likewise.
2151 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2152 * config/arc/arc.c (arc_attribute_table): Likewise.
2153 * config/arm/arm.c (arm_attribute_table): Likewise.
2154 * config/avr/avr.c (avr_attribute_table): Likewise.
2155 * config/crx/crx.c (crx_attribute_table): Likewise.
2156 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2157 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2158 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2159 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2160 * config/sh/sh.c (sh_attribute_table): Likewise.
2161 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2162 * config/spu/spu.c (spu_attribute_table): Likewise.
2163 * config/v850/v850.c (v850_attribute_table): Likewise.
2164
2165 * config/alpha/alpha.c (vms_attribute_table): Make static.
2166 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2167 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2168 * config/mips/mips.c (mips_attribute_table): Likewise.
2169
2170 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2171 $(SYSTEM_H).
2172 (cc1-checksum.o): Likewise.
2173
19d892fd
SE
21742009-06-03 Steve Ellcey <sje@cup.hp.com>
2175
2176 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2177
679f3354
JJ
21782009-06-03 Jakub Jelinek <jakub@redhat.com>
2179
ff35822b
JJ
2180 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2181 insn if it is changing sp. Use gen_add3_insn instead of
2182 conditionally gen_addsi3 and gen_adddi3.
2183 (offset_below_red_zone_p): New static inline function.
2184 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2185 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2186 * config/rs6000/ppc-asm.h: Include auto-host.h.
2187 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2188 CFI_RESTORE): Define.
2189 * config/rs6000/crtresxgpr.asm: Add unwind info.
2190 * config/rs6000/crtresxfpr.asm: Likewise.
2191 * config/rs6000/crtresgpr.asm: Likewise.
2192 * config/rs6000/crtresfpr.asm: Likewise.
2193 * config/rs6000/crtsavgpr.asm: Likewise.
2194 * config/rs6000/crtsavfpr.asm: Likewise.
2195
dc6707b8
UB
2196 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2197 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 2198
2e94c12d
JB
21992009-06-03 Julian Brown <julian@codesourcery.com>
2200
2201 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2202 words or less (including TImode) in core registers.
2203
3111cce0
RG
22042009-06-03 Richard Guenther <rguenther@suse.de>
2205
2206 PR middle-end/40328
2207 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2208
5e1b50f6
AB
22092009-06-03 Andrey Belevantsev <abel@ispras.ru>
2210
2211 * statistics.c (statistics_counter_event): Do not record event
2212 in pass dump if its number == -1.
2213 (curr_statistics_hash): Add assert that we never get passes
2214 with static number == -1.
2215
6f11d690
RG
22162009-06-03 Richard Guenther <rguenther@suse.de>
2217 Andrey Belevantsev <abel@ispras.ru>
2218
2219 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
2220 non-BLKmode arrays addressable.
2221
88961471
MK
22222009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
2223
2224 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2225 * config/m68k/m68k.h: ... here.
2226 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2227 m68k and fido.
2228
9961eb45
MJ
22292009-06-03 Martin Jambor <mjambor@suse.cz>
2230
2231 PR tree-optimization/40323
2232 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2233 assignment.
2234
2f2c62a0
RG
22352009-06-03 Richard Guenther <rguenther@suse.de>
2236
2237 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2238 consistently.
2239
d6ced3b7
SZ
22402009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
2241
2242 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2243 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2244 JUMP_TABLE_DATA_P where applicable.
2245 * config/sh/sh.c: Ditto.
2246 * config/sh/sh.h: Ditto.
2247 * config/sh/sh.md: Ditto.
2248 * config/sh/symbian.c: Ditto.
2249
f3afc8a7
UB
22502009-06-03 Uros Bizjak <ubizjak@gmail.com>
2251
2252 * config/i386/driver-i386.c (describe_cache): Optimize
2253 concatenation of strings. Use snprintf instead of sprintf.
2254 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
2255 target when not compiling with GCC.
2256
1964788a
KK
22572009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2258
2259 * config/sh/sh.c: Revert last change.
2260 (sh_expand_epilogue): Emit a blockage insn before the frame
2261 pointer adjustment unconditionally.
2262
8633c315
RS
22632009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2264
2265 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2266 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2267 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2268 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2269 to COLLECT_GCC_OPTIONS.
2270
781a1758
RS
22712009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2272
2273 * collect2.c (target_system_root): New variable.
2274 (main): Handle --sysroot=.
2275 (ignore_library): Strip the sysroot from the library path.
2276
dfb636dc
RS
22772009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2278
2279 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2280 (collect2.o): Depend on collect2-aix.h.
2281 (collect2-aix.o): New rule.
2282 * collect2-aix.h: New file.
2283 * collect2-aix.c: Likewise.
2284 * collect2.c: Include collect2-aix.h. Don't undefine
2285 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2286 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2287 Use TARGET_AIX_VERSION instead of _AIX51.
2288 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2289 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2290 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2291 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2292 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2293
51136ae8
RS
22942009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2295
2296 * collect2.c (ignore_library): Avoid premature post-increment
2297 and null deference.
2298
7f142d33
RS
22992009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2300
2301 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2302 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2303 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2304 CROSS_DIRECTORY_STRUCTURE too.
2305 (LINK_LIBG_SPEC): Likewise.
2306 (LIB_SPEC): Add %R to sysroot paths.
2307 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2308 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2309 * config/rs6000/aix51.h: As for aix43.h.
2310 * config/rs6000/aix52.h: Likewise.
2311 * config/rs6000/aix53.h: Likewise.
2312 * config/rs6000/aix61.h: Likewise.
2313 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2314 to the beginning of sysroot paths.
2315
9e74b7d2
AO
23162009-06-02 Alexandre Oliva <aoliva@redhat.com>
2317
2318 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2319 INSN_LISTs that are out of the REG_NOTE range.
2320
a9f6ecee
AO
23212009-06-02 Alexandre Oliva <aoliva@redhat.com>
2322
2323 * loop-unroll.c (struct iv_to_split): Add pointer to next.
2324 (struct var_to_expand): Likewise.
2325 (struct opt_info): Add head and tail for linked lists of the above.
2326 (analyze_insn_to_expand_var): Initialize next.
2327 (analyze_iv_to_split_insn): Likewise.
2328 (analyze_insns_in_loop): Create linked lists.
2329 (allocate_basic_variable): Simplify for use without hash table.
2330 (insert_var_expansion_initialization): Likewise, make it type-safer.
2331 (combine_var_copies_in_loop_exit): Likewise.
2332 (apply_opt_in_copies): Walk lists rather than hash tables.
2333 (release_var_copies): Simplified and inlined by hand into...
2334 (free_opt_info): ... this function.
2335
69596c69
RG
23362009-06-02 Richard Guenther <rguenther@suse.de>
2337
2338 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2339 for field decls.
2340
fe8a7779
AO
23412009-06-02 Alexandre Oliva <aoliva@redhat.com>
2342
2343 * cfgexpand.c (gimple_expand_cfg): Discard the source location
2344 only for builtins that are not overridden.
2345
1bcca2c5
AO
23462009-06-02 Alexandre Oliva <aoliva@redhat.com>
2347
2348 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2349 label string.
2350
8588f797
AO
23512009-06-02 Alexandre Oliva <aoliva@redhat.com>
2352
2353 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2354
45f39d78
AO
23552009-06-02 Alexandre Oliva <aoliva@redhat.com>
2356
2357 * combine.c (move_deaths): Compare LUIDs within the same BB only.
2358
2aa7c49b
AO
23592009-06-02 Alexandre Oliva <aoliva@redhat.com>
2360
2361 * common.opt (fdump-unnumbered-links): New.
2362 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2363 * print-rtl.c (flag_dump_unnumbered_links): New.
2364 (print_rtx): Test it.
2365
55b2829b
RE
23662009-06-02 Richard Earnshaw <rearnsha@arm.com>
2367
2368 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2369 push/pop multiple to 8-byte alignment.
e63d4106 2370
6c0d7021
JJ
23712009-06-01 Jakub Jelinek <jakub@redhat.com>
2372
0aa34d44
JJ
2373 * config/i386/i386.c (queued_cfa_restores): New static variable.
2374 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2375 functions.
2376 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2377 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2378 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2379 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2380 note unconditionally.
2381 (ix86_emit_restore_regs_using_mov): Likewise.
2382 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2383 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2384 it through to ix86_emit_restore_reg_using_pop.
2385 (ix86_emit_leave): Add RED_OFFSET argument. Call
2386 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
2387 instead of adding REG_CFA_OFFSET note unconditionally.
2388 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2389 the above functions. Call ix86_add_queued_cfa_restore_notes when
2390 needed.
2391
2392 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2393 force output of the label even for dwarf2out_do_cfi_asm.
2394 (add_fde_cfi): If -g2 and above and cfi might change CFA,
2395 force creation of CFI label and chain DW_CFA_set_loc jumping to it
2396 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
2397 caller.
2398 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2399 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2400 dwarf2out_cfi_label callers.
2401 * tree.h (dwarf2out_cfi_label): Adjust prototype.
2402 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2403 Adjust dwarf2out_cfi_label callers.
2404 * config/vax/vax.c (vax_output_function_prologue): Likewise.
2405
604a6be9
JJ
2406 * config/i386/i386.h (struct machine_cfa_state,
2407 struct machine_function): Guard with ifndef USED_FOR_TARGET
2408 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2409
df0026a7
JJ
2410 PR other/40024
2411 * emutls.c (__emutls_get_address): Change arr->size to mean number
2412 of allocated arr->data entries instead of # of slots + 1.
2413
6c0d7021
JJ
2414 PR middle-end/40316
2415 * recog.c (peep2_reinit_state): New function.
2416 (peephole2_init_state): Use it at the end of a basic block and also
2417 when seeing a RTX_FRAME_RELATED_P insn.
2418
49df2fb8
SE
24192009-06-01 Steve Ellcey <sje@cup.hp.com>
2420
2421 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2422 fixuns_truncrfdi2): New.
2423 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2424 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2425 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2426 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2427 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2428 *recip_approx): Remove.
2429 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2430 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2431 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2432 move to div.md.
2433 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2434 setf_exp_rf): New.
2435
67165eb3
ILT
24362009-06-01 Ian Lance Taylor <iant@google.com>
2437
2438 * attribs.c (register_attribute): Use CONST_CAST.
2439 * collect2.c (main): Use CONST_CAST2.
2440 (scan_prog_file): Likewise.
2441 * gcc.c (process_command, main): Likewise.
2442 * toplev.c (toplev_main): Likewise.
2443
2444 * c-typeck.c (handle_warn_cast_qual): New static function,
2445 partially broken out of build_c_cast.
2446 (build_c_cast): Call handle_warn_cast_qual.
2447 * doc/invoke.texi (Warning Options): Document new effect of
2448 -Wcast-qual.
2449
e74fe492
AH
24502009-06-01 Aldy Hernandez <aldyh@redhat.com>
2451
2452 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2453 (diagnostic_report_current_module): Print columns.
2454 * common.opt (flag_show_column): Enable by default.
2455
7eba2d1f
LM
24562009-06-01 Luis Machado <luisgpm@br.ibm.com>
2457
2458 * alias.c (find_base_term): Check for NULL term before returning.
2459
ee88d9aa
MK
24602009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2461
2462 Revert due to PR40320:
ee88d9aa
MK
2463 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2464 * calls.c (emit_library_call_value_1): Don't force_operand for move
2465 and push insns.
2466
324c9b02 24672009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 2468 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
2469
2470 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2471 to be processed as a bitfield for constructor output purposes.
2472 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2473 new function.
2474 * varasm.c (oc_local_state): New type, output_constructor
2475 local state to support communication with helpers.
2476 (oc_outer_state): New type, output_constructor outer state of
2477 relevance in recursive calls.
2478 (output_constructor_array_range): New output_constructor helper,
2479 extracted code for an array range element.
2480 (output_constructor_regular_field): New output_constructor helper,
2481 extracted code for an element that is not a bitfield.
2482 (output_constructor_bitfield): New output_constructor helper,
2483 extracted code for a bitfield element. Accept an OUTER state
2484 argument for recursive processing. Recurse on record or array
2485 CONSTRUCTOR values, possibly past noop conversions.
62295314 2486 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
2487 VALUE is a valid constant-valued expression for use in a static
2488 bit-field initializer.
62295314
OH
2489 (output_constructor): Rework to use helpers. Accept and honor an
2490 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
2491 prepared for nested constructors initializing bitfields.
2492 (output_constant): Feed OUTER in calls to output_constructor.
2493
0980d7fe
MK
24942009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2495
2496 * calls.c (emit_library_call_value_1): Don't force_operand for move
2497 and push insns.
2498
29661412
NC
24992009-06-01 Nick Clifton <nickc@redhat.com>
2500
2501 * doc/invoke.texi (IA-64 Options): Fix typo.
2502
e9dbe7bb
IR
25032009-06-01 Ira Rosen <irar@il.ibm.com>
2504
2505 PR tree-optimization/39129
2506 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2507 printed message.
2508 (vect_do_peeling_for_loop_bound): Use
2509 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2510 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2511 (vect_loop_versioning): Likewise.
2512 (vect_create_cond_for_alias_checks): Fix indentation.
2513 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2514 macros.
2515 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2516 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2517 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2518 "control flow in loop".
2519 (vect_estimate_min_profitable_iters): Use
2520 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2521 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2522 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2523 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2524 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2525 statement belongs to a group of strided accesses with the exact code
2526 check.
2527 (vectorizable_load): Likewise.
2528 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2529 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2530
5ac69a80
GP
25312009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2532
2533 * config/freebsd-stdint.h: New file.
2534 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2535 Add freebsd-stdint.h to tm_file.
2536
54b2b460
RE
25372009-06-01 Richard Earnshaw <rearnsha@arm.com>
2538
2539 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2540 (thumb2_extendhidi2): Likewise.
2541
a7ca77cf
ILT
25422009-05-31 Ian Lance Taylor <iant@google.com>
2543
f3afc8a7 2544 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
2545
25462009-05-31 Ian Lance Taylor <iant@google.com>
2547
f3afc8a7 2548 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
2549 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2550 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2551
1aec401e
JM
25522009-05-31 Jason Merrill <jason@redhat.com>
2553
2554 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 2555 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
2556 (dump_generic_node): Adjust.
2557 * diagnostic.h: Declare print_call_name.
2558 * gimple-pretty-print.c (dump_gimple_call): Use it.
2559
ed7910bb
KK
25602009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2561
2562 * config/sh/sh.md (ashldi3_std): New define_expand.
2563 (ashldi3): Use it.
2564
47ea8d4e
KK
25652009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2566
2567 PR target/40313
2568 * config/sh/sh.c: Include debug.h.
2569 (sh_expand_epilogue): Emit a blockage insn before the frame
2570 pointer adjustment also when dwarf2out_do_frame returns true.
2571
405e8b49
RE
25722009-05-31 Richard Earnshaw <rearnsha@arm.com>
2573
2574 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2575 (thumb2_extendqidi2): New pattern.
2576
71ece343
IR
25772009-05-31 Ira Rosen <irar@il.ibm.com>
2578
2579 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2580 mark phis for renaming.
2581 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2582 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2583 Call mark_sym_for_renaming.
2584 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
2585 * tree-vect-loop.c (vect_transform_loop): Remove
2586 vect_memsyms_to_rename initialization and a call to
2587 mark_set_for_renaming.
71ece343 2588
b3041944
JJ
25892009-05-31 Jakub Jelinek <jakub@redhat.com>
2590
2591 PR middle-end/40304
2592 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2593 frame related even if !set_cfa && style < 0.
2594
a1bda0d7
KT
25952009-05-30 Kai Tietz <kai.tietz@onevision.com>
2596
2597 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2598 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2599 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2600 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2601
acd26225
KG
26022009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2603
2604 * configure.ac: Add MPC support.
2605
2606 * config.in, configure: Regenerate.
2607
cd9c1ca8
RH
26082009-05-29 Richard Henderson <rth@redhat.com>
2609
2610 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2611 NOTE_INSN_BASIC_BLOCK.
2612 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2613 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2614 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2615 to be deleted.
2616 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2617 add in_use field.
2618 (add_cfi): Disable check redefining cfa away from drap.
2619 (lookup_cfa_1): Add remember argument; handle remember/restore.
2620 (lookup_cfa): Pass remember argument.
2621 (cfa_remember): New.
2622 (compute_barrier_args_size_1): Remove sibcall check.
2623 (dwarf2out_frame_debug_def_cfa): New.
2624 (dwarf2out_frame_debug_adjust_cfa): New.
2625 (dwarf2out_frame_debug_cfa_offset): New.
2626 (dwarf2out_frame_debug_cfa_register): New.
2627 (dwarf2out_frame_debug_cfa_restore): New.
2628 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2629 (dwarf2out_begin_epilogue): New.
2630 (dwarf2out_frame_debug_restore_state): New.
2631 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2632 DW_CFA_restore_state.
2633 (output_cfi_directive): Likewise.
2634 (convert_cfa_to_fb_loc_list): Likewise.
2635 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2636 * dwarf2out.h: Update.
2637 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2638 (copy_insn_1): Early out for null.
2639 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2640 and dwarf2out_frame_debug_restore_state.
2641 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2642 (prologue_insn_hash, epilogue_insn_hash): New.
2643 (free_after_compilation): Adjust freeing accordingly.
2644 (record_insns): Create hash table if needed; push insns into
2645 hash instead of array.
2646 (maybe_copy_epilogue_insn): New.
2647 (contains): Search hash table instead of array.
2648 (sibcall_epilogue_contains): Remove.
2649 (thread_prologue_and_epilogue_insns): Split eh_return insns
2650 and mark them as epilogues.
2651 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2652 scanning in terms of basic blocks.
2653 * insn-notes.def (CFA_RESTORE_STATE): New.
2654 * jump.c (returnjump_p_1): Accept EH_RETURN.
2655 (eh_returnjump_p_1, eh_returnjump_p): New.
2656 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2657 CFA_REGISTER, CFA_RESTORE): New.
2658 * rtl.def (EH_RETURN): New.
2659 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2660
2661 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2662 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2663
2664 * config/i386/i386.c (gen_push): Update cfa state.
2665 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2666 add a CFA_ADJUST_CFA note.
2667 (ix86_dwarf_handle_frame_unspec): Remove.
2668 (ix86_expand_prologue): Update cfa state.
2669 (ix86_emit_restore_reg_using_pop): New.
2670 (ix86_emit_restore_regs_using_pop): New.
2671 (ix86_emit_leave): New.
2672 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2673 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2674 * config/i386/i386.h (struct machine_cfa_state): New.
2675 (ix86_cfa_state): New.
2676 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2677 (eh_return_internal): Merge from eh_return_<mode>,
2678 use eh_return rtx, split w/ epilogue.
2679
72b5577d
ILT
26802009-05-29 Ian Lance Taylor <iant@google.com>
2681
2682 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2683 enum type.
2684 * calls.c (emit_library_call_value_1): Likewise.
2685
2686 * c-typeck.c (c_build_va_arg): New function.
2687 * c-tree.h (c_build_va_arg): Declare.
2688 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2689 instead of build_va_arg.
2690
7a2faca1
EB
26912009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2692
2693 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2694 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2695 (ptr_difference_cost): Use affine combinations to compute it.
2696 (difference_cost): Likewise.
2697 (get_computation_cost_at): Compute more accurate cost for addresses
2698 if the ratio is a multiplier allowed in addresses.
2699 For non-addresses, consider that an additional offset or symbol is
2700 added only once.
2701
725fd454
JJ
27022009-05-29 Jakub Jelinek <jakub@redhat.com>
2703
a0987204
JJ
2704 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2705 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2706
725fd454
JJ
2707 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2708 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2709 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2710 if MODE_DI.
2711 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2712 to 1 for TYPE_SSE{IADD1,CVT1}.
2713 (prefix_vex_imm8): Removed.
2714 (length_vex): Only pass 1 as second argument to
2715 ix86_attr_length_vex_default if prefix_extra is 0.
2716 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2717 (length): For prefix vex computation use length_immediate
2718 attribute instead of prefix_vex_imm8.
2719 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2720 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2721 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2722 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2723 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2724 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2725 a space in between the operands.
2726 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2727 if one operand is 0xff and the other one si, di, bp or sp.
2728 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2729 other one si, di, bp or sp.
2730 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2731 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2732 type and mode attributes.
2733 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2734 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2735 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2736 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2737 prefix_data16 attribute iff MODE_DF.
2738 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2739 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2740 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2741 constm128_operand in length_immediate computation.
2742 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2743 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2744 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2745 length_immediate attribute to 1.
2746 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2747 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2748 for certain alternatives.
2749 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2750 prefix_data16 attribute if MODE_V1DF.
2751 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2752 length_immediate to 1.
2753 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2754 length_address to 4, set mode attribute to MODE_DI.
2755 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2756 (fxam<mode>2_i387): Set length attribute to 4.
2757 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2758 *prefetch_3dnow_rex): Override length_address attribute.
2759 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2760 attributes.
2761 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2762 (constm128_operand): Removed.
2763 * config/i386/i386.c (memory_address_length): For
2764 disp && !index && !base in 64-bit mode account for SIB byte if
2765 print_operand_address can't optimize disp32 into disp32(%rip)
2766 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2767 for fs: or gs: segment.
2768 (ix86_attr_length_immediate_default): When checking if shortform
2769 is possible, truncate immediate to the length of the non-shortened
2770 immediate.
2771 (ix86_attr_length_address_default): Ignore MEM_P operands
2772 with X constraint.
2773 (ix86_attr_length_vex_default): Only check for DImode on
2774 GENERAL_REG_P operands.
2775 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2776 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2777 (sse_cvttps2pi): Clear prefix_rep attribute.
2778 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2779 attribute.
2780 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2781 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2782 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2783 iff operand 2 is const_int_operand.
2784 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2785 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2786 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2787 instead of vex.
2788 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2789 prefix_data16.
2790 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2791 prefix_data16 attribute for movlpd and movhpd instructions.
2792 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2793 length_immediate for shufpd instruction.
2794 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2795 (avx_cmpp<avxmodesuffixf2c><mode>3,
2796 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2797 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2798 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2799 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2800 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2801 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2802 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2803 prefix_data16 attribute for the first alternative to 1.
2804 (*avx_loadlps): Override length_immediate for the first alternative.
2805 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2806 attributes for second alternative.
2807 (*vec_concatv2sf_sse4_1): Override length_immediate and
2808 prefix_data16 attributes for second alternative.
2809 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2810 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2811 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2812 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2813 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2814 prefix_data16 and length_immediate to 1.
2815 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2816 to 1.
2817 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2818 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2819 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2820 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2821 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2822 *sse4_1_pextrd): Set length_immediate to 1.
2823 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2824 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2825 to 1.
2826 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2827 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2828 length_immediate to 1 for second alternative.
2829 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2830 prefix_extra and length_immediate attributes for the first
2831 alternative.
2832 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2833 first alternative.
2834 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2835 to 1 for the first and third alternative.
2836 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2837 alternative.
2838 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2839 attribute.
2840 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2841 attribute to 0.
2842 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2843 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2844 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2845 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2846 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2847 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2848 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2849 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2850 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2851 (ssse3_palignrti): Override length_immediate to 1.
2852 (ssse3_palignrdi): Override length_immediate to 1, override
2853 prefix_rex attribute.
f3afc8a7 2854 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2855 (sse4a_extrqi): Override length_immediate to 2.
2856 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2857 (sse4a_insertq): Override prefix_data16 to 0.
2858 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2859 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2860 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2861 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2862 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2863 and length_immediate to 1.
2864 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2865 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2866 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2867 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2868 and length_immediate to 1.
2869 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2870 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2871 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2872 avx_ptest256): Override prefix_extra to 1.
2873 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2874 Override prefix_data16 and length_immediate to 1.
2875 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2876 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2877 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2878 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2879 prefix_data16 to 0 and prefix_extra to 2.
2880 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2881 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2882 attribute.
2883 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2884 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2885 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2886 and prefix_extra to 2.
2887 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2888 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2889 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2890 avx_vpermilvar<mode>3,
2891 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2892 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2893 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2894 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2895 Override prefix_extra to 1.
2896 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2897 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2898 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2899 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2900 prefix_extra and length_immediate to 1.
2901 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2902 modrm to 0.
2903 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2904 to 1 for the first alternative.
2905 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2906 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2907 cases.
2908 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2909 *movv2sf_internal_avx, *movv2sf_internal): Override
2910 prefix_rep attribute for certain alternatives.
2911 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2912 attributes for certain alternatives.
2913 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2914 attributes for certain alternatives.
2915 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2916 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2917 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2918 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2919 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2920 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2921 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2922 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2923 length_immediate to 1 if operand 2 is const_int_operand.
2924 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2925 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2926 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2927 using old 3DNOW insn rather than SSE/3DNOW_A.
2928 (mmx_emms, mmx_femms): Clear modrm attribute.
2929
0674b9d0
MJ
29302009-05-29 Martin Jambor <mjambor@suse.cz>
2931
2932 * tree-sra.c: New implementation of SRA.
2933
2934 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2935 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2936 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2937 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2938 (SRA_MAX_STRUCTURE_COUNT): Removed.
2939 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2940 * doc/invoke.texi (sra-max-structure-size): Removed.
2941 (sra-field-structure-ratio): Removed.
2942
616f21df
JJ
29432009-05-29 Jakub Jelinek <jakub@redhat.com>
2944
2945 PR middle-end/40291
2946 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2947 before expansion.
2948
da7ba240
AB
29492009-05-29 Andrey Belevantsev <abel@ispras.ru>
2950
2951 PR rtl-optimization/40101
2952 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2953 seqno. Adjust comment.
2954 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2955 inserting bookkeeping before a jump, the jump is not scheduled.
2956 When no positive seqno found, provide a value. Add comment.
2957
71dcd609
RG
29582009-05-29 Richard Guenther <rguenther@suse.de>
2959
2960 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2961 short-cutting on the first component.
2962
a900ae6b
JJ
29632009-05-29 Jakub Jelinek <jakub@redhat.com>
2964
2965 PR middle-end/39958
2966 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2967 for trees other than decls/types.
2968
821bb7f8
RG
29692009-05-29 Richard Guenther <rguenther@suse.de>
2970
2971 * tree-ssa-operands.c (get_expr_operands): Do not handle
2972 INDIRECT_REFs in the handled-component case. Remove
2973 unused get_ref_base_and_extent case.
2974 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2975 tree_low_cst and host_integerp where possible.
2976 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2977 codes for equivalence.
2978 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2979
e997fb9c
DB
29802009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2981
2982 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2983 to tmake_file for i[34567]86-*-cygwin*.
2984
58195b74
JJ
29852009-05-29 Jakub Jelinek <jakub@redhat.com>
2986
2987 PR target/40017
2988 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2989 (altivec_categorize_keyword, init_vector_keywords,
2990 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2991 similar to bool.
2992
055df276
KT
29932009-05-29 Kai Tietz <kai.tietz@onevision.com>
2994
2995 * tree.c (handle_dll_attribute): Check if node is
2996 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2997
f5939ef3
RE
29982009-05-29 Richard Earnshaw <rearnsha@arm.com>
2999
3000 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3001 component.
3002 (thumb2_zero_extendqidi2): Likewise.
3003
c185de40
KK
30042009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3005
3006 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3007 instead of gen_movrt.
3008 * config/sh/sh.md (movrt): Remove.
3009
bf3c6caf
SE
30102009-05-28 Steve Ellcey <sje@cup.hp.com>
3011
f3afc8a7 3012 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
3013 Add -msdata, -mfused-madd, -mno-inline-float-divide,
3014 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3015 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3016 -msched-prefer-non-control-spec-insns,
3017 -msched-stop-bits-after-every-cycle,
3018 -msched-count-spec-in-critical-path,
3019 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 3020 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
3021 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3022 and -msched-spec-verbose.
3023
8a66e987
JM
30242009-05-28 Joseph Myers <joseph@codesourcery.com>
3025
f3afc8a7 3026 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
3027 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3028 error if used.
3029 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3030
b45d2719
RG
30312009-05-28 Richard Guenther <rguenther@suse.de>
3032
3033 * tree-ssa-alias.c (ao_ref_init): New function.
3034 (ao_ref_base): Likewise.
3035 (ao_ref_base_alias_set): Likewise.
3036 (ao_ref_alias_set): Likewise.
3037 (refs_may_alias_p_1): Change signature.
3038 (refs_may_alias_p): Adjust.
3039 (refs_anti_dependent_p): Likewise.
3040 (refs_output_dependent_p): Likewise.
3041 (call_may_clobber_ref_p_1): Change signature.
3042 (call_may_clobber_ref_p): Adjust.
3043 (stmt_may_clobber_ref_p_1): New function split out from ...
3044 (stmt_may_clobber_ref_p): ... here.
3045 (maybe_skip_until): Adjust signature.
3046 (get_continuation_for_phi): Likewise.
3047 (walk_non_aliased_vuses): Likewise.
3048 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3049 (ao_ref_init): Declare.
3050 (ao_ref_base): Likewise.
3051 (ao_ref_alias_set): Likewise.
3052 (stmt_may_clobber_ref_p_1): Likewise.
3053 (walk_non_aliased_vuses): Adjust.
3054 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3055 (get_ref_from_reference_ops): remove.
3056 (vn_reference_lookup_2): Adjust signature.
3057 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 3058 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
3059 (vn_reference_lookup): Adjust.
3060 (vn_reference_insert): Likewise.
3061 (vn_reference_insert_pieces): Adjust signature.
3062 (visit_reference_op_call): Adjust.
3063 * tree-ssa-pre.c (get_expr_type): Simplify.
3064 (phi_translate_1): Adjust.
3065 (compute_avail): Likewise.
3066 (translate_vuse_through_block): Do not re-build trees.
3067 (value_dies_in_block_x): Likewise.
3068 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3069 fields.
3070 (vn_reference_lookup_pieces): Adjust declaration.
3071 (vn_reference_insert_pieces): Likewise.
3072
554223b6
BK
30732009-05-28 Benjamin Kosnik <bkoz@redhat.com>
3074
3075 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3076 with checking disabled.
3077
233215fe
DK
30782009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
3079
3080 PR target/37216
3081
3082 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
3083 macro definition for support of three-operand format aligned
3084 .comm directive in assembler on cygwin/pe/mingw target OS.
3085 * configure: Regenerate.
3086 * config.h: Regenerate.
3087
3088 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
3089 aligned form of .comm directive if -mpe-aligned-commons is in effect.
3090 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
3091
3092 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
3093 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
3094
24adb18f
IR
30952009-05-28 Ira Rosen <irar@il.ibm.com>
3096
3097 PR tree-optimization/40254
3098 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3099 in analysis of basic blocks.
3100
2c5bfdf7
AN
31012009-05-28 Adam Nemet <anemet@caviumnetworks.com>
3102
3103 PR middle-end/33699
f3afc8a7 3104 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
3105 * target-def.h (TARGET_CONST_ANCHOR): New macro.
3106 (TARGET_INITIALIZER): Use it.
3107 * cse.c (CHEAPER): Move it up to the other macros.
3108 (insert): Rename this ...
3109 (insert_with_costs): ... to this. Add cost parameters. Update
3110 function comment.
3111 (insert): New function. Call insert_with_costs.
3112 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3113 find_reg_offset_for_const, try_const_anchors): New functions.
3114 (cse_insn): Call try_const_anchors. Adjust cost of src_related
3115 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 3116 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
3117 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3118
9e6aced0
AO
31192009-05-28 Alexandre Oliva <aoliva@redhat.com>
3120
3121 * tree-inline.c (remap_decls): Enable nonlocalized variables
3122 when not optimizing.
3123
89fbbe4e
AO
31242009-05-28 Alexandre Oliva <aoliva@redhat.com>
3125
3126 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3127 Simplify other tests involving optimize.
3128
e455776a
TT
31292009-05-27 Tom Tromey <tromey@redhat.com>
3130
3131 * unwind-dw2.c (_Unwind_DebugHook): New function.
3132 (uw_install_context): Call _Unwind_DebugHook.
3133
cea32bca
TT
31342009-05-27 Tom Tromey <tromey@redhat.com>
3135
3136 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3137
c607156f
ILT
31382009-05-27 Ian Lance Taylor <iant@google.com>
3139
3140 * Makefile.in (LINKER, LINKER_FLAGS): Define.
3141 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3142 (ALL_LINKERFLAGS): Define.
3143 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3144 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3145 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3146 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3147 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3148 $(LINKER_FOR_BUILD).
3149 (build/gcov-iov$(build_exeext)): Likewise.
3150
ec0a1343
JB
31512009-05-27 Julian Brown <julian@codesourcery.com>
3152
3153 * gcse.c (target.h): Include.
3154 (can_assign_to_reg_without_clobbers_p): Check that the target allows
3155 copy of argument to a pseudo register.
3156
ac80ba07
DN
31572009-05-27 Diego Novillo <dnovillo@google.com>
3158
3159 * tree-ssa-live.c (dump_scope_block): Document arguments.
3160 (dump_scope_blocks): Document.
3161 (debug_scope_blocks): New.
3162 * tree-flow.h (debug_scope_blocks): Declare.
3163
d1803a17
DC
31642009-05-21 Denis Chertykov <denisc@overta.ru>
3165
f3afc8a7 3166 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 3167
51fb7760 31682009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
3169
3170 * expr.c (target_align): New function. Alignment the TARGET of an
3171 assignment may be assume to have.
3172 (highest_pow2_factor_for_target): Use it instead of relying on
3173 immediate tree attributes of TARGET, not necessarily honored when
3174 intermediate bitfields are involved.
3175
634fa334
L
31762009-05-27 H.J. Lu <hongjiu.lu@intel.com>
3177
3178 PR target/40266
3179 * config/i386/driver-i386.c (host_detect_local_cpu): Support
3180 AVX, SSE4, AES, PCLMUL and POPCNT.
3181
65332587
DN
31822009-05-27 Diego Novillo <dnovillo@google.com>
3183
3184 * tree-pretty-print.c (dump_location): New.
3185 (dump_generic_node): Call it.
3186 Factor code to handle BLOCK nodes ...
3187 (dump_block_node): ... here.
3188
3e17e31d
RAE
31892009-05-27 Rafael Avila de Espindola <espindola@google.com>
3190
f3afc8a7
UB
3191 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3192 with it.
3e17e31d
RAE
3193 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3194 included.
3195 * gcc-plugin.h: Include config.h and system.h.
3196 (IN_GCC): Define if not defined.
3197
5e370570
HPN
31982009-05-27 Hans-Peter Nilsson <hp@axis.com>
3199
3200 PR middle-end/40249
3201 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3202 with -fno-inline.
3203
d000f0d9
SZ
32042009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
3205
3206 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3207 applicable.
3208 * config/m32r/m32r.h: Ditto.
3209 * config/m32r/m32r.md: Ditto.
3210 * config/m32r/predicates.md: Ditto.
3211
82f331ff
AO
32122009-05-27 Alexandre Oliva <aoliva@redhat.com>
3213
3214 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3215
ae2392a9
BS
32162009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
3217
3218 * doc/plugins.texi
3219 (Loading plugins): typo.
3220 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3221 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3222 (Interacting with the GCC Garbage Collector): Added new section.
3223 (Giving information about a plugin): Added new section for
3224 PLUGIN_INFO.
ae2392a9
BS
3225 * ggc.h (ggc_register_root_tab): Added declaration.
3226 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3227 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3228 (register_callback): Improved comment in declaration.
f3afc8a7
UB
3229 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3230 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
3231 (ggc_register_root_tab) Added new routine.
3232 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3233 PLUGIN_GGC_MARKING event.
3234 * ggc-zone.c: Include plugin.h.
3235 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3236 * ggc-page.c: Include plugin.h.
3237 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3238 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3239 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3240 (register_callback): check lack of callbacks for
3241 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3242 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3243 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3244 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3245 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3246 dependency on plugin.h.
3247 (plugin.o): Added dependency on ggc.h...
3248
f0cfd3a8
RG
32492009-05-26 Richard Guenther <rguenther@suse.de>
3250
3251 PR middle-end/40248
3252 Revert
3253 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3254 with mismatched comparison modes.
3255
3256 * expr.c (expand_expr_real_1): Expand the operand of a
3257 VIEW_CONVERT_EXPR in its natural mode.
3258
7980bfb8
ILT
32592009-05-26 Ian Lance Taylor <iant@google.com>
3260
3261 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3262 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3263 (ALL_COMPILERFLAGS): Define.
3264 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3265 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3266 (collect2$(exeext), collect2.o): Likewise.
3267 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3268 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3269 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3270 (libbackend.o, intl.o, cppdefault.o): Likewise.
3271 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3272 (build/%.o): Use $(COMPILER_FOR_BUILD).
3273 (build/gen%$(build_exeext)): Likewise.
3274 (build/gcov-iov$(build_exeext)): LIkewise.
3275 * config/t-darwin (darwin.o): Use $(COMPILER).
3276 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3277 * config/t-sol2 (sol2-c.o): Likewise.
3278 (sol2.o): Likewise.
3279 * config/t-vxworks (vxworks.o): Likewise.
3280 * config/x-darwin (host-darwin.o): Likewise.
3281 * config/x-hpux (host-hpux.o): Likewise.
3282 * config/x-linux (host-linux.o): Likewise.
3283 * config/x-solaris (host-solaris.o): Likewise.
3284 * config/alpha/x-alpha (driver-alpha.o): Likewise.
3285 * config/arm/t-arm (arm-c.o): Likewise.
3286 * config/arm/t-pe (pe.o): Likewise.
3287 * config/arm/t-wince-pe (pe.o): Likewise.
3288 * config/i386/t-cygming (winnt.o): Likewise.
3289 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3290 * config/i386/t-cygwin (cygwin1.o): Likewise.
3291 (cygwin2.o): Likewise.
3292 * config/i386/t-i386 (i386-c.o): Likewise.
3293 * config/i386/t-interix (winnt.o): Likewise.
3294 * config/i386/t-netware (netware.o): Likewise.
3295 * config/i386/t-nwld (nwld.o): Likewise.
3296 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3297 * config/i386/x-i386 (driver-i386.o): Likewise.
3298 * config/i386/x-cygwin (host-cygwin.o): Likewise.
3299 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3300 * config/ia64/t-ia64 (ia64-c.o): Likewise.
3301 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3302 * config/mips/x-native (driver-native.o): Likewise.
3303 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3304 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3305 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3306 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3307 * config/score/t-score-elf (score7.o): Likewise.
3308 (score3.o): Likewise.
3309 * config/sh/t-sh (sh-c.o): Likewise.
3310 * config/sh/t-symbian (sh-c.o): Likewise.
3311 (symbian.o): Likewise.
3312 * config/spu/t-spu-elf (spu-c.o): Likewise.
3313 * config/v850/t-v850 (v850-c.o): Likewise.
3314 * config/v850/t-v850e (v850-c.o): Likewise.
3315
23977d3c
RG
33162009-05-26 Richard Guenther <rguenther@suse.de>
3317
3318 PR tree-optimization/40122
3319 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3320 VECTOR_CSTs if possible.
3321 (fold_gimple_assign): Likewise.
3322
3d62b895
RG
33232009-05-26 Richard Guenther <rguenther@suse.de>
3324
3325 PR middle-end/40252
3326 * fold-const.c (fold_binary): Use the correct types for building
3327 rotates.
3328
12346147
RG
33292009-05-26 Richard Guenther <rguenther@suse.de>
3330
3331 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3332 redundant calls to merge_alias_info.
3333 (bump_vector_ptr): Likewise.
3334 * tree-ssa-copy.c (merge_alias_info): Remove.
3335 (replace_exp_1): Remove call to merge_alias_info.
3336 (propagate_tree_value): Likewise.
3337 (fini_copy_prop): Propagate points-to info.
3338 * tree-flow.h (merge_alias_info): Remove.
3339
807d5e6f
HS
33402009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3341
3342 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3343
85057983
JH
33442009-05-25 Jan Hubicka <jh@suse.cz>
3345
3346 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3347 * cgraph.h (struct inline_summary): New filed self_wize,
3348 size_inlining_benefit, self_time and time_inlining_benefit.
3349 (struct cgraph_global_info): Replace insns by time ans size fields.
3350 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3351 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3352 (ipcp_update_callgraph): Do not touch function bodies.
3353 * ipa-inline.c: Include except.h
3354 (MAX_TIME): New constant.
3355 (overall_insns): Remove.
3356 (leaf_node_p): New.
3357 (overall_size, max_benefit): New static variables.
3358 (cgraph_estimate_time_after_inlining): New function.
3359 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3360 (cgraph_clone_inlined_nodes): Update size.
3361 (cgraph_mark_inline_edge): Update size.
3362 (cgraph_estimate_growth): Use size info.
3363 (cgraph_check_inline_limits): Check size.
3364 (cgraph_default_inline_p): Likewise.
3365 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3366 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3367 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3368 and times.
85057983
JH
3369 (cgraph_decide_inlining): Likewise.
3370 (cgraph_decide_inlining_incrementally): Likewise; honor
3371 PARAM_EARLY_INLINING_INSNS.
3372 (likely_eliminated_by_inlining_p): New predicate.
3373 (estimate_function_body_sizes): New function.
3374 (compute_inline_parameters): Use it.
3375 * except.c (must_not_throw_labels): New function.
3376 * except.h (must_not_throw_labels): Declare.
3377 * tree-inline.c (init_inline_once): Kill inlining_weigths
3378 * tree-ssa-structalias.c: Avoid uninitialized warning.
3379 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3380 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3381 (PARAM_INLINE_CALL_COST): Remove.
3382 (PARAM_EARLY_INLINING_INSNS): New.
3383
01df5c8a
RG
33842009-05-25 Richard Guenther <rguenther@suse.de>
3385
3386 PR tree-optimization/36327
3387 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 3388 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
3389 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3390 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3391 for union COMPONENT_REFs.
3392 (vn_reference_lookup_3): New callback. Lookup from memset
3393 and CONSTRUCTOR assignment, translate through struct copies.
3394 (vn_reference_lookup_pieces): Make sure to not free the
3395 passed operands array. Adjust walk_non_aliased_vuses call.
3396 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3397 make sure we do not leak memory.
3398
6b8ed145
RG
33992009-05-25 Richard Guenther <rguenther@suse.de>
3400
3401 * tree-ssa-alias.h (dump_points_to_solution): Declare.
3402 * tree-inline.c (expand_call_inline): Reset the escaped and
3403 callused solutions.
3404 * tree-ssa-structalias.c (pass_build_ealias): New.
3405 * tree-pass.h (pass_build_ealias): Declare.
3406 * passes.c (init_optimization_passes): Add PTA during
3407 early optimizations.
3408 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3409 and CALLUSED solutions.
3410 (dump_points_to_solution): New function, split out from ...
3411 (dump_points_to_info_for): ... here.
3412 * tree-parloops.c (parallelize_loops): Reset the escaped and
3413 callused solutions.
3414
0adcf178
RO
34152009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3416
3417 PR bootstrap/40027
3418 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3419 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3420
12aaf609
IR
34212009-05-25 Ira Rosen <irar@il.ibm.com>
3422
3423 PR tree-optimization/40238
3424 * tree-vect-stmts.c (vect_init_vector): Insert initialization
3425 statements after basic block's labels.
3426 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
3427 to free the allocated memory.
3428
7f9a14e3
KK
34292009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
3430
3431 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3432 return address with a USE.
3433
b842d478
RG
34342009-05-24 Richard Guenther <rguenther@suse.de>
3435
3436 PR middle-end/40233
3437 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3438 array type from the main variant of the inner type.
3439
8db7b33f
JBG
34402009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3441
3442 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3443 definition to bool (from int) to un-break build.
3444 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3445
cff4e50d
PB
34462009-05-24 Paolo Bonzini <bonzini@gnu.org>
3447
3448 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3449 discard_stmt_changes): Delete.
3450 * tree-ssa-operands.c (scb_stack): Delete.
3451 (init_ssa_operands): Do not initialize it.
3452 (fini_ssa_operands): Do not free it.
3453 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3454
3455 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3456 update_stmt, remove the others. Fix comments.
3457 * tree-dfa.c (optimize_stack_restore): Likewise.
3458 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3459 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3460 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3461 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3462 Likewise.
3463 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3464 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
3465 (dom_opt_finalize_block): Likewise, adjusting access to
3466 stmts_to_rescan.
cff4e50d
PB
3467 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3468 (stmts_to_rescan): Change item type to gimple.
3469 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3470
a70d6342
IR
34712009-05-24 Ira Rosen <irar@il.ibm.com>
3472
3473 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3474 * tree-pass.h (pass_slp_vectorize): New pass.
3475 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3476 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3477 * tree-vectorizer.c (timevar.h): Include.
3478 (user_vect_verbosity_level): Declare.
3479 (vect_location): Fix comment.
3480 (vect_set_verbosity_level): Update user_vect_verbosity_level
3481 instead of vect_verbosity_level.
3482 (vect_set_dump_settings): Add an argument. Ignore user defined
3483 verbosity if dump flags require higher level of verbosity. Print to
3484 stderr only for loop vectorization.
3485 (vectorize_loops): Update call to vect_set_dump_settings.
3486 (execute_vect_slp): New function.
3487 (gate_vect_slp): Likewise.
3488 (struct gimple_opt_pass pass_slp_vectorize): New.
3489 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3490 access its members.
3491 (vec_info_for_bb): New function.
3492 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3493 (VECTORIZATION_ENABLED): New macro.
3494 (SLP_ENABLED, SLP_DISABLED): Likewise.
3495 (vect_is_simple_use): Add bb_vec_info argument.
3496 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3497 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3498 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3499 vect_schedule_slp, vect_analyze_slp): Likewise.
3500 (vect_analyze_stmt): Add slp_tree argument.
3501 (find_bb_location): Declare.
3502 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3503 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3504 (vect_analyze_loop_operations, vect_analyze_loop,
3505 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3506 vect_finalize_reduction, vectorizable_reduction,
3507 vectorizable_live_operation, vect_transform_loop): Likewise.
3508 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3509 skip evolution analysis if analyzing a basic block.
3510 (dr_analyze_indices): Likewise.
3511 (initialize_data_dependence_relation): Skip the test whether the
3512 object is invariant for basic blocks.
3513 (compute_all_dependences): Skip dependence analysis for data
3514 references in basic blocks.
3515 (find_data_references_in_stmt): Don't fail in case of invariant
3516 access in basic block.
3517 (find_data_references_in_bb): New function.
3518 (find_data_references_in_loop): Move code to
782dc37a 3519 find_data_references_in_bb and add a call to it.
a70d6342
IR
3520 (compute_data_dependences_for_bb): New function.
3521 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3522 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3523 that STEP is 0.
3524 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3525 unknown dependence in basic block and fail in case of dependence in
3526 basic block.
3527 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3528 dependence instances from either loop or basic block vectorization
3529 info.
3530 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3531 before calling nested_in_vect_loop_p.
3532 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3533 dependence instances from either loop or basic block vectorization
3534 info.
3535 (vect_verify_datarefs_alignment): Likewise.
3536 (vect_enhance_data_refs_alignment): Adjust function calls.
3537 (vect_analyze_data_refs_alignment): Likewise.
3538 (vect_analyze_group_access): Fix printing. Skip different checks if
3539 DR_STEP is 0. Keep strided stores either in loop or basic block
3540 vectorization data structure. Fix indentation.
3541 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3542 basic blocks.
3543 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3544 dependence instances from either loop or basic block vectorization
3545 info.
3546 (vect_analyze_data_refs): Update comment. Call
3547 compute_data_dependences_for_bb to analyze basic blocks.
3548 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3549 case of loop vectorization. In case of basic block vectorization use
782dc37a 3550 data-ref itself as a base.
a70d6342
IR
3551 (vect_create_data_ref_ptr): In case of basic block vectorization:
3552 don't advance the pointer, add new statements before the current
3553 statement. Adjust function calls.
3554 (vect_supportable_dr_alignment): Support only aligned accesses in
3555 basic block vectorization.
3556 * common.opt (ftree-slp-vectorize): New flag.
3557 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3558 (vect_pattern_recog_1): Likewise.
3559 * tree-vect-stmts.c (process_use): Likewise.
3560 (vect_init_vector): Add new statements in the beginning of the basic
3561 block in case of basic block SLP.
3562 (vect_get_vec_def_for_operand): Adjust function calls.
3563 (vect_finish_stmt_generation): Likewise.
3564 (vectorizable_call): Add assert that it is loop vectorization, adjust
3565 function calls.
3566 (vectorizable_conversion, vectorizable_assignment): Likewise.
3567 (vectorizable_operation): In case of basic block SLP, take
3568 vectorization factor from statement's type and skip the relevance
3569 check. Adjust function calls.
3570 (vectorizable_type_demotion): Add assert that it is loop
3571 vectorization, adjust function calls.
3572 (vectorizable_type_promotion): Likewise.
3573 (vectorizable_store): Check for outer loop only in case of loop
3574 vectorization. Adjust function calls. For basic blocks, skip the
3575 relevance check and don't advance pointers.
3576 (vectorizable_load): Likewise.
3577 (vectorizable_condition): Add assert that it is loop vectorization,
3578 adjust function calls.
3579 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3580 that it is not reduction, get vector type, call only supported
782dc37a 3581 functions, skip loop specific parts.
a70d6342
IR
3582 (vect_transform_stmt): Check for outer loop only in case of loop
3583 vectorization.
3584 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3585 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3586 for external definition.
3587 * passes.c (pass_slp_vectorize): New pass.
3588 * tree-vect-slp.c (find_bb_location): New function.
3589 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3590 check for patterns only in loops.
3591 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3592 case of multiple types in basic block SLP.
3593 (vect_mark_slp_stmts_relevant): New function.
3594 (vect_supported_load_permutation_p): Fix comment.
3595 (vect_analyze_slp_instance): Add argument. In case of basic block
3596 SLP, take vectorization factor from statement's type, check that
3597 unrolling factor is 1. Adjust function call. Save SLP instance in
3598 either loop or basic block vectorization structure. Return FALSE,
3599 if SLP failed.
3600 (vect_analyze_slp): Add argument. Get strided stores groups from
3601 either loop or basic block vectorization structure. Return FALSE
3602 if basic block SLP failed.
3603 (new_bb_vec_info): New function.
3604 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3605 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3606 (vect_schedule_slp): Add argument. Get SLP instances from either
3607 loop or basic block vectorization structure. Set vectorization factor
3608 to be 1 for basic block SLP.
3609 (vect_slp_transform_bb): New function.
3610 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3611
0676c393
MM
36122009-05-23 Mark Mitchell <mark@codesourcery.com>
3613
3614 * final.c (shorten_branches): Do not align labels for jump tables.
3615 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3616
94324dae
EB
36172009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3618
3619 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3620 Remove outdated reference to flow.c and fix nits.
3621 * doc/gccint.texi: Tweak RTL description.
3622 * doc/rtl.texi: Likewise.
3623
92bffc14
DC
36242009-05-23 Denis Chertykov <chertykov@gmail.com>
3625
3626 * config/avr/avr.c: Change my email address.
3627 * config/avr/avr.h: Likewise.
3628 * config/avr/avr.md: Likewise.
3629 * config/avr/avr-protos.h: Likewise.
3630 * config/avr/libgcc.S: Likewise.
3631
eec9405e
TS
36322009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3633
3634 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3635 (spu_split_load, spu_split_store): Change return type to int.
3636 (spu_split_convert): Declare.
3637 * config/spu/predicates.md (spu_mem_operand): Remove.
3638 (spu_mov_operand): Update.
3639 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3640 * config/spu/spu.c (regno_aligned_for_load): Remove.
3641 (reg_aligned_for_addr, spu_expand_load): Define.
3642 (spu_expand_extv): Reimplement and handle MEM.
3643 (spu_expand_insv): Handle MEM.
3644 (spu_sched_reorder): Handle insn's with length 0.
3645 (spu_legitimate_address_p): Reimplement.
3646 (store_with_one_insn_p): Return TRUE for any mode with size
3647 larger than 16 bytes.
3648 (address_needs_split): Define.
3649 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3650 operands.
3651 (spu_convert_move): Define.
782dc37a 3652 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3653 (spu_split_store): Change all MEM's to TImode.
3654 (spu_init_expanders): Preallocate registers that correspond to
3655 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3656 mark_reg_pointer.
3657 (spu_split_convert): Define.
3658 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3659 (_move<mode>, _movdi, _movti): Update predicate and condition.
3660 (load, store): Change to define_split.
3661 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3662 extend<mode>ti2.
3663 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3664 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3665 define_insn_and_split of lshr<mode>3.
3666 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3667 (<v>ashr<mode>3_imm): Define.
3668 (extv, extzv, insv): Allow MEM operands.
3669 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3670 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3671 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3672 (_spu_convert2): Change to define_insn_and_split and remove the
3673 corresponding define_peephole2.
3674 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3675 Change predicates to memory_operand.
3676
7d31a807
MM
36772009-05-22 Mark Mitchell <mark@codesourcery.com>
3678
3679 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3680
d021d274
MM
36812009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3682
3683 PR tree-optimization/40219
3684 * tree.c (iterative_hash_expr): Make sure the builtin function is
3685 a normal builtin function and not a front end or back end builtin
3686 before indexing into the built_in_decls array.
3687
4d7a65ea
RG
36882009-05-22 Richard Guenther <rguenther@suse.de>
3689
3690 PR middle-end/38964
3691 * alias.c (write_dependence_p): Do not use TBAA for answering
3692 anti-dependence or output-dependence.
782dc37a 3693 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3694 (emit_pointer_definition): Remove.
3695 (emit_alias_warning): Likewise.
3696 (find_what_var_points_to): Remove TBAA pruning code.
3697 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3698 violations.
3699 (compute_points_to_sets): Remove code computing the set of
3700 dereferenced pointers.
3701 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3702 oracle for querying anti and output dependencies.
3703 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3704 if TBAA may be applied.
3705 (refs_anti_dependent_p): New function.
3706 (refs_output_dependent_p): Likewise.
3707 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3708 (refs_output_dependent_p): Likewise.
3709 * doc/tree-ssa.texi (Memory model): New section.
3710 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3711 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3712 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3713 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3714 * expr.c (expand_expr_real_1): Likewise.
3715 * gimple-low.c (lower_stmt): Likewise.
3716 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3717 (dump_gimple_cdt): Remove.
3718 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3719 (gimple_size): Likewise.
3720 (walk_gimple_op): Likewise.
3721 (is_gimple_stmt): Likewise.
3722 (walk_stmt_load_store_addr_ops): Likewise.
3723 (gimple_build_cdt): Remove.
3724 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3725 * gimple.h (gimple_cdt_new_type): Remove.
3726 (gimple_cdt_new_type_ptr): Likewise.
3727 (gimple_cdt_set_new_type): Likewise.
3728 (gimple_cdt_location): Likewise.
3729 (gimple_cdt_location_ptr): Likewise.
3730 (gimple_cdt_set_location): Likewise.
3731 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3732 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3733 GIMPLE_CHANGE_DYNAMIC_TYPE.
3734 (verify_types_in_gimple_stmt): Likewise.
3735 * tree-inline.c (estimate_num_insns): Likewise.
3736 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3737 (copy_decl_to_var): Likewise.
3738 (copy_result_decl_to_var): Likewise.
3739 * tree-pretty-print.c (dump_generic_node): Do not handle
3740 CHANGE_DYNAMIC_TYPE_EXPR.
3741 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3742 * tree-ssa-operands.c (get_expr_operands): Likewise.
3743 * tree-ssa-structalias.c (struct variable_info): Remove
3744 no_tbaa_pruning member.
3745 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3746 (unify_nodes): Do not copy it.
3747 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3748 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3749 (set_uids_in_ptset): Do not check it.
3750 (find_what_var_points_to): Likewise.
3751 (compute_tbaa_pruning): Remove.
3752 (compute_points_to_sets): Do not call it.
3753 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3754 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3755 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3756 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3757 (DECL_NO_TBAA_P): Likewise.
3758 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3759 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3760 (expand_omp_atomic_pipeline): Do not set it.
3761 * print-tree.c (print_node): Do not dump it.
3762 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3763 redundant check.
3764
83a6ac60
VM
37652009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3766
3767 PR target/39856
3768 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3769 for clobber.
3770
fe2978fb
MM
37712009-05-22 Mark Mitchell <mark@codesourcery.com>
3772
3773 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3774 non-external.
3775
134ef638
BE
37762009-05-22 Ben Elliston <bje@au.ibm.com>
3777
3778 * Makefile.in (bversion.h, s-bversion): New targets.
3779 (TOPLEV_H): Add bversion.h.
3780 * toplev.h: Include "bversion.h".
3781 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3782 the __format__ attribute only if compiling with the same version
3783 of GCC as the sources (the "build version").
3784
52fc669d
BE
37852009-05-22 Ben Elliston <bje@au.ibm.com>
3786
3787 * c-format.c (handle_format_attribute): Fix comment typo.
3788
583ca921
SE
37892009-05-21 Steve Ellcey <sje@cup.hp.com>
3790
3791 PR target/37846
3792 * config/ia64/ia64.opt (mfused-madd): New.
3793 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3794 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3795 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3796 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3797 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3798 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3799 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3800 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3801 instruction if !TARGET_FUSED_MADD.
3802 (fpma, fpms): Remove colon from name.
3803
150e3929
RG
38042009-05-22 Richard Guenther <rguenther@suse.de>
3805
3806 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3807 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3808 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3809 TARGET_MEM_REF.
3810 (create_expression_by_pieces): Only convert if necessary.
3811 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3812 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3813
9a2b090c
AN
38142009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3815
3816 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3817 regular pattern from a template and rename it ...
3818 (*extzv_truncsi_exts): ... to this.
3819
33b92c9d
RG
38202009-05-21 Richard Guenther <rguenther@suse.de>
3821
3822 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3823 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3824 (cgraph_default_inline_p): Likewise.
3825 (cgraph_decide_inlining_incrementally): Likewise.
3826
cabf85c3
L
38272009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3828 Uros Bizjak <ubizjak@gmail.com>
3829
3830 * config/i386/cpuid.h (bit_MOVBE): New.
3831
3832 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3833
3834 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3835 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3836 (ix86_handle_option): Handle OPT_mmovbe.
3837 (ix86_target_string): Add -mmovbe.
3838 (pta_flags): Add PTA_MOVBE.
3839 (processor_alias_table): Add PTA_MOVBE to "atom".
3840 (override_options): Handle PTA_MOVBE.
3841
3842 * config/i386/i386.h (TARGET_MOVBE): New.
3843
3844 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3845 (*bswapsi_movbe): New.
3846 (*bswapdi_movbe): Likewise.
3847 (bswapdi2): Renamed to ...
3848 (*bswapdi_1): This.
3849 (bswapdi2): New expander.
3850
3851 * config/i386/i386.opt (mmovbe): New.
3852
3853 * doc/invoke.texi: Document -mmovbe.
3854
9fefa0aa
TG
38552009-05-21 Taras Glek <tglek@mozilla.com>
3856
3857 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3858 * gcc-plugin.h (plugin_init): Updated signature.
3859 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3860 * doc/plugins.texi (plugin_init): Updated documention to reflect
3861 API change.
9fefa0aa
TG
3862 * doc/plugins.texi (plugin_name_args): Added to documention.
3863
1ea9fe56
MM
38642009-05-21 Mark Mitchell <mark@codesourcery.com>
3865
3866 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3867 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3868
52f84254
SZ
38692009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3870
3871 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3872 JUMP_TABLE_DATA_P predicates where applicable.
3873 * config/i386/predicates.md: Ditto.
3874 * config/i386/sse.md: Ditto.
3875
a952487c
JJ
38762009-05-21 Jakub Jelinek <jakub@redhat.com>
3877
93cac287
JJ
3878 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3879 operand2 -128 override length_immediate attribute to 1.
3880 * config/i386/predicates.md (constm128_operand): New predicate.
3881
a952487c
JJ
3882 * config/i386/i386.c (memory_address_length): Handle %r12
3883 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3884 also check REGNO.
3885 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3886 mode look through optional ZERO_EXTEND and SUBREG.
3887 * config/i386/i386.md (R12_REG): New define_constant.
3888 (prefix_data16): For sse unit set also for MODE_TI insns.
3889 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3890 insns set if operand 1 is ext_QIreg_operand.
3891 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3892 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3893 immediate.
3894 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3895 mode from MODE_DI to MODE_SI.
3896 (movdi_1_rex64): Override modrm and length_immediate attributes
3897 only for movabs (TYPE_IMOV, alternative 2).
3898 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3899 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3900 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3901 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3902 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3903 prefix_rex attribute if DImode.
3904 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3905 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3906 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3907 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3908 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3909 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3910 Likewise. For TYPE_IMOV clear length_immediate attribute.
3911 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3912 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3913 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3914 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3915 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3916 or one operand TYPE_ISHIFT.
3917 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3918 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3919 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3920 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3921 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3922 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3923 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3924 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3925 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3926 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3927 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3928 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3929 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3930 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3931 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3932 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3933 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3934 set mode attribute, don't override length attribute.
3935 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3936 to 1.
3937 (return_internal_long): Set length attribute to 2 instead of 1.
3938 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3939 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3940 prefix_rex attribute.
782dc37a
UB
3941 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3942 New predicates.
3943 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3944
64af62c2
RR
39452009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3946
3947 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3948
c166b898
ILT
39492009-05-20 Ian Lance Taylor <iant@google.com>
3950
3951 * tree.c (build_tree_list_vec_stat): New function.
3952 (ctor_to_vec): New function.
3953 (build_nt_call_vec): New function.
3954 (build_call_array): Change args to be a const pointer.
3955 (build_call_vec): New function.
3956 * tree.h (build_nt_call_vec): Declare.
3957 (build_tree_list_vec_stat): Declare.
3958 (build_tree_list_vec): Define.
3959 (build_call_array): Update declaration.
3960 (build_call_vec): Declare.
3961 (ctor_to_vec): Declare.
3962 * c-common.c (tree_vector_cache): New static variable.
3963 (make_tree_vector): New function.
3964 (release_tree_vector): New function.
3965 (make_tree_vector_single): New function.
3966 (make_tree_vector_copy): New function.
3967 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3968 (make_tree_vector_single, make_tree_vector_copy): Declare.
3969 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3970 (c_parser_expr_list): Don't manage cache here, instead call
3971 make_tree_vector.
3972 (c_parser_release_expr_list): Remove static function.
3973 (c_parser_vec_to_tree_list): Remove static function.
3974 (c_parser_attributes): Call build_tree_list_vec instead of
3975 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3976 c_parser_release_expr_list.
3977 (c_parser_postfix_expression_after_primary): Likewise.
3978 (c_parser_objc_keywordexpr): Likewise.
3979
40449a90
SL
39802009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3981
3982 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3983 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3984 TARGET_CONVERT_TO_TYPE.
3985 * hooks.c (hook_tree_const_tree_null): Define.
3986 * hooks.h (hook_tree_const_tree_null): Declare.
3987 * target.h (struct gcc_target): Add invalid_parameter_type,
3988 invalid_return_type, promoted_type, and convert_to_type fields.
3989 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3990 (TARGET_INVALID_RETURN_TYPE): Define.
3991 (TARGET_PROMOTED_TYPE): Define.
3992 (TARGET_CONVERT_TO_TYPE): Define.
3993 (TARGET_INITIALIZER): Update for new fields.
3994 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3995 (grokparms): Check targetm.invalid_parameter_type.
3996 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3997 * c-convert.c (convert): Check targetm.convert_to_type.
3998
642d97ff
AN
39992009-05-20 Adam Nemet <anemet@caviumnetworks.com>
4000
4001 * config/mips/mips.md (*extenddi_truncate<mode>,
4002 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
4003 defintions.
4004 (*extendhi_truncateqi): New define_insn_and_sptit.
4005
776248b8
JJ
40062009-05-20 Jakub Jelinek <jakub@redhat.com>
4007
4008 PR middle-end/40204
4009 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 4010 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 4011
d98e8686
EB
40122009-05-20 Eric Botcazou <ebotcazou@adacore.com>
4013
4014 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4015 the operand of VIEW_CONVERT_EXPR.
4016
37c50435
L
40172009-05-20 H.J. Lu <hongjiu.lu@intel.com>
4018
4019 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 4020 extended family and model for Intel processors. Support Intel Atom.
37c50435 4021
dbb6088f
OH
40222009-05-20 Olivier Hainque <hainque@adacore.com>
4023
4024 * gstab.h (stab_code_type): Define, to be used instead of the
4025 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
4026 notice.
4027 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4028 occurrences by stab_code_type.
4029 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4030
7ec49257
MJ
40312009-05-20 Martin Jambor <mjambor@suse.cz>
4032
4033 * tree-flow.h (insert_edge_copies_seq): Undeclare.
4034 (sra_insert_before): Likewise.
4035 (sra_insert_after): Likewise.
4036 (sra_init_cache): Likewise.
4037 (sra_type_can_be_decomposed_p): Likewise.
4038 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4039 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4040 (sra_insert_before): Likewise.
4041 (sra_insert_after): Likewise.
4042 (sra_init_cache): Likewise.
4043 (insert_edge_copies_seq): Made static and moved upwards.
4044
4045 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4046 case.
4047
4048 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4049
4050 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4051 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4052 simple copies.
4053
0328ae4d
RG
40542009-05-20 Richard Guenther <rguenther@suse.de>
4055
4056 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4057 with mismatched comparison modes.
4058
a7994a57 40592009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 4060
a7994a57 4061 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
4062 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4063 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4064 with shifts for Thumb2.
4065 (orsi_notsi): New for orn.
4066 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4067 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4068 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4069 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4070 Don't invert remainder for IOR.
a7994a57 4071
e36dc339
ZD
40722009-05-19 Zdenek Dvorak <ook@ucw.cz>
4073
4074 PR tree-optimization/40087
4075 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4076 number_of_iterations_ne): Rename never_infinite argument.
4077 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4078 number_of_iterations_le): Handle pointer-type ivs when
4079 exit_must_be_taken is false.
4080 (number_of_iterations_cond): Do not always assume that
4081 exit_must_be_taken if the control variable is a pointer.
4082
5cfd5d9b
AP
40832009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4084
4085 * c-typeck.c (build_binary_op): Allow % on integal vectors.
4086 * doc/extend.texi (Vector Extension): Document that % is allowed too.
4087
2f1c7156
L
40882009-05-19 H.J. Lu <hongjiu.lu@intel.com>
4089
4090 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4091 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4092
7bb27074
MLI
40932009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4094
4095 PR c/40172
4096 * c.opt (Wlogical-op): Disabled by default.
4097 * c-opt (c_common_post_options): Do not enable Wlogical-op with
4098 Wextra.
4099 * doc/invoke.texi (Wlogical-op): Likewise.
4100
5aefc6a0
EB
41012009-05-19 Eric Botcazou <ebotcazou@adacore.com>
4102
4103 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4104 into CASE_CONVERT.
4105 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4106 Propagate the type of the first operand.
4107 <ASSERT_EXPR>: Simplify.
4108 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4109 Rewrite using the RHS code as discriminant.
4110 <NOP_EXPR>: Turn into CASE_CONVERT.
4111 <PLUS_EXPR>: Propagate the type of the first operand.
4112
f3a83111
SE
41132009-05-19 Steve Ellcey <sje@cup.hp.com>
4114
4115 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4116 (ia64_dconst_0_375): New.
4117 * config/ia64/ia64.c (ia64_override_options): Remove
4118 -minline-sqrt-min-latency warning.
4119 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4120 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4121 * config/ia64/ia64.md (*sqrt_approx): Remove.
4122 (sqrtsf2): Remove #if 0.
4123 (sqrtsf2_internal_thr): Rewrite and move to div.md.
4124 (sqrtdf): Remove assert.
4125 (sqrtdf2_internal_thr): Rewrite and move to div.md.
4126 (sqrtxf2): Remove #if 0.
4127 (sqrtxf2_internal_thr): Rewrite and move to div.md.
4128 * div.md (sqrt_approx_rf): New.
4129 (sqrtsf2_internal_thr): New implementation.
4130 (sqrtsf2_internal_lat): New.
4131 (sqrtdf2_internal_thr: New implementation.
4132 (sqrtxf2_internal): New implementation.
4133
1ffc7157
FXC
41342009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
4135 Hans-Peter Nilsson <hp@axis.com>
4136
4137 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4138 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4139 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4140 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4141 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4142 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4143 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4144 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4145 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4146 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4147 * c-common.c: ...from here.
4148
db91d9ef
MLI
41492009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4150
f3afc8a7 4151 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 4152
bbb9d91f
KG
41532009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4154
4155 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4156
ce883f54
BE
41572009-05-19 Ben Elliston <bje@au.ibm.com>
4158
4159 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4160 assignments with memcpy calls.
4161 (add_fdes): Likewise.
4162 (binary_search_unencoded_fdes): Likewise.
4163 (linear_search_fdes): Eliminate type puns.
4164
377f099a
RG
41652009-05-19 Richard Guenther <rguenther@suse.de>
4166
4167 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4168 not falsely claim to have propagated into all uses.
4169
848bc769
BE
41702009-05-19 Ben Elliston <bje@au.ibm.com>
4171
4172 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4173 version to v3.0.
4174
1bb99877
KK
41752009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4176
4177 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4178 * config/sh/sh.c (sh_legitimate_address_p): Make static.
4179 (TARGET_LEGITIMATE_ADDRESS_P): New.
4180 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4181 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4182
82725547
DS
41832009-05-18 Dodji Seketeli <dodji@redhat.com>
4184
4185 PR debug/40109
4186 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
4187 child of the containing namespace's DIE.
4188
f6a1e430
AN
41892009-05-18 Adam Nemet <anemet@caviumnetworks.com>
4190
4191 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
4192 *zero_extendhi_truncqi): Move after the zero_extend patterns.
4193 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
4194 extend patterns.
4195
6a90d232
L
41962009-05-18 H.J. Lu <hongjiu.lu@intel.com>
4197
4198 PR target/39942
4199 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
4200 gen_align with gen_pad.
4201 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
4202 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
4203
4204 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4205 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4206
4207 * config/i386/i386.md (align): Renamed to ...
4208 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4209 ASM_OUTPUT_MAX_SKIP_PAD.
4210
c4406f74
AS
42112009-05-18 Andreas Schwab <schwab@linux-m68k.org>
4212
06555043
AS
4213 * config.gcc: Fix variable syntax.
4214
c4406f74
AS
4215 PR target/39531
4216 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4217 before calling exact_log2.
4218 (output_iorsi3): Likewise.
4219 (output_xorsi3): Likewise.
4220
99052692
KK
42212009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4222
4223 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4224 for the none zero constant operand except for EQ and NE
4225 comprisons even when the first operand is R0.
4226
f4aa3848
AK
42272009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
4228
4229 * config/s390/2064.md: Remove trailing whitespaces.
4230 * config/s390/2084.md: Likewise.
4231 * config/s390/constraints.md: Likewise.
4232 * config/s390/fixdfdi.h: Likewise.
4233 * config/s390/libgcc-glibc.ver: Likewise.
4234 * config/s390/s390-modes.def: Likewise.
4235 * config/s390/s390-protos.h: Likewise.
4236 * config/s390/s390.c: Likewise.
4237 * config/s390/s390.h: Likewise.
4238 * config/s390/s390.md: Likewise.
4239 * config/s390/tpf-unwind.h: Likewise.
4240
ab7256e4
MK
42412009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4242
4243 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4244
75df395f
MK
42452009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4246
4247 M68K TLS support.
4248 * configure.ac (m68k-*-*): Check if binutils support TLS.
4249 * configure: Regenerate.
4250 * config/m68k/predicates.md (symbolic_operand): Extend comment.
4251 * config/m68k/constraints.md (Cu): New constraint.
4252 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4253 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4254 (movsi): Handle TLS symbols.
4255 (addsi3_5200): Handle XTLS symbols, indent.
4256 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4257 (m68k_tls_reference_p): Declare.
4258 (m68k_legitimize_address): Declare.
4259 (m68k_unwrap_symbol): Declare.
4260 * config/m68k/m68k.opt (mxtls): New option.
4261 * config/m68k/m68k.c (ggc.h): Include.
4262 (m68k_output_dwarf_dtprel): Implement hook.
4263 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4264 (m68k_expand_prologue): Load GOT pointer when function needs it.
4265 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4266 (m68k_legitimate_constant_address_p): Same.
4267 (m68k_decompose_address): Handle TLS references.
4268 (m68k_get_gp): New static function.
4269 (enum m68k_reloc): New contants.
4270 (TLS_RELOC_P): New macro.
4271 (m68k_wrap_symbol): New static function.
4272 (m68k_unwrap_symbol): New function.
4273 (m68k_final_prescan_insn_1): New static function.
4274 (m68k_final_prescan_insn): New function.
4275 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4276 functions.
4277 (legitimize_pic_address): Handle TLS references..
4278 (m68k_tls_get_addr, m68k_get_tls_get_addr)
4279 (m68k_libcall_value_in_a0_p)
4280 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4281 (m68k_call_m68k_read_tp): Helper variables and functions for ...
4282 (m68k_legitimize_tls_address): Handle TLS references.
4283 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4284 New functions.
4285 (m68k_legitimize_address): Handle TLS symbols.
4286 (m68k_get_reloc_decoration): New static function.
4287 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4288 UNSPEC_RELOC32.
4289 (m68k_output_dwarf_dtprel): Implement hook.
4290 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4291 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4292 m68k_call_* routines.
4293 (sched_attr_op_type): Handle TLS symbols.
4294 (gt-m68k.h): Include.
4295 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4296 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4297
8b75fc9b
MJ
42982009-05-18 Martin Jambor <mjambor@suse.cz>
4299
4300 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4301 (visit_store_addr_for_mod_analysis): New function.
4302 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4303 (determine_cst_member_ptr): Use gimple_assign_single_p.
4304 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4305 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4306 operands. Don't check number of operands of a NOP_EXPR.
4307
f133d4a2
EF
43082009-05-18 Eric Fisher <joefoxreal@gmail.com>
4309
4310 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4311
ae8af500
L
43122009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
4313
4314 PR c/40172
4315 * c-common.c (warn_logical_operator): Don't warn if one of
4316 expression isn't always true or false.
4317
25e8fde8
KT
43182009-05-17 Kai Tietz <kai.tietz@onevision.com>
4319
ae8af500
L
4320 * config/i386/biarch32.h: New file.
4321 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 4322
ef67af22
AN
43232009-05-17 Adam Nemet <anemet@caviumnetworks.com>
4324
4325 * config/mips/mips.md (*zero_extend<mode>_trunchi,
4326 *zero_extend<mode>_truncqi): Merge these into ...
4327 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4328 Name the pattern following this as *zero_extendhi_truncqi.
4329
e2d87023
BL
43302009-05-16 Brad Lucier <lucier@math.purdue.edu>
4331
4332 PR middle-end/39301
4333 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4334 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4335 (output_info): Make field HOST_WIDEST_INT.
4336 (print_statistics): Use HOST_WIDEST_INT_PRINT.
4337 (dump_bitmat_statistics): Same.
4338
428ddbf0
FXC
43392009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
4340
4341 * config.gcc (use_gcc_stdint): Set to wrap.
4342 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4343 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4344 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4345 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4346 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4347 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4348 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4349 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4350
1ab8a8c2
JM
43512009-05-16 Joseph Myers <joseph@codesourcery.com>
4352
4353 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4354 tune_64.
4355 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4356 Move definitions earlier.
4357 (OPT_ARCH64, OPT_ARCH32): Define.
4358 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4359 and tune_64.
4360
70544f44
RE
43612009-05-16 Richard Earnshaw <rearnsha@arm.com>
4362
4363 PR target/40153
4364 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4365 implies.
4366
6241ded1
RE
43672009-05-16 Richard Earnshaw <rearnsha@arm.com>
4368
4369 * arm.md (movdi2): Copy non-reg values to DImode registers.
4370
a99c6711
JJ
43712009-05-16 Jakub Jelinek <jakub@redhat.com>
4372
40a8f07a
JJ
4373 PR target/39942
4374 * final.c (label_to_max_skip): New function.
4375 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4376 CODE_LABEL_NUMBER <= max_labelno.
4377 * output.h (label_to_max_skip): New prototype.
4378 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4379 (ix86_avoid_jump_mispredicts): ... this. Don't define if
4380 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
4381 Handle CODE_LABELs with >= 16 byte alignment or with
4382 max_skip == (1 << align) - 1.
4383 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4384 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4385
a99c6711
JJ
4386 PR target/39942
4387 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4388 .p2align 3 if MAX_SKIP is smaller than 7.
4389 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4390
7e5487a2
ILT
43912009-05-15 Ian Lance Taylor <iant@google.com>
4392
4393 * alias.c (struct alias_set_entry_d): Rename from struct
4394 alias_set_entry. Change all uses.
4395 * except.c (struct call_site_record_d): Rename from struct
4396 call_site_record. Change all uses.
4397 * except.h (struct eh_region_d): Rename from struct eh_region.
4398 Change all uses.
4399 * gcse.c (struct hash_table_d): Rename from struct hash_table.
4400 Change all uses.
4401 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4402 ivtype_map_elt. Change all uses.
4403 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4404 Change all uses.
4405 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
4406 * graphite.h (struct name_tree_d): Rename from struct name_tree.
4407 Change all uses.
4408 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
4409 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
4410 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
4411 * optabs.h (struct optab_d): Rename from struct optab. Change all
4412 uses.
4413 (struct convert_optab_d): Rename from struct convert_optab.
4414 Change all uses.
4415 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4416 ipa_opt_pass. Change all uses.
4417 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
4418 all uses.
4419
4420 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4421 defined as a typedef.
4422 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4423 defined as a tag.
4424
a243fb4a
MLI
44252009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4426
4427 PR 16302
4428 * fold-const.c (make_range,build_range_check,merge_ranges): Move
4429 declaration to...
4430 (merge_ranges): Returns bool.
4431 * tree.h (make_range): .. to here.
4432 (build_range_check): Likewise.
4433 (merge_ranges): Likewise. Renamed from merge_ranges.
4434 * c-typeck.c (parser_build_binary_op): Update calls to
4435 warn_logical_operator.
4436 * c-common.c (warn_logical_operator): Add new warning.
4437 * c-common.h (warn_logical_operator): Update declaration.
4438
1b53c5f3
MLI
44392009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
4440
782dc37a 4441 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 4442
c128599a
KG
44432009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4444
f9bab007
KG
4445 * doc/install.texi: Document MPC requirements, flags etc.
4446
c128599a
KG
4447 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4448 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4449 Evaluate constant arguments.
4450 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4451 (fold_builtin_1): Likewise, also evaluate constant arguments.
4452 Remove superfluous break.
4453 (do_mpc_ckconv): New.
4454 * real.h: Include mpc.h.
4455 * toplev.c (print_version): Output MPC version info if available.
4456
d33e4b70
SL
44572009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4458
782dc37a 4459 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 4460
a02ab464
L
44612009-05-15 H.J. Lu <hongjiu.lu@intel.com>
4462
4463 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4464 only once.
4465
796bda22
JH
44662009-05-15 Jan Hubicka <jh@suse.cz>
4467
4468 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4469 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4470 (try_inline): Fix return value.
4471 (cgraph_decide_inlining_incrementally): Honor new value.
4472 (cgraph_early_inlining): Handle indirect inlining.
4473 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4474
d88e5c37
JH
44752009-05-15 Jan Hubicka <jh@suse.cz>
4476
4477 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4478 * cgraphunit.c (cgraph_finalize_function): Set it.
4479 (cgraph_expand_function): Use it.
4480
ae63687c
SL
44812009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4482
4483 * real.c (encode_ieee_half): Define.
4484 (decode_ieee_half): Define.
4485 (ieee_half_format): Define.
4486 (arm_half_format): Define.
4487 * real.h (ieee_half_format): Declare.
4488 (arm_half_format): Declare.
4489
1bd74ad9
SL
44902009-05-15 Sandra Loosemore <sandra@codesourcery.com>
4491
4492 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
4493 swapped, and reversed optabs exist before trying to use them.
4494
dc34db56
PB
44952009-05-15 Paul Brook <paul@codesourcery.com>
4496 Sandra Loosemore <sandra@codesourcery.com>
4497
dc34db56
PB
4498 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4499 loads. Allow PRE_DEC.
4500 (output_move_neon): Handle PRE_DEC.
4501 (arm_print_operand): Add 'A' for neon structure loads.
4502 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4503 * config/arm/neon.md (neon_mov): Update comment.
4504 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4505 calls.
4506 (Um): New constraint.
4507
1d405d7b
JH
45082009-05-15 Jan Hubicka <jh@suse.cz>
4509
4510 Revert the following patch until testsuite fallout is fixed:
4511 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4512 * cgraph.h (struct inline_summary): New filed self_wize,
4513 size_inlining_benefit, self_time and time_inlining_benefit.
4514 (struct cgraph_global_info): Replace insns by time ans size fields.
4515 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4516 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4517 (ipcp_update_callgraph): Do not touch function bodies.
4518 * ipa-inline.c: Include except.h
782dc37a 4519 (MAX_TIME): New constant.
1d405d7b
JH
4520 (overall_insns): Remove
4521 (overall_size, max_benefit): New static variables.
4522 (cgraph_estimate_time_after_inlining): New function.
4523 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4524 (cgraph_clone_inlined_nodes): Update size.
4525 (cgraph_mark_inline_edge): Update size.
4526 (cgraph_estimate_growth): Use size info.
4527 (cgraph_check_inline_limits): Check size.
4528 (cgraph_default_inline_p): Likewise.
4529 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4530 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4531 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4532 and times.
1d405d7b 4533 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4534 (cgraph_decide_inlining_incrementally): Likewise; honor
4535 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
4536 (likely_eliminated_by_inlining_p): New predicate.
4537 (estimate_function_body_sizes): New function.
4538 (compute_inline_parameters): Use it.
4539 * except.c (must_not_throw_labels): New function.
4540 * except.h (must_not_throw_labels): Declare.
4541 * tree-inline.c (init_inline_once): Kill inlining_weigths
4542 * tree-ssa-structalias.c: Avoid uninitialized warning.
4543 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4544 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4545 (PARAM_INLINE_CALL_COST): Remove.
4546 (PARAM_EARLY_INLINING_INSNS): New.
4547
7ffa47ca
RG
45482009-05-15 Richard Guenther <rguenther@suse.de>
4549
4550 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4551 not TODO_update_ssa.
4552
828552ed
RG
45532009-05-15 Richard Guenther <rguenther@suse.de>
4554
4555 PR tree-optimization/39999
4556 * gimple.h (gimple_expr_type): Use the expression type looking
4557 through useless conversions.
4558 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4559 (vn_nary_op_insert_stmt): Likewise.
4560 (simplify_binary_expression): Likewise.
4561
248fc9f3
RG
45622009-05-15 Richard Guenther <rguenther@suse.de>
4563
4564 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4565 New options, enabled by default.
4566 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4567 Document.
4568 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4569 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4570 * tree-ssa-structalias.c (gate_tree_pta): New function.
4571 (pass_build_alias): Use it.
4572
16b29cc4
JM
45732009-05-15 Joseph Myers <joseph@codesourcery.com>
4574
4575 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4576 recurse on an invariant address if a conversion from a pointer
4577 type to a wider integer type is involved.
4578
125cae84
JH
45792009-05-15 Jan Hubicka <jh@suse.cz>
4580
4581 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4582 * cgraph.h (struct inline_summary): New filed self_wize,
4583 size_inlining_benefit, self_time and time_inlining_benefit.
4584 (struct cgraph_global_info): Replace insns by time ans size fields.
4585 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4586 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4587 (ipcp_update_callgraph): Do not touch function bodies.
4588 * ipa-inline.c: Include except.h
782dc37a 4589 (MAX_TIME): New constant.
125cae84
JH
4590 (overall_insns): Remove
4591 (overall_size, max_benefit): New static variables.
4592 (cgraph_estimate_time_after_inlining): New function.
4593 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4594 (cgraph_clone_inlined_nodes): Update size.
4595 (cgraph_mark_inline_edge): Update size.
4596 (cgraph_estimate_growth): Use size info.
4597 (cgraph_check_inline_limits): Check size.
4598 (cgraph_default_inline_p): Likewise.
4599 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4600 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4601 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4602 and times.
125cae84 4603 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4604 (cgraph_decide_inlining_incrementally): Likewise; honor
4605 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4606 (likely_eliminated_by_inlining_p): New predicate.
4607 (estimate_function_body_sizes): New function.
4608 (compute_inline_parameters): Use it.
4609 * except.c (must_not_throw_labels): New function.
4610 * except.h (must_not_throw_labels): Declare.
4611 * tree-inline.c (init_inline_once): Kill inlining_weigths
4612 * tree-ssa-structalias.c: Avoid uninitialized warning.
4613 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4614 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4615 (PARAM_INLINE_CALL_COST): Remove.
4616 (PARAM_EARLY_INLINING_INSNS): New.
4617 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4618 (inline-call-cost): Remove.
4619 (early-inlining-insns): New.
4620
84fb43a1
EB
46212009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4622
4623 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4624 for bounds.
4625 (print_int_cst_bounds_in_octal_p): Likewise.
4626 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4627 with subtypes.
4628 * dwarf2out.c (base_type_die): Likewise.
4629 (is_subrange_type): Delete.
4630 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4631 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4632 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4633 if the destination type is boolean.
84fb43a1
EB
4634 (build_range_check): Do not special-case subtypes.
4635 (fold_sign_changed_comparison): Likewise.
4636 (fold_unary): Likewise.
4637 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4638 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4639 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4640 * tree.c (subrange_type_for_debug_p): New predicate based on the
4641 former is_subrange_type.
84fb43a1
EB
4642 * tree.h (subrange_type_for_debug_p): Declare.
4643 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4644 (convert_affine_scev): Remove call to above function.
4645 (chrec_convert_aggressive): Likewise.
4646 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4647 false for conversions involving subtypes.
4648 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4649 (vrp_val_min): Likewise.
4650 (needs_overflow_infinity): Likewise.
4651 (extract_range_from_unary_expr): Likewise.
4652
331d9186
PB
46532009-05-15 Paolo Bonzini <bonzini@gnu.org>
4654
e9351712
L
4655 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4656 * config/frv/frv.c: Likewise.
4657 * config/s390/s390.c: Likewise.
4658 * config/sparc/sparc.h: Likewise.
4659 * config/i386/i386.h: Likewise.
4660 * config/i386/i386.c: Likewise.
4661 * config/crx/crx.c: Likewise.
4662 * config/m68hc11/m68hc11.h: Likewise.
4663 * config/iq2000/iq2000.c: Likewise.
4664 * config/mn10300/mn10300.h: Likewise.
4665 * config/mn10300/mn10300.c: Likewise.
4666 * config/m68k/m68k.c: Likewise.
4667 * config/rs6000/rs6000.c: Likewise.
4668 * config/rs6000/xcoff.h: Likewise.
4669 * config/rs6000/linux64.h: Likewise.
4670 * config/rs6000/sysv4.h: Likewise.
4671 * config/score/score3.c: Likewise.
4672 * config/score/score7.c: Likewise.
4673 * config/score/score.c: Likewise.
4674 * config/arm/arm.md: Likewise.
4675 * config/mips/mips.c: Likewise.
4676 * config/mips/mips.md: Likewise.
4677 * config/bfin/bfin.h: Likewise.
4678 * config/pa/pa.c: Likewise.
4679 * config/pa/constraints.md: Likewise.
4680
4681 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4682 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4683 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4684
09639a83
ILT
46852009-05-14 Ian Lance Taylor <iant@google.com>
4686
4687 * passes.c (finish_optimization_passes): Change i to int.
4688 * plugin.c (plugins_active_p): Change event to int.
4689 (dump_active_plugins): Likewise.
4690 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4691 Add cast.
4692 * tree.c (tree_range_check_failed): Change c to unsigned int.
4693 (omp_clause_range_check_failed): Likewise.
4694 (build_common_builtin_nodes): Change mode to int. Add cast.
4695 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4696 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4697
4698 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4699 ++ or -- with a variable of enum type.
4700
c04a56bf
SB
47012009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4702
4703 PR driver/40144
4704 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4705
237ee620
SB
47062009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4707
4708 * store-motion.c: Do not include params.h
4709 * Makefile.in: Fix dependencies for various files.
4710
1154c4fa
SB
47112009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4712
4713 * auto-inc-dec.c: Fix pass description, remove apparent
4714 accidental duplication.
4715
61c27353
L
47162009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4717
4718 PR middle-end/40147
4719 * ipa-utils.h (memory_identifier_string): Moved to ...
4720 * tree.h (memory_identifier_string): Here. Add GTY(()).
4721
c6c3dba9
PB
47222009-05-14 Paolo Bonzini <bonzini@gnu.org>
4723
4724 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4725 in the former documentation of...
4726 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4727 * ira-conflicts.c (get_dup_num): Use address_operand.
4728 * targhooks.c (default_legitimate_address_p): New.
4729 * targhooks.h (default_legitimate_address_p): New.
4730 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4731 Call hook.
4732 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4733 * target.h (struct target): Add legitimate_address_p.
4734 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4735 (TARGET_INITIALIZER): Include it.
4736
4737 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4738 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4739 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4740 (TARGET_LEGITIMATE_ADDRESS_P): New.
4741
4742 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4743 (REG_OK_STRICT_P): Delete.
4744 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4745 (frv_legitimate_address_p_1): ... this.
4746 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4747 (frv_legitimate_address_p_1): ... the renamed old
4748 frv_legitimate_address_p.
4749 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4750 (TARGET_LEGITIMATE_ADDRESS_P): New.
4751
4752 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4753 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4754 * config/s390/s390.c (legitimate_address_p): Rename to...
4755 (s390_legitimate_address_p): ... this, make static.
4756 (legitimize_address): Adjust call.
4757 (TARGET_LEGITIMATE_ADDRESS_P): New.
4758 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4759
4760 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4761 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4762 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4763 (TARGET_LEGITIMATE_ADDRESS_P): New.
4764
4765 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4766 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4767 * config/spu/spu.c (spu_legitimate_address): Rename to...
4768 (spu_legitimate_address_p): ... this, make static.
4769 (TARGET_LEGITIMATE_ADDRESS_P): New.
4770
4771 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4772 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4773 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4774 (sparc_legitimate_address_p): ... this, make static and return bool.
4775 (legitimize_address): Adjust call.
4776 (TARGET_LEGITIMATE_ADDRESS_P): New.
4777
4778 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4779 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4780 * config/i386/i386.c (legitimate_address_p): Rename to...
4781 (ix86_legitimate_address_p): ... this, make static.
4782 (constant_address_p): Move after it, adjust call.
4783 (TARGET_LEGITIMATE_ADDRESS_P): New.
4784
4785 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4786 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4787 * config/avr/avr.c (legitimate_address_p): Rename to...
4788 (avr_legitimate_address_p): ... this, make static.
4789 (legitimize_address): Adjust call.
4790 (TARGET_LEGITIMATE_ADDRESS_P): New.
4791
4792 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4793 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4794 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4795 (TARGET_LEGITIMATE_ADDRESS_P): New.
4796
4797 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4798 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4799 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4800 (TARGET_LEGITIMATE_ADDRESS_P): New.
4801
4802 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4803 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4804 Remove.
4805 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4806 Make static.
4807 (TARGET_LEGITIMATE_ADDRESS_P): New.
4808
4809 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4810 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4811 Remove.
4812 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4813 Rename to...
4814 (m68hc11_legitimate_address_p): ... this, make static.
4815 (go_if_legitimate_address_internal): Rename to...
4816 (m68hc11_legitimate_address_p_1): ... this.
4817 (legitimize_address): Adjust call.
4818 (TARGET_LEGITIMATE_ADDRESS_P): New.
4819
4820 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4821 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4822 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4823 (TARGET_LEGITIMATE_ADDRESS_P): New.
4824
4825 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4826 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4827 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4828 (mn10300_legitimate_address_p): ... this, make static.
4829 (TARGET_LEGITIMATE_ADDRESS_P): New.
4830
4831 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4832 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4833 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4834 (TARGET_LEGITIMATE_ADDRESS_P): New.
4835
4836 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4837 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4838 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4839 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4840 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4841 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4842 (rs6000_legitimate_address_p): ... this, make static.
4843 (TARGET_LEGITIMATE_ADDRESS_P): New.
4844 (REG_MODE_OK_FOR_BASE_P): Delete.
4845 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4846
4847 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4848 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4849 Delete.
4850 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4851 static, adjust types.
4852 (TARGET_LEGITIMATE_ADDRESS_P): New.
4853
4854 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4855 * config/score/score.c (score_address_p): Rename to...
4856 (score_legitimate_address_p): ... this.
4857 (TARGET_LEGITIMATE_ADDRESS_P): New.
4858 * config/score/score3.c (score3_address_p): Rename to...
4859 (score3_legitimate_address_p): ... this.
4860 * config/score/score7.c (score7_address_p): Rename to...
4861 (score7_legitimate_address_p): ... this.
4862
4863 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4864 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4865 GO_IF_LEGITIMATE_ADDRESS): Delete.
4866 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4867 thumb2_legitimate_address_p): Delete.
4868 (arm_legitimate_address_p): Rename to...
4869 (arm_legitimate_address_outer_p): ... this.
4870 * config/arm/constraints.md ("Uq"): Adjust call.
4871 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4872 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4873 to...
c6c3dba9 4874 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4875 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4876 static.
c6c3dba9
PB
4877 (TARGET_LEGITIMATE_ADDRESS_P): New.
4878
4879 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4880 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4881 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4882 (TARGET_LEGITIMATE_ADDRESS_P): New.
4883
4884 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4885 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4886 * config/vax/vax.c (legitimate_address_p): Rename to...
4887 (vax_legitimate_address_p): ... this, make static.
4888 (TARGET_LEGITIMATE_ADDRESS_P): New.
4889
4890 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4891 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4892 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4893 (TARGET_LEGITIMATE_ADDRESS_P): New.
4894
4895 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4896 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4897 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4898 (mmix_legitimate_address_p): ... this, make static.
4899 (TARGET_LEGITIMATE_ADDRESS_P): New.
4900
4901 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4902 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4903 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4904 (TARGET_LEGITIMATE_ADDRESS_P): New.
4905
3bd0d9c8
PB
49062009-05-14 Paolo Bonzini <bonzini@gnu.org>
4907
4908 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4909 of MODE_COMPLEX_INT.
4910
fe049033
RO
49112009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4912
4913 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4914 LCT_NORMAL in function call.
4915 * mips-tdump.c (print_file_desc): Add cast to enum type.
4916 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4917 (mark_stabs): Add casts to enum types.
4918 (parse_stabs_common): Add casts to enum types.
16f7ad42 4919
b0907a6c
AN
49202009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4921
4922 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4923 Check for invalid values of LETTER.
4924
d1c8e08a
TG
49252009-05-13 Taras Glek <tglek@mozilla.com>
4926
f3afc8a7
UB
4927 * attribs.c (register_attribute): moved out attribute registration
4928 into register_attribute.
4929 * doc/plugins.texi: Documented register_attribute and
4930 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4931 * gcc-plugin.h: Added forward decl for register_attribute.
4932 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4933 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4934 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4935
4ed7f970
DK
49362009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4937
4938 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4939 values even in sentinel and empty entries.
4940 (ms_printf_flag_specs): Likewise.
4941 (ms_scanf_flag_specs): Likewise.
4942 (ms_strftime_flag_specs): Likewise.
4943 (ms_print_char_table): Likewise.
4944 (ms_scan_char_table): Likewise.
4945 (ms_time_char_table): Likewise.
4946
3d8fa148
DK
49472009-05-13 Doug Kwan <dougkwan@google.com>
4948
4949 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4950
f06257d3
AN
49512009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4952
4953 * config/mips/mips.md (store): Add attributes for QI and HI.
4954 Update comment.
4955 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4956 (truncdi<mode>2): ... this new pattern.
4957
fb201767
BH
49582009-05-13 Brad Hards <bradh@kde.org>
4959
4960 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4961
c7bda60e 49622009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4963 Ben Elliston <bje@au.ibm.com>
4964
4965 PR middle-end/40035
4966 * dse.c (check_mem_read_rtx): Guard against width == -1.
4967
ce985b43
MM
49682009-05-13 Michael Matz <matz@suse.de>
4969
4970 PR middle-end/39976
4971 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4972 (trivially_conflicts_p): New function.
4973 (insert_backedge_copies): Use it.
4974
7de1d221
JJ
49752009-05-13 Janis Johnson <janis187@us.ibm.com>
4976
4977 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4978 (handle_stdc_pragma): Use new enum constant names.
4979 (handle_pragma_float_const_decimal64): Ditto.
4980
bfefafc6
ILT
49812009-05-13 Ian Lance Taylor <iant@google.com>
4982
4983 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4984 tree.def.
4985
286c4fcb
NS
49862009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4987
4988 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4989 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4990 multilibs.
4991 * config/m68k/m68k.h (FL_UCLINUX): Define.
4992
ebaa6ea7
JH
49932009-05-13 Jan Hubicka <jh@suse.cz>
4994
4995 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4996
2b703e1a
KK
49972009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4998
4999 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5000 unless -fschedule-insns is specified.
5001
c3537723
KK
50022009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5003
5004 PR target/39561
5005 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5006 TARGET_EXPAND_CBRANCHDI4.
5007 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5008 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5009 (cmpeqdi): Fix comment.
5010
cdeed45a
KK
50112009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5012
5013 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5014 (sh_legitimate_address_p): Likewise.
5015 * config/sh/sh.c (sh_legitimate_index_p): New.
5016 (sh_legitimate_address_p): Likewise.
5017 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5018 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5019 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5020 (MAYBE_BASE_REGISTER_RTX_P): New macro.
5021 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5022 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5023 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5024 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5025 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5026
02f0b13a
JH
50272009-05-12 Jan Hubicka <jh@suse.cz>
5028
5029 * tree-inline.c (estimate_operator_cost): Add operands;
5030 when division happens by constant, it is cheap.
5031 (estimate_num_insns): Loads and stores are not having cost of 0;
5032 EH magic stuff is cheap; when computing runtime cost of switch,
5033 use log2 base of amount of its cases; builtin_expect has cost of 0;
5034 compute cost for moving return value of call.
5035 (init_inline_once): Initialize time_based flags.
5036 * tree-inline.h (eni_weights_d): Add time_based flag.
5037
ecb7f6de
PB
50382009-05-12 Paolo Bonzini <bonzini@gnu.org>
5039
5040 * df-core.c: Update head documentation.
5041
c24151ce
MM
50422009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5043
5044 PR bootstrap/40118
5045 * rs6000.c (rs6000_generate_compare): Use op1b instead of
5046 shadowing exisiting variable op1.
5047
fbdf817d
UB
50482009-05-12 Uros Bizjak <ubizjak@gmail.com>
5049
704bf7c8 5050 PR target/37179
fbdf817d
UB
5051 * config/i386/driver-i386.c (processor_signatures): New enum.
5052 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5053 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5054 processor signature to detect geode processor.
5055
5e8d1826
PB
50562009-05-12 Paolo Bonzini <bonzini@gnu.org>
5057
5058 Revert:
5059
5060 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5061
5062 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5063 causes spurious differences between trunk and cond-optab branch.
5064
f90b7a5a
PB
50652009-05-12 Paolo Bonzini <bonzini@gnu.org>
5066
fbdf817d
UB
5067 * dojump.c (compare_from_rtx): Delete.
5068 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
5069 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
5070 if the comparison does not satisfy the predicate; test predicates for
5071 operands 2 and 3 of a cstore pattern. Don't try cstore optab
5072 further if one existing pattern fails.
fbdf817d 5073 * expr.h (compare_from_rtx): Delete.
f90b7a5a 5074 (prepare_operand): Declare it.
fbdf817d 5075 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 5076 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
5077 HAVE_conditional_trap, emit_cmp_insn): Delete.
5078 (can_compare_p): Delete cmp_optab case.
f90b7a5a 5079 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
5080 Accept other parameters by value.
5081 (prepare_operand): Make non-static.
5082 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
5083 other parameters by value. Try to widen operands here based on
5084 an optab_methods argument and looking at cbranch_optab.
5085 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5086 loop. Use cbranch_optab directly.
5087 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
5088 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5089 assertion.
5090 (emit_conditional_move, emit_conditional_add): Inline what's needed
5091 of compare_from_rtx, using new prepare_cmp_insn for the rest.
5092 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5093 with COMPARE. Move cmov_optab and cstore_optab above
5094 with cbranch_optab, move cmp_optab down with ucmp_optab,
5095 remove tst_otpab. Do not initialize trap_rtx.
5096 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
5097 for trap code. Do not check HAVE_conditional_trap. Use
5098 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
5099 * optabs.h (OTI_cmp): Mark as used only for libcalls.
5100 (OTI_ctrap, ctrap_optab): New.
5101 (tst_optab): Delete.
5102 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5103 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5104 with lookup of ctrap_optab.
f3afc8a7
UB
5105 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5106 Delete.
fbdf817d
UB
5107 (ctrap_optab): New.
5108
5109 * combine.c (combine_simplify_rtx, simplify_set): Do not
5110 special case comparing against zero for cc0 machines.
f90b7a5a
PB
5111 * simplify-rtx.c (simplify_binary_operation_1): Never remove
5112 COMPARE on cc0 machines.
5113 (simplify_relational_operation): Return a new expression when
5114 a COMPARE could be removed.
fbdf817d
UB
5115 * final.c (final_scan_insn): Compare cc_status values
5116 against LHS of a (compare FOO (const_int 0)) cc0 source.
5117 Also check if cc_status.value is the full compare.
f90b7a5a 5118
fbdf817d
UB
5119 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5120 (cstoreMM4): Document.
f90b7a5a 5121 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 5122 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
5123 (Dependent Patterns): Eliminate obsolete information referring to
5124 the old jump optimization phase.
fbdf817d 5125 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
5126 of compares with 0 on cc0 machines.
5127 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5128 avoiding references to cc0. Remove text about storing operands
5129 in cmpMM.
5130 * doc/tm.texi (Condition Codes): Include blurb on different
5131 condition code representations, separate into subsections for
5132 CC0, MODE_CC and conditional execution.
5133
fbdf817d
UB
5134 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5135 alpha_emit_setcc): Accept operands and a machine mode.
5136 * config/alpha/alpha.c (alpha_emit_conditional_branch):
5137 Get code/op0/op1 from operands, use machine mode argument
5138 instead of alpha_compare.fp_p. Emit the branch here.
5139 (alpha_emit_setcc): Likewise, and return boolean.
5140 (alpha_emit_conditional_move): Likewise. Assert that
5141 cmp_op_mode == cmp_mode, and simplify accordingly.
5142 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5143 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5144 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5145 Delete.
5146 (stack probe test): Use cbranchdi4.
5147 * config/alpha/predicates.md (alpha_cbranch_operator): New.
5148
5149 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
5150 * config/arc/arc.h (movsicc, movsfcc): Use it.
5151 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5152 (cbranchsi4, cstoresi4): New.
5153 (cmpsi, bCC and sCC expanders): Remove.
5154
5155 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5156 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5157 * config/arm/predicates.md (arm_comparison_operator): Only include
5158 floating-point operators if there is a hardware floating-point unit.
5159 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5160 deferring to cbranch_cc and cstore_cc respectively.
5161 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5162 cbranch_cc, cstore_cc): New.
5163 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 5164 arm_compare_op1.
fbdf817d
UB
5165 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5166
5167 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5168 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5169 as an argument.
5170 (adjust_insn_length): Adjust calls.
5171 (avr_reorg): Handle (compare (foo) (const_int 0)).
5172 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5173 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5174 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5175 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5176 (bCC): Remove.
5177 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
5178 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5179
fbdf817d
UB
5180 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5181 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 5182 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
5183 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
5184 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
5185 (bfin_optimize_loop): Use cbranch expander.
5186 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
5187 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
5188 (bfin_bimode_comparison_operator): ... this.
5189 (bfin_direct_comparison_operator): New.
f90b7a5a 5190
fbdf817d
UB
5191 * config/cris/cris.c (cris_normal_notice_update_cc): Look
5192 inside (compare FOO (const_int 0)).
5193 (cris_rtx_costs): Handle ZERO_EXTRACT.
5194 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
5195 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
5196 (*tstdi_v32): Delete.
5197 (*cmpdi_non_v32): Add M alternative for operand 1.
5198 (cmpsi, cmp<mode>): Make private.
5199 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
5200 with COMPARE.
5201 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
5202
5203 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
5204 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5205 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
5206 (cc_reg_operand): New.
5207 (any_cond): Delete.
fbdf817d
UB
5208 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5209 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5210 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5211 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5212 crx_expand_scond): Delete.
5213
5214 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5215 (cbranchsi4): New.
5216 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5217 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5218
5219 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5220 cstoresi4, cstoresf4, cstoredf4): New.
5221 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5222 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5223 Receive the entire operands array.
5224 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5225 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5226 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5227 Get test/op0/op1 from the operands array.
5228 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5229
5230 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5231 (h8300_expand_store): New.
5232 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5233 (const_int 0)).
5234 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
5235 (h8300_expand_store): New.
5236 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5237 or do not try to produce (set (cc0) REG).
5238 (peepholes): Wrap arguments with COMPARE. Add a peephole to
5239 change a compare into a move to a scratch register. Disable some
5240 peepholes when comparing with zero.
5241 (tstsi, tsthi, tstsi, cmpqi): Make private.
5242 (cmphi): Delete.
5243 (bCC, sCC): Delete.
5244 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5245 cstoresi4): New.
f90b7a5a
PB
5246
5247 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5248 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5249 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5250 (ix86_emit_i387_log1p): Use cbranchxf2.
5251 (ix86_expand_setcc): Return void.
5252 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5253 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5254 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
5255 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5256 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5257 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
5258 (sCC and bCC expanders): Remove.
5259 (stack_protect_test): Use cbranchcc4.
5260
fbdf817d
UB
5261 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5262 Delete.
5263 (ia64_expand_compare): Accept three rtx by reference and return void.
5264 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5265 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
5266 from *expr. Update *expr with the BImode comparison to do.
5267 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5268 cmptf, bCC, sCC, conditional_trap): Delete.
5269 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
5270 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5271 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5272 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5273 * config/ia64/predicates.md (ia64_cbranch_operator): New.
5274
5275 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5276 type of last argument.
5277 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5278 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5279 use machine mode argument instead of branch_type. Remove dead
5280 code for floating-point comparisons.
5281 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5282 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5283 Remove.
5284 (cbranchsi4, cstoresi4): New.
5285 * config/iq2000/predicates.md (reg_or_const_operand): New.
5286
5287 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5288 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5289 (b<code>_op): Rewrite to...
5290 (bcc_op): ... this, using match_operator.
5291 (s<code>_op): Rewrite to...
5292 (scc_op): ... this, using match_operator.
5293 (s<code>_24_op): Rewrite to...
5294 (scc_op_24): ... this, using match_operator.
5295 (s<code>_<mode>): Rewrite to...
5296 (cstore<mode>4): ... this, using match_operator.
5297 (s<code>_<mode>_24): Rewrite to...
5298 (cstore<mode>4_24): ... this, using match_operator.
5299 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5300 m32c_unpend_compare, m32c_expand_scc): Delete.
5301 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5302 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5303 (m32c_expand_movcc): Change NE to EQ if necessary.
5304 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5305
5306 * config/m32r/m32r-protos.h (gen_cond_store): New.
5307 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5308 (gen_cond_store): New, from sCC patterns.
5309 (m32r_expand_block_move): Use cbranchsi4.
5310 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5311 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5312 (cbranchsi4, cstoresi4): New.
5313
5314 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5315 Delete.
5316 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 5317 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
5318 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5319 Delete.
5320 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5321 cmphi, cmpqi, bCC): Delete.
5322 (cbranchsi4, cbranchhi4, cbranchqi4): New.
5323 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5324 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5325 sets with COMPARE.
5326
5327 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5328 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5329 * config/m68k/constraints.md (H): New.
5330 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5331 the define_insn below.
5332 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5333 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5334 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5335 patterns): Wrap RHS with COMPARE.
5336 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5337 (*cmpdi_internal): Name this pattern.
5338 (cmpdi): Change to define_insn.
5339 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5340 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5341 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5342 predicate.
5343 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5344 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5345 (conditional_trap): Change to...
5346 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5347 (*conditional_trap): Use the ordered_comparison_operator and
5348 const1_operand predicates.
5349 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5350 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5351 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5352 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5353
5354 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5355 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5356 (mcore_gen_compare): New.
5357 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5358 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5359 (mcore_gen_compare): ... this.
5360 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5361 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5362 (stack probe pattern): Use cbranchsi4.
5363
5364 * config/mips/predicates.md (mips_cstore_operator): New.
5365 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5366 * config/mips/mips.md (any_cond): Delete.
5367 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
5368 always succeed.
5369 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5370 fixuns_truncsfdi2): Use cbranch patterns.
5371 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
5372 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5373 Adjust call to mips_expand_conditional_branch.
5374 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5375 cstore<GPR:mode>4.
5376 * config/mips/mips-protos.h (mips_expand_conditional_branch,
5377 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5378 * config/mips/mips.c (cmp_operands): Delete.
5379 (mips_emit_compare): Get comparison operands from *op0/*op1.
5380 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
5381 that it succeeds. Use op0/op1 instead of cmp_operands.
5382 (mips_expand_conditional_branch, mips_expand_conditional_move,
5383 mips_expand_conditional_trap): Likewise.
5384 (mips_block_move_loop): Use cbranch patterns.
5385 * config/mips/mips.h (cmp_operands): Delete.
5386
5387 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5388 (mmix_gen_compare_reg): Just return a register in the right CC mode.
5389 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5390 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5391 (*cmpcc_folded): Rename to...
5392 (*cmpdi_folded): this.
5393 (*cmpcc): Rename to...
5394 (*cmps): ... this.
5395 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5396 (bCC): Remove.
5397 (cbranchdi4): New.
5398 (cbranchdf4): New. Handle invalid comparisons here.
5399 * config/mmix/predicates.md (float_comparison_operator): New.
5400
5401 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5402 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5403 * config/mn10300/mn10300.md (tst): Delete.
5404 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5405 Name these patterns and wrap RHS in a compare.
5406 (*cmpsi): Make this pattern private. Include tst.
5407 (*cmpsf): Make this pattern private.
5408 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5409 (compare with zero peepholes): Likewise.
5410 (bCC): Remove.
5411 (cbranchsi4, cbranchsf4): New.
5412 (casesi): Use cbranchsi4.
5413
5414 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5415 hppa_branch_type): Delete.
5416 (return_addr_rtx): Use cbranchsi4.
5417 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
5418 Emit CCFPmode comparison here.
5419 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5420 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5421 hppa_branch_type): Delete.
5422 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5423 (movsicc, movdicc): Remove references to hppa_compare_op0,
5424 hppa_compare_op1 and compare_from_rtx.
5425 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5426 (casesi): Use cbranchsi4.
5427
5428 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5429 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5430 * config/pdp11/pdp11.md (register_or_const0_operand): New.
5431 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
5432 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5433 (bCC): Delete.
5434 (cbranchdf4, cbranchhi4, cbranchqi4): New.
5435 (*branch, *branch_inverted): New.
5436
5437 * config/picochip/picochip.md (cbranchhi4): Use
5438 ordered_comparison_operator.
5439 (cmphi, bCC): Remove.
5440
5441 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5442 (trap_comparison_operator): Delete.
5443 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5444 rs6000_emit_cbranch): Accept mode and operands.
5445 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5446 rs6000_compare_fp_p): Delete.
5447 (rs6000_generate_compare): Accept mode and comparison. Extract code
5448 and op0/op1 from there. Replace references to rs6000_compare_op0
5449 and rs6000_compare_op1.
5450 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5451 extract result from passed operands.
5452 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5453 extract loc from passed operands.
5454 (rs6000_emit_cmove): Likewise.
5455 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5456 rs6000_compare_fp_p): Delete.
5457 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5458 (cbranch<GPR>4, cbranch<FP>4): New.
5459 (cstore<mode>4): New. Consolidate here all choices about when to use
5460 portable or specialized sCC sequences.
5461 (stack_protect_test): Use cbranchsi4.
5462 (conditional_trap): Replace with ctrap<GPR>4.
5463 (conditional trap insn): Replace trap_comparison_operator with
5464 ordered_comparison_operator.
5465
5466 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5467 (s390_emit_prologue): Use ctrap.
5468 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5469 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5470 New predicates replacing...
5471 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5472 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5473 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5474 (add<mode>cc): Do not use s390_compare_op0/op1.
5475 (s<code>): Change to...
5476 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5477 (seq): Change to...
5478 (cstorecc4): ... this. Handle EQ or NE equally.
5479 (*sne): Un-privatize for use in cstorecc4.
5480 (b<code>): Change to...
5481 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5482 (conditional_trap): Replace with...
5483 (ctrap<GPR>4, ctrap<FP>4): ... these.
5484 (stack_protect): Use cbranchcc4.
5485
5486 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5487 * config/score/score-protos.h (score_gen_cmp): Delete.
5488 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5489 (score_block_move-loop): Use cbranchsi4.
5490 * config/score/score.md (cbranchsi4): New.
5491 (cmpsi, bCC): Delete.
5492 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5493 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5494 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5495 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5496 * config/score/score3.h (score3_gen_cmp): Delete.
5497 * config/score/score7.h (score7_gen_cmp): Delete.
5498
5499 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5500 (sh_emit_scc_to_t): ... this. Return void.
5501 (from_compare): Rename to...
5502 (sh_emit_compare_and_branch): ... this.
5503 (sh_emit_compare_and_set): New.
5504 (sh_expand_t_scc): Accept operands.
5505 * config/sh/predicates.md (sh_float_comparison_operator): New.
5506 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5507 (prepare_scc_operands): Rename to...
5508 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
5509 arguments.
5510 (sh_emit_cheap_store_flag): New.
f90b7a5a 5511 (sh_emit_set_t_insn): New.
fbdf817d
UB
5512 (from_compare): Rename to...
5513 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
5514 handling of TARGET_SH2E floating point to avoid recursive call.
5515 Generate branch here.
5516 (sh_emit_compare_and_set): New.
5517 (sh_expand_t_scc): Get op0/op1 from arguments.
5518 (sh_emit_cheap_store_flag): New.
5519 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5520 cases.
f90b7a5a 5521 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
5522 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5523 (movsicc, movdicc): Do nothing when it recreated operands from
5524 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
5525 prepare_scc_operands (now sh_emit_scc_to_t).
5526 (udivdi3): Use cstoresi4.
5527 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5528 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5529 (cbranchint4_media, cbranchfp4_media): New.
5530 (casesi): Use cbranchdi4.
5531 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5532 Delete.
5533 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5534 (movnegt): Remove second operand.
5535 (cbranchsf4, cbranchdf4): New.
5536 (stack_protect): Use cbranchdi4/cbranchsi4.
5537
5538 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5539 (gen_compare_reg): Accept comparison, extract part of it to...
5540 (gen_compare_reg_1): ... this.
5541 (gen_compare_operator): Delete.
5542 (gen_v9_scc): Accept separate destination, comparison code and arms.
5543 Do not use sparc_compare_op0/sparc_compare_op1.
5544 (emit_scc_insn, emit_conditional_branch_insn): New.
5545 (emit_v9_brxx): Make static. Remove useless assertion.
5546 (sparc_emit_float_lib_cmp): Return RTL instead of calling
5547 emit_cmp_insn.
5548 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5549 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
5550 sparc_emit_float_lib_cmp): Adjust prototype.
5551 (emit_scc_insn, emit_conditional_branch_insn): New.
5552 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
5553 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5554 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5555 iterators to the top.
5556 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5557 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 5558 snedi_special_trunc): Delete.
fbdf817d 5559 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 5560 and snedi_special_trunc.
fbdf817d
UB
5561 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5562 cbranchdi4, cbranch<F:mode>4): New.
5563 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5564 here. Use gen_compare_reg instead of gen_compare_operator.
5565 (conditional_trap): Replace with...
5566 (ctrapsi4, ctrapdi4): ... this.
5567 (stack_protect_test): Use cbranchcc4.
5568
5569 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5570 argument to rtx.
5571 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
5572 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5573 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
5574 from operands[0] or operands[3] depending on is_set.
5575 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5576 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5577 cmpdf, bCC), sCC: Remove.
5578 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
5579 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5580 cstoredf4): New.
5581 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5582 spu_emit_branch_or_set.
5583
5584 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5585 Add two arguments.
5586 * config/stormy16/stormy16.h (xstormy16_compare_op0,
5587 xstormy16_compare_op1): Delete.
5588 * config/stormy16/stormy16.c (xstormy16_compare_op0,
5589 xstormy16_compare_op1): Delete.
5590 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5591 Adjust calls.
5592 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5593 (cmphi, cmpsi, bCC): Remove.
5594
5595 * config/v850/v850.md (tstsi, cmpsi): Fold into...
5596 (*cmpsi): ... this one.
5597 (cbranchsi4, cstoresi4): New.
5598 (bCC expanders): Delete.
5599 (sCC insns): Fold into...
5600 (*setcc): ... this one.
5601 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5602 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5603 (movsicc): Simplify.
5604 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5605
fbdf817d
UB
5606 * config/vax/vax-protos.h (cond_name): New.
5607 (vax_output_conditional_branch): Remove.
5608 * config/vax/vax.c (cond_name): New.
5609 (vax_output_conditional_branch): Remove.
5610 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5611 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5612 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5613 (bit<VAXint>): Wrap source with (compare).
5614 (b<code> and following unnamed pattern): Rename to *branch and
5615 *branch_reversed. Change macroization to match_operator.
5616 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5617
5618 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5619 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5620 Change last argument to machine_mode.
5621 (xtensa_expand_scc): Add machine_mode argument.
5622 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5623 (gen_conditional_move, xtensa_expand_conditional_branch,
5624 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5625 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5626 Adjust operand numbers.
5627 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5628 Delete.
5629 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5630 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5631 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5632
16670495
PB
56332009-05-12 Paolo Bonzini <bonzini@gnu.org>
5634
5635 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5636 causes spurious differences between trunk and cond-optab branch.
5637
4a4a4e99
AO
56382009-05-12 Alexandre Oliva <aoliva@redhat.com>
5639
5640 PR target/37137
5641 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5642
72b9acff
AO
56432009-05-12 Alexandre Oliva <aoliva@redhat.com>
5644
5645 * tree.c (iterative_hash_pointer): Delete.
5646 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5647 Hash UIDs and versions of SSA names. Don't special-case built-in
5648 function declarations.
5649
b7dd69ac
ILT
56502009-05-11 Ian Lance Taylor <iant@google.com>
5651
5652 PR bootstrap/40103
5653 * graphite.c: Force -Wc++-compat to only be a warning before
5654 #including "cloog/cloog.h".
5655
ed102b70
MJ
56562009-05-11 Martin Jambor <mjambor@suse.cz>
5657
5658 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5659
08f1af2e
JH
56602009-05-11 Jan Hubicka <jh@suse.cz>
5661
5662 * tree-ssa-loop-ivcanon.c: Include target.h
5663 (struct loop_size): new structure.
5664 (constant_after_peeling): New predicate.
5665 (tree_estimate_loop_size): New function.
5666 (estimated_unrolled_size): Rewrite for new estimates.
5667 (try_unroll_loop_completely): Use new estimates.
5668 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5669
a7d39bd3
AP
56702009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5671
5672 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5673 libcpp interface change.
5674 (spu_macro_to_expand): Likewise.
5675
f5a1f0d0
PB
56762009-05-11 Paolo Bonzini <bonzini@gnu.org>
5677
5678 PR tree-optimization/40026
5679 * gimplify.c (gimplify_init_constructor): Change initial conditional
5680 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5681 optimize_compound_literals_in_ctor.
5682
c260f01f
NS
56832009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5684
5685 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5686 New devices.
5687 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5688
df398a37
L
56892009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5690
5691 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5692 HOST_WIDE_INT for gap.
5693
4da39468
IR
56942009-05-11 Ira Rosen <irar@il.ibm.com>
5695
5696 PR tree-optimization/40074
5697 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5698 account in group size and step comparison.
5699
4effdf02
RG
57002009-05-11 Richard Guenther <rguenther@suse.de>
5701
5702 * passes.c (init_optimization_passes): Strip now incorrect comment.
5703 (execute_function_todo): Do not set PROP_alias.
5704 * tree-pass.h (PROP_alias): Remove.
5705 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5706 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5707 * tree-nrv.c (pass_return_slot): Likewise.
5708 * tree-object-size.c (pass_object_sizes): Likewise.
5709 * tree-ssa-dom.c (pass_dominator): Likewise.
5710 (pass_phi_only_cprop): Likewise.
5711 * tree-ssa-dse.c (pass_dse): Likewise.
5712 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5713 (pass_cselim): Likewise.
5714 * tree-ssa-pre.c (pass_pre): Likewise.
5715 (pass_fre): Likewise.
5716 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5717 * tree-ssa-sink.c (pass_sink_code): Likewise.
5718 * tree-stdarg.c (pass_stdarg): Likewise.
5719 * tree-tailcall.c (pass_tail_calls): Likewise.
5720 * tree-vrp.c (pass_vrp): Likewise.
5721
24b97832
ILT
57222009-05-10 Ian Lance Taylor <iant@google.com>
5723
5724 * basic-block.h (enum profile_status): Break out of struct
5725 control_flow_graph.
5726 * cgraph.h (struct inline_summary): Break out of struct
5727 cgraph_local_info.
5728 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5729 of struct cgraph_order_sort.
fbdf817d 5730 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5731 * cse.c (struct branch_path): Break out of struct
5732 cse_basic_block_data.
5733 * except.h (enum eh_region_type): Break out of struct eh_region.
5734 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5735 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5736 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5737 ggc_pch_data.
fbdf817d
UB
5738 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5739 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5740 * sched-int.h (enum post_call_group): New enum, broken out of
5741 struct deps.
5742 (struct deps_reg): Break out of struct deps.
5743 * target.h (struct asm_int_op): Break out of struct gcc_target.
5744 * tree-eh.c (struct goto_queue_node): Break out of struct
5745 leh_tf_state.
5746 * tree-inline.h (enum copy_body_cge_which): Break out of
5747 copy_body_data.
5748 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5749
5750 * c-decl.c (in_struct, struct_types): New static variables.
5751 (pushtag): Add loc parameter. Change all callers.
5752 (lookup_tag): Add ploc parameter. Change all callers.
5753 (check_compound_literal_type): New function.
5754 (parser_xref_tag): Add loc parameter. Change all callers. If
5755 -Wc++-compat, warn about struct/union/enum types defined within a
5756 struct or union.
5757 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5758 and loc parameters. Change all callers. Change error calls to
5759 error_at, using loc. For a redefinition, if the location of the
5760 original definition is known, report it. Set in_struct and
fbdf817d 5761 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5762 (finish_struct): Add new parameters enclosing_in_struct and
5763 enclosing_struct_types. Change all callers. Set
5764 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5765 in the struct. If in a struct, add this struct to struct_types.
5766 (start_enum): Add loc parameter. Change all callers. Use
5767 error_at for errors, using loc. For a redefinition, if the
5768 location of the original definition is known, report it. If in a
5769 struct, add this enum type to struct_types. If -Wc++-compat warn
5770 if in sizeof, typeof, or alignof.
fbdf817d
UB
5771 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5772 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5773 (c_parser_enum_specifier): Get enum location for start_enum.
5774 (c_parser_struct_or_union_specifier): Get struct location for
5775 start_struct. Save in_struct and struct_types status between
5776 start_struct and finish_struct.
5777 (c_parser_cast_expression): Get location of cast.
5778 (c_parser_alignof_expression): Get location of type.
5779 (c_parser_postfix_expression): Likewise.
5780 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5781 parameter. Change all callers. Call check_compound_literal_type.
5782 Use type_loc for error about variable size type.
5783 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5784 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5785 (c_cast_expr): Add loc parameter. Change all callers. If
5786 -Wc++-compat, warn about defining a type in a cast.
5787 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5788 (start_enum, start_struct, finish_struct): Update declarations.
5789 (parser_xref_tag, c_cast_expr): Update declarations.
5790 (check_compound_literal_type): Declare.
5791
7a2738fa
BE
57922009-05-11 Ben Elliston <bje@au.ibm.com>
5793
5794 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5795 for recent libcpp interface change.
5796 (rs6000_macro_to_expand): Likewise.
5797
af618949
MM
57982009-05-10 Michael Matz <matz@suse.de>
5799
5800 PR target/40031
5801 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5802 not at entry of function.
5803
b7d7a473
RG
58042009-05-10 Richard Guenther <rguenther@suse.de>
5805
5806 PR tree-optimization/40081
5807 Revert
5808 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5809 using the main variant of the element type. Do not fiddle with
5810 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5811
5812 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5813 structs with volatile fields.
5814
078c3644
JH
58152009-05-10 Jan Hubicka <jh@suse.cz>
5816
5817 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5818 (estimate_move_cost): Assert that it does not get called for
5819 VOID_TYPE_P.
078c3644
JH
5820 (estimate_num_insns): Skip VOID types in argument handling.
5821 (optimize_inline_calls): Delete unreachable blocks and verify that
5822 callgraph is valid.
5823
39ff5a96
JH
58242009-05-10 Jan Hubicka <jh@suse.cz>
5825
5826 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5827 * cgraph.c (cgraph_mark_address_taken_node): New function.
5828 (dump_cgraph_node): Dump new flag.
5829 * cgraph.h (struct cgraph_node): Add address_taken.
5830 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5831 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5832 since new direct calls can be born.
5833
9a0c6187
JM
58342009-05-10 Joseph Myers <joseph@codesourcery.com>
5835
5836 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5837 tok->val.node.node.
5838
4b685e14
JH
58392009-05-10 Jan Hubicka <jh@suse.cz>
5840
5841 PR middle-end/40084
fb0be169
EB
5842 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5843 argument; rewrite.
4b685e14
JH
5844 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5845 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5846 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5847 (fold_marked_statements): Update call to
5848 cgraph_update_edges_for_call_stmt.
4b685e14 5849
29d08eba
JM
58502009-05-10 Joseph Myers <joseph@codesourcery.com>
5851
5852 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5853 identifiers in diagnostics.
5854 * config/arm/arm.c (arm_handle_fndecl_attribute,
5855 arm_handle_isr_attribute): Likewise.
5856 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5857 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5858 * config/bfin/bfin.c (handle_int_attribute,
5859 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5860 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5861 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5862 Likewise.
5863 * config/darwin.c (darwin_handle_kext_attribute,
5864 darwin_handle_weak_import_attribute): Likewise.
5865 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5866 h8300_handle_eightbit_data_attribute,
5867 h8300_handle_tiny_data_attribute): Likewise.
5868 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5869 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5870 * config/i386/winnt.c (ix86_handle_shared_attribute,
5871 ix86_handle_selectany_attribute): Likewise.
5872 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5873 * config/m32c/m32c.c (function_vector_handler): Likewise.
5874 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5875 m68hc11_handle_fntype_attribute): Likewise.
5876 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5877 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5878 * config/mips/mips.c (mips_insert_attributes,
5879 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5880 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5881 rs6000_handle_struct_attribute): Likewise.
5882 * config/sh/sh.c (sh_insert_attributes,
5883 sh_handle_resbank_handler_attribute,
5884 sh_handle_interrupt_handler_attribute,
5885 sh2a_handle_function_vector_handler_attribute,
5886 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5887 Likewise.
5888 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5889 * config/spu/spu.c (spu_handle_fndecl_attribute,
5890 spu_handle_vector_attribute): Likewise.
5891 * config/stormy16/stormy16.c
5892 (xstormy16_handle_interrupt_attribute): Likewise.
5893 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5894 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5895
f41c4af3
JM
58962009-05-10 Joseph Myers <joseph@codesourcery.com>
5897
782dc37a 5898 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5899 (pp_translate_identifiers): New.
5900 (pp_identifier): Only conditionally translate identifier to locale
5901 character set.
5902 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5903 (pp_base_tree_identifier): Only conditionally translate identifier
5904 to locale character set.
5905 * c-pretty-print.c (M_): Define.
5906 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5907 fragments for conditional translation with M_.
5908 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5909 identifier translation.
5910
896d7dbd
RG
59112009-05-10 Richard Guenther <rguenther@suse.de>
5912
5913 PR tree-optimization/40081
5914 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5915 using the main variant of the element type. Do not fiddle with
5916 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5917
9a23acef
JH
59182009-05-09 Jan Hubicka <jh@suse.cz>
5919
5920 PR middle-end/40080
5921 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5922 indirect calls; verify cgraph afterwards.
5923
d563610d
JH
59242009-05-09 Jan Hubicka <jh@suse.cz>
5925
5926 PR bootstrap/40082
5927 * ipa.c (update_inlined_to_pointer): New function.
5928 (cgraph_remove_unreachable_nodes): Use it.
5929
f08a18d0
JH
59302009-05-09 Jan Hubicka <jh@suse.cz>
5931
5932 * tree-eh.c (struct leh_state): Remove prev_try.
5933 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5934 not track prev_try.
5935 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5936 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5937 remove_eh_handler_and_replace, foreach_reachable_handler,
5938 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5939 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5940 (gen_eh_region_cleanup): Update prototype.
5941
0afd7219
JH
59422009-05-09 Jan Hubicka <jh@suse.cz>
5943
5944 PR middle-end/40043
5945 * except.c (copy_eh_region): Always set prev_try.
5946 (redirect_eh_edge_to_label): Find outer try.
5947 (foreach_reachable_handler): When looking for prev try
5948 handle case where previous try is not going to be taken.
5949
ad6c0864
MM
59502009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5951
5952 PR tree-optimization/40049
5953 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5954 only vector/vector shifts, convert the type of the constant to the
5955 appropriate type to avoid building incorrect trees, which
5956 eventually have problems with garbage collection.
5957
c94f9067
JM
59582009-05-08 Joseph Myers <joseph@codesourcery.com>
5959
5960 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5961 -1 for complex floating-point types if honoring signed zeros.
5962
9187e02d
JH
59632009-05-08 Jan Hubicka <jh@suse.cz>
5964
20acb8a2
EB
5965 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5966 argument; handle correctly when profile is absent.
9187e02d
JH
5967 (build_cgraph_edges): Update.
5968 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5969 * cgraph.c: Do not include varray.h.
5970 (cgraph_set_call_stmt_including_clones): New function.
5971 (cgraph_create_edge_including_clones): Likewise
5972 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5973 (cgraph_update_edges_for_call_stmt): Handle clones.
5974 (cgraph_remove_node): Handle clone tree.
5975 (cgraph_remove_node_and_inline_clones): New function.
5976 (dump_cgraph_node): Dump clone tree.
5977 (cgraph_clone_node): Handle clone tree.
20acb8a2 5978 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5979 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5980 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5981 (cgraph_clone_info): New function.
9187e02d 5982 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5983 (cgraph_remove_node_and_inline_clones,
5984 cgraph_set_call_stmt_including_clones,
5985 cgraph_create_edge_including_clones,
5986 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5987 (cgraph_function_versioning): Use VEC argument.
5988 (compute_call_stmt_bb_frequency): Update prototype.
5989 (cgraph_materialize_all_clones): New function.
5990 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5991 (ipcp_create_replace_map): Update to VECtors.
5992 (ipcp_update_callgraph): Use virtual clones.
5993 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5994 (ipcp_update_profiling): Do not update local profiling.
5995 (ipcp_insert_stage): Use VECtors and virtual clones.
5996 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5997 (clone_of_p): New function.
5998 (cgraph_preserve_function_body_p): Use clone tree.
5999 (cgraph_optimize): Materialize clones.
6000 (cgraph_function_versioning): Update for VECtors.
6001 (save_inline_function_body): Use clone tree.
20acb8a2
EB
6002 (cgraph_materialize_clone): New function.
6003 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
6004 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6005 * ipa.c: Include gimple.h.
6006 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
6007 * ipa-prop.c (ipa_note_param_call): Update call to
6008 compute_call_stmt_bb_frequencycall.
9187e02d 6009 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 6010 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
6011 (copy_bb): Handle updating of clone tree; add new edge when new call
6012 appears.
6013 (expand_call_inline): Be strict about every call having edge.
6014 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6015 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
6016 (tree_function_versioning): Use VECtors; always remove unreachable
6017 blocks and fold conditionals.
6018 * tree-inline.h: Do not include varray.h.
9187e02d
JH
6019 (tree_function_versioning): Remove.
6020 * Makefile.in (GTFILES): Remove tree-inline.c
6021 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
6022 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6023 tree.
9187e02d 6024
9b86d6bb
L
60252009-05-08 H.J. Lu <hongjiu.lu@intel.com>
6026 Andrew Morrow <acm@google.com>
6027
6028 PR c/36892
6029 * c-common.c (c_common_attribute_table): Permit deprecated
6030 attribute to take an optional argument.
6031 (handle_deprecated_attribute): If the optional argument to
6032 __attribute__((deprecated)) is not a string ignore the attribute
6033 and emit a warning.
6034
6035 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6036 * c-typeck.c (build_component_ref): Likewise.
6037 (build_external_ref): Likewise.
6038
6039 * toplev.c (warn_deprecated_use): Add an attribute argument.
6040 Emit the message associated with __attribute__((deprecated)).
6041
6042 * toplev.h (warn_deprecated_use): Updated.
6043
6044 * doc/extend.texi: Document new optional parameter to
6045 __attribute__((deprecated))
6046
82ad047f
ME
60472009-05-08 Michael Eager <eager@eagercon.com>
6048
6049 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6050 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6051
788d3075
RG
60522009-05-08 Richard Guenther <rguenther@suse.de>
6053
6054 PR tree-optimization/40062
6055 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6056 Avoid exponential behavior.
6057
00952e97
PB
60582009-05-08 Paolo Bonzini <bonzini@gnu.org>
6059
6060 PR rtl-optimization/33928
6061 PR 26854
6062 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6063 process_uses, build_single_def_use_links): New.
6064 (update_df): Update use_def_ref.
6065 (forward_propagate_into): Use get_def_for_use instead of use-def
6066 chains.
6067 (fwprop_init): Call build_single_def_use_links and let it initialize
6068 dataflow.
6069 (fwprop_done): Free use_def_ref.
6070 (fwprop_addr): Eliminate duplicate call to df_set_flags.
6071 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
6072 df_rd_simulate_one_insn): New.
6073 (df_rd_bb_local_compute_process_def): Update head comment.
6074 (df_chain_create_bb): Use the new RD simulation functions.
6075 * df.h (df_rd_simulate_artificial_defs_at_top,
6076 df_rd_simulate_one_insn): New.
6077 * opts.c (decode_options): Enable fwprop at -O1.
6078 * doc/invoke.texi (-fforward-propagate): Document this.
6079
2ca862e9
JM
60802009-05-08 Joseph Myers <joseph@codesourcery.com>
6081
6082 PR c/24581
6083 * c-typeck.c (build_binary_op): Handle arithmetic between one real
6084 and one complex operand specially.
6085 * tree-complex.c (some_nonzerop): Do not identify a real value as
6086 zero if flag_signed_zeros.
6087
3e807ffc
PB
60882009-05-08 Paolo Bonzini <bonzini@gnu.org>
6089
6090 PR rtl-optimization/33928
7925c06c 6091 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 6092
1bfdbb29
PB
60932009-05-08 Paolo Bonzini <bonzini@gnu.org>
6094
6095 PR rtl-optimization/33928
e913423f
EB
6096 * loop-invariant.c (struct use): Add addr_use_p.
6097 (struct def): Add n_addr_uses.
6098 (struct invariant): Add cheap_address.
6099 (create_new_invariant): Set cheap_address.
6100 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
6101 (record_uses): Pass df_ref to record_use.
6102 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6103 used only as such.
1bfdbb29 6104
702cb2a0
KK
61052009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6106
6107 * config/sh/sh.c: Do not include c-pragma.h.
6108
5e8df753
AP
61092009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
6110
6111 * config/spu/spu.c: Remove include of c-common.h.
6112
6ec637a4
JJ
61132009-05-07 Janis Johnson <janis187@us.ibm.com>
6114
6115 PR c/39037
6116 * c-common.h (mark_valid_location_for_stdc_pragma,
6117 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6118 clear_float_const_decimal64, float_const_decimal64_p): New.
6119 * c.opt (Wunsuffixed-float-constants): New.
6120 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6121 unsuffixed float constant, handle new warning.
6122 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6123 * c-decl.c (c_scope): New flag float_const_decimal64.
6124 (set_float_const_decimal64, clear_float_const_decimal64,
6125 float_const_decimal64_p): New.
6126 (push_scope): Set new flag.
6127 * c-parser.c (c_parser_translation_unit): Mark when it's valid
6128 to use STDC pragmas.
6129 (c_parser_external_declaration): Ditto.
6130 (c_parser_compound_statement_nostart): Ditto.
6131 * c-pragma.c (valid_location_for_stdc_pragma,
6132 mark_valid_location_for_stdc_pragma,
6133 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6134 handle_pragma_float_const_decimal64): New.
6135 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6136 * cp/semantics.c (valid_location_for_stdc_pragma_p,
6137 set_float_const_decimal64, clear_float_const_decimal64,
6138 float_const_decimal64_p): New dummy functions.
6139 * doc/extend.texi (Decimal Float): Remove statement that the
6140 pragma, and suffix for double constants, are not supported.
6141 * doc/invoke.texi (Warning Options): List new option.
6142 (-Wunsuffixed-float-constants): New.
6143
45b9b2e9
SB
61442009-05-08 Steven Bosscher <steven@gcc.gnu.org>
6145
6146 * config/i386/i386.c: Do not include c-common.h.
6147
e71da632
MH
61482009-05-07 Mark Heffernan <meheff@google.com>
6149
6150 * doc/invoke.texi (Debugging Options): Document change of debugging
6151 dump location.
e913423f 6152 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
6153 aux_base_name directory.
6154
fe4c7bc6
HS
61552009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
6156
6157 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6158 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6159
3b3e44eb
RAE
61602009-05-07 Rafael Avila de Espindola <espindola@google.com>
6161
6162 * Makefile.in (install-plugin): Simplify a bit.
6163
fac41238
PB
61642009-05-07 Paolo Bonzini <bonzini@gnu.org>
6165
6166 * Makefile.in (OBJS-common): Add regcprop.o.
6167 (regcprop.o): New.
6168 * timevar.def (TV_CPROP_REGISTERS): New.
6169 * regrename.c (regrename_optimize): Return 0.
6170 (rest_of_handle_regrename): Delete.
6171 (pass_rename_registers): Point to regrename_optimize.
6172 (struct value_data_entry, struct value_data,
6173 kill_value_one_regno, kill_value_regno, kill_value,
6174 set_value_regno, init_value_data, kill_clobbered_value,
6175 kill_set_value, kill_autoinc_value, copy_value,
6176 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6177 replace_oldest_value_reg, replace_oldest_value_addr,
6178 replace_oldest_value_mem, copyprop_hardreg_forward_1,
6179 debug_value_data, validate_value_data): Move...
6180 * regcprop.c: ... here.
6181 (rest_of_handle_cprop): Delete.
6182 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6183
472e0df9
JJ
61842009-05-07 Jakub Jelinek <jakub@redhat.com>
6185
6186 PR middle-end/40057
6187 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
6188 GEN_INT for 1 << bitnum.
6189 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
6190 build_int_cst_type.
6191
0d50d55a
UB
61922009-05-07 Uros Bizjak <ubizjak@gmail.com>
6193
6194 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 6195 Remove wrong description of "nand" operation.
0d50d55a 6196
22f597f1
RG
61972009-05-06 Richard Guenther <rguenther@suse.de>
6198 Adam Nemet <anemet@caviumnetworks.com>
6199
6200 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
6201 comment. Add that if LHS is not a gimple register, then RHS1 has
6202 to be a single object (GIMPLE_SINGLE_RHS).
6203
641cac0b
AN
62042009-05-06 Adam Nemet <anemet@caviumnetworks.com>
6205
6206 * expr.c (get_def_for_expr): Move it up in the file.
6207 (store_field): When expanding a bit-field store, look at the
6208 defining gimple stmt for the masking conversion.
6209
5a5c6435
JJ
62102009-05-06 Janis Johnson <janis187@us.ibm.com>
6211
6212 PR middle-end/39986
6213 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6214 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6215 32-bit memcpy into long.
6216
96474f36
JJ
62172009-05-06 Jakub Jelinek <jakub@redhat.com>
6218
6219 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6220 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6221 new_reg_loc_descr.
6222 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6223 instead of appending DW_OP_deref*.
6224
529ff441
MM
62252009-05-06 Michael Matz <matz@suse.de>
6226
6227 PR middle-end/40021
6228 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6229 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6230
9419a9fd
RAE
62312009-05-06 Rafael Avila de Espindola <espindola@google.com>
6232
6233 * Makefile.in (install-plugin): Fix srcdir handling.
6234
fff1894c
AB
62352009-05-06 Andrey Belevantsev <abel@ispras.ru>
6236
6237 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6238 when processing for not_regs_needed bitmap.
6239 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6240 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
6241 handling it for rhs.
6242
700ae70c
L
62432009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6244
ab3426a7 6245 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 6246 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
6247 * config/i386/predicates.md (incdec_operand): Likewise.
6248 (aligned_operand): Likewise.
6249 * config/i386/sse.md (divv8sf3): Likewise.
6250 (sqrtv8sf2): Likewise.
6251
67341fb5
L
62522009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6253
6254 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6255
6256 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6257
87946f42
L
62582009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6259
6260 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6261 ssemodesuffixf2c with avxmodesuffixf2c.
6262
1202aec1
JM
62632009-05-06 Joseph Myers <joseph@codesourcery.com>
6264
6265 PR c/40032
aa016ff7 6266 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 6267
6e57a01d
JJ
62682009-05-05 Jakub Jelinek <jakub@redhat.com>
6269
6270 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6271 (struct tree_base): Adjust spacing for 8 bit boundaries.
6272 (struct tree_decl_common): Add decl_by_reference_flag bit.
6273 (DECL_BY_REFERENCE): Adjust.
6274 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6275 print DECL_BY_REFERENCE bit.
6276 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6277 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6278 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6279 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
6280 unconditionally.
6281
32f579f6
JJ
6282 PR middle-end/39666
6283 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6284 range of the type, but default label is missing, add it with one
6285 of the existing labels instead of adding a new label for it.
6286
617ab743
JM
62872009-05-05 Joseph Myers <joseph@codesourcery.com>
6288
6289 * dwarf.h: Remove.
6290
bf016de8
RAE
62912009-05-05 Rafael Avila de Espindola <espindola@google.com>
6292
6293 * Makefile.in (enable_plugin, plugin_includedir): New.
6294 (install): Depend on install-plugin.
6295 (PLUGIN_HEADERS): New.
6296 (install-plugin): New.
6297 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6298
7f8fdb9f
RG
62992009-05-05 Richard Guenther <rguenther@suse.de>
6300
6301 PR tree-optimization/40022
6302 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6303 the only vuse.
6304 (phivn_valid_p): Fix tuplification error, simplify.
6305 (phiprop_insert_phi): Add dumps.
6306 (propagate_with_phi): Simplify.
6307
8d972839
RG
63082009-05-05 Richard Guenther <rguenther@suse.de>
6309
6310 PR middle-end/40023
aa016ff7 6311 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 6312
66ba9b0b
SZ
63132009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
6314
6315 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
6316 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6317 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6318 block_ultimate_origin): Rearrange the declarations line to match the
6319 comment that indicates the .c file which the functions are defined.
6320 (dwarf2out_*, set_decl_rtl): Add comment.
6321 (get_base_address): Adjust comment.
6322 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6323 declarations line and add comment.
6324 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 6325
4f1e4960
JM
63262009-05-04 Joseph Myers <joseph@codesourcery.com>
6327
6328 * attribs.c (decl_attributes): Use %qE for identifiers in
6329 diagnostics.
6330 * cgraphunit.c (verify_cgraph_node): Translate function names to
6331 locale character set in diagnostics.
6332 * coverage.c (get_coverage_counts): Use %qE for identifiers in
6333 diagnostics.
6334 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6335 Document that functions are named in UTF-8.
6336 * expr.c (expand_expr_real_1): Translate function names to locale
6337 character set in diagnostics.
6338 * gimplify.c (omp_notice_variable, omp_is_private,
6339 gimplify_scan_omp_clauses): Use %qE for identifiers in
6340 diagnostics.
6341 * langhooks.c (lhd_print_error_function): Translate function names
6342 to locale character set.
6343 * langhooks.h (decl_printable_name): Document that return value is
6344 in internal character set.
6345 * stmt.c: Include pretty-print.h
6346 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6347 diagnostics.
6348 (resolve_operand_name_1): Translate named operand name to locale
6349 character set.
6350 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6351 diagnostics.
6352 * toplev.c (announce_function): Translate function names to locale
6353 character set.
6354 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6355 (default_tree_printer): Use pp_identifier or translate identifiers
6356 to locale character set. Mark "<anonymous>" for translation.
6357 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6358 for identifiers in diagnostics.
6359 * tree.c (handle_dll_attribute): Use %qE for identifiers in
6360 diagnostics.
6361 * varasm.c (output_constructor): Use %qE for identifiers in
6362 diagnostics.
6363
40540e68
RAE
63642009-05-04 Rafael Avila de Espindola <espindola@google.com>
6365
6366 * configure.ac: use ` ` instead of $()
6367 * configure: Regenerate.
6368
33fc884c
BE
63692009-05-05 Ben Elliston <bje@au.ibm.com>
6370
6371 * config/pa/linux-atomic.c: Eliminate conditional include of
6372 errno.h on non-LP64 systems to simplify build requirements.
6373
88388a52
JM
63742009-05-04 Joseph Myers <joseph@codesourcery.com>
6375
6376 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6377 diagnostics.
6378 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6379 and pass value to identifier_to_locale.
6380 (warn_variable_length_array): Make name a tree.
6381 (grokdeclarator): Separate diagnostic texts for named and unnamed
6382 declarators. Use %qE for named declarators.
6383 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6384 diagnostics.
6385 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6386 identifiers in diagnostics.
6387 * c-typeck.c (push_member_name, start_init): Pass identifiers to
6388 identifier_to_locale. Mark "anonymous" strings for translation.
6389
960c5c79
ME
63902009-05-04 Michael Eager <eager@eagercon.com>
6391
6392 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 6393 address for DImode/DFmode only if double-precision FP regs.
960c5c79 6394
d083fbba
ME
63952009-05-04 Michael Eager <eager@eagercon.com>
6396
6397 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6398 TARGET_SINGLE_FLOAT check.
6399
c3ba8d32
ME
64002009-05-04 Michael Eager <eager@eagercon.com>
6401
6402 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6403
edce9f18
ME
64042009-05-04 Michael Eager <eager@eagercon.com>
6405
6406 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6407 * config/rs6000/t-xilinx: New
6408
506d7b68
PB
64092009-05-04 Paolo Bonzini <bonzini@gnu.org>
6410
e913423f 6411 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
6412 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6413 * gcc/explow.c (memory_address): Use target hook.
6414 * gcc/targhooks.c (default_legitimize_address): New.
6415 * gcc/targhooks.h (default_legitimize_address): New.
6416 * gcc/target.h (legitimize_address): New.
6417 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6418 (TARGET_INITIALIZER): Include it.
6419 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6420
6421 * config/bfin/bfin-protos.h (legitimize_address): Remove.
6422 * config/bfin/bfin.c (legitimize_address): Remove.
6423 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
6424 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6425 Remove.
506d7b68
PB
6426 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6427 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6428
6429 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6430 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6431 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6432 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6433 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6434 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6435 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6436 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6437 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6438 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6439 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6440 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6441 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6442 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6443 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6444 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6445 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6446 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6447 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6448 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6449 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6450 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6451 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6452
6453 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6454 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6455 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6456 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6457 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6458 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6459 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6460 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6461 (thumb_legitimize_address): Delete.
6462 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6463 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6464 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6465 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6466 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
6467 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6468 Delete.
6469 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6470 Delete.
506d7b68
PB
6471
6472 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6473 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6474 * config/m32r/m32r.c (m32r_legitimize_address): New.
6475 * config/m68k/m68k.c (m68k_legitimize_address): New.
6476 * config/score/score.c (score_legitimize_address): Standardize.
6477 * config/score/score3.c (score3_legitimize_address): Standardize.
6478 * config/score/score3.h (score3_legitimize_address): Adjust.
6479 * config/score/score7.c (score7_legitimize_address): Standardize.
6480 * config/score/score7.h (score7_legitimize_address): Adjust.
6481 * config/sh/sh.c (sh_legitimize_address): New.
6482 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6483
6484 * gcc/config/s390/s390.c (legitimize_address): Rename to...
6485 (s390_legitimize_address): ... this.
6486 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6487 (sparc_legitimize_address): ... this.
6488 * gcc/config/i386/i386.c (legitimize_address): Rename to...
6489 (ix86_legitimize_address): ... this.
6490 * gcc/config/avr/avr.c (legitimize_address): Rename to...
6491 (avr_legitimize_address): ... this.
6492 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6493 (mn10300_legitimize_address): ... this.
6494 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6495 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6496 (alpha_expand_mov): Adjust call.
6497
6498 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6499 * config/spu/spu.c (spu_legitimize_address): Likewise.
6500 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6501 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6502
a3af5087
JM
65032009-05-04 Joseph Myers <joseph@codesourcery.com>
6504
6505 * intl.c (locale_encoding, locale_utf8): New.
6506 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6507 * intl.h (locale_encoding, locale_utf8): Declare.
6508 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
6509 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6510 New.
6511 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6512 argument.
6513 (pp_tree_identifier): Define to call pp_base_tree_identifier.
6514 (pp_base_tree_identifier): Declare as function.
6515 (identifier_to_locale): Declare.
6516 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 6517 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 6518
ea5cd5f1
RG
65192009-05-04 Richard Guenther <rguenther@suse.de>
6520
6521 PR middle-end/40015
6522 * builtins.c (fold_builtin_memory_op): Do not decay to element
6523 type if the size matches the whole array.
6524
ddc2690a
KH
65252009-05-04 Kazu Hirata <kazu@codesourcery.com>
6526
6527 * expmed.c (synth_mult): When trying out a shift, pass the result
6528 of a signed shift.
6529
ef268d34
KH
65302009-05-04 Kazu Hirata <kazu@codesourcery.com>
6531
6532 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6533 (shiftsub1_cost): New.
6534 (init_expmed): Compute shiftsub1_cost.
6535 (synth_mult): Optimize multiplications by constants of the form
6536 -(2^^m-1) for some constant positive integer m.
6537
255d3827
RG
65382009-05-03 Richard Guenther <rguenther@suse.de>
6539
6540 PR c/39983
6541 * c-typeck.c (array_to_pointer_conversion): Do not built
6542 ADDR_EXPRs of arrays of pointer-to-element type.
6543 * c-gimplify.c (c_gimplify_expr): Revert change fixing
6544 up wrong ADDR_EXPRs after-the-fact.
6545 * c-common.c (strict_aliasing_warning): Strip pointer
6546 conversions for obtaining the original type.
6547 * builtins.c (fold_builtin_memset): Handle array types.
6548 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6549 and array types
6550
16c33770
RG
65512009-05-03 Richard Guenther <rguenther@suse.de>
6552
6553 PR middle-end/23329
6554 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6555 Do not lose casts from array types with unknown extent to array
6556 types with known extent.
6557 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6558 alias set compatibility.
6559
62a67c94
MLI
65602009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
6561
6562 * flags.h (extra_warnings): Delete.
6563 * toplev.c (process_options): Handle Wuninitialized here.
6564 * opts.c (extra_warnings): Delete.
6565 (set_Wextra): Delete.
6566 (common_handle_option): -Wextra can be handled automatically.
6567 * c-opts.c (c_common_handle_option): Delete obsolete code.
6568 (c_common_post_options): Simplify comment.
6569 * common.opt (W): Add Var.
6570 (Wextra): Add Var.
6571 (Wuninitialized): Initialize to -1.
6572
8c7926c4
AN
65732009-05-03 Adam Nemet <anemet@caviumnetworks.com>
6574 Richard Guenther <rguenther@suse.de>
6575
6576 * expr.c (get_def_for_expr): New function.
6577 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6578 SSA rather than trees.
6579 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
6580 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6581
fa5da7de
JM
65822009-05-03 Joseph Myers <joseph@codesourcery.com>
6583
6584 * c-common.c (reswords): Add _Imaginary.
6585 * c-common.c (enum rid): Add RID_IMAGINARY.
6586
2ddd5020
PB
65872009-05-03 Paolo Bonzini <bonzini@gnu.org>
6588
6589 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6590 Patch by Richard Guenther.
6591
aea88c05
AS
65922009-05-03 Anatoly Sokolov <aesok@post.ru>
6593
6594 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6595 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6596 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6597 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6598 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6599 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6600 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6601 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6602 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6603 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6604 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6605 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6606 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6607 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6608 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6609 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6610 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6611 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6612
85e59f3a
RG
66132009-05-02 Richard Guenther <rguenther@suse.de>
6614
6615 PR tree-optimization/39940
6616 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6617 doing so.
6618
4636b850
RG
66192009-05-02 Richard Guenther <rguenther@suse.de>
6620
6621 PR middle-end/40001
6622 * tree-ssa.c (execute_update_addresses_taken): Properly check
6623 if we can mark a variable DECL_GIMPLE_REG_P.
6624 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6625 back to the end of the function.
6626 (is_gimple_reg_type): Remove complex type special casing.
6627 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6628 if not optimizing.
6629
5e10cb5a
BE
66302009-05-02 Ben Elliston <bje@au.ibm.com>
6631
6632 * doc/collect2.texi (Collect2): Document search path behaviour
6633 when configured with --with-ld.
6634
048bf48b
JH
66352009-05-02 Jan Hubicka <jh@suse.cz>
6636
6637 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6638 parameter; update callers.
aa016ff7
UB
6639 (coalesce_cost_edge): EH edges are costier because they needs
6640 splitting even if not critical and even more costier when there are
6641 multiple EH predecestors.
048bf48b 6642
d5c5f9ab
JH
66432009-05-02 Jan Hubicka <jh@suse.cz>
6644
6645 * except.c (remove_eh_handler_and_replace): Handle updating after
6646 removing TRY blocks.
6647
2ed1959a
EB
66482009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6649
6650 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6651
d363a7e7
SB
66522009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6653
6654 * varasm.c: Do not include c-pragma.h.
6655 * attribs.c: Do not incude c-common.h.
6656
9c3d55b4
MM
66572009-05-01 Michael Matz <matz@suse.de>
6658
6659 * calls.c (initialize_argument_information): Handle SSA names like
6660 decls with a non MEM_P DECL_RTL.
6661
ea264ca5
SB
66622009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6663
6664 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6665 * ipa-utils.c: Likewise.
6666 * ipa-type-escape.c: Likewise.
6667 * cgraphunit.c Do not include c-common.h.
6668 * ipa-pure-const.c: Likewise.
6669 * tree-if-conv.c: Likewise.
6670 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6671 * ipa-struct-reorg.c: Likewise.
6672 * tree-nomudflap.c: Likewise.
6673 * tree-ssa-structalias.c: Likewise.
6674
6c5d4d1a
SB
66752009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6676
6677 * store-motion.c: Many cleanups to make this pass a first-class
6678 citizen instead of an appendix to gcse load motion. Add TODO list
6679 to make this pass faster/cleaner/better.
6680
6681 (struct ls_expr): Post gcse.c-split cleanups.
6682 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6683 "stores" field to "avail_stores".
6684 (pre_ldst_mems): Rename to store_motion_mems.
6685 (pre_ldst_table): Rename to store_motion_mems_table.
6686 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6687 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6688 (ldst_entry): Rename to st_expr_entry, update users.
6689 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6690 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6691 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6692 update caller.
6c5d4d1a
SB
6693 (first_ls_expr): Rename to first_st_expr, update users.
6694 (next_ls_expr): Rename to next_st_expr, update users.
6695 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6696 fields properly for store motion instead of names inherited from load
6697 motion in gcse.c.
6698 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6699 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6700 are done with it.
6701
6702 (ae_kill): Rename to st_kill, update users.
6703 (ae_gen): Rename to st_avloc, update users.
6704 (transp): Rename to st_transp, update users.
6705 (pre_insert_map): Rename to st_insert_map, update users.
6706 (pre_delete_map): Rename to st_delete_map, update users.
6707 (insert_store, build_store_vectors, free_store_memory,
6708 one_store_motion_pass): Update for abovementioned changes.
6709
6710 (gcse_subst_count, gcse_create_count): Remove.
6711 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6712 and "n_stores_created", local variables.
6713
6714 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6715 use for_each_rtx.
6716
6717 (regvec, compute_store_table_current_insn): Remove.
6718 (reg_set_info, reg_clear_last_set): Remove.
6719 (compute_store_table): Use DF caches instead of local dataflow
6720 solvers.
6721
b02cec6e
JM
67222009-05-01 Joseph Myers <joseph@codesourcery.com>
6723
6724 * c-objc-common.c (c_tree_printer): Print identifiers with
6725 pp_identifier, not pp_string. Mark "({anonymous})" for
6726 translation.
6727 * c-pretty-print.c (pp_c_ws_string): New.
6728 (pp_c_cv_qualifier, pp_c_type_specifier,
6729 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6730 pp_c_storage_class_specifier, pp_c_function_specifier,
6731 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6732 pp_c_primary_expression, pp_c_postfix_expression,
6733 pp_c_unary_expression, pp_c_shift_expression,
6734 pp_c_relational_expression, pp_c_equality_expression,
6735 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6736 use pp_string and pp_c_ws_string in place of pp_identifier and
6737 pp_c_identifier for non-identifiers. Mark English strings for
6738 translation.
6739 * c-pretty-print.h (pp_c_ws_string): Declare.
6740
cd533689
PP
67412009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6742 Roland McGrath <roland@redhat.com>
6743
aa016ff7 6744 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6745 (ENABLE_LD_BUILDID): New configuration option.
6746 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6747 (LINK_BUILDID_SPEC): New macro.
6748 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6749 link_spec.
6750 * doc/install.texi: Document --enable-linker-build-id option.
6751 * configure: Rebuild.
6752 * config.in: Rebuild.
6753
ba6adec4
AN
67542009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6755
6756 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6757 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6758 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6759 MIPS_GP_SAVE_AREA_SIZE.
6760 * config/mips/mips.c (struct mips_frame_info): Update comment
6761 before arg_pointer_offset and hard_frame_pointer_offset.
6762 (mips_compute_frame_info): Update diagram before function: to
6763 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6764 indicate the position of frame_pointer_rtx with -fstack-protector and
6765 to show args_size. Don't allocate cprestore area for leaf functions
6766 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6767 cprestore_size.
6768 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6769
48f5b722
MM
67702009-04-30 Michael Matz <matz@suse.de>
6771
ba6adec4
AN
6772 PR tree-optimization/39955
6773 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6774
b65d6744
DK
67752009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6776
6777 * ira.c (setup_cover_and_important_classes): Use safe macro
6778 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6779 directly.
6780 * genpreds.c (write_tm_preds_h): Output suitable definition of
6781 REG_CLASS_FOR_CONSTRAINT.
6782
f136c8ae
RAE
67832009-04-30 Rafael Avila de Espindola <espindola@google.com>
6784
6785 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6786 instead of an int.
6787 * bitmap.c (bitmap_descriptor): Likewise.
6788 * ggc-common.c (loc_descriptor): Likewise.
6789 * varray.c (varray_descriptor): Likewise.
6790 * vec.c (vec_descriptor): Likewise.
6791
43fcece8 67922009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6793
6794 * Makefile.in (dce.o): Add $(EXCEPT_H).
6795 * dce.c: Include except.h and delete redundant vector definitions.
6796 (deletable_insn_p): Return false for non-call insns that can throw
6797 if DF is running.
6798
df35c271
SB
67992009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6800
6801 * gcse.c (ae_gen): Remove.
6802 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6803 and make non-static function to make it available in store-motion.c.
6804 Update call sites with search-and-replace.
6805 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6806 extract_mentioned_regs, extract_mentioned_regs_helper,
6807 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6808 store_killed_in_insn, store_killed_after, store_killed_before,
6809 build_store_vectors, insert_insn_start_basic_block, insert-store,
6810 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6811 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6812 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6813 * store-motion.c: ...new file. Also copy data structures from gcse.c
6814 and clean up to remove parts not used by store motion.
6815 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6816 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6817
f711a87a
RR
68182009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6819
6820 PR target/38571
6821 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6822 when optimizing for size.
6823
fa5ed76e
HPN
68242009-04-30 Hans-Peter Nilsson <hp@axis.com>
6825
6826 * gcse.c (gcse_constant_p): Fix typo in last change.
6827
0acbbdb0
RAE
68282009-04-30 Rafael Avila de Espindola <espindola@google.com>
6829
6830 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6831
82f5c05d
AK
68322009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6833
6834 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6835
6d8f135b
JW
68362009-04-29 James E. Wilson <wilson@codesourcery.com>
6837
6838 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6839 CONST_HIGH_PART result.
6840
c21ca196
AS
68412009-04-29 Anatoly Sokolov <aesok@post.ru>
6842
6843 * config/avr/avr.c (initial_elimination_offset): Rename to
6844 avr_initial_elimination_offset.
6845 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6846 change return type to bool.
6847 (avr_can_eliminate): New function.
6848 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6849 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6850 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6851 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6852 avr_initial_elimination_offset.
6853 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6854 (avr_initial_elimination_offset): Define.
6855
2a34bece 68562009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6857 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6858
6859 PR rtl-optimization/39938
6860 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6861 * cfgrtl.c: Include insn-attr.h.
6862 (rest_of_pass_free_cfg): New function.
6863 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6864 * resource.c (init_resource_info): Remove call to df_analyze.
6865
5dc7911e
RG
68662009-04-29 Richard Guenther <rguenther@suse.de>
6867
6868 PR target/39943
6869 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6870 allow conversion to signed integers.
6871
1fe479fd
RG
68722009-04-29 Richard Guenther <rguenther@suse.de>
6873
6874 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6875 shifts of floating point vectors if the shift amount is
6876 a constant multiple of the element size.
6877
8e001680
AK
68782009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6879 Michael Matz <matz@suse.de>
6880
6881 PR middle-end/39927
6882 PR bootstrap/39929
6883 * tree-outof-ssa.c (emit_partition_copy): New function.
6884 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6885 insert_part_to_rtx_on_edge): Perform the partition base var
6886 copy using emit_partition_copy.
6887 (insert_value_copy_on_edge): Convert constants to the right mode.
6888 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6889 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6890
e50e3081
BS
68912009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6892
6893 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6894 scan backwards to try to find a constant to initialize it.
6895
4e5d521b
BS
6896 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6897 insn before the loop_end instruction, don't look past labels.
6898
7c90021d
RG
68992009-04-29 Richard Guenther <rguenther@suse.de>
6900
6901 PR middle-end/39937
6902 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6903 loose type conversions.
6904 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6905 stmts only if there are no uses of its definition.
6906
97a988bc
BS
69072009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6908
6909 * config/bfin/bfin.h (splitting_loops): Declare.
6910 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6911 Reorder bit definitions to be ascending.
6912 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6913 * config/bfin/bfin.c (splitting_loops): New variable.
6914 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6915 (struct loop_info): Remove members INIT and LOOP_INIT.
6916 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6917 the LSETUP sequence. Allow LC to be loaded from any register, but
6918 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6919 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6920 set to 1.
6921 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6922 of reload_completed.
aa016ff7 6923
97a988bc
BS
6924 From Jie Zhang:
6925 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6926
0c463e16
RAE
69272009-04-29 Rafael Avila de Espindola <espindola@google.com>
6928
6929 * Makefile.in (PLUGIN_VERSION_H): New.
6930 (OBJS-common): Remove plugin-version.o.
6931 (plugin.o): Depend on (PLUGIN_VERSION_H).
6932 (plugin-version.o): Remove.
6933 * configure: Regenerate
6934 * configure.ac: Create plugin-version.h.
6935 * gcc-plugin.h (plugin_gcc_version): Remove.
6936 (plugin_default_version_check): Change signature.
6937 * plugin-version.c: Remove.
6938 * plugin.c: Include plugin-version.h.
6939 (str_plugin_gcc_version_name): Remove.
6940 (try_init_one_plugin): Pass gcc version to plugin_init.
6941 (plugin_default_version_check): Both gcc and plugin versions are now
6942 arguments.
6943
307e7eab
BS
69442009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6945
6946 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6947 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6948 Remove special case testing for last insn of inner loops. Don't fail
6949 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6950
c5d96723
BS
6951 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6952 DREGS rather than comparing directly. Remove code that tries to
6953 account for latencies.
6954
de0b4ad5
RG
69552009-04-29 Richard Guenther <rguenther@suse.de>
6956
6957 PR tree-optimization/39941
6958 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6959 eliminating an indirect call.
6960
3a19701a
RG
69612009-04-29 Richard Guenther <rguenther@suse.de>
6962
6963 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6964 parameter. Allow invariants as base if !require_lvalue.
6965 (verify_gimple_assign_single): Adjust.
6966
a0a31d1e
BS
69672009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6968
6969 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6970 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6971 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6972 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6973 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6974 a VEC_SELECT.
aa016ff7
UB
6975 * config/bfin/bfin.c (bfin_expand_builtin,
6976 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6977
795bd26a
RG
69782009-04-28 Richard Guenther <rguenther@suse.de>
6979
6980 * tree-vect-loop.c (get_initial_def_for_induction): Use
6981 correct types for pointer increment.
6982
04be270f
KG
69832009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6984
6985 * toplev.c (print_version): Update GMP version string calculation.
6986
e1a3b85c
EB
69872009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6988
6989 PR rtl-optimization/39938
6990 * resource.c (init_resource_info): Add call to df_analyze.
6991
8224166e
UB
69922009-04-28 Uros Bizjak <ubizjak@gmail.com>
6993
6994 * config/alpha/alpha.md (usegp): Cast the result of
6995 alpha_find_lo_sum_using_gp to enum attr_usegp.
6996 * config/alpha/alpha.c (override_options): Remove end-of-structure
6997 marker element from cpu_table. Use array size of cpu_table to handle
6998 -mcpu and -mtune options.
6999 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7000
c5f0fe67
JM
70012009-04-28 Joseph Myers <joseph@codesourcery.com>
7002
7003 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7004 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
7005 tune_32 and tune_64.
7006 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7007 support on PowerPC.
7008 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7009 * config/rs6000/option-defaults.h: ... here. New file.
7010 (OPT_64, OPT_32): Define.
7011 (MASK_64BIT): Define to 0 if not already defined.
7012 (OPT_ARCH64, OPT_ARCH32): Define.
7013 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7014 and tune_64.
7015
0c48a567
RR
70162009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7017
7018 * config/arm/arm.c (arm_override_options): Emit error on using
7019 fpa with AAPCS.
7020
f1028b9d
UB
70212009-04-28 Uros Bizjak <ubizjak@gmail.com>
7022
7023 PR rtl-optimization/39914
7024 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7025 registers for allocnos created from user-defined variables only
7026 when not optimizing.
7027
e0dd989a
RG
70282009-04-28 Richard Guenther <rguenther@suse.de>
7029
7030 PR middle-end/39937
7031 * fold-const.c (fold_binary): Use distribute_real_division only
7032 on float types.
7033
9a17c91d
SE
70342009-04-28 Steve Ellcey <sje@cup.hp.com>
7035
7036 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7037 add hpux-stdint.h to tm_file.
7038 (hppa[12]*-*-hpux11*): Ditto.
7039 (ia64*-*-hpux*): Ditto.
7040 * config/hpux-stdint.h: New.
60839f5d 7041 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 7042 __STDC_EXT__ for all compiles.
60839f5d
EB
7043 * config/pa/pa-hpux.h: Ditto.
7044 * config/pa/pa-hpux10.h: Ditto.
7045 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 7046
af04e659
CM
70472009-04-28 Catherine Moore <clm@codesourcery.com>
7048
7049 * debug.h (set_name): Add comment.
7050
04ef80ce
AP
70512009-04-28 Andrew Pinski <pinskia@gmail.com>
7052
7053 PR target/39929
7054 * config/darwin.c (machopic_gen_offset): Check
7055 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7056 * config/arm/arm.c (require_pic_register): Likewise.
7057
65ad77af
PB
70582009-04-28 Paolo Bonzini <bonzini@gnu.org>
7059
8224166e
UB
7060 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7061 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7062 m32c_promote_prototypes): Delete.
65ad77af 7063
1b15a008
MM
70642009-04-28 Michael Matz <matz@suse.de>
7065
7066 PR middle-end/39922
7067 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7068 constants.
7069
7569a6cc
RG
70702009-04-28 Richard Guenther <rguenther@suse.de>
7071
f1028b9d 7072 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 7073
ead204d9
RR
70742009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7075
7076 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7077 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7078 * config/arm/arm-tune.md: Regenerate.
7079
f2c45f08 70802009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 7081
f2c45f08
AM
7082 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7083 block if there are complex incoming edges.
7084 (sel_merge_blocks): Remove useless assert.
7085 (sel_redirect_edge_and_branch): Check that edge was redirected.
7086 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7087 (sel_find_rgns): Delete declaration.
7088 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7089 the region when it is not a preheader.
7090
7a00d767
UB
70912009-04-28 Uros Bizjak <ubizjak@gmail.com>
7092
7093 PR c/39323
7094 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7095
448ee662
RG
70962009-04-28 Richard Guenther <rguenther@suse.de>
7097
7098 * tree.h (SSA_NAME_VALUE): Remove.
7099 (struct tree_ssa_name): Remove value_handle member.
7100 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7101 array for jump threading.
7102 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7103 SSA_NAME_VALUEs.
7104 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7105 * tree-flow.h (threadedge_initialize_values): Declare.
7106 (threadedge_finalize_values): Likewise.
7107 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7108 (SSA_NAME_VALUE): Define.
7109 (threadedge_initialize_values): New function.
7110 (threadedge_finalize_values): Likewise.
7111 * tree-ssa-dom.c (ssa_name_values): New global variable.
7112 (SSA_NAME_VALUE): Define.
f1028b9d 7113 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 7114
8644a673
IR
71152009-04-28 Ira Rosen <irar@il.ibm.com>
7116
7117 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7118 Use REPORT_VECTORIZED_LOCATIONS instead
7119 REPORT_VECTORIZED_LOOPS.
7120 * tree-vectorizer.c (vect_verbosity_level): Make static.
7121 (vect_loop_location): Rename to vect_location.
7122 (vect_set_verbosity_level): Update comment.
7123 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7124 and vect_location.
7125 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7126 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7127 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
7128 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7129 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 7130 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 7131 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
7132 REPORT_UNVECTORIZED_LOCATIONS.
7133 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7134 and vect_used_in_loop and to vect_unused_in_scope and
7135 vect_used_in_scope.
7136 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7137 (vect_verbosity_level): Remove declaration.
7138 (vect_analyze_operations): Likewise.
7139 (vect_analyze_stmt): Declare.
7140 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7141 REPORT_UNVECTORIZED_LOCATIONS.
7142 (vect_get_loop_niters): Fix indentation.
7143 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7144 (vect_analyze_loop_operations): New function.
7145 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7146 vect_analyze_operations.
7147 (vect_is_simple_reduction): Use new names.
7148 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
7149 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7150 to specify whether the data references can be a part of interleaving
7151 chain.
8644a673
IR
7152 (vect_analyze_data_ref_dependence): Use new names.
7153 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7154 (vect_create_addr_base_for_vector_ref): Remove redundant code.
7155 * tree-vect-patterns.c (widened_name_p): Use new names.
7156 (vect_recog_dot_prod_pattern): Likewise.
7157 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7158 (process_use, vect_mark_stmts_to_be_vectorized,
7159 vect_model_simple_cost, vect_model_store_cost,
7160 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7161 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7162 vectorizable_operation, vectorizable_type_demotion,
7163 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7164 vectorizable_condition): Likewise.
7165 (vect_analyze_operations): Split into vect_analyze_loop_operations
7166 and ...
7167 (vect_analyze_stmt): ... new function.
7168 (new_stmt_vec_info): Use new names.
7169 (vect_is_simple_use): Use new names and fix comment.
7170 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7171 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7172
b91322f2
UB
71732009-04-28 Uros Bizjak <ubizjak@gmail.com>
7174
7175 PR target/39911
7176 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7177 and integer modes for x87 operands. Do not ICE for unsupported size,
7178 generate error instead. Generate error for unsupported operand types.
7179 ['z']: Do not handle HImode memory operands specially. Warning
7180 for floating-point operands. Fallthru to 'Z' for unsupported operand
7181 types. Do not ICE for unsupported size, generate error instead.
7182 (output_387_binary_op): Use %Z to output operands.
7183 (output_fp_compare): Ditto.
7184 (output_387_reg_move): Ditto.
7185
b2ed71b6
BE
71862009-04-28 Ben Elliston <bje@au.ibm.com>
7187
7188 PR c++/35652
7189 Revert:
7190
7191 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7192
7193 * builtins.c (c_strlen): Do not warn here.
7194 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7195 * c-common.c (pointer_int_sum): Take an explicit location.
7196 Warn about offsets out of bounds.
7197 * c-common.h (pointer_int_sum): Adjust declaration.
7198
81f40b79
ILT
71992009-04-27 Ian Lance Taylor <iant@google.com>
7200
7201 * collect2.c (is_ctor_dtor): Change type of ret field in struct
7202 names to symkind.
7203 * dce.c (run_fast_df_dce): Change type of old_flags to int.
7204 * df-core.c (df_set_flags): Change return type to int. Change
7205 type of old_flags to int.
7206 (df_clear_flags): Likewise.
7207 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7208 (df_get_conditional_uses): Likewise.
7209 * df.h (df_set_flags, df_clear_flags): Update declarations.
7210 * dwarf2out.c (struct indirect_string_node): Change type of form
7211 field to enum dwarf_form.
7212 (AT_string_form): Change return type to enum dwarf_form.
7213 * fixed-value.c (fixed_compare): Add cast to enum type.
7214 * fwprop.c (update_df): Change 0 to VOIDmode.
7215 * gensupport.c: Change 0 to UNKNOWN.
7216 * gimple.h (gimple_cond_code): Add cast to enum type.
7217 * haifa-sched.c (reemit_notes): Add cast to enum type.
7218 * hooks.c (hook_int_void_no_regs): Remove function.
7219 * hooks.h (hook_int_void_no_regs): Remove declaration.
7220 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 7221 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
7222 * real.c (real_arithmetic): Add cast to enum type.
7223 (real_compare): Likewise.
7224 * target.h (struct gcc_target): Change return type of
7225 branch_target_register_class to enum reg_class.
7226 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7227 default_branch_target_register_class.
7a00d767 7228 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 7229 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 7230 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
7231 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7232 cast to int.
7233 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7234 ERROR_MARK.
7235 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7236 vect_uninitialized_def. Change 0 to ERROR_MARK.
7237 * tree-vect-stmts.c (supportable_widening_operation): Don't
7238 initialize icode1 and icode2.
7a00d767 7239 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
7240 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7241 and to STD_C89.
7242 (cmn_err_flag_specs): Change 0 to STD_C89.
7243 (cmn_err_char_table): Likewise.
7244 * config/arm/arm.c (get_arm_condition_code): Change type of code
7245 to enum arm_cond_code.
7246 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7247 (IWMMXT_BUILTIN2): Likewise.
7248 (neon_builtin_type_bits): Don't define typedef.
7249 (neon_builtin_datum): Change type of bits field to int.
7250 (arm_expand_neon_args): Add cast to enum type.
7251 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7252 TLS_MODEL_NONE.
7253 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
7254 casts to enum type.
7255 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7256 MIPS_FP_COND_f.
7257 * config/mips/mips.md (jal_macro): Return enum constant.
7258 (single_insn): Likewise.
7259 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7260 CODE_FOR_nothing.
7261 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7262 casts to enum type.
7263 * config/s390/s390.c (s390_tune_flags): Change type to int.
7264 (s390_arch_flags): Likewise.
7a00d767 7265 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
7266 * config/s390/s390.h (s390_tune_flags): Update declaration.
7267 (s390_arch_flags): Likewise.
7268 * config/sh/sh.c (prepare_move_operands): Compare
7269 tls_symbolic_operand result with enum constant.
7270 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7271 (sh_expand_prologue): Add cast to enum type.
7272 (sh_expand_epilogue): Likewise.
7273 (tls_symbolic_operand): Change return type to enum tls_model.
7274 (fpscr_set_from_mem): Add cast to enum type.
7275 (legitimize_pic_address): Compare tls_symbolic_operand result with
7276 enum constant.
7277 (sh_target_reg_class): Change return type to enum reg_class.
7278 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7279 PROCESSOR_xxx.
7a00d767
UB
7280 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7281 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
7282 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7283 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7284 (delayed_branch, tls_call_delay): Likewise.
7285 (eligible_for_sibcall_delay): Likewise.
7286 (eligible_for_return_delay): Likewise.
7287 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7288 (spu_expand_builtin_1): Likewise.
7289
7290 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7291 for all types of conversions.
7292 (output_init_element): Issue -Wc++-compat warning if needed when
7293 initializing a bitfield with enum type.
7294 * c-parser.c (c_parser_expression): Set original_type to
7295 original_type of right hand operand of comman operator.
7296
e4ae5e77
RW
72972009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7298
7299 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7300 grammar nits.
7a00d767 7301 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
7302 * doc/cpp.texi (Standard Predefined Macros)
7303 (Implementation-defined behavior): Likewise.
7a00d767 7304 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
7305 * doc/gimple.texi (GIMPLE Exception Handling)
7306 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 7307 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
7308 * doc/invoke.texi (Warning Options, Optimize Options)
7309 (AVR Options, Darwin Options): Likewise.
7310 (Optimize Options): Reformulate -fwhole-program description.
7311 * doc/loop.texi (Lambda): Likewise.
7312 * doc/md.texi (Output Template, Define Constraints)
7313 (Standard Names, Insn Splitting): Likewise.
7314 * doc/options.texi (Option properties): Likewise.
7315 * doc/passes.texi (Tree-SSA passes): Likewise.
7316 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7317 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7318 (File Names and DBX): Likewise.
7319 * doc/trouble.texi (Incompatibilities): Likewise.
7320
1883802f 73212009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
7322
7323 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7324 instruction is correct.
7325
1883802f 73262009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
7327
7328 Allow non-constant arguments to conversion intrinsics.
7329 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7330 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7331 * spu.c (print_operand): Handle 'v' and 'w'.
7332 (exp2_immediate_p, spu_gen_exp2): Define.
7333 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7334 spu_convtf_1): Update parameter descriptions.
7a00d767 7335 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
7336 * constraints.md ('v', 'w'): New.
7337 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7338 Remove.
7339 (i2f, I2F): New define_mode_attr.
7340 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7341 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7342 fixuns_truncv4sfv4si2): Update to use mode attribute.
7343 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7344 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7345 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7346 patterns for combine.
7347
5f39ad47
SB
73482009-04-27 Steven Bosscher <steven@gcc.gnu.org>
7349
7350 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7351 (cprop, hoist, pre, store_motion): New debug counters.
7352 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7353 is not an RTL pass anymore.
7354 (pass_profiling): Remove extern decl for pass removed in 2005.
7355 (pass_gcse, pass_jump_bypass): Remove.
7356 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7357 to 0 for clean state.
7358 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7359 * cse.c (gate_handle_cse_after_global_opts,
7360 rest_of_handle_cse_after_global_opts): New functions.
7361 (pass_cse_after_global_opts): New pass, does local CSE.
7362 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7363 (TV_CPROP): New timevar.
7364 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7365 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7366 (gcse_main, recompute_all_luids): Remove.
7367 (compute_hash_table_work): Call max_reg_num instead of reading
7368 max_gcse_regno.
7369 (cprop_jump): Don't set run_jump_opt_after_gcse.
7370 (constprop_register): Always allow to alter jumps.
7371 (cprop_insn): Likewise.
7372 (do_local_cprop): Likewise.
7373 (local_cprop_pass): Likewise. Return non-zero if something changed.
7374 (cprop): Remove function, fold interesting bits into one_cprop_pass.
7375 (find_implicit_sets): Add note about missed optimization opportunity.
7376 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7377 pass_rtl_cprop execute function.
7378 Don't bother tracking the pass number, each pass gets its own dumpfile
7379 now anyway.
7380 Always allow to alter jumpsand bypass jumps.
7381 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7382 will just find no suitable set.
7383 (pre_edge_insert): Fix dumping, this function is for PRE only.
7384 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7385 pass_rtl_pre execute function.
7386 (hoist_code): Return non-zero if something changed. Keep track of
7387 substitutions and insertions for statistics gathering similar to PRE.
7388 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7389 called from the pass_rtl_hoist execute function. Show pass statistics.
7390 (compute_store_table): Use max_reg_num directly instead of using the
7391 formerly global max_gcse_regno.
7392 (build_store_vectors): Likewise.
7393 (replace_store_insn): Fix dumping.
7394 (store_motion): Rename to ...
7395 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
7396 pass, called from the pass_rtl_store_motion execute function. Keep
7397 track of substitutions and insertions for statistics gathering similar
7398 to PRE.
7399 (bypass_jumps): Remove, fold interesting bits into ...
7400 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
7401 from the pass_rtl_cprop execute function.
7402 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7403 pass_jump_bypass): Remove.
7404 (gate_handle_gcse, rest_of_handle_gcse): Remove.
7405 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7406 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7407 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7408 (gate_rtl_store_motion, execute_rtl_store_motion,
7409 pass_rtl_store_motion): New.
7410 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7411 make it clear that -fcse-skip-blocks is a no-op for backward compat.
7412 * passes.c (init_optimization_passes): Remove pass_gcse and
7413 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
7414 and cse_after_global_opts in place of pass_gcse. Schedule cprop
7415 instead of pass_jump_bypass.
7416
c685de4a
RG
74172009-04-27 Richard Guenther <rguenther@suse.de>
7418
7419 PR middle-end/39928
7420 * gimplify.c (gimplify_expr): If we are required to create
7421 a temporary make sure it ends up as register.
7422
72d41f29
L
74232009-04-27 H.J. Lu <hongjiu.lu@intel.com>
7424
7425 PR target/39903
7426 * config/i386/i386.c (construct_container): Don't call
7427 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7428 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7429
e97809c6
MM
74302009-04-27 Michael Matz <matz@suse.de>
7431
7432 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7433 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7434 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7435 (dump_replaceable_exprs): Take a bitmap.
7436 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7437 array.
7438 (expand_gimple_basic_block): Likewise.
7439 * tree-ssa-ter.c (struct temp_expr_table_d): Make
7440 replaceable_expressions member a bitmap.
7441 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7442 (mark_replaceable): Likewise.
7443 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7444 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7445
211ca15c
RG
74462009-04-27 Richard Guenther <rguenther@suse.de>
7447
7448 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7449 (verify_stmts): Dispatch to gimple/type verification code.
7450 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7451 issue with call argument types.
7452
fca5f3d1
MM
74532009-04-27 Michael Matz <matz@suse.de>
7454
7455 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7456 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7457 to above.
7458
a1fa3e79 74592009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 7460 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
7461
7462 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7463 a label's basic block.
7464 (mark_target_live_regs): Tidy and rework obsolete comments.
7465 Change back DF problem to LIVE. If a label starts a basic block,
7466 assume that all registers that used to be live then still are.
7467 (init_resource_info): If a label starts a basic block, set its
7468 BLOCK_FOR_INSN accordingly.
7469 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7470
33b223c0
RG
74712009-04-27 Richard Guenther <rguenther@suse.de>
7472
7473 * tree-flow-inline.h (function_ann): Remove.
7474 (get_function_ann): Likewise.
7475 * tree-dfa.c (create_function_ann): Remove.
7476 * tree-flow.h (struct static_var_ann_d): Remove.
7477 (struct function_ann_d): Likewise.
7478 (union tree_ann_d): Remove fdecl member.
7479 (function_ann_t): Remove.
7480 (function_ann, get_function_ann, create_function_ann): Remove
7481 declarations.
7482
e3136fa2
UB
74832009-04-27 Uros Bizjak <ubizjak@gmail.com>
7484
7485 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7486
f87c9042
JH
74872009-04-27 Jan Hubicka <jh@suse.cz>
7488
7489 * ipa-pure-const.c (struct funct_state_d): New fields
7490 state_previously_known, looping_previously_known; remove
7491 state_set_in_source.
7492 (analyze_function): Use new fields.
7493 (propagate): Avoid assumption that state_set_in_source imply
7494 nonlooping.
7495
7496 * tree-ssa-loop-niter.c (finite_loop_p): New function.
7497 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7498 * cfgloop.h (finite_loop_p): Declare.
7499
33abd718
MM
75002009-04-26 Michael Matz <matz@suse.de>
7501
e3136fa2 7502 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 7503
ddc34084
MM
75042009-04-26 Michael Matz <matz@suse.de>
7505
7506 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7507 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7508 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7509 pass_mark_used_blocks): Remove.
7510 * tree-optimize.c (pass_free_datastructures,
7511 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7512 * passes.c (init_optimization_passes): Don't call
7513 pass_mark_used_blocks, remove dead code.
7514
1fec7ed4
L
75152009-04-26 H.J. Lu <hongjiu.lu@intel.com>
7516
7517 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7518 * tree-ssa-live.h (register_ssa_partition): Likewise.
7519
4e3825db
MM
75202009-04-26 Michael Matz <matz@suse.de>
7521
7522 Expand from SSA.
7523 * builtins.c (fold_builtin_next_arg): Handle SSA names.
7524 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7525 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7526 SSA names.
7527 (compare_pairs): Swap cost comparison.
7528 (coalesce_ssa_name): Don't use change_partition_var.
7529 * tree-nrv.c (struct nrv_data): Add modified member.
7530 (finalize_nrv_r): Set it.
7531 (tree_nrv): Use it to update statements.
7532 (pass_nrv): Require PROP_ssa.
7533 * tree-mudflap.c (mf_decl_cache_locals,
7534 mf_build_check_statement_for): Use make_rename_temp.
7535 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7536 * alias.c (find_base_decl): Handle SSA names.
7537 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7538 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7539 * rtl.h (set_reg_attrs_for_parm): Declare.
7540 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7541 to "optimized", remove unused locals at finish.
7542 (execute_free_datastructures): Make global, call
7543 delete_tree_cfg_annotations.
7544 (execute_free_cfg_annotations): Don't call
7545 delete_tree_cfg_annotations.
7546
7547 * ssaexpand.h: New file.
7548 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 7549 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
7550 (expand_expr_real_1): Expand SSA names.
7551 * cfgexpand.c (toplevel): Include ssaexpand.h.
7552 (SA): New global variable.
7553 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7554 (SSAVAR): New macro.
7555 (set_rtl): New helper function.
7556 (add_stack_var): Deal with SSA names, use set_rtl.
7557 (expand_one_stack_var_at): Likewise.
7558 (expand_one_stack_var): Deal with SSA names.
7559 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7560 before unique numbers.
7561 (expand_stack_vars): Use set_rtl.
7562 (expand_one_var): Accept SSA names, add asserts for them, feed them
7563 to above subroutines.
7564 (expand_used_vars): Expand all partitions (without default defs),
7565 then only the local decls (ignoring those expanded already).
7566 (expand_gimple_cond): Remove edges when jumpif() expands an
7567 unconditional jump.
7568 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7569 or remove abnormal edges. Ignore insns setting the LHS of a TERed
7570 SSA name.
7571 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7572 members of SA; deal with PARM_DECL partitions here; expand
7573 all PHI nodes, free tree datastructures and SA. Commit instructions
7574 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7575 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7576 info and statements at start, collect garbage at finish.
7577 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7578 (VAR_ANN_PARTITION) Remove.
7579 (change_partition_var): Don't declare.
7580 (partition_to_var): Always return SSA names.
7581 (var_to_partition): Only accept SSA names.
7582 (register_ssa_partition): Only check argument.
7583 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7584 member.
7585 (delete_var_map): Don't free it.
7586 (var_union): Only accept SSA names, simplify.
7587 (partition_view_init): Mark only useful SSA names as used.
7588 (partition_view_fini): Only deal with SSA names.
7589 (change_partition_var): Remove.
7590 (dump_var_map): Use ssa_name instead of partition_to_var member.
7591 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7592 basic blocks.
7593 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7594 (struct _elim_graph): New member const_dests; nodes member vector of
7595 ints.
7596 (set_location_for_edge): New static helper.
7597 (create_temp): Remove.
7598 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7599 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7600 (new_elim_graph): Allocate const_dests member.
7601 (clean_elim_graph): Truncate const_dests member.
7602 (delete_elim_graph): Free const_dests member.
7603 (elim_graph_size): Adapt to new type of nodes member.
7604 (elim_graph_add_node): Likewise.
7605 (eliminate_name): Likewise.
7606 (eliminate_build): Don't take basic block argument, deal only with
7607 partition numbers, not variables.
7608 (get_temp_reg): New static helper.
7609 (elim_create): Use it, deal with RTL temporaries instead of trees.
7610 (eliminate_phi): Adjust all calls to new signature.
7611 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7612 (rewrite_trees): Only do checking.
7613 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7614 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7615 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7616 contains_tree_r, MAX_STMTS_IN_LATCH,
7617 process_single_block_loop_latch, analyze_edges_for_bb,
7618 perform_edge_inserts): Remove.
7619 (expand_phi_nodes): New global function.
7620 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7621 functions, initialize new parameter, remember partitions having a
7622 default def.
7623 (finish_out_of_ssa): New global function.
7624 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7625 don't reset in_ssa_p here, don't disable TER when mudflap.
7626 (pass_del_ssa): Remove.
7627 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7628 partition members.
7629 (execute_free_datastructures): Declare.
7630 * Makefile.in (SSAEXPAND_H): New variable.
7631 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7632 * basic-block.h (commit_one_edge_insertion): Declare.
7633 * passes.c (init_optimization_passes): Move pass_nrv and
7634 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7635 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7636 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7637 (redirect_branch_edge): Deal with super block when expanding, split
7638 out jump patching itself into ...
7639 (patch_jump_insn): ... here, new static helper.
7640
17c665a9
MM
76412009-04-26 Michael Matz <matz@suse.de>
7642
7643 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7644 beyond num_ssa_names.
7645 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7646 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7647
92061771
JJ
76482009-04-26 Jakub Jelinek <jakub@redhat.com>
7649
ce372372
JJ
7650 PR inline-asm/39543
7651 * fwprop.c (forward_propagate_asm): New function.
7652 (forward_propagate_and_simplify): Propagate also into __asm, if it
7653 doesn't increase the number of referenced registers.
7654
92061771
JJ
7655 PR c/39889
7656 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7657
76582009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7659
7660 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7661 note_nonlocal_vla_type for nonlocal VLAs.
7662 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7663 contains_remapped_vars, remap_vla_decls): New functions.
7664 (convert_nonlocal_reference_stmt): If not optimizing, call
7665 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7666 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7667 if it wasn't found in var_map.
7668 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7669 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7670 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7671 declare_vars.
7672 * gimplify.c (nonlocal_vlas): New variable.
7673 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7674 referenced VLAs.
7675 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7676
4561e242
JJ
7677 * dwarf2out.c (loc_descr_plus_const): New function.
7678 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7679 mem_loc_descriptor, loc_descriptor_from_tree_1,
7680 descr_info_loc, gen_variable_die): Use it.
7681
a9548ddf
JJ
7682 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7683 !TREE_STATIC VAR_DECLs.
7684 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7685 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7686 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7687 DECL_BY_REFERENCE is valid.
7688 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7689 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7690 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7691 Copy DECL_BY_REFERENCE.
7692 (struct nesting_copy_body_data): New type.
7693 (nesting_copy_decl): New function.
7694 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7695 if they have variable length.
7696
10555d08
MM
76972009-04-26 Michael Matz <matz@suse.de>
7698
7699 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7700 mark new temporaries for renaming.
7701
e11187cc
JM
77022009-04-26 Joseph Myers <joseph@codesourcery.com>
7703
7704 PR c/39581
7705 * c-decl.c (global_bindings_p): Return negative value.
7706 (c_variable_size): New. Based on variable_size from
7707 stor-layout.c.
7708 (grokdeclarator): Call c_variable_size not variable_size.
7709
f6a51d31
UB
77102009-04-26 Uros Bizjak <ubizjak@gmail.com>
7711
7712 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7713
4b97723d
KT
77142009-04-26 Kai Tietz <kai.tietz@onevision.com>
7715
7716 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7717 Redefine it to just use mingw/include.
7718 (ASM_SPEC): Rules for -m32 and -m64.
7719 (LINK_SPEC): Use Likewise.
7720 (SPEC_32): New define.
7721 (SPEC_64): Likewise.
7722 (SUB_LINK_SPEC): Likewise.
7723 (MULTILIB_DEFAULTS): New define.
7724 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7725 Add multilib options.
7726 (MULTILIB_DIRNAMES): Likewise.
7727 (MULTILIB_OSDIRNAMES): Likewise.
7728 (LIBGCC): Likewise.
7729 (INSTALL_LIBGCC): Likewise.
7730
991d6621
JM
77312009-04-26 Joseph Myers <joseph@codesourcery.com>
7732
7733 PR c/39556
7734 * c-tree.h (enum c_inline_static_type): New.
7735 (record_inline_static): Declare.
7736 * c-decl.c (struct c_inline_static, c_inline_statics,
7737 record_inline_static, check_inline_statics): New.
7738 (pop_file_scope): Call check_inline_statics.
7739 (start_decl): Call record_inline_static instead of pedwarning
7740 directly for static in inline function.
7741 * c-typeck.c (build_external_ref): Call record_inline_static
7742 instead of pedwarning directly for static referenced in inline
7743 function.
7744
4a81774c
SB
77452009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7746
7747 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7748 not new but only being rescanned.
7749 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7750 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7751 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7752 record_set_info, compute_set, grealloc): Remove.
7753 (recompute_all_luids): New function.
7754 (gcse_main): Don't compute sets, and don't do related memory
7755 allocations/free-ing. If something changed before the end of the
7756 pass, update LUIDs using recompute_all_luids.
7757 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7758 (free_gcse_mem): Don't free it either.
7759 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7760 Use the df insn LUIDs.
7761 (load_killed_in_block): Likewise.
7762 (compute_hash_table_work): Don't compute reg_set_in_block.
7763 (compute_transp): Use DF_REG_DEF_CHAINs.
7764 (local_cprop_pass): Don't use compute_sets and related functions.
7765 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7766 Use get_max_uid() instead of max_cuid.
7767 (insert_insn_end_basic_block, pre_insert_copy_insn,
7768 update_ld_motion_stores): Don't try to
7769 keep reg_set tables up to date.
7770 (pre_insert_copies): Use df insn LUIDs.
7771 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7772 (reg_set_info): Don't use extra bitmap argument.
7773 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7774 information to compute regs_set_in_block.
7775 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7776 (bypass_jumps): Don't use compute_sets and friends.
7777
e8f99a9d
RW
77782009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7779
7780 PR testsuite/39710
7781 * opts.c (undocumented_msg): Do not leave blank even with
7782 ENABLE_CHECKING.
7783
6895bac8
JM
77842009-04-25 Joseph Myers <joseph@codesourcery.com>
7785
7786 * c-decl.c (build_enumerator): Allow values folding to integer
7787 constants but not integer constant expressions with a pedwarn if
7788 pedantic.
7789
24070fcb
JM
77902009-04-25 Joseph Myers <joseph@codesourcery.com>
7791
7792 PR c/39582
7793 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7794 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7795 type is an integer constant.
7796
d6d89aa1
UB
77972009-04-25 Uros Bizjak <ubizjak@gmail.com>
7798
7799 PR target/39897
7800 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7801 HImode operands.
7802
92f6fd0b
JM
78032009-04-25 Joseph Myers <joseph@codesourcery.com>
7804
7805 PR c/39564
7806 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7807 with variably modified return type and no storage class
7808 specifiers, except for the case of nested functions. Distinguish
7809 extern declarations of functions with variably modified return
7810 types from those of objects with variably modified types.
7811
a3710436
JH
78122009-04-25 Jan Hubicka <jh@suse.cz>
7813
7814 * tree.c (list_equal_p): New function.
7815 * tree.h (list_equal_p): Declare.
7816 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7817 basic_block_def, basic_block, const_basic_block): New.
7818 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7819 (redirect_eh_edge): New function.
7820 (make_eh_edge_update_phi): EH edges are not abnormal.
7821 * except.c: Include tree-flow.h.
7822 (list_match): New function.
7823 (eh_region_replaceable_by_p): New function.
7824 (replace_region): New function.
7825 (hash_type_list): New function.
7826 (hash_eh_region): New function.
7827 (eh_regions_equal_p): New function.
7828 (merge_peers): New function.
7829 (remove_unreachable_regions): Verify EH tree when checking;
7830 merge peers.
7831 (copy_eh_region_1): New function.
7832 (copy_eh_region): New function.
7833 (push_reachable_handler): New function.
7834 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7835 regions without label but with live RESX.
7836 * except.h (redirect_eh_edge_to_label): New.
7837 * tree-flow.h (redirect_eh_edge): New.
7838 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7839 basic_block_def, basic_block, const_basic_block): Remove.
7840 * Makefile.in (except.o): Add dependency on tree-flow.h
7841 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7842 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7843 Remove.
7844
3764d512
EB
78452009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7846
7847 PR bootstrap/39645
7848 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7849 on the destination of memcpy.
7850
1c62e8f2
PB
78512009-04-25 Paolo Bonzini <bonzini@gnu.org>
7852
7853 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7854 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7855 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7856
496a4ef5
JH
78572009-04-25 Jan Hubicka <jh@suse.cz>
7858
7859 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7860 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7861 to be reached by different label than left.
7862 (update_eh_edges): Update comment; remove edge_to_remove if possible
7863 and return true if suceeded.
7864 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7865 (cleanup_eh): Compute sharing map.
7866 * except.c (remove_eh_handler_and_replace): Add argument if we should
7867 update regions.
7868 (remove_unreachable_regions): Update for label sharing.
7869 (label_to_region_map): Likewise.
7870 (get_next_region_sharing_label): New function.
7871 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7872 prev_try pointers.
7873 (remove_eh_handler): Update.
7874 (remove_eh_region_and_replace_by_outer_of): New function.
7875 * except.h (struct eh_region): Add next_region_sharing_label.
7876 (remove_eh_region_and_replace_by_outer_of,
7877 get_next_region_sharing_label): Declare.
7878 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7879
78802009-04-25 Jan Hubicka <jh@suse.cz>
7881
7882 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7883 insert code even if they are not critical.
7884
78852009-04-25 Jan Hubicka <jh@suse.cz>
7886
7887 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7888 (gimple_can_remove_branch_p): EH edges won't remove branch by
7889 redirection.
7890 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7891 updating of non-abnormal EH edges.
7892 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7893 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7894 (split_critical_edges): Split also edges where emitting code on them
7895 will lead to splitting later.
7896
a3a5e3d1
UB
78972009-04-25 Uros Bizjak <ubizjak@gmail.com>
7898 H.J. Lu <hongjiu.lu@intel.com>
7899
7900 PR target/39590
7901 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7902 the configured assembler supports fildq and fistpq mnemonics.
7903 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7904 * configure: Regenerated.
7905 * config.in: Ditto.
7906
7907 * config/i386/i386.c (print_operand): Handle 'Z'.
7908 ['z']: Remove handling of special fild/fist suffixes.
7909 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7910 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7911 suffix of fild insn.
7912 (*floatsi<mode>2_vector_mixed): Ditto.
7913 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7914 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7915 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7916 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7917 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7918
23750d7f
BE
79192009-04-25 Ben Elliston <bje@au.ibm.com>
7920
7921 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7922 the source of a set operation.
7923
e6ff3083
AS
79242009-04-25 Anatoly Sokolov <aesok@post.ru>
7925
7926 * target.h (struct gcc_target): Add case_values_threshold field.
7927 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7928 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7929 * targhooks.c (default_case_values_threshold): New function.
7930 * targhooks.h (default_case_values_threshold): Declare function.
7931 * stmt.c (expand_case): Use case_values_threshold target hook.
7932 * expr.h (case_values_threshold): Remove declartation.
7933 * expr.c (case_values_threshold): Remove function.
7934 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7935
7936 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7937 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7938 (avr_case_values_threshold): Declare as static.
7939 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7940
7941 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7942 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7943 (mn10300_case_values_threshold): New function.
7944
569c72fc
L
79452009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7946
7947 * ira.c (setup_cover_and_important_classes): Add enum cast.
7948
ff3cb468
VM
79492009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7950
7951 * genpreds.c (write_enum_constraint_num): Output definition of
7952 CONSTRAINT_NUM_DEFINED_P macro.
7953 * ira.c (setup_cover_and_important_classes): Use
7954 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7955
4f7be849
DD
79562009-04-24 DJ Delorie <dj@redhat.com>
7957
7958 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7959 __SH2A_SINGLE_ONLY__ also.
7960
735b94a7
SE
79612009-04-24 Steve Ellcey <sje@cup.hp.com>
7962
7963 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7964 (movdf_internal): Ditto.
7965 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7966 SFmode and DFmode constants.
7967 (ia64_print_operand): Add 'G' format for printing
7968 floating point constants.
7969
77a30264
RG
79702009-04-24 Richard Guenther <rguenther@suse.de>
7971
7972 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7973 from unsigned additions.
7974
2b6da65c
JM
79752009-04-24 Joseph Myers <joseph@codesourcery.com>
7976
7977 * c-typeck.c (set_init_index): Allow array designators that are
7978 not integer constant expressions with a pedwarn if pedantic.
7979
f5a17c43
BS
79802009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7981
7982 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7983 zero if no overlap in nonzero bits between the operands.
7984
32e8bb8e
ILT
79852009-04-24 Ian Lance Taylor <iant@google.com>
7986
7987 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7988 (record_dead_and_set_regs): Likewise.
7989 * df.h (struct df_mw_hardreg): Change flags field to int.
7990 (struct df_base_ref): Likewise.
7991 (struct df): Change changeable_flags field to int.
7992 * df-scan.c (df_defs_record): Change clobber_flags to int.
7993 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7994 constants rather than #define macros.
7995 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7996 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7997 (enum dwarf_calling_convention): Likewise.
7998 (enum dwarf_line_number_x_ops): Likewise.
7999 (enum dwarf_call_frame_info): Likewise.
8000 (enum dwarf_source_language): Likewise.
8001 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8002 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
8003 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8004 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
8005 * genrecog.c (maybe_both_true_2): Change c to int.
8006 (write_switch): Likewise. Add cast to enum type.
8007 * gimplify.c (gimplify_omp_for): Handle return values from
8008 gimplify_expr using MIN rather than bitwise or.
8009 (gimplify_expr): Add cast to enum type.
8010 * ipa-prop.c (update_jump_functions_after_inlining): Change
8011 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
8012 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8013 Add casts to enum type.
32e8bb8e
ILT
8014 (setup_cover_and_important_classes): Change cl to int. Add casts
8015 to enum type.
8016 (setup_class_translate): Change cl and mode to int.
8017 (ira_init_once): Change mode to int.
8018 (free_register_move_costs): Likewise.
8019 (setup_prohibited_mode_move_regs): Add casts to enum type.
8020 * langhooks.c (add_builtin_function_common): Rework assertion that
8021 value fits bitfield.
8022 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8023 * omega.c (omega_do_elimination): Avoid math on enum types.
8024 * optabs.c (expand_vec_shift_expr): Remove casts to int.
8025 * opts.c (set_debug_level): Change 2 to enum constant. Use new
8026 int local to handle integral_argment value.
8027 * regmove.c (try_auto_increment): Change PUT_MODE to
8028 PUT_REG_NOTE_KIND.
8029 * reload.c (push_secondary_reload): Add casts to enum type.
8030 (secondary_reload_class, find_valid_class): Likewise.
8031 * reload1.c (emit_input_reload_insns): Likewise.
8032 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8033 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8034 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8035 constant.
8036 * tree.c (build_common_builtin_nodes): Add casts to enum type.
8037 * tree-complex.c (complex_lattice_t): Typedef to int rather than
8038 enum type.
8039 (expand_complex_libcall): Add casts to enum type.
8040 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8041 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8042 with ERROR_MARK, not NUM_TREE_CODES.
8043 (vect_create_epilog_for_reduction): Likewise.
8044 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 8045 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
8046 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8047 enum machine_mode.
8048 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8049 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 8050 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
8051 * var-tracking.c (get_init_value): Change return type to enum
8052 var_init_status.
8053 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8054 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8055 arm_fp_model.
8056 (arm_override_options): Add casts to enum type.
8057 (arm_emit_tls_decoration): Likewise.
8058 * config/i386/i386.c (ix86_function_specific_restore): Add casts
8059 to enum type.
8060 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8061 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8062 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8063 enum type.
8064 * config/s390/s390.c (code_for_builtin_64): Change to array of
8065 enum insn_code.
8066 (code_for_builtin_31): Likewise.
8067 (s390_expand_builtin): Change code_for_builtin to enum insn_code
8068 const *.
8069 * config/sparc/sparc.c (sparc_override_options): Change value
8070 field in struct code_model to enum cmodel. In initializer change
8071 0 to NULL and add cast to enum type.
8072
8073 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8074 Change all callers. Issue a -Wc++-compat warning using
8075 lhs_origtype if necessary.
8076 (convert_for_assignment): Issue -Wc++-compat warnings about
8077 invalid conversions to enum type on assignment.
8078 * c-common.h (build_modify_expr): Update declaration.
8079
ac4fc08a
NC
80802009-04-24 Nick Clifton <nickc@redhat.com>
8081
8082 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8083 (function_arg_advance): Likewise.
8084 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8085 5th alternative.
8086
f22e891a
AK
80872009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
8088
8089 * config/s390/constraints.md ('I', 'J'): Fix condition.
8090
ad58aabe
DN
80912009-04-24 Diego Novillo <dnovillo@google.com>
8092
8093 * gengtype-parse.c (parse_error): Add newline after message.
8094
879a4a01
L
80952009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8096
8097 * config/i386/sse.md (avxmodesuffixs): Removed.
8098 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8099 (*avx_pinsr<ssevecsize>): This.
8100
f63426af
BS
81012009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8102
8103 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8104 follow chains of regs with a single definition, and allow expressions
8105 that are function_invariant_p.
ce72fe6c 8106 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 8107
30349c74
PB
81082009-04-24 Paolo Bonzini <bonzini@gnu.org>
8109
8110 PR middle-end/39867
8111 * fold-const.c (fold_cond_expr_with_comparison): When folding
8112 > and >= to MAX, make sure the MAX uses the same type as the
8113 comparison's operands.
8114
8d8256c1
NC
81152009-04-24 Nick Clifton <nickc@redhat.com>
8116
8117 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8118 addressing for DImode accesses.
8119 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 8120 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 8121
6216f94e
JJ
81222009-04-24 Jakub Jelinek <jakub@redhat.com>
8123
8124 PR rtl-optimization/39794
8125 * alias.c (canon_true_dependence): Add x_addr argument.
8126 * rtl.h (canon_true_dependence): Adjust prototype.
8127 * cse.c (check_dependence): Adjust canon_true_dependence callers.
8128 * cselib.c (cselib_invalidate_mem): Likewise.
8129 * gcse.c (compute_transp): Likewise.
8130 * dse.c (scan_reads_nospill): Likewise.
8131 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
8132 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8133 canon_base_addr of the group, plus optional offset.
8134 (struct group_info): Rename canon_base_mem to
8135 canon_base_addr.
8136 (get_group_info): Set canon_base_addr to canon_rtx of base, not
8137 canon_rtx of base_mem.
8138
6de7a512
PB
81392009-04-23 Paolo Bonzini <bonzini@gnu.org>
8140
8141 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8142 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8143
4a3a2376
UW
81442009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8145
8146 * config/spu/spu-builtins.h: Delete file.
8147
8148 * config/spu/spu.h (enum spu_builtin_type): Move here from
8149 spu-builtins.h.
8150 (struct spu_builtin_description): Likewise. Add GTY marker.
8151 Do not use enum spu_function_code or enum insn_code.
8152 (spu_builtins): Add extern declaration.
8153
8154 * config/spu/spu.c: Do not include "spu-builtins.h".
8155 (enum spu_function_code, enum spu_builtin_type_index,
8156 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8157 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8158 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8159 unsigned_V2DI_type_node): Move here from spu-builtins.h.
8160 (spu_builtin_types): Make static. Add GTY marker.
8161 (spu_builtins): Add extern declaration with GTY marker.
8162 Include "gt-spu.h".
8163
8164 * config/spu/spu-c.c: Do not include "spu-builtins.h".
8165 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8166 Check programmatically whether all parameters are scalar.
8167
8168 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8169
bbaba73f
EB
81702009-04-23 Eric Botcazou <ebotcazou@adacore.com>
8171
8172 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8173 assignment from the constructor either if the target is volatile.
8174
ee93c1c6
DJ
81752009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
8176
8177 * config/arm/arm.md (insv): Do not share operands[0].
8178
b2f21330
NS
81792009-04-23 Nathan Sidwell <nathan@codesourcery.com>
8180
8181 * config/vxlib-tls.c (active_tls_threads): Delete.
8182 (delete_hook_installed): New.
8183 (tls_delete_hook): Don't delete the delete hook.
8184 (tls_destructor): Delete it here.
8185 (__gthread_set_specific): Adjust installing the delete hook.
8186 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
8187 __gthread_leave_tsd_dtor_context.
8188
4782dfa7
RAE
81892009-04-23 Rafael Avila de Espindola <espindola@google.com>
8190
8191 * c-format.c (gcc_tdiag_char_table): Add support for %E.
8192
bf758008
UB
81932009-04-23 Uros Bizjak <ubizjak@gmail.com>
8194
8195 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
8196 enum type.
8197 (alpha_rtx_costs): Ditto.
8198 (emit_unlikely_jump): Use add_reg_note.
8199 (emit_frame_store_1): Ditto.
8200 (alpha_expand_prologue): Ditto.
8201 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8202 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
8203
7323a100
NC
82042009-04-23 Nick Clifton <nickc@redhat.com>
8205
8206 * config/v850/v850.md (epilogue): Remove suppressed code.
8207 (return): Rename to return_simple and remove test of frame size.
8208 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8209 to gen_return_simple.
8210
360032ba
JY
82112009-04-22 Jing Yu <jingyu@google.com>
8212
8213 PR testsuite/39781
8214 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8215
53650abe
AP
82162009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8217
8218 PR C/31499
8219 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8220 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
8221 value is a VECTOR_CST, the element type is the element type of the
8222 vector.
8223
89043e8a
DD
82242009-04-22 DJ Delorie <dj@redhat.com>
8225
8226 * config/m32c/m32c.h: Update GTY annotations to new syntax.
8227
023f059b
JJ
82282009-04-22 Jakub Jelinek <jakub@redhat.com>
8229
8230 * alias.c (find_base_term): Move around LO_SUM case, so that
8231 CONST falls through into PLUS/MINUS handling.
8232
2c0eba5a
JJ
8233 PR c/39855
8234 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8235 into 0, use omit_one_operand.
8236
9a461028
BE
82372009-04-23 Ben Elliston <bje@au.ibm.com>
8238
8239 * config/rs6000/linux-unwind.h (get_regs): Remove type
8240 puns. Change the type of `pc' to an array of unsigned ints and
8241 update all users. Constify frame24.
8242
653e2568
DD
82432009-04-22 DJ Delorie <dj@redhat.com>
8244
8245 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8246 declarations before code.
8247 (current_function_special_page_vector): Likewise.
8248 (m32c_expand_insv): Silence a warning.
8249
60839f5d 82502009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
8251
8252 * alias.c: Update GTY annotations to new syntax.
8253 * basic-block.h: Likewise.
8254 * bitmap.h: Likewise.
8255 * c-common.h: Likewise.
8256 * c-decl.c: Likewise.
8257 * c-parser.c: Likewise.
8258 * c-pragma.c: Likewise.
8259 * c-tree.h: Likewise.
8260 * cfgloop.h: Likewise.
8261 * cgraph.h: Likewise.
8262 * config/alpha/alpha.c: Likewise.
8263 * config/arm/arm.h: Likewise.
8264 * config/avr/avr.h: Likewise.
8265 * config/bfin/bfin.c: Likewise.
8266 * config/cris/cris.c: Likewise.
8267 * config/darwin.c: Likewise.
8268 * config/frv/frv.c: Likewise.
8269 * config/i386/i386.c: Likewise.
8270 * config/i386/i386.h: Likewise.
8271 * config/i386/winnt.c: Likewise.
8272 * config/ia64/ia64.h: Likewise.
8273 * config/iq2000/iq2000.c: Likewise.
8274 * config/mips/mips.c: Likewise.
8275 * config/mmix/mmix.h: Likewise.
8276 * config/pa/pa.c: Likewise.
8277 * config/pa/pa.h: Likewise.
8278 * config/rs6000/rs6000.c: Likewise.
8279 * config/s390/s390.c: Likewise.
8280 * config/sparc/sparc.c: Likewise.
8281 * config/xtensa/xtensa.c: Likewise.
8282 * cselib.h: Likewise.
8283 * dbxout.c: Likewise.
8284 * dwarf2out.c: Likewise.
8285 * except.c: Likewise.
8286 * except.h: Likewise.
8287 * fixed-value.h: Likewise.
8288 * function.c: Likewise.
8289 * function.h: Likewise.
8290 * gimple.h: Likewise.
8291 * integrate.c: Likewise.
8292 * optabs.c: Likewise.
8293 * output.h: Likewise.
8294 * real.h: Likewise.
8295 * rtl.h: Likewise.
8296 * stringpool.c: Likewise.
8297 * tree-data-ref.c: Likewise.
8298 * tree-flow.h: Likewise.
8299 * tree-scalar-evolution.c: Likewise.
8300 * tree-ssa-address.c: Likewise.
8301 * tree-ssa-alias.h: Likewise.
8302 * tree-ssa-operands.h: Likewise.
8303 * tree.c: Likewise.
8304 * tree.h: Likewise.
8305 * varasm.c: Likewise.
8306 * varray.h: Likewise.
8307 * vec.h: Likewise.
bf758008 8308 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
8309 * doc/gty.texi: Update GTY documentation to new syntax.
8310 * gengtype-lex.l: Enforce attribute-like syntax for GTY
8311 annotations on structs.
8312 * gengtype-parse.c: Likewise.
8313
a123d175
MH
83142009-04-22 Mark Heffernan <meheff@google.com>
8315
bf758008 8316 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 8317
4c7c486a
KH
83182009-04-22 Kazu Hirata <kazu@codesourcery.com>
8319
8320 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8321 where appropriate.
8322
6e782a29
KH
83232009-04-22 Kazu Hirata <kazu@codesourcery.com>
8324
8325 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8326 the same as a PLUS without a shift. Increase the cost of a
8327 CONST_INT in MULT.
8328
38d2336a
MLI
83292009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8330
8331 * Makefile.in: Update dependencies.
bf758008 8332 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
8333 * errors.h: Remove bogus comment about compatibility.
8334 (warning): Update declaration.
8335 * genautomata.c: Update all calls to warning.
8336 * gimple.c: Do not include errors.h. Include toplev.h.
8337 * tree-ssa-structalias.c: Do not include errors.h.
8338 * omega.c: Likewise.
8339 * tree-ssa-reassoc.c: Likewise.
8340 * config/spu/spu-c.c: Likewise.
8341 * config/spu/t-spu-elf: Update dependencies.
8342
aea4deba
RG
83432009-04-22 Richard Guenther <rguenther@suse.de>
8344
8345 PR tree-optimization/39824
8346 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8347 make sure the types are compatible.
8348
cfc93532
MLI
83492009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8350
8351 PR c++/14875
8352 * c-common.c (c_parse_error): Take a token_flags parameter.
8353 Use token_type for the token type instead.
8354 Pass token_flags to cpp_type2name.
8355 * c-common.h (c_parse_error): Update declaration.
8356 * c-parser.c (c_parser_error): Pass 0 as token flags.
8357
8632d02a
AB
83582009-04-22 Andrey Belevantsev <abel@ispras.ru>
8359
8360 PR rtl-optimization/39580
8361 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
8362
4c33221c
UW
83632009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8364
8365 * function.c (expand_function_end): Do not emit a jump to the "naked"
8366 return label for fall-through returns.
8367 * except.c (sjlj_emit_function_exit): Always place the call to the
8368 unregister function at the location installed by expand_function_end.
8369
9925bce0
RG
83702009-04-22 Richard Guenther <rguenther@suse.de>
8371
8372 PR tree-optimization/39845
8373 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8374 (gen_inbound_check): Likewise.
8375
24a40b35
NS
83762009-04-22 Nathan Sidwell <nathan@codesourcery.com>
8377
8378 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8379 padding for PPC.
8380 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8381 * config/vxlib.c (__gthread_once): Add race guard for PPC.
8382
6c34a092
PB
83832009-04-22 Paolo Bonzini <bonzini@gnu.org>
8384
8385 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8386 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8387 shift counts to avoid out-of-bounds array accesses.
8388
baa48dfa
PB
83892009-04-22 Paolo Bonzini <bonzini@gnu.org>
8390
8391 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8392 (Pmode): Move above.
8393
7d83f4f5
UB
83942009-04-22 Uros Bizjak <ubizjak@gmail.com>
8395
8396 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8397 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8398 GET_CODE macro. Use IN_RANGE macro where appropriate.
8399 * config/alpha/alpha.h: Ditto.
8400 * config/alpha/alpha.md: Ditto.
8401 * config/alpha/constraints.md: Ditto.
8402 * config/alpha/predicates.md: Ditto.
8403
3ad606bc
PB
84042009-04-22 Paolo Bonzini <bonzini@gnu.org>
8405
8406 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8407 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8408 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8409 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8410 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8411 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8412 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8413 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8414 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8415 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8416 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8417 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8418 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8419 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8420 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8421 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8422 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8423 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8424 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8425 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8426 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8427 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8428 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8429 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8430 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8431 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8432 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8433
3cabd6d1
LB
84342009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8435
8436 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8437 references from comments.
8438 * cfgbuild.c: (count_basic_blocks): Delete.
8439 (find_basic_blocks_1): Delete.
8440 (find_basic_blocks): Delete.
8441 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 8442 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
8443 * except.h (finish_eh_generation): Delete.
8444 * basic-block.h (find_basic_blocks): Delete.
8445 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8446
270d1bcd
DK
84472009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
8448
8449 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
8450 (sdbout_parms): Likewise.
8451
b757d36f
KK
84522009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8453
8454 * config/sh/sh.c (prepare_cbranch_operands): Use
8455 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8456 (expand_cbranchdi4): Likewise.
8457 (from_compare): Add cast to enum type.
8458 (expand_cbranchsi4): Use add_reg_note.
8459 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8460 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8461 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8462 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8463 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8464 instead of CODE_FOR_nothing.
8465 (cbranchdi4): Likewise. Fix the order of arguments for
8466 gen_rtx_fmt_ee.
8467 (push_fpscr): Use add_reg_note.
8468 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8469 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8470
ad41bd84
JM
84712009-04-21 Joseph Myers <joseph@codesourcery.com>
8472
8473 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8474 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8475 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8476 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8477 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8478 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8479 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8480 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8481 config/alpha/x-vms, config/arc/t-arc,
8482 config/arm/README-interworking, config/arm/arm-c.c,
8483 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8484 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8485 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8486 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8487 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8488 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8489 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8490 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8491 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8492 config/cris/t-elfmulti, config/crx/t-crx,
8493 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8494 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8495 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8496 config/h8300/t-h8300, config/i386/athlon.md,
8497 config/i386/darwin-libgcc.10.4.ver,
8498 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8499 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8500 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8501 config/i386/t-linux64, config/i386/t-nwld,
8502 config/i386/t-rtems-i386, config/i386/t-sol2-10,
8503 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8504 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8505 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8506 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8507 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8508 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8509 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8510 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8511 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8512 config/m68k/t-uclinux, config/mcore/t-mcore,
8513 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8514 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8515 config/mips/crtn.asm, config/mips/irix-crti.asm,
8516 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8517 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8518 config/mips/mips-fixed.md, config/mips/sb1.md,
8519 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8520 config/mips/t-iris6, config/mips/t-isa3264,
8521 config/mips/t-libgcc-mips16, config/mips/t-linux64,
8522 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8523 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8524 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8525 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8526 config/mn10300/t-linux, config/mn10300/t-mn10300,
8527 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8528 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8529 config/picochip/libgccExtras/clzsi2.asm,
8530 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8531 config/rs6000/darwin-libgcc.10.4.ver,
8532 config/rs6000/darwin-libgcc.10.5.ver,
8533 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8534 config/rs6000/t-aix43, config/rs6000/t-aix52,
8535 config/rs6000/t-darwin, config/rs6000/t-fprules,
8536 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8537 config/rs6000/t-lynx, config/rs6000/t-netbsd,
8538 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8539 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8540 config/rs6000/t-rtems, config/rs6000/t-spe,
8541 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8542 config/score/t-score-elf, config/sh/divcost-analysis,
8543 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8544 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8545 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8546 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8547 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8548 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8549 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8550 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8551 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8552 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8553 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8554 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8555 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8556 limitx.h, version.c, xcoff.h: Add copyright and license notices.
8557 * config/h8300/genmova.sh: Include copyright and license notices
8558 in generated output.
8559 * config/h8300/mova.md: Regenerate.
8560 * doc/install.texi2html: Include word "Copyright" in copyright
8561 notice and use name "Free Software Foundation, Inc.".
8562 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8563 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8564 ChangeLog-2007, ChangeLog-2008: Correct dates.
8565
ca80e52b
EB
85662009-04-21 Eric Botcazou <ebotcazou@adacore.com>
8567
8568 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8569 NE_EXPR operations as well.
8570 * c-parser.c (c_parser_condition): Do not set location information on
8571 the condition.
8572 (c_parser_conditional_expression): Likewise.
8573 (c_parser_binary_expression): Set location information on operators.
8574 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8575 TRUTH_NOT_EXPR has been folded.
8576 * fold-const.c (fold_truth_not_expr): Copy location information from
8577 the incoming expression to the outgoing one.
8578 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
8579 recursive calls on the LHS of the operator but pass that of the
8580 operator to recursive calls on the RHS of the operator. Set it
8581 on the COND_EXPR.
8582 (shortcut_cond_expr): Set the locus of the operator on the second
8583 COND_EXPR and that of the expression on the first in degenerate cases.
8584 Pass the locus of the expression to calls to shortcut_cond_r.
8585 Set the locus of the 'then' block on the associated jump, if any.
8586 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
8587 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8588 expression to call to gimplify_boolean_expr.
8589
35091630
KT
85902009-04-21 Kai Tietz <kai.tietz@onevision.com>
8591
8592 * config.gcc: Add additional configuration for
8593 i686-w64-mingw* and x86_64-w64-mingw* triplet.
8594 * config/i386/mingw-w64.h: New mingw-w64 specific header.
8595 (CPP_SPEC): Redefine for allowing -municode option.
8596 (STARTFILE_SPEC): Likewise.
8597 * config/i386/t-mingw-w64: New.
8598 * config/i386/mingw-w64.opt: New.
8599 (municode): Add new target option.
8600 * doc/invoke.texi (municode): Add documentation for new option.
8601
0267afc4
ILT
86022009-04-21 Ian Lance Taylor <iant@google.com>
8603
8604 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8605 Correct test for number of arguments.
8606 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8607
2ba9daa7
AS
86082009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8609
8610 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8611 argument of emit_library_call.
8612
ad8a1ac0
RG
86132009-04-21 Richard Guenther <rguenther@suse.de>
8614
8615 PR middle-end/39829
8616 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8617 inside VIEW_CONVERT_EXPRs.
8618
7156c8ab
MJ
86192009-04-21 Martin Jambor <mjambor@suse.cz>
8620
8621 * tree-switch-conversion.c (build_constructors): Split a long line.
8622 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8623 (build_one_array): Create assigns of constants if possible, do not
8624 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8625 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8626 make_rename_temp. Do not call mark_symbols_for_renaming, call
8627 update_stmt.
8628 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8629 find_new_referenced_vars, call update_stmt.
8630 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8631 instead of calling make_rename_temp. Do not call
8632 find_new_referenced_vars or mark_symbols_for_renaming, call
8633 update_stmt.
8634
2970ccb3
RG
86352009-04-21 Richard Guenther <rguenther@suse.de>
8636
8637 PR tree-optimization/39827
7d83f4f5 8638 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8639 (tree_ssa_phiprop): Pass the correct array size.
8640
47f402d1
UB
86412009-04-21 Uros Bizjak <ubizjak@gmail.com>
8642
8643 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8644
1e4ae551
MLI
86452009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8646
8647 PR 16202
8648 * c-typeck.c (lvalue_p): Move declaration ...
8649 * c-common.h (lvalue_p): ... to here.
8650 * c-common.c (candidate_equal_p): New.
8651 (add_tlist): Use it.
8652 (merge_tlist): Use it.
8653 (warn_for_collisions_1): Likewise.
8654 (warning_candidate_p): Accept more candidates.
8655 (verify_tree): A warning candidate can be an expression. Use
8656 candidate_equal_p.
8657
244609a6
BE
86582009-04-21 Ben Elliston <bje@au.ibm.com>
8659
8660 PR target/5267
8661 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8662 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8663 options. Remove -mcall-solaris documentation.
8664
9c650d90
MLI
86652009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8666
8667 PR c++/13358
8668 * doc/invoke.texi (-Wlong-long): Update description.
8669 * c-lex (interpret_integer): Only warn if there was no previous
8670 overflow and -Wlong-long is enabled.
8671 * c-decl.c (declspecs_add_type): Drop redundant flags.
8672 * c.opt (Wlong-long): Init to -1.
8673 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8674 and front-end warn_long_long. Wlong-long only depends on other
8675 flags if it is uninitialized.
8676 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8677 the same for CPP and FE.
8678 (restore_extension_diagnostics): Likewise.
8679
bbbbb16a
ILT
86802009-04-20 Ian Lance Taylor <iant@google.com>
8681
8682 Fix enum conversions which are invalid in C++:
47f402d1
UB
8683 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8684 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8685 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8686 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8687 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8688 (dbxout_parms): Likewise.
47f402d1 8689 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8690 (df_clear_flags): Likewise.
8691 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8692 top_flag parameter to int.
8693 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8694 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8695 Remove cast.
bbbbb16a
ILT
8696 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8697 (df_ref_create_structure, df_def_record_1): Likewise.
8698 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8699 (df_notes_rescan): Change 0 to VOIDmode in function call.
8700 (df_get_call_refs, df_insn_refs_collect): Likewise.
8701 (df_bb_regs_collect): Likewise.
8702 (df_entry_block_defs_collect): Likewise.
8703 (df_exit_block_uses_collect): Likewise.
8704 * df.h: Update declarations.
8705 * double-int.c (double_int_divmod): Add cast to enum type.
8706 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8707 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8708 (based_loc_descr): Likewise.
8709 (loc_descriptor_from_tree_1): Change first_op and second_op to
8710 enum dwarf_location_atom. Add cast to enum type.
8711 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8712 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8713 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8714 (do_store_flag): Likewise.
8715 * fixed-value.h (struct fixed_value): Change mode to enum
8716 machine_mode.
47f402d1 8717 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8718 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8719 function call.
8720 (insert_insn_decl, insert_decl, insert_state): Likewise.
8721 (automata_list_finish): Likewise.
8722 * genrecog.c (process_define_predicate): Add cast to enum type.
8723 * gensupport.c (init_predicate_table): Add cast to enum type.
8724 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8725 function call.
8726 (gimple_build_call_1, gimple_build_label): Likewise.
8727 (gimple_build_goto, gimple_build_asm_1): Likewise.
8728 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8729 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8730 (enum fallback): Rename from enum fallback_t.
8731 (fallback_t): Typedef as int.
8732 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8733 GSI_SAME_STMT in function call.
8734 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8735 enum type.
8736 (setup_reg_class_relations): Likewise.
47f402d1 8737 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8738 (setup_prohibited_class_mode_regs): Add cast to enum type.
8739 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8740 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8741 (record_address_regs): Change i to enum reg_class.
8742 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8743 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8744 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8745 (GET_MODE_2XWIDER_MODE): Likewise.
8746 (GET_CLASS_NARROWEST_MODE): Likewise.
8747 * omp-low.c (expand_omp_for): Add cast to enum type.
8748 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8749 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8750 * postreload.c (reload_cse_simplify_operands): Change rclass local
8751 to enum reg_class.
8752 * predict.c (combine_predictions_for_insn): Change best_predictor
8753 and predictor to enum br_predictor.
8754 (combine_predictions_for_bb): Likewise.
8755 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8756 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8757 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8758 * reginfo.c (init_move_cost): Add casts to enum type.
8759 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8760 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8761 enum reg_class.
8762 * reload.c (find_valid_class): Add casts to enum type.
8763 (push_reload): Change 0 to NO_REGS in function call.
8764 (find_reloads): Change this_alternative to array of enum
8765 reg_class. Remove some now-unnecessary casts.
8766 (make_memloc): Change 0 to VOIDmode in function call.
8767 * reload1.c (reload): Change 0 to VOIDmode in function call.
8768 (eliminate_regs_1, elimination_effects): Likewise.
8769 (eliminate_regs_in_insn): Likewise.
8770 (emit_input_reload_insns): Add cast to enum type.
8771 (delete_output_reload): Change 0 to VOIDmode in function call.
8772 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8773 to enum type in function call.
8774 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8775 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8776 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8777 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8778 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8779 (dump_function): Likewise.
8780 * tree-dump.h: Update declarations.
8781 * tree-pass.h: Update declarations.
8782 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8783 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8784 enum type.
8785 (arm_rtx_costs_1): Correct parenthesization.
8786 (arm_rtx_costs): Add casts to enum type.
8787 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8788 (vfp_emit_fstmd): Use add_rg_note.
8789 (emit_multi_reg_push, emit_sfm): Likewise.
8790 (thumb_set_frame_pointer): Likewise.
8791 (arm_expand_prologue): Likewise.
8792 (arm_regno_class): Change return type to enum reg_class.
8793 (thumb1_expand_prologue): Use add_reg_note.
8794 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8795 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8796 in function call.
8797 * config/arm/gentune.sh: Add cast to enum type.
8798 * config/arm/arm-tune.md: Rebuild.
8799 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8800 (ix86_split_fp_branch, predict_jump): Likewise.
8801 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8802 insn_code to enum rtx_code.
8803 (ix86_builtin_vectorized_function): Add cast to enum type.
8804 * config/i386/i386.md (truncdfsf2): Change slot to enum
8805 ix86_stack_slot.
8806 (truncxf<mode>2, isinf<mode>2): Likewise.
8807 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8808 enum type.
8809 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8810 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8811 (insert_bundle_state): Change 1 to INSERT in function call.
8812 (ia64_add_bundle_selector_before): Likewise.
8813 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8814 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8815 (restore_stack_nonlocal): Likewise.
8816 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8817 function call.
8818 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8819 function call.
8820 (mips_rtx_costs): Likewise.
8821 (mips_override_options): Add casts to enum type.
8822 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8823 in function call.
8824 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8825 (store_reg, set_reg_plus_d): Likewise.
8826 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8827 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8828 cast to enum type.
8829 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8830 function call.
8831 (emit_unlikely_jump): Use add_reg_note.
8832 (rs6000_emit_allocate_stack): Likewise.
8833 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8834 (output_toc): Change 1 to INSERT in function call.
8835 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8836 (rs6000_initialize_trampoline): Likewise.
8837 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8838 function call.
8839 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8840 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8841 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8842 (save_gprs): Use add_reg_note.
8843 (s390_emit_prologue): Likewise.
47f402d1 8844 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8845 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8846 (sparc_fold_builtin): Add cast to enum type.
8847 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8848 enum insn_code.
8849 (spu_expand_prologue): Use add_reg_note.
47f402d1 8850 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8851
88522009-04-20 Ian Lance Taylor <iant@google.com>
8853
8854 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8855 (c_parser_postfix_expression_after_primary): Get VEC for list of
8856 arguments. Get original types of arguments. Call
8857 build_function_call_vec.
8858 (cached_expr_list_1, cached_expr_list_2): New static variables.
8859 (c_parser_expr_list): Change return type to VEC *. Add
8860 p_orig_types parameter. Change all callers.
8861 (c_parser_release_expr): New static function.
8862 (c_parser_vec_to_tree_list): New static function.
8863 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8864 call build_function_call_vec.
8865 (build_function_call_vec): New function, based on old
8866 build_function_call.
8867 (convert_arguments): Remove nargs and argarray parameters. Change
8868 values to a VEC. Add origtypes parameter.
47f402d1 8869 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8870 (convert_for_assignment): Add origtype parameter. Change all
8871 callers. If warn_cxx_compat, check for conversion to an enum
8872 type when calling a function.
8873 (store_init_value): Add origtype parameter. Change all callers.
8874 (digest_init): Likewise.
8875 (struct init_node): Add origtype field.
8876 (add_pending_init): Add origtype parameter. Change all callers.
8877 (output_init_element): Likewise.
8878 (output_pending_init_elements): Pass origtype from init_node to
8879 output_init_element.
f28a61ab 8880 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8881 output_init_element.
8882 (c_finish_return): Add origtype parameter. Change all callers.
8883 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8884 caller.
8885 (sync_resolve_params): Likewise.
47f402d1 8886 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8887 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8888 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8889 * c-decl.c (finish_decl): Add origtype parameter. Change all
8890 callers. Call build_function_call_vec rather than
8891 build_function_call for cleanup.
8892 * c-tree.h: Update declarations.
8893 * c-common.h: Update declarations.
8894 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8895 params to first_param.
8896 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8897 params parameter from tree to void *.
8898 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8899 Change arglist parameter to have type void *, and to be a pointer
8900 to a VEC.
8901 * config/rs6000/rs6000-protos.h
8902 (altivec_resolve_overloaded_builtin): Update declaration.
8903 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8904 fnargs parameter to have type void *, and to be a pointer to a
8905 VEC. Call build_function_call_vec instead of
8906 build_function_call.
47f402d1 8907 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8908
6ff078d4 89092009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8910 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8911 H.J. Lu <hongjiu.lu@intel.com>
8912
8913 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8914
8915 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8916 (IX86_LEA_PRIORITY): Likewise.
8917 (distance_non_agu_define): New function.
8918 (distance_agu_use): Likewise.
8919 (ix86_lea_for_add_ok): Likewise.
8920 (ix86_dep_by_shift_count): Likewise.
8921
8922 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8923 should split for LEA.
8924
8925 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8926 function.
8927 (ix86_dep_by_shift_count): Likewise.
8928
87a5b4cc
RG
89292009-04-20 Richard Guenther <rguenther@suse.de>
8930
8931 * expr.c (handled_component_p): Move ...
8932 * tree.h (handled_component_p): ... here.
8933 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8934 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8935 and REALPART_EXPR to be in one group.
8936
438c239d
RG
89372009-04-20 Richard Guenther <rguenther@suse.de>
8938
8939 * basic-block.h (get_all_dominated_blocks): Declare.
8940 * dominance.c (get_all_dominated_blocks): New function.
8941 * tree-cfg.c (get_all_dominated_blocks): Remove.
8942 (remove_edge_and_dominated_blocks): Adjust.
8943 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8944 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8945 instead of recursing.
8946
fed5ae11
DK
89472009-04-20 Doug Kwan <dougkwan@google.com>
8948
8949 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8950 (struct cgraph_node_set_def): New type.
8951 (cgraph_node_set) New type. Also declare vector functions.
8952 (struct cgraph_node_set_element_def): New type.
8953 (cgraph_node_set_element): Ditto.
8954 (cgraph_node_set_iterator): New iterator type.
8955 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8956 cgraph_node_set_remove, dump_cgraph_node_set,
8957 debug_cgraph_node_set): New prototypes.
8958 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8959 cgraph_node_set_size): New inlines.
8960 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8961 including cgraph.h.
8962 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8963 argument to function 'write_summary'.
8964 * ipa.c: Include ggc.h.
8965 (hash_cgraph_node_set_element,
8966 eq_cgraph_node_set_element, cgraph_node_set_new,
8967 cgraph_node_set_add, cgraph_node_set_remove,
8968 cgraph_node_set_find, dump_cgraph_node_set,
8969 debug_cgraph_node_set): New functions.
8970 * Makefile.in (ipa.o): Add dependency on GGC_H.
8971
c4551b28
IR
89722009-04-20 Ira Rosen <irar@il.ibm.com>
8973
8974 PR tree-optimization/39675
2ba9daa7 8975 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8976 check of the return code of vect_schedule_slp. Check that
8977 stmt_vec_info still exists for the statement, before checking its
8978 vectorization type.
c4551b28 8979
21a495fb
MM
89802009-04-20 Michael Matz <matz@suse.de>
8981
8982 * Makefile.in (generated_files): Take out $(simple_generated_c).
8983
8e208874
DK
89842009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8985
8986 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8987 (UINTPTR_TYPE): Likewise.
8988
a45e580b
JM
89892009-04-19 Joseph Myers <joseph@codesourcery.com>
8990
8991 PR c/37481
8992 * c-typeck.c (digest_init): Check for initializing an array with a
8993 string literal.
8994
20845d35
JM
89952009-04-19 Joseph Myers <joseph@codesourcery.com>
8996
8997 PR c/19771
8998 * c-semantics.c (pop_stmt_list): Propagate
8999 STATEMENT_LIST_HAS_LABEL to parent statement list.
9000
28143fdd
AN
90012009-04-19 Adam Nemet <anemet@caviumnetworks.com>
9002
9003 * config/mips/mips.h (mips_tune_attr): New macro.
9004 * config/mips/mips.md (cpu): Use it.
9005
da377db9
JM
90062009-04-19 Joseph Myers <joseph@codesourcery.com>
9007
9008 PR c/38243
9009 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9010 declaring a tag.
9011
3baf459d
DN
90122009-04-19 Diego Novillo <dnovillo@google.com>
9013
9014 * toplev.c (compile_file): Move call to coverage_finish ...
9015 * cgraphunit.c (ipa_passes): ... here.
9016 Call cgraph_process_new_functions.
9017 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9018 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9019
b6fa5b01
JH
90202009-04-19 Jan Hubicka <jh@suse.cz>
9021
47f402d1
UB
9022 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9023 cfun.
b6fa5b01
JH
9024 (dump_cgraph_node): Dump can throw external flag.
9025 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9026
ca409efd
MLI
90272009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9028
9029 PR c/32061
9030 PR c++/36954
9031 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9032 * common.opt (Wlogical-op): Move from here...
9033 * c.opt (Wlogical-op): ... to here.
9034 * c-typeck.c (parser_build_binary_op): Update call to
9035 warn_logical_operator.
9036 * c-opts.c (c_common_post_options): Enable warn_logical_op with
9037 extra_warnings.
9038 * c-common.c (warn_logical_op): Update.
9039 * c-common.h (warn_logical_op): Update declaration.
9040
9db4cdd3
EB
90412009-04-19 Eric Botcazou <ebotcazou@adacore.com>
9042
9043 * tree.c (protected_set_expr_location): Fix formatting.
9044
f37acdf9
JM
90452009-04-18 Joseph Myers <joseph@codesourcery.com>
9046
9047 PR c/27676
9048 * c-typeck.c (readonly_warning): new.
9049 (build_unary_op, build_modify_expr): Use readonly_warning for
9050 storing into something readonly but not const-qualified.
9051
2b4b7036
JM
90522009-04-18 Joseph Myers <joseph@codesourcery.com>
9053
9054 PR c/22367
9055 * c-typeck.c (build_unary_op): Check for taking address of
9056 expression of type void.
9057
3ce62965
JM
90582009-04-18 Joseph Myers <joseph@codesourcery.com>
9059
9060 PR c/35210
9061 * c-typeck.c (build_function_call): Check for calling a function
9062 with qualified void return types. Call require_complete_type when
9063 generating a trap.
9064
2505c5ed
JH
90652009-04-18 Jan Hubicka <jh@suse.cz>
9066
9067 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9068 Set nothrow flag.
9069 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9070 can_throw_external flag.
9071 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9072 * ipa-pure-const.c (ignore_edge): New function.
9073 (propagate): Compute order for NOTHROW computation; set NOTHROWs
9074 only over can_throw_external edges.
9075 (local_pure_const): Add nothrow flag.
9076 * ipa-utils.c (searchc): Add ignore_edge callback.
9077 (ipa_utils_reduced_inorder): Add ignore_edge callback.
9078 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9079 (set_nothrow_function_flags): Update cgraph.
9080 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9081
2586ba4b
RG
90822009-04-18 Richard Guenther <rguenther@suse.de>
9083
9084 PR middle-end/39804
9085 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9086 (fold_stmt): ... this and ...
9087 (fold_stmt_inplace): ... this.
9088 (fold_stmt_1): Fold references in calls and asms.
9089 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9090
1eefab17
KH
90912009-04-18 Kazu Hirata <kazu@codesourcery.com>
9092
9093 * tree-vrp.c (ssa_name_nonzero_p): Remove.
9094 * tree.h: Remove the prototype for ssa_name_nonzero_p.
9095
aa424b01
KH
90962009-04-18 Kazu Hirata <kazu@codesourcery.com>
9097
9098 * tree.c (function_args_count): Remove.
9099 * tree.h: Remove the prototype for function_args_count.
9100
613a896b
KH
91012009-04-18 Kazu Hirata <kazu@codesourcery.com>
9102
9103 * tree-iterator.c (expr_only): Remove.
9104 * tree.h: Remove the prototype for expr_only.
9105
579e694c
KH
91062009-04-18 Kazu Hirata <kazu@codesourcery.com>
9107
9108 * reginfo.c (cannot_change_mode_set_regs): Remove.
9109 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9110
ee7e3ad3
AS
91112009-04-08 Anatoly Sokolov <aesok@post.ru>
9112
9113 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9114 whether operands 0 and 1 overlaps.
9115
92ef7fb1
MLI
91162009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
9117
9118 PR middle-end/36902
9119 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9120 pointer. Use warning_at instead of warning.
9121 (search_for_addr_array): Likewise.
9122 (check_array_bounds): Likewise.
9123 (check_all_array_refs): Check that the incoming edge is not in the
9124 list of edges to be removed.
9125 (check_all_array_refs): Avoid the temporal pointer.
9126 (vrp_visit_cond_stmt): Fix typo.
9127 (simplify_switch_using_ranges): Handle the case where the switch
9128 index is an integer constant.
9129
0e097268
AN
91302009-04-18 Adam Nemet <anemet@caviumnetworks.com>
9131
9132 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9133
c782f1dd
KH
91342009-04-18 Kazu Hirata <kazu@codesourcery.com>
9135
9136 * doc/extend.texi, doc/invoke.texi: Fix typos.
9137
668fb0e8
CC
91382009-04-17 Cary Coutant <ccoutant@google.com>
9139
9140 * tree-flow-inline.h (get_lineno): Fix inverted test.
9141
4d4014c1
DN
91422009-04-17 Diego Novillo <dnovillo@google.com>
9143
9144 * tree-ssa-pre.c (create_expression_by_pieces): Remove
9145 assertion for AVAIL_OUT.
9146
2984e1b6
MF
91472009-04-17 Mike Frysinger <vapier@gentoo.org>
9148
9149 PR target/38627
9150 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9151 * config/sh/linux-atomic.asm: Likewise.
9152
9994a182
DN
91532009-04-17 Diego Novillo <dnovillo@google.com>
9154
9155 * except.c (debug_eh_tree): New.
9156 (struct eh_region, struct eh_status): Move ...
9157 * except.h: ... here.
9158 (add_type_for_runtime): Declare extern.
9159 (lookup_type_for_runtime): Likewise.
9160 (debug_eh_tree): Declare.
9161 * Makefile.in (GTFILES): List except.h before except.c
9162
07485407
DN
91632009-04-17 Diego Novillo <dnovillo@google.com>
9164
47f402d1 9165 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
9166 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9167 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9168 (find_vars_r): ... here.
9169 * tree-flow.h (find_referenced_vars_in): Declare.
9170 * tree-ssa-pre.c (create_expression_by_pieces): Assert
9171 that AVAIL_OUT exists for BLOCK.
9172 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9173 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9174 (tree-parloops.o): Likewise.
9175
4e53d196
SB
91762009-04-17 Simon Baldwin <simonb@google.com>
9177
9178 * toplev.c (default_tree_printer): Add handling for %E format.
9179
413d3aa8
DN
91802009-04-17 Diego Novillo <dnovillo@google.com>
9181
47f402d1
UB
9182 * tree-pretty-print.c (dump_generic_node): Add break after
9183 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
9184 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
9185 FUNCTION_TYPE together. Call print_struct_decl when printing
9186 structures and TDF_SLIM is not given.
413d3aa8
DN
9187 (print_struct_decl): Fix logic for detecting recursion.
9188
5a691e98
RAE
91892009-04-17 Rafael Avila de Espindola <espindola@google.com>
9190
9191 PR 31567
9192 * gcc.c (create_at_file): New.
9193 (compile_input_file_p): New.
9194 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
9195 * main.c (main): Update call to toplev_main.
9196 * toplev.c (toplev_main): Change signature. Call expandargv.
9197 * toplev.h (toplev_main): Change signature.
9198
9eacf7a6
EB
91992009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9200
9201 * dwarf2out.c (field_byte_offset): Use the type size as the field size
9202 if the latter is not constant.
9203
58298177
DE
92042009-04-17 David Edelsohn <edelsohn@gnu.org>
9205
9206 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9207
5b4c43d7
EB
92082009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9209
9210 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9211 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9212
b51605c4
RG
92132009-04-17 Richard Guenther <rguenther@suse.de>
9214
9215 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9216 Handle component references view-converting an invariant address.
9217
9e3be889
AN
92182009-04-17 Adam Nemet <anemet@caviumnetworks.com>
9219
9220 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9221 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9222 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9223 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9224 Use @deftypevr rather than @deftypevar.
9225
7c3e9dc3
RG
92262009-04-17 Richard Guenther <rguenther@suse.de>
9227
47f402d1 9228 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
9229 (get_prop_source_stmt): Likewise.
9230 (can_propagate_from): Likewise.
9231
aca600aa
AS
92322009-04-17 Andrew Stubbs <ams@codesourcery.com>
9233
9234 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9235 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9236 (--with-multilib-list): Add default value.
9237 * configure: Regenerate.
9238 * Makefile.in (TM_ENDIAN_CONFIG): Define.
9239 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9240 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9241 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9242 Don't add default cpu to multilib list unnecessarily, but do enable
9243 the relevant compiler option..
9244 Add support for --with-multilib-list=<blank> and
9245 --with-multilib-list=!<somelib> to supress unwanted multilibs.
9246 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9247 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9248 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9249 TM_MULTILIB_CONFIG.
9250 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9251 (MULTILIB_OSDIRNAMES): New variable.
9252 * config/sh/t-1e: Delete file.
9253 * config/sh/t-mlib-sh1: Delete file.
9254 * config/sh/t-mlib-sh2: Delete file.
9255 * config/sh/t-mlib-sh2a: Delete file.
9256 * config/sh/t-mlib-sh2a-nofpu: Delete file.
9257 * config/sh/t-mlib-sh2a-single: Delete file.
9258 * config/sh/t-mlib-sh2a-single-only: Delete file.
9259 * config/sh/t-mlib-sh2e: Delete file.
9260 * config/sh/t-mlib-sh3e: Delete file.
9261 * config/sh/t-mlib-sh4: Delete file.
9262 * config/sh/t-mlib-sh4-nofpu: Delete file.
9263 * config/sh/t-mlib-sh4-single: Delete file.
9264 * config/sh/t-mlib-sh4-single-only: Delete file.
9265 * config/sh/t-mlib-sh4a: Delete file.
9266 * config/sh/t-mlib-sh4a-nofpu: Delete file.
9267 * config/sh/t-mlib-sh4a-single: Delete file.
9268 * config/sh/t-mlib-sh4a-single-only: Delete file.
9269 * config/sh/t-mlib-sh4al: Delete file.
9270 * config/sh/t-mlib-sh5-32media: Delete file.
9271 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9272 * config/sh/t-mlib-sh5-64media: Delete file.
9273 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9274 * config/sh/t-mlib-sh5-compact: Delete file.
9275 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9276 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9277 * doc/install.texi (Options specification): Add
9278 --with-multilib-list and --with-endian.
9279
cf8aba7f
RAE
92802009-04-17 Rafael Avila de Espindola <espindola@google.com>
9281
9282 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9283 REVISION_c.
9284 (OBJS-common): Add plugin-version.o.
9285 (plugin-version.o): New.
9286 * gcc-plugin.h (plugin_gcc_version): New.
9287 (plugin_default_version_check): New.
9288 (plugin_init_func, plugin_init): Add version argument.
9289 * plugin-version.c: New.
9290 * plugin.c (str_plugin_gcc_version_name): New.
9291 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9292 pass it to the init function.
9293 (plugin_default_version_check): New.
9294
61e20b90
RG
92952009-04-17 Richard Guenther <rguenther@suse.de>
9296
9297 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9298 for decl-vs-decl disambiguation.
9299
90c6fd8a
AK
93002009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
9301
9302 * config/s390/s390.h (s390_tune_attr): New macro definition.
9303 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9304
9fe9fe04
RG
93052009-04-17 Richard Guenther <rguenther@suse.de>
9306
9307 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9308 (fold_stmt_r): Likewise.
9309 (maybe_fold_reference): New function.
9310 (fold_gimple_assign): Handle cases fold_stmt_r did.
9311 (fold_stmt): Do not use fold_stmt_r.
9312 (fold_stmt_inplace): Likewise.
9313
7e673273
RG
93142009-04-17 Richard Guenther <rguenther@suse.de>
9315
9316 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9317 (record_equivalences_from_stmt): Remove useless checks and
9318 simplifications.
9319 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9320 the type is already suitable.
9321
fabf2749
PB
93222009-04-17 Paolo Bonzini <bonzini@gnu.org>
9323
9324 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9325
68f7b061
UB
93262009-04-17 Uros Bizjak <ubizjak@gmail.com>
9327
9328 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9329 (CMPtype): Define as __gcc_CMPtype.
9330
532bfb0a
AJ
93312009-04-17 Aurelien Jarno <aurelien@aurel32.net>
9332
9333 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9334 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9335
e3ac77ff
RG
93362009-04-17 Richard Guenther <rguenther@suse.de>
9337
9338 PR tree-optimization/39746
9339 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9340 special-casing for builtins and static variable use/def.
9341 (call_may_clobber_ref_p_1): Likewise.
9342
7072a650
ILT
93432009-04-16 Ian Lance Taylor <iant@google.com>
9344
9345 * df.h: Include "timevar.h".
9346 (struct df_problem): Change tv_id field to timevar_id_t.
9347 * tree-pass.h: Include "timevar.h".
9348 (struct opt_pass): Change tv_id field to timevar_id_t.
9349 * timevar.h (timevar_id_t): Define TV_NONE.
9350 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9351 TV_NONE rather than tv_id != 0.
9352 (execute_one_pass): Likewise.
9353 * Makefile.in (DF_H): Add $(TIMEVAR_H).
9354 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
9355 dependencies to $(TREE_PASS_H).
9356 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9357 to TV_NONE.
9358 (pass_branch_target_load_optimize2): Likewise.
9359 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9360 (pass_outof_cfg_layout_mode): Likewise.
9361 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9362 (pass_rebuild_cgraph_edges): Likewise.
9363 (pass_remove_cgraph_callee_edges): Likewise.
9364 * df-core.c (pass_df_initialize_opt): Likewise.
9365 (pass_df_initialize_no_opt): Likewise.
9366 (pass_df_finish): Likewise.
9367 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9368 * except.c (pass_set_nothrow_function_flags): Likewise.
9369 (pass_convert_to_eh_region_ranges): Likewise.
9370 * final.c (pass_compute_alignments): Likewise.
9371 * function.c (pass_instantiate_virtual_regs): Likewise.
9372 (pass_init_function): Likewise.
9373 (pass_leaf_regs): Likewise.
9374 (pass_match_asm_constraints): Likewise.
9375 * gimple-low.c (pass_lower_cf): Likewise.
9376 (pass_mark_used_blocks): Likewise.
9377 * init-regs.c (pass_initialize_regs): Likewise.
9378 * integrate.c (pass_initial_value_sets): Likewise.
9379 * ira.c (pass_ira): Likewise.
9380 * jump.c (pass_cleanup_barriers): Likewise.
9381 * omp-low.c (pass_expand_omp): Likewise.
9382 (pass_lower_omp): Likewise.
9383 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9384 * recog.c (pass_split_all_insns): Likewise.
9385 (pass_split_after_reload): Likewise.
9386 (pass_split_before_regstack): Likewise.
9387 (pass_split_before_sched2): Likewise.
9388 (pass_split_for_shorten_branches): Likewise.
9389 * reginfo.c (pass_reginfo_init): Likewise.
9390 (pass_subregs_of_mode_init): Likewise.
9391 (pass_subregs_of_mode_finish): Likewise.
9392 * passes.c (pass_postreload): Likewise.
9393 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9394 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9395 (pass_warn_function_return): Likewise.
9396 (pass_warn_function_noreturn): Likewise.
9397 * tree-complex.c (pass_lower_complex): Likewise.
9398 (pass_lower_complex_O0): Likewise.
9399 * tree-if-conv.c (pass_if_conversion): Likewise.
9400 * tree-into-ssa.c (pass_build_ssa): Likewise.
9401 * tree-mudflap.c (pass_mudflap_1): Likewise.
9402 (pass_mudflap_2): Likewise.
9403 * tree-nomudflap.c (pass_mudflap_1): Likewise.
9404 (pass_mudflap_2): Likewise.
9405 * tree-nrv.c (pass_return_slot): Likewise.
9406 * tree-object-size.c (pass_object_sizes): Likewise.
9407 * tree-optimize.c (pass_all_optimizations): Likewise.
9408 (pass_early_local_passes): Likewise.
9409 (pass_all_early_optimizations): Likewise.
9410 (pass_cleanup_cfg): Likewise.
9411 (pass_cleanup_cfg_post_optimizing): Likewise.
9412 (pass_free_datastructures): Likewise.
9413 (pass_free_cfg_annotations): Likewise.
9414 (pass_fixup_cfg): Likewise.
9415 (pass_init_datastructures): Likewise.
9416 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9417 (pass_late_warn_uninitialized): Likewise.
9418 (pass_update_address_taken): Likewise.
9419 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9420 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9421 (pass_cse_sincos): Likewise.
9422 (pass_convert_to_rsqrt): Likewise.
9423 * tree-ssa-structalias.c (pass_build_alias): Likewise.
9424 * tree-stdarg.c (pass_stdarg): Likewise.
9425 * tree-tailcall.c (pass_tail_recursion): Likewise.
9426 (pass_tail_calls): Likewise.
9427 * tree-vect-generic.c (pass_lower_vector): Likewise.
9428 (pass_lower_vector_ssa): Likewise.
9429 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9430
0051ef59
JM
94312009-04-16 Joseph Myers <joseph@codesourcery.com>
9432
9433 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9434 XLR entry.
9435 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9436 Handle -march=xlr.
9437 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9438 logical and signext.
9439
b3f8558a
KK
94402009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
9441
9442 PR target/39767
9443 * config/sh/predicates.md (arith_operand): Check if the operand
9444 of TRUNCATE is a REG.
9445
f57597d9
KH
94462009-04-16 Kazu Hirata <kazu@codesourcery.com>
9447
9448 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9449 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9450
b172d063
KH
94512009-04-16 Kazu Hirata <kazu@codesourcery.com>
9452
9453 * tree-iterator.c (tsi_split_statement_list_after,
9454 tsi_split_statement_list_before): Remove.
9455 * tree-iterator.h: Remove the prototypes for
532bfb0a 9456 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 9457
78fe4f1f
KH
94582009-04-16 Kazu Hirata <kazu@codesourcery.com>
9459
9460 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9461 * tree-ssa-propagate.h: Remove the prototype for
9462 stmt_makes_single_load.
9463
43dd3201
KH
94642009-04-16 Kazu Hirata <kazu@codesourcery.com>
9465
9466 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9467 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9468
4252a4aa
KH
94692009-04-16 Kazu Hirata <kazu@codesourcery.com>
9470
9471 * tree-iterator.c (EXPR_LAST_BODY): Remove.
9472
bfb69968
KH
94732009-04-16 Kazu Hirata <kazu@codesourcery.com>
9474
9475 * except.c (eh_region_outer_p): Remove.
9476 * except.h: Remove the prototype for eh_region_outer_p.
9477
c7db7fa5
KH
94782009-04-16 Kazu Hirata <kazu@codesourcery.com>
9479
9480 * function.c (current_function_assembler_name): Remove.
9481 * function.h: Remove the prototype for
9482 current_function_assembler_name.
9483
efc0b2bd
ILT
94842009-04-16 Ian Lance Taylor <iant@google.com>
9485
532bfb0a 9486 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
9487 (add_reg_note): Call alloc_reg_note.
9488 * rtl.h (alloc_reg_note): Declare.
9489 * combine.c (try_combine): Use alloc_reg_note.
9490 (recog_for_combine, move_deaths): Likewise.
9491 (distribute_notes): Use alloc_reg_note and add_reg_note.
9492 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9493 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9494 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9495
6080348f
VM
94962009-04-16 Vladimir Makarov <vmakarov@redhat.com>
9497
9498 PR rtl-optimization/39762
9499 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9500 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 9501 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 9502
6080348f
VM
9503 * ira-conflicts.c (process_regs_for_copy): Use function
9504 ira_get_register_move_cost instead of global
9505 ira_register_move_cost.
9506
9507 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9508 color_pass, move_spill_restore, update_curr_costs): Ditto.
9509
9510 * ira-lives.c (process_single_reg_class_operands): Ditto.
9511
9512 * ira-emit.c (emit_move_list): Ditto.
9513
9514 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9515 (record_reg_classes): Ditto. Use functions
9516 ira_get_register_move_cost and ira_get_may_move_cost instead of
9517 global vars ira_register_move_cost, ira_may_move_out_cost and
9518 ira_may_move_in_cost.
9519 (record_address_regs): Don't call ira_init_register_move_cost.
9520 Use function ira_get_may_move_cost instead of global
9521 ira_may_move_in_cost.
9522 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 9523 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 9524 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 9525
646bea10
RG
95262009-04-16 Richard Guenther <rguenther@suse.de>
9527
9528 * tree-cfg.c (verify_gimple_assign_binary):
9529 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9530 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9531 (create_general_new_stmt): Note that this function is broken.
9532
02e819ff
RAE
95332009-04-16 Rafael Avila de Espindola <espindola@google.com>
9534
9535 * common.opt (fhelp): Add Var(help_flag).
9536 * gcc-plugin.h (plugin_info): Add help.
9537 * plugin.c (plugin_name_args): Add help.
9538 (register_plugin_info): Set plugin->help.
9539 (print_help_one_plugin): New.
9540 (print_plugins_help): New.
9541 * plugin.h (print_plugins_help): New.
9542 * toplev.c (toplev_main): Call print_plugins_help if needed.
9543
ccacdf06
RG
95442009-04-16 Richard Guenther <rguenther@suse.de>
9545
9546 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9547 (gimple_ior_addresses_taken_1): New function.
9548 (gimple_ior_addresses_taken): Likewise.
9549 * gimple.h (struct gimple_statement_with_ops_base): Remove
9550 addresses_taken member.
9551 (gimple_ior_addresses_taken): Declare.
9552 (gimple_addresses_taken, gimple_addresses_taken_ptr,
9553 gimple_set_addresses_taken): Remove.
9554 * ipa-reference.c (mark_address): New function.
9555 (scan_stmt_for_static_refs): Use it for marking addresses taken.
9556 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9557 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
9558 (gimple_add_to_addresses_taken): Remove.
9559 (get_tmr_operands): Call mark_address_taken.
9560 (get_asm_expr_operands): Likewise.
9561 (get_expr_operands): Likewise.
9562 (build_ssa_operands): Do not clear the addresses_taken bitmap.
9563 (free_stmt_operands): Do not free it.
9564 * tree-ssa.c (delete_tree_ssa): Likewise.
9565 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9566
346ef3fa
RG
95672009-04-16 Richard Guenther <rguenther@suse.de>
9568
9569 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9570 (walk_stmt_load_store_ops): Likewise.
9571 * gimple.c (get_base_loadstore): New function.
9572 (walk_stmt_load_store_addr_ops): Likewise.
9573 (walk_stmt_load_store_ops): Likewise.
9574 * ipa-pure-const.c (check_op): Simplify.
9575 (check_load, check_store): New functions.
9576 (check_stmt): Use walk_stmt_load_store_ops.
9577 * ipa-reference.c (mark_load): Adjust signature.
9578 (mark_store): Likewise.
9579 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9580
44e9f006
RAE
95812009-04-16 Rafael Avila de Espindola <espindola@google.com>
9582
9583 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9584 (plugin_info): New.
9585 * opts.c (common_handle_option): Don't call print_version.
9586 * plugin.c (plugin_name_args): Add version.
9587 (register_plugin_info): New.
9588 (register_callback): Handle PLUGIN_INFO.
9589 (try_init_one_plugin): New.
9590 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9591 if failed to init.
9592 (finalize_one_plugin): New.
9593 (finalize_plugins): New.
9594 (print_one_plugin): New.
9595 (print_plugins_versions): New.
9596 * plugin.h (print_plugins_versions): New.
9597 (finalize_plugins): New.
9598 * toplev.c (compile_file): Don't call initialize_plugins.
9599 (print_version): Call print_plugins_versions.
9600 (toplev_main): Call initialize_plugins. Print version if needed.
9601 Call finalize_plugins.
9602
41fd0f9b
RAE
96032009-04-16 Rafael Avila de Espindola <espindola@google.com>
9604
9605 * common.opt (fversion): New.
9606 * gcc.c (print_version): New.
9607 (process_command): Don't print the version. Just set print_version.
9608 (main): Print version. Call subprocesses if print_version and
9609 verbose_flag are set.
9610 * opts.c (common_handle_option): Handle OPT_fversion.
9611
550918ca 96122009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9613 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9614
9615 PR tree-optimization/39698
9616 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9617 type of the reduction variable. Only generate the def if
9618 it is needed.
9619
9620 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9621 make sure to first convert to an integer of the same precision.
9622 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9623 the type of the evolution correctly in computing the new
9624 induction variable base.
9625
54634841
RG
96262009-04-16 Richard Guenther <rguenther@suse.de>
9627
9628 PR middle-end/39625
9629 * tree-cfg.c (make_blocks): Split statements with to-be
9630 abnormal SSA names on the lhs.
9631
b6fc2cdb
PB
96322009-04-16 Paolo Bonzini <bonzini@gnu.org>
9633
9634 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9635 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9636 * c-typeck.c (really_start_incremental_init): Likewise.
9637 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9638 (TARGET_INITIALIZER): Remove it.
9639 * target.h (struct target): Remove vector_opaque_p.
9640 * tree.c (build_opaque_vector_type): New.
9641 * tree.h (TYPE_VECTOR_OPAQUE): New.
9642 (build_opaque_vector_type): Declare.
9643 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9644 * config/rs6000/rs6000.c (build_opaque_vector_type,
9645 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9646 (rs6000_init_builtins): Use build_opaque_vector_type for
9647 opaque_V4SI_type_node.
9648
a417cdd9
CM
96492009-04-15 Catherine Moore <clm@codesourcery.com>
9650
532bfb0a
AJ
9651 * debug.h (set_name): Declare.
9652 * dwarf2out.c (dwarf2out_set_name): Declare.
9653 (dwarf2_debug_hooks): Add set_name.
9654 (find_AT_string): New.
9655 (add_AT_string): Call find_AT_string.
9656 (dwarf2out_set_name): New.
9657 * cp/decl.c (grokdeclarator): Call set_name.
9658 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9659 * debug.c (do_nothing_debug_hooks): Likewise.
9660 * dbxout.c (dbx_debug_hooks): Likewise.
9661 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9662
60839f5d 96632009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9664
532bfb0a
AJ
9665 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9666 reg for single-precision FPU.
9667 * config/rs6000/rs6000.md (movsi_internal1): Only for
9668 !TARGET_SINGLE_FPU.
9669 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9670 single-precision FP regs.
9671
ada39f0b
RG
96722009-04-15 Richard Guenther <rguenther@suse.de>
9673
9674 * omp-low.c (lower_rec_input_clauses): Build correct address
9675 expressions.
9676 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9677 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9678 (generate_memset_zero): Fix types.
9679 * tree-profile.c (prepare_instrumented_value): Correctly
9680 widen a pointer.
9681
6866c6e8
ILT
96822009-04-15 Ian Lance Taylor <iant@google.com>
9683
9684 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9685 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9686 for -Wall and for -Wc++-compat.
9687 (c_common_post_options): For C++, set warn_enum_compare if not
9688 already set.
9689 * c-tree.h (struct c_expr): Add field original_type.
9690 (build_external_ref): Update declaration.
9691 * c-parser.c (c_parser_braced_init): Set original_type.
9692 (c_parser_initelt): Likewise.
9693 (c_parser_expr_no_commas): Likewise.
9694 (c_parser_conditional_expression): Likewise.
9695 (c_parser_cast_expression): Likewise.
9696 (c_parser_unary_expression): Likewise. Pull setting of
9697 original_code to top of function.
9698 (c_parser_sizeof_expression): Set original_type.
9699 (c_parser_alignof_expression): Likewise.
9700 (c_parser_postfix_expression): Likewise. Pull setting of
9701 original_code to top of function.
532bfb0a 9702 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9703 (c_parser_postfix_expression_after_primary): Likewise.
9704 (c_parser_expression): Likewise.
9705 * c-typeck.c (build_external_ref): Add type parameter. Change all
9706 callers.
9707 (c_expr_sizeof_expr): Set original_type field.
9708 (parser_build_unary_op): Likewise.
9709 (parser_build_binary_op): Likewise. Optionally warn about
9710 comparisons of enums of different types.
9711 (digest_init): Set original_type field.
9712 (really_start_incremental_init): Likewise.
9713 (push_init_level, pop_init_level): Likewise.
9714 * doc/invoke.texi (Warning Options): -Wenum-compare now
9715 supported in C.
9716
f116fecf
RG
97172009-04-15 Richard Guenther <rguenther@suse.de>
9718
9719 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9720 out a necessary conversion.
9721 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9722 names we didn't value number.
9723 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9724
25e20805
RG
97252009-04-15 Richard Guenther <rguenther@suse.de>
9726
9727 PR tree-optimization/39764
9728 * tree-ssa-ccp.c (get_value): Canonicalize value with
9729 canonicalize_float_value.
9730
90cc3676
JH
97312009-04-15 Jan Hubicka <jh@suse.cz>
9732
9733 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9734 Wrong version of patch.
9735
6d14c006
JH
97362009-04-15 Jan Hubicka <jh@suse.cz>
9737
9738 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9739
5afaa917
NS
97402009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9741
9742 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9743 our distinct integral and vector types.
9744
3b482fca
RAE
97452009-04-15 Rafael Avila de Espindola <espindola@google.com>
9746
9747 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9748 * init.c (build_vtbl_address): Remove call to assemble_external.
9749
6cd1d2e2
DJ
97502009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9751
9752 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9753 output for other floating point modes.
9754
dab71827
DN
97552009-04-14 Diego Novillo <dnovillo@google.com>
9756
9757 * diagnostic.c (diagnostic_report_diagnostic): Do not
9758 warn about loaded plugins for DK_ERROR and DK_WARNING.
9759 * c-decl.c (declspecs_add_type): Move call to
9760 invoke_plugin_callbacks ...
9761 * c-parser.c (c_parser_declspecs): ... here.
9762 * plugin.c (dump_active_plugins): Tidy output.
9763
68a607d8
DN
97642009-04-14 Diego Novillo <dnovillo@google.com>
9765 Le-Chun Wu <lcwu@google.com>
9766
9767 * configure.ac: Add --enable-plugin support.
9768 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9769 * Makefile.in (PLUGIN_H): Define.
9770 Export ENABLE_PLUGIN and GMPINC to site.exp.
9771 Add PLUGINLIBS to link command.
9772 Add/modify dependencies for plugin.o and files including plugin.h.
9773 (plugin.o): New.
9774 * config.in: Regenerate.
2ba9daa7 9775
68a607d8
DN
9776 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9777 OPT_fplugin_arg_.
9778
97792009-04-14 Le-Chun Wu <lcwu@google.com>
9780
9781 * tree-pass.h (register_one_dump_file): Add a prototype for
9782 register_one_dump_file.
9783 * toplev.c (compile_file): Call initialize_plugins.
9784 (do_compile): Call invoke_plugin_callbacks.
9785 (toplev_main): Call invoke_plugin_callbacks.
9786 * common.opt: Add -fplugin= and -fplugin-arg-.
9787 * gcc-plugin.h: New public header file for plugins to include.
9788 * plugin.c: New source file.
9789 * plugin.h: New internal header file.
9790 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9791
68a607d8
DN
9792 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9793
97942009-04-14 Diego Novillo <dnovillo@google.com>
9795
9796 * doc/plugins.texi: New.
9797 * doc/gccint.texi: Add reference to Plugins chapter.
9798 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9799 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9800 loaded plugins, if any.
9801 * timevar.def (TV_PLUGIN_INIT): Define.
9802 (TV_PLUGIN_RUN): Define.
9803 * plugin.c: Include timevar.h
9804 (plugins_active_p): New.
9805 (dump_active_plugins): New.
9806 (debug_active_plugins): New.
9807
50617257
JM
98082009-04-14 Joseph Myers <joseph@codesourcery.com>
9809
9810 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9811 library paths.
9812 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9813
b32f6fff
KH
98142009-04-14 Kazu Hirata <kazu@codesourcery.com>
9815
9816 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9817 the same as a minus without a shift.
9818
85d04fa2
NC
98192009-04-14 Nick Clifton <nickc@redhat.com>
9820
9821 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9822 comparisons with small integers will always produce a short
9823 branch.
9824
e495a0c8
RAE
98252009-04-14 Rafael Avila de Espindola <espindola@google.com>
9826
9827 Merge:
e495a0c8
RAE
9828 2008-12-19 Diego Novillo <dnovillo@google.com>
9829
532bfb0a 9830 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9831
ad41bd84 98322009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9833
9834 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9835 verification.
9836 (verify_gimple_assign_binary): Likewise. Handle shifts and
9837 rotates correctly.
9838 (verify_gimple_phi): Print the mismatched argument position.
9839 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9840 Fix types.
9841 (vect_update_init_of_dr): Likewise.
9842 * matrix-reorg.c (transform_access_sites): Do what the
9843 comment suggests.
9844 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9845
60839f5d 98462009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9847
9848 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9849 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9850 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9851 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9852 remove duplicate config
9853
b0e2d008
DR
98542009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9855
9856 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9857 file_name:line_number type locator of the call site.
2ba9daa7 9858
1244a8b7
VM
98592009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9860
9861 * genautomata.c: Put blank after comma.
9862 (automaton_decls): New.
9863 (struct unit_usage): Add comments to member next.
9864 (store_alt_unit_usage): Keep the list ordered.
9865 (unit_present_on_list_p, equal_alternatives_p): New.
9866 (check_regexp_units_distribution): Check units distribution
9867 correctness correctly.
9868 (main): Don't write automata if error is found. Return correct
9869 exit code.
2ba9daa7 9870
1244a8b7
VM
9871 * config/m68k/cf.md (cfv4_ds): Remove.
9872 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9873 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9874
9875 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9876 power4-load-ext, power4-store, power4-store-update,
9877 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9878 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9879 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9880 power4-sqrt, power4-isync): Modify reservation to make correct
9881 unit distribution to automata.
9882
9883 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9884 power5-store-update, power5-two, power5-three, power5-lmul,
9885 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9886
f7dd1864
AN
98872009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9888
9889 * except.c (pass_set_nothrow_function_flags): Set name and add
9890 TODO_dump_func.
9891 (set_nothrow_function_flags): Mention in the dump file when
9892 changing a function to nothrow.
9893
59a1171f
OS
98942009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9895
9896 PR/39066
9897 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9898 instead of unsigned long.
9899
934c2060
RR
99002009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9901
f7dd1864
AN
9902 * config/arm/arm.c (return_used_this_function): Remove.
9903 (arm_output_function_prologue): Remove use of
934c2060 9904 return_used_this_function.
f7dd1864 9905 (output_return_instruction): Replace use of
934c2060
RR
9906 return_used_this_function
9907 by cfun->machine->return_used_this_function.
f7dd1864
AN
9908 (arm_output_epilogue): Likewise.
9909 (arm_output_function_epilogue): Likewise.
9910 (thumb_unexpanded_epilogue): Likewise.
9911 * config/arm/arm.h (struct machine_function):
934c2060 9912 New member return_used_this_function.
f7dd1864 9913
ae5cc016
MM
99142009-04-12 Mark Mitchell <mark@codesourcery.com>
9915
9916 * doc/install.texi: Correct description of default directory for
9917 --with-gxx-include-dir.
9918
a0ce68df 99192009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9920
9921 * fold-const.c (build_range_check): Properly deal with enumeral and
9922 boolean base types.
9923
3906a4a1
SB
99242009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9925
9926 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9927 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9928 * params.h (MAX_GCSE_PASSES): Remove.
9929 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9930 in sequence. Remove ability to run multiple passes.
9931 (bypass_jumps): Report run as third CPROP pass.
9932
efaadb93
AN
99332009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9934
9935 PR middle-end/39651
9936 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9937 when deciding whether the whole SEQUENCE can throw.
9938
4c48007b
UB
99392009-04-12 Uros Bizjak <ubizjak@gmail.com>
9940
9941 PR target/39740
9942 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9943 offseted label references.
9944
b4104018
JH
99452009-04-11 Jan Hubicka <jh@suse.cz>
9946
9947 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9948
32848948
RG
99492009-04-11 Richard Guenther <rguenther@suse.de>
9950
9951 PR middle-end/39732
9952 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9953 return variables as TREE_ADDRESSABLE.
9954
8810712e
RG
99552009-04-11 Richard Guenther <rguenther@suse.de>
9956
9957 PR tree-optimization/39713
9958 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9959 reference trees have SSA_NAME operands.
9960
fa78c0c1
RG
99612009-04-11 Richard Guenther <rguenther@suse.de>
9962
9963 PR c/39712
9964 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9965 address expressions.
9966
4d722130
DK
99672009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9968
9969 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9970 match changes in Cygwin 1.7
9971 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9972 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9973
567a90f5
PB
99742009-04-10 Paolo Bonzini <bonzini@gnu.org>
9975
9976 PR tree-optimization/39701
9977 * doc/invoke.texi (Optimization Options): Document change in
9978 meaning and initialization of -fdelete-null-pointer-checks.
9979
1ad2f450
L
99802009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9981
9982 PR middle-end/39701
9983 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9984
9985 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9986 here.
9987
9988 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9989
1afc5373
CF
99902009-04-10 Chao-ying Fu <fu@mips.com>
9991
9992 * doc/tm.texi (Instruction Output): Document
9993 TARGET_ASM_FINAL_POSTSCAN_INSN.
9994 * target.h (final_postscan_insn): New field in asm_out.
9995 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9996 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9997 * final.c (final_scan_insn): Call
9998 targetm.asm_out.final_postscan_insn after outputting
9999 an asm macro and a normal instruction.
10000
10001 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10002 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10003 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10004 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10005 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10006
4d35e75c
PB
100072009-04-10 Paolo Bonzini <bonzini@gnu.org>
10008
10009 PR middle-end/39701
1ad2f450
L
10010 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10011 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 10012
62c49b83
L
100132009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10014
10015 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10016
80558628
L
100172009-04-09 H.J. Lu <hongjiu.lu@intel.com>
10018
10019 PR target/39678
10020 * config/i386/i386.c (classify_argument): Handle SCmode with
10021 (bit_offset % 64) != 0.
10022
8c70d28b
SL
100232009-04-09 Sandra Loosemore <sandra@codesourcery.com>
10024
10025 * doc/invoke.texi (Optimize Options): Add cross-reference to
10026 -Q --help=optimizers examples.
10027
e1ff19bf
BE
100282009-04-10 Ben Elliston <bje@au.ibm.com>
10029
10030 PR target/36800
10031 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10032 regalign for the reg == fpr and TDmode case.
10033
52daca75
DA
100342009-04-09 David Ayers <ayers@fsfe.org>
10035
10036 PR objc/29200
10037 * objc/objc-act.c (warn_with_method): Remove helper function.
10038 (check_duplicates): Call warning and inform directly.
10039 (really_start_method): Likewise.
10040
b45f0e58
PB
100412009-04-09 Paolo Bonzini <bonzini@gnu.org>
10042
10043 * expmed.c (expand_divmod): Always use a comparison for a division
10044 by a large unsigned integer.
10045
1ad2f450
L
10046 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10047 for things others than variables or functions as nonzero.
b45f0e58 10048
748086b7
JJ
100492009-04-09 Nick Clifton <nickc@redhat.com>
10050
10051 * unwind-compat.c: Change copyright header to refer to version
10052 3 of the GNU General Public License with version 3.1 of the
10053 GCC Runtime Library Exception and to point readers at the
7a715bba 10054 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
10055 * config/alpha/crtfastmath.c: Likewise.
10056 * config/alpha/linux-unwind.h: Likewise.
10057 * config/alpha/qrnnd.asm: Likewise.
10058 * config/alpha/vms-crt0-64.c: Likewise.
10059 * config/alpha/vms-crt0.c: Likewise.
10060 * config/alpha/vms-dwarf2.asm: Likewise.
10061 * config/alpha/vms-dwarf2eh.asm: Likewise.
10062 * config/alpha/vms-psxcrt0-64.c: Likewise.
10063 * config/alpha/vms-psxcrt0.c: Likewise.
10064 * config/alpha/vms_tramp.asm: Likewise.
10065 * config/arc/initfini.c: Likewise.
10066 * config/arc/lib1funcs.asm: Likewise.
10067 * config/arm/bpabi-v6m.S: Likewise.
10068 * config/arm/bpabi.S: Likewise.
10069 * config/arm/bpabi.c: Likewise.
10070 * config/arm/crti.asm: Likewise.
10071 * config/arm/crtn.asm: Likewise.
10072 * config/arm/ieee754-df.S: Likewise.
10073 * config/arm/ieee754-sf.S: Likewise.
10074 * config/arm/lib1funcs.asm: Likewise.
10075 * config/arm/libunwind.S: Likewise.
10076 * config/arm/linux-atomic.c: Likewise.
10077 * config/arm/mmintrin.h: Likewise.
10078 * config/arm/pr-support.c: Likewise.
10079 * config/arm/unaligned-funcs.c: Likewise.
10080 * config/arm/unwind-arm.c: Likewise.
10081 * config/arm/unwind-arm.h: Likewise.
10082 * config/avr/libgcc.S: Likewise.
10083 * config/bfin/crti.s: Likewise.
10084 * config/bfin/crtlibid.s: Likewise.
10085 * config/bfin/crtn.s: Likewise.
10086 * config/bfin/lib1funcs.asm: Likewise.
10087 * config/bfin/linux-unwind.h: Likewise.
10088 * config/cris/arit.c: Likewise.
10089 * config/cris/cris_abi_symbol.c: Likewise.
10090 * config/darwin-64.c: Likewise.
10091 * config/darwin-crt2.c: Likewise.
10092 * config/darwin-crt3.c: Likewise.
10093 * config/darwin.h: Likewise.
10094 * config/dbxelf.h: Likewise.
10095 * config/dfp-bit.c: Likewise.
10096 * config/dfp-bit.h: Likewise.
10097 * config/elfos.h: Likewise.
10098 * config/fixed-bit.c: Likewise.
10099 * config/fixed-bit.h: Likewise.
10100 * config/fp-bit.c: Likewise.
10101 * config/fp-bit.h: Likewise.
10102 * config/fr30/crti.asm: Likewise.
10103 * config/fr30/crtn.asm: Likewise.
10104 * config/fr30/lib1funcs.asm: Likewise.
10105 * config/freebsd-spec.h: Likewise.
10106 * config/frv/cmovd.c: Likewise.
10107 * config/frv/cmovh.c: Likewise.
10108 * config/frv/cmovw.c: Likewise.
10109 * config/frv/frvbegin.c: Likewise.
10110 * config/frv/frvend.c: Likewise.
10111 * config/frv/lib1funcs.asm: Likewise.
10112 * config/glibc-stdint.h: Likewise.
10113 * config/h8300/clzhi2.c: Likewise.
10114 * config/h8300/crti.asm: Likewise.
10115 * config/h8300/crtn.asm: Likewise.
10116 * config/h8300/ctzhi2.c: Likewise.
10117 * config/h8300/fixunssfsi.c: Likewise.
10118 * config/h8300/lib1funcs.asm: Likewise.
10119 * config/h8300/parityhi2.c: Likewise.
10120 * config/h8300/popcounthi2.c: Likewise.
10121 * config/i386/ammintrin.h: Likewise.
10122 * config/i386/att.h: Likewise.
10123 * config/i386/avxintrin.h: Likewise.
10124 * config/i386/biarch64.h: Likewise.
10125 * config/i386/bmmintrin.h: Likewise.
10126 * config/i386/cpuid.h: Likewise.
10127 * config/i386/cross-stdarg.h: Likewise.
10128 * config/i386/crtfastmath.c: Likewise.
10129 * config/i386/crtprec.c: Likewise.
10130 * config/i386/cygming-crtbegin.c: Likewise.
10131 * config/i386/cygming-crtend.c: Likewise.
10132 * config/i386/cygwin.asm: Likewise.
10133 * config/i386/emmintrin.h: Likewise.
10134 * config/i386/gmm_malloc.h: Likewise.
10135 * config/i386/gthr-win32.c: Likewise.
10136 * config/i386/i386.h: Likewise.
10137 * config/i386/immintrin.h: Likewise.
10138 * config/i386/linux-unwind.h: Likewise.
10139 * config/i386/linux64.h: Likewise.
10140 * config/i386/mm3dnow.h: Likewise.
10141 * config/i386/mmintrin-common.h: Likewise.
10142 * config/i386/mmintrin.h: Likewise.
10143 * config/i386/nmmintrin.h: Likewise.
10144 * config/i386/pmm_malloc.h: Likewise.
10145 * config/i386/pmmintrin.h: Likewise.
10146 * config/i386/smmintrin.h: Likewise.
10147 * config/i386/sol2-c1.asm: Likewise.
10148 * config/i386/sol2-ci.asm: Likewise.
10149 * config/i386/sol2-cn.asm: Likewise.
10150 * config/i386/sol2-gc1.asm: Likewise.
10151 * config/i386/tmmintrin.h: Likewise.
10152 * config/i386/unix.h: Likewise.
10153 * config/i386/w32-unwind.h: Likewise.
10154 * config/i386/wmmintrin.h: Likewise.
10155 * config/i386/x86-64.h: Likewise.
10156 * config/i386/x86intrin.h: Likewise.
10157 * config/i386/xmmintrin.h: Likewise.
10158 * config/ia64/crtbegin.asm: Likewise.
10159 * config/ia64/crtend.asm: Likewise.
10160 * config/ia64/crtfastmath.c: Likewise.
10161 * config/ia64/crti.asm: Likewise.
10162 * config/ia64/crtn.asm: Likewise.
10163 * config/ia64/fde-glibc.c: Likewise.
10164 * config/ia64/lib1funcs.asm: Likewise.
10165 * config/ia64/linux-unwind.h: Likewise.
10166 * config/ia64/quadlib.c: Likewise.
10167 * config/ia64/unwind-ia64.c: Likewise.
10168 * config/linux.h: Likewise.
10169 * config/m32c/m32c-lib1.S: Likewise.
10170 * config/m32c/m32c-lib2-trapv.c: Likewise.
10171 * config/m32c/m32c-lib2.c: Likewise.
10172 * config/m32r/initfini.c: Likewise.
10173 * config/m68hc11/larith.asm: Likewise.
10174 * config/m68hc11/m68hc11-crt0.S: Likewise.
10175 * config/m68k/cf.md: Likewise.
10176 * config/m68k/crti.s: Likewise.
10177 * config/m68k/crtn.s: Likewise.
10178 * config/m68k/lb1sf68.asm: Likewise.
10179 * config/m68k/linux-unwind.h: Likewise.
10180 * config/mcore/crti.asm: Likewise.
10181 * config/mcore/crtn.asm: Likewise.
10182 * config/mcore/lib1.asm: Likewise.
10183 * config/mips/linux-unwind.h: Likewise.
10184 * config/mips/loongson.h: Likewise.
10185 * config/mips/mips16.S: Likewise.
10186 * config/mmix/crti.asm: Likewise.
10187 * config/mmix/crtn.asm: Likewise.
10188 * config/pa/fptr.c: Likewise.
10189 * config/pa/hpux-unwind.h: Likewise.
10190 * config/pa/lib2funcs.asm: Likewise.
10191 * config/pa/linux-atomic.c: Likewise.
10192 * config/pa/linux-unwind.h: Likewise.
10193 * config/pa/milli64.S: Likewise.
10194 * config/pa/quadlib.c: Likewise.
10195 * config/pa/stublib.c: Likewise.
10196 * config/picochip/libgccExtras/adddi3.asm: Likewise.
10197 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
10198 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
10199 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
10200 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
10201 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
10202 * config/picochip/libgccExtras/divmod15.asm: Likewise.
10203 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
10204 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10205 * config/picochip/libgccExtras/longjmp.asm: Likewise.
10206 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10207 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10208 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10209 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10210 * config/picochip/libgccExtras/setjmp.asm: Likewise.
10211 * config/picochip/libgccExtras/subdi3.asm: Likewise.
10212 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10213 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10214 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10215 * config/rs6000/750cl.h: Likewise.
10216 * config/rs6000/altivec.h: Likewise.
10217 * config/rs6000/biarch64.h: Likewise.
10218 * config/rs6000/crtresfpr.asm: Likewise.
10219 * config/rs6000/crtresgpr.asm: Likewise.
10220 * config/rs6000/crtresxfpr.asm: Likewise.
10221 * config/rs6000/crtresxgpr.asm: Likewise.
10222 * config/rs6000/crtsavfpr.asm: Likewise.
10223 * config/rs6000/crtsavgpr.asm: Likewise.
10224 * config/rs6000/darwin-asm.h: Likewise.
10225 * config/rs6000/darwin-fallback.c: Likewise.
10226 * config/rs6000/darwin-fpsave.asm: Likewise.
10227 * config/rs6000/darwin-ldouble.c: Likewise.
10228 * config/rs6000/darwin-tramp.asm: Likewise.
10229 * config/rs6000/darwin-unwind.h: Likewise.
10230 * config/rs6000/darwin-vecsave.asm: Likewise.
10231 * config/rs6000/darwin-world.asm: Likewise.
10232 * config/rs6000/e500crtres32gpr.asm: Likewise.
10233 * config/rs6000/e500crtres64gpr.asm: Likewise.
10234 * config/rs6000/e500crtres64gprctr.asm: Likewise.
10235 * config/rs6000/e500crtrest32gpr.asm: Likewise.
10236 * config/rs6000/e500crtrest64gpr.asm: Likewise.
10237 * config/rs6000/e500crtresx32gpr.asm: Likewise.
10238 * config/rs6000/e500crtresx64gpr.asm: Likewise.
10239 * config/rs6000/e500crtsav32gpr.asm: Likewise.
10240 * config/rs6000/e500crtsav64gpr.asm: Likewise.
10241 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10242 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10243 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10244 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10245 * config/rs6000/eabi-ci.asm: Likewise.
10246 * config/rs6000/eabi-cn.asm: Likewise.
10247 * config/rs6000/eabi.asm: Likewise.
10248 * config/rs6000/linux-unwind.h: Likewise.
10249 * config/rs6000/linux64.h: Likewise.
10250 * config/rs6000/paired.h: Likewise.
10251 * config/rs6000/paired.md: Likewise.
10252 * config/rs6000/ppc64-fp.c: Likewise.
10253 * config/rs6000/ppu_intrinsics.h: Likewise.
10254 * config/rs6000/rs6000.h: Likewise.
10255 * config/rs6000/si2vmx.h: Likewise.
10256 * config/rs6000/sol-ci.asm: Likewise.
10257 * config/rs6000/sol-cn.asm: Likewise.
10258 * config/rs6000/spe.h: Likewise.
10259 * config/rs6000/spu2vmx.h: Likewise.
10260 * config/rs6000/sysv4.h: Likewise.
10261 * config/rs6000/tramp.asm: Likewise.
10262 * config/rs6000/vec_types.h: Likewise.
10263 * config/s390/linux-unwind.h: Likewise.
10264 * config/s390/tpf-unwind.h: Likewise.
10265 * config/score/crti.asm: Likewise.
10266 * config/score/crtn.asm: Likewise.
10267 * config/sh/crt1.asm: Likewise.
10268 * config/sh/crti.asm: Likewise.
10269 * config/sh/crtn.asm: Likewise.
10270 * config/sh/divtab-sh4-300.c: Likewise.
10271 * config/sh/divtab-sh4.c: Likewise.
10272 * config/sh/divtab.c: Likewise.
10273 * config/sh/lib1funcs-4-300.asm: Likewise.
10274 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10275 * config/sh/lib1funcs.asm: Likewise.
10276 * config/sh/lib1funcs.h: Likewise.
10277 * config/sh/linux-atomic.asm: Likewise.
10278 * config/sh/linux-unwind.h: Likewise.
10279 * config/sh/shmedia.h: Likewise.
10280 * config/sh/sshmedia.h: Likewise.
10281 * config/sh/ushmedia.h: Likewise.
10282 * config/sparc/crtfastmath.c: Likewise.
10283 * config/sparc/linux-unwind.h: Likewise.
10284 * config/sparc/sol2-c1.asm: Likewise.
10285 * config/sparc/sol2-ci.asm: Likewise.
10286 * config/sparc/sol2-cn.asm: Likewise.
10287 * config/spu/divmodti4.c: Likewise.
10288 * config/spu/divv2df3.c: Likewise.
10289 * config/spu/float_disf.c: Likewise.
10290 * config/spu/float_unsdidf.c: Likewise.
10291 * config/spu/float_unsdisf.c: Likewise.
10292 * config/spu/float_unssidf.c: Likewise.
10293 * config/spu/mfc_multi_tag_release.c: Likewise.
10294 * config/spu/mfc_multi_tag_reserve.c: Likewise.
10295 * config/spu/mfc_tag_release.c: Likewise.
10296 * config/spu/mfc_tag_reserve.c: Likewise.
10297 * config/spu/mfc_tag_table.c: Likewise.
10298 * config/spu/multi3.c: Likewise.
10299 * config/spu/spu_internals.h: Likewise.
10300 * config/spu/spu_intrinsics.h: Likewise.
10301 * config/spu/spu_mfcio.h: Likewise.
10302 * config/spu/vec_types.h: Likewise.
10303 * config/spu/vmx2spu.h: Likewise.
10304 * config/stormy16/stormy16-lib2.c: Likewise.
10305 * config/svr4.h: Likewise.
10306 * config/sync.c: Likewise.
10307 * config/v850/lib1funcs.asm: Likewise.
10308 * config/vxlib-tls.c: Likewise.
10309 * config/vxlib.c: Likewise.
10310 * config/vxworks-dummy.h: Likewise.
10311 * config/xtensa/crti.asm: Likewise.
10312 * config/xtensa/crtn.asm: Likewise.
10313 * config/xtensa/ieee754-df.S: Likewise.
10314 * config/xtensa/ieee754-sf.S: Likewise.
10315 * config/xtensa/lib1funcs.asm: Likewise.
10316 * config/xtensa/lib2funcs.S: Likewise.
10317 * config/xtensa/linux-unwind.h: Likewise.
10318 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10319 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10320 * coretypes.h: Likewise.
10321 * crtstuff.c: Likewise.
10322 * defaults.h: Likewise.
10323 * dwarf2.h: Likewise.
10324 * emutls.c: Likewise.
10325 * gbl-ctors.h: Likewise.
10326 * gcov-io.h: Likewise.
10327 * ginclude/float.h: Likewise.
10328 * ginclude/iso646.h: Likewise.
10329 * ginclude/stdarg.h: Likewise.
10330 * ginclude/stdbool.h: Likewise.
10331 * ginclude/stddef.h: Likewise.
10332 * ginclude/stdfix.h: Likewise.
10333 * ginclude/stdint-gcc.h: Likewise.
10334 * ginclude/tgmath.h: Likewise.
10335 * gthr-aix.h: Likewise.
10336 * gthr-dce.h: Likewise.
10337 * gthr-gnat.c: Likewise.
10338 * gthr-gnat.h: Likewise.
10339 * gthr-lynx.h: Likewise.
10340 * gthr-mipssde.h: Likewise.
10341 * gthr-nks.h: Likewise.
10342 * gthr-posix.c: Likewise.
10343 * gthr-posix.h: Likewise.
10344 * gthr-posix95.h: Likewise.
10345 * gthr-rtems.h: Likewise.
10346 * gthr-single.h: Likewise.
10347 * gthr-solaris.h: Likewise.
10348 * gthr-tpf.h: Likewise.
10349 * gthr-vxworks.h: Likewise.
10350 * gthr-win32.h: Likewise.
10351 * gthr.h: Likewise.
10352 * libgcc2.c: Likewise.
10353 * libgcc2.h: Likewise.
10354 * libgcov.c: Likewise.
10355 * tsystem.h: Likewise.
10356 * typeclass.h: Likewise.
10357 * unwind-c.c: Likewise.
10358 * unwind-compat.h: Likewise.
10359 * unwind-dw2-fde-compat.c: Likewise.
10360 * unwind-dw2-fde-darwin.c: Likewise.
10361 * unwind-dw2-fde-glibc.c: Likewise.
10362 * unwind-dw2-fde.c: Likewise.
10363 * unwind-dw2-fde.h: Likewise.
10364 * unwind-dw2.c: Likewise.
10365 * unwind-dw2.h: Likewise.
10366 * unwind-generic.h: Likewise.
10367 * unwind-pe.h: Likewise.
10368 * unwind-sjlj.c: Likewise.
10369 * unwind.inc: Likewise.
10370 * config/arm/neon-gen.ml: Change generated copyright header to
10371 refer to version 3 of the GNU General Public License with
10372 version 3.1 of the GCC Runtime Library Exception and to point
10373 readers at the COPYING3 and COPYING3.RUNTIME files and the
10374 FSF's license web page.
10375 * config/arm/arm_neon.h: Regenerate.
10376
103772009-04-09 Jakub Jelinek <jakub@redhat.com>
10378
10379 * config/cris/cris.md: Change copyright header to refer to version
10380 3 of the GNU General Public License.
10381 * doc/install.texi2html: Change copyright header to refer to version
10382 3 of the GNU General Public License and to point readers at the
10383 COPYING3 file and the FSF's license web page.
10384 * config/vax/linux.h: Likewise.
10385
4a77c72b
PB
103862009-04-09 Paolo Bonzini <bonzini@gnu.org>
10387
1ad2f450
L
10388 * config/i386/i386.md (cmpcc): New.
10389 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10390 (sync_compare_and_swap_cc*): Delete.
10391
10392 * config/s390/s390.c (s390_compare_emitted): Remove.
10393 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10394 s390_compare_emitted used to be handled. Assert that modes match.
10395 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10396 refer to sync_compare_and_swap_ccsi.
10397 * config/s390/s390.h (s390_compare_emitted): Remove.
10398 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10399 instead of s390_compare_emitted.
10400 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10401 instead of s390_compare_emitted.
10402 * config/s390/s390.md (cmpcc): New.
10403 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10404 CC_REGNUM, do not pretend it's set.
10405 (sync_compare_and_swap_cc*): Delete.
10406 * config/s390/predicates.md (cc_reg_operand): New.
10407
10408 * expr.c (sync_compare_and_swap_cc): Delete.
10409 * optabs.h (sync_compare_and_swap_cc): Delete.
10410 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10411 is being used with can_compare_p.
10412 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10413 (find_cc_set): New.
10414 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10415 look for a MODE_CC set instead. Use emit_store_flag.
10416 (expand_compare_and_swap_loop): Likewise, with some additional
10417 complication to avoid a force_reg when useless. Use
10418 emit_cmp_and_jump_insns.
10419 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10420 * doc/md.texi (sync_compare_and_swap_cc): Merge with
10421 sync_compare_and_swap documentation.
4a77c72b 10422
0c0efb33
JH
104232009-04-09 Jan Hubicka <jh@suse.cz>
10424
10425 * except.c (find_prev_try): Break out from ....
10426 (duplicate_eh_regions): ... here; properly update prev_try pointers
10427 when duplication part of tree.
10428 (dump_eh_tree): Improve dumping.
10429 (verify_eh_region): New.
10430 (verify_eh_tree): Use it.
10431
22a65a54
RG
104322009-04-06 Richard Guenther <rguenther@suse.de>
10433
10434 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10435 &ARRAY addresses by adjusting their types and prepending
10436 a conversion.
10437 * tree-cfg.c (verify_gimple_assign_single): Verify that
10438 addresses are correct.
10439
f76968e6
RG
104402009-04-09 Richard Guenther <rguenther@suse.de>
10441
10442 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10443 indices into an array reference if possible.
10444 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10445 Fold POINTER_PLUS_EXPR statements with invariant address.
10446
c90c5fb5
AM
104472009-04-09 Alan Modra <amodra@bigpond.net.au>
10448
10449 PR target/39634
10450 * config.gcc (powerpc64-*-linux*): Always build biarch.
10451
17cede2e
JM
104522009-04-09 Joseph Myers <joseph@codesourcery.com>
10453
10454 PR c/39613
10455 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10456 it and pedwarn if this results in an INTEGER_CST.
10457
a3337ea2
KG
104582009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10459
10460 * doc/install.texi: Update minimum GMP version. Remove obsolete
10461 text in MPFR section.
10462
ce9ba79b
JJ
104632009-04-08 Jakub Jelinek <jakub@redhat.com>
10464
10465 * dwarf2out.c (class_scope_p): New static inline.
10466 (class_or_namespace_scope_p): Use it.
10467 (gen_variable_die): Use DW_TAG_member tag for static data member
10468 declarations instead of DW_TAG_variable.
10469
4f0ae266
JJ
10470 PR middle-end/39573
10471 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10472 variables.
10473
d27f0ddc
RG
104742009-04-08 Richard Guenther <rguenther@suse.de>
10475
10476 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10477 valueize random data.
10478
557cc596
DE
104792009-04-08 David Edelsohn <edelsohn@gnu.org>
10480
10481 * config.gcc (aix tm_file): Add aix-stdint.h.
10482 (aix tm clause use_gcc_stdint): Set to wrap.
10483 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 10484
75ccc1e7
RG
104852009-04-08 Richard Guenther <rguenther@suse.de>
10486
10487 PR middle-end/36291
10488 * tree-dfa.c (add_referenced_var): Do not recurse into
10489 global initializers.
10490 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10491 exposed variables.
10492 (fold_const_aggregate_ref): Likewise.
10493
c6963675
PB
104942009-04-08 Paolo Bonzini <bonzini@gnu.org>
10495
6c44cf79
L
10496 * recog.c (ordered_comparison_operator): New.
10497 * gensupport.c (std_preds): Add it.
c6963675
PB
10498 * doc/md.texi (Machine-Independent Predicates): Document it.
10499
6d07ad98
JH
105002009-04-08 Jan Hubicka <jh@suse.cz>
10501
10502 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10503 * function.h (rtl_eh): Remove exception_handler_label_map.
10504 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10505 remove_exception_handler_label, for_each_eh_label_1): Remove.
10506 (rtl_remove_unreachable_regions): Remove.
10507 (convert_from_eh_region_ranges): Do not remove unreachable regions.
10508 (find_exception_handler_labels): Don't build the hashtable.
10509 (maybe_remove_eh_handler): Remove.
10510 (for_each_eh_label): Rewrite to walk the tree.
10511 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10512 * except.h (maybe_remove_eh_handler): Remove.
10513 * passes.c (init_optimization_passes): Schedule second EH cleanup
10514 before out-of-ssa.
10515 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10516 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10517
7ddf71e3
PB
105182009-04-08 Paolo Bonzini <bonzini@gnu.org>
10519
10520 * genoutput.c (validate_optab_operands): New.
10521 (gen_insn, gen_expand): Call it.
10522
10523 * genflags.c (gen_insn): Detect misused iterators.
10524 (main): Pass line_no to gen_insn, exit with status 1 on error.
10525
10526 * genextract.c (line_no): Make global.
10527 (VEC_safe_set_locstr): Change assertion to error message.
10528 (main): Exit with status 1 on error.
10529
4d84fe7c
JM
105302009-04-08 Joseph Myers <joseph@codesourcery.com>
10531
10532 PR c/39614
10533 PR c/39673
10534 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10535 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10536 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10537 * c-convert.c (convert): Do not call fold on results of conversion
10538 functions when the result is a C_MAYBE_CONST_EXPR.
10539 * c-parser.c (c_parser_postfix_expression): Do not fold condition
10540 of __builtin_choose_expr.
10541 * c-typeck.c (remove_c_maybe_const_expr): New.
10542 (build_unary_op, build_conditional_expr, build_compound_expr,
10543 build_binary_op, c_objc_common_truthvalue_conversion): Call
10544 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10545 integer operands.
10546
60839f5d 105472009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 10548
2ba9daa7 10549 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 10550 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 10551
8e481a2c
DS
105522009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
10553
10554 PR bootstrap/39660
10555 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10556 mix declarations and code.
10557
ee618c17
BE
105582009-04-08 Ben Elliston <bje@au.ibm.com>
10559
10560 * gcc.c: Replace `CC' with `GCC' throughout.
10561
f2a758a2
L
105622009-04-07 H.J. Lu <hongjiu.lu@intel.com>
10563
10564 * doc/invoke.texi: Document Atom support.
10565
6ea2bd47
JM
105662009-04-07 Jason Merrill <jason@redhat.com>
10567
10568 PR c++/25185
10569 * c-common.h, c-common.c: Add flag_pretty_templates.
10570 * c-opts.c (c_common_handle_option): Set it.
10571 * c.opt: Add -fno-pretty-templates.
10572 * doc/invoke.texi (C++ Dialect Options): Likewise.
10573
fcb82ab0
UB
105742009-04-07 Uros Bizjak <ubizjak@gmail.com>
10575
10576 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10577 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10578 (ia64_expand_builtin): Likewise.
10579
dc5e7298
MJ
105802009-04-07 Martin Jambor <mjambor@suse.cz>
10581
10582 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10583 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10584 ADDR_EXPRS are include too.
10585
0609b355
RG
105862009-04-07 Richard Guenther <rguenther@suse.de>
10587
10588 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10589 decls are only used if passes as parameters or if they are
10590 local statics and the call is not to a builtin.
10591 (call_may_clobber_ref_p_1): Likewise.
10592
d8e535fa
PB
105932009-04-07 Paolo Bonzini <bonzini@gnu.org>
10594
10595 * expr.c (do_store_flag): Remove last argument. Simplify code
10596 to avoid duplication of tests already done by can_compare_p.
10597 (expand_expr_real_1): Adjust caller.
10598
c3c64f50
PB
105992009-04-07 Paolo Bonzini <bonzini@gnu.org>
10600
fcb82ab0
UB
10601 * optabs.c (can_compare_p): Test the predicate of a
10602 cbranch and cstore pattern.
c3c64f50 10603
9a53bc17
PB
106042009-04-07 Paolo Bonzini <bonzini@gnu.org>
10605
fcb82ab0
UB
10606 * expr.c (convert_move): Use emit_store_flag instead of
10607 "emulating" it.
9a53bc17 10608
67b8f1c1
PB
106092009-04-07 Paolo Bonzini <bonzini@gnu.org>
10610
fcb82ab0
UB
10611 * config/i386/i386.c (ix86_compare_emitted): Remove.
10612 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10613 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10614 * config/i386/i386.h (ix86_compare_emitted): Remove.
10615 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10616 instead of ix86_compare_emitted.
10617 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10618
44509946
AS
106192009-04-07 Andrew Stubbs <ams@codesourcery.com>
10620
10621 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10622 Add t-sysroot-suffix to tmake_file.
10623 * config/print-sysroot-suffix.sh: New file.
10624 * config/t-sysroot-suffix: New file.
10625
ca22d882
BE
106262009-04-07 Ben Elliston <bje@au.ibm.com>
10627
10628 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10629 as the latter produces a warning when the target does not support
10630 infinity.
10631
95aac11b
BE
106322009-04-07 Ben Elliston <bje@au.ibm.com>
10633
10634 * dfp.c: Replace type punning assignments with memcpy throughout.
10635 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10636
633dd061
AM
106372009-04-07 Alan Modra <amodra@bigpond.net.au>
10638
10639 PR target/39634
10640 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10641 Include soft-fp/t-softfp after rs6000/t-linux64.
10642
fe0a25ec
EB
106432009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10644
10645 * stor-layout.c (set_sizetype): Use the full precision of their
10646 machine mode for bitsize types.
10647
0c011bc3
L
106482009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10649
10650 * config/i386/i386.md: Revert 2 accidental checkins.
10651
b6837b94 106522009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10653 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10654 H.J. Lu <hongjiu.lu@intel.com>
10655
10656 Atom pipeline model, tuning and insn selection.
10657 * config.gcc (atom): Add atom config options and target.
10658
10659 * config/i386/atom.md: New.
10660
10661 * config/i386/i386.c (atom_cost): New cost.
10662 (m_ATOM): New macro flag.
10663 (initial_ix86_tune_features): Set m_ATOM.
10664 (x86_accumulate_outgoing_args): Likewise.
10665 (x86_arch_always_fancy_math_387): Likewise.
10666 (processor_target): Add Atom cost.
10667 (cpu_names): Add Atom cpu name.
10668 (override_options): Set Atom ISA.
10669 (ix86_issue_rate): New case PROCESSOR_ATOM.
10670 (ix86_adjust_cost): Likewise.
10671
10672 * config/i386/i386.h (TARGET_ATOM): New target macro.
10673 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10674 (TARGET_OPT_AGU): New target option.
10675 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10676 (processor_type): Add PROCESSOR_ATOM.
10677
10678 * config/i386/i386.md (cpu): Add new value "atom".
10679 (use_carry, movu): New attr.
10680 (atom.md): Include atom.md.
10681 (adddi3_carry_rex64): Set attr "use_carry".
10682 (addqi3_carry): Likewise.
10683 (addhi3_carry): Likewise.
10684 (addsi3_carry): Likewise.
10685 (*addsi3_carry_zext): Likewise.
10686 (subdi3_carry_rex64): Likewise.
10687 (subqi3_carry): Likewise.
10688 (subhi3_carry): Likewise.
10689 (subsi3_carry): Likewise.
10690 (x86_movdicc_0_m1_rex64): Likewise.
10691 (*x86_movdicc_0_m1_se): Likewise.
10692 (x86_movsicc_0_m1): Likewise.
10693 (*x86_movsicc_0_m1_se): Likewise.
10694 (*adddi_1_rex64): Emit add insn as much as possible.
10695 (*addsi_1): Likewise.
10696 (return_internal): Set atom_unit.
10697 (return_internal_long): Likewise.
10698 (return_pop_internal): Likewise.
10699 (*rcpsf2_sse): Set atom_sse_attr attr.
10700 (*qrt<mode>2_sse): Likewise.
10701 (*prefetch_sse): Likewise.
10702
10703 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10704 PROCESSOR_ATOM.
10705 (ix86_target_macros_internal): Likewise.
10706
10707 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10708 (*prefetch_sse_rex): Likewise.
10709 (sse_rcpv4sf2): Likewise.
10710 (sse_vmrcpv4sf2): Likewise.
10711 (sse_sqrtv4sf2): Likewise.
10712 (<sse>_vmsqrt<mode>2): Likewise.
10713 (sse_ldmxcsr): Likewise.
10714 (sse_stmxcsr): Likewise.
10715 (*sse_sfence): Likewise.
10716 (sse2_clflush): Likewise.
10717 (*sse2_mfence): Likewise.
10718 (*sse2_lfence): Likewise.
10719 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10720 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10721 (avx_movdqu<avxmodesuffix>): Likewise.
10722 (avx_lddqu<avxmodesuffix>): Likewise.
10723 (sse2_movntv2di): Change attr "type" to "ssemov".
10724 (sse2_movntsi): Likewise.
10725 (rsqrtv8sf2): Change attr "type" to "sseadd".
10726 (sse3_addsubv2df3): Set attr "atom_unit".
10727 (sse3_h<plusminus_insn>v4sf3): Likewise.
10728 (*sse2_pmaddwd): Likewise.
10729 (*vec_extractv2di_1_rex64): Likewise.
10730 (*vec_extractv2di_1_avx): Likewise.
10731 (sse2_psadbw): Likewise.
10732 (ssse3_phaddwv8hi3): Likewise.
10733 (ssse3_phaddwv4hi3): Likewise.
10734 (ssse3_phadddv4si3): Likewise.
10735 (ssse3_phadddv2si3): Likewise.
10736 (ssse3_phaddswv8hi3): Likewise.
10737 (ssse3_phaddswv4hi3): Likewise.
10738 (ssse3_phsubwv8hi3): Likewise.
10739 (ssse3_phsubwv4hi3): Likewise.
10740 (ssse3_phsubdv4si3): Likewise.
10741 (ssse3_phsubdv2si3): Likewise.
10742 (ssse3_phsubswv8hi3): Likewise.
10743 (ssse3_phsubswv4hi3): Likewise.
10744 (ssse3_pmaddubsw128): Likewise.
10745 (sse3_pmaddubsw: Likewise.
10746 (ssse3_palignrti): Likewise.
10747 (ssse3_palignrdi): Likewise.
10748
53e350d3
GP
107492009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10750
10751 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10752
439ef907
RG
107532009-04-06 Richard Guenther <rguenther@suse.de>
10754
10755 PR tree-optimization/28868
10756 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10757 of which PHI results we inserted.
10758 (insert_into_preds_of_block): Record inserted PHIs.
10759 (eliminate): Eliminate redundant PHI nodes.
10760 (init_pre): Init inserted_phi_names.
10761
4bad83f5
RG
107622009-04-06 Richard Guenther <rguenther@suse.de>
10763
10764 PR tree-optimization/39643
10765 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10766 IMAGPART_EXPRs of complex constants.
10767 (execute_fold_all_builtins): If we folded a call queue
10768 TODO_update_address_taken.
10769
570c4247
JH
107702009-04-06 Jan Hubicka <jh@suse.cz>
10771
10772 PR middle-end/39659
10773 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10774 flag.
10775
a460d7a1
AS
107762009-04-06 Andrew Stubbs <ams@codesourcery.com>
10777
10778 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10779 delay slot.
10780 (ic_invalidate_array): Likewise.
10781
60839f5d 107822009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10783
10784 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10785 alignment for library calls.
10786
7d253f6e
DS
107872009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10788
10789 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10790 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10791 * config/i386/mingw-stdint.h: New file.
10792
941c3614
RB
107932009-04-05 Richard Guenther <rguenther@suse.de>
10794
10795 PR tree-optimization/39648
10796 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10797 our &A vs. &A[0] IL deficiencies.
10798
12633413
JH
107992009-04-04 Jan Hubicka <jh@suse.cz>
10800
941c3614
RB
10801 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10802 removed toplevel regions.
12633413
JH
10803 (sjlj_mark_call_sites): Likewise.
10804
bb2aaded
DK
108052009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10806
10807 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10808 (cygwin tm clause use_gcc_stdint): Set to wrap.
10809 * config/i386/cygwin-stdint.h: New file.
10810
86290011
RG
108112009-04-04 Richard Guenther <rguenther@suse.de>
10812
10813 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10814 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10815 single-argument PHIs if we are in loop-closed SSA form.
10816 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10817 for the pre-condition.
10818 (slpeel_tree_peel_loop_to_edge): Likewise.
10819 (vect_build_loop_niters): Take an optional sequence to append stmts.
10820 (vect_generate_tmps_on_preheader): Likewise.
10821 (vect_do_peeling_for_loop_bound): Take extra guards for the
10822 pre-condition.
10823 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10824 the cost model check.
10825 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10826 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10827 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10828 (vect_do_peeling_for_loop_bound): Likewise.
10829 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10830 loop bound only record extra pre-conditions, do not apply loop
10831 versioning.
10832
5eeeac64
RG
108332009-04-04 Richard Guenther <rguenther@suse.de>
10834
10835 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10836 renaming code.
10837
1ff7d06b
JH
108382009-04-04 Jan Hubicka <jh@suse.cz>
10839
10840 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10841 last_basic_block for size of bb->index indexed array.
10842 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10843 compute_out, link_btr_uses, build_btr_def_use_webs,
10844 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10845
14925fcd
JH
108462009-04-04 Jan Hubicka <jh@suse.cz>
10847
10848 * except.c (remove_eh_handler_and_replace): Break out from ...
10849 (remove_eh_handler): ... here.
10850 (bring_to_root): New function.
10851 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10852 handled ones, bring others to root of tree.
10853
4e6d1743
JH
108542009-04-04 Jan Hubicka <jh@suse.cz>
10855
4cb735f7
JH
10856 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10857 (all_phis_safe_to_merge): New function.
10858 (update_info): New structure.
10859 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10860 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10861
c6803d43
RG
108622009-04-04 Richard Guenther <rguenther@suse.de>
10863
10864 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10865 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10866 (append_vuse): Likewise.
10867
54f5943c
JJ
108682009-04-04 Jakub Jelinek <jakub@redhat.com>
10869
10870 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10871 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10872 instead of REG_UNSAVED for DW_CFA_undefined.
10873 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10874 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10875 outermost frame.
10876
aad2bccb
RE
108772009-04-04 Richard Earnshaw <rearnsha@arm.com>
10878
10879 PR target/39501
10880 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10881 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10882 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10883
aa7069aa
RG
108842009-04-04 Richard Guenther <rguenther@suse.de>
10885
10886 PR tree-optimization/8781
10887 PR tree-optimization/37892
10888 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10889 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10890 (valueize_refs): Call it for *& valueizations.
10891 (shared_reference_ops_from_ref): Rename to ...
10892 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10893 (shared_reference_ops_from_call): Rename to ...
10894 (valueize_shared_reference_ops_from_call): ... this and valueize.
10895 (vn_reference_lookup): Update.
10896 (visit_reference_op_call): Likewise.
10897 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10898 (eliminate): Value-replace the call address in call statements.
10899
cd15ad3e
RG
109002009-04-04 Richard Guenther <rguenther@suse.de>
10901
10902 PR tree-optimization/39636
10903 * tree-ssa-forwprop.c
10904 (forward_propagate_addr_into_variable_array_index): Check for
10905 GIMPLE_ASSIGN before accessing the rhs code.
10906
462f3262
JM
109072009-04-03 Jason Merrill <jason@redhat.com>
10908
10909 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10910
6adb807e
SE
109112009-04-03 Steve Ellcey <sje@cup.hp.com>
10912
10913 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10914 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10915 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10916 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10917 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10918 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10919 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10920 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10921 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10922 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10923 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10924 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10925 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10926 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10927 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10928 Use fr_reg_or_fp01_operand instead of fr_register_operand
10929
10930 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10931 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10932 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10933
174b3107
VM
109342009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10935
b844e5d8
L
10936 PR rtl-optimization/39607
10937 PR rtl-optimization/39631
7a715bba
UB
10938
10939 Revert:
2ba9daa7 10940
174b3107
VM
10941 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10942 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10943 instead of DF_LR_OUT.
10944 * ira-lives.c (process_bb_node_lives): Ditto.
10945 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10946 instead of DF_LR_{OUT,IN}.
10947 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10948 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10949
535b544a
SB
109502009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10951
10952 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10953 (execute_lower_omp): Always run but take the short way out if -fopenmp
10954 is not given.
10955 (gate_lower_omp): Remove, forcing the pass manager to always run the
10956 pass and always set PROP_gimple_lomp.
10957 (pass_lower_omp): Remove gate function.
10958 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10959 PROP_trees. Instead, require it.
10960 * ipa-cp.c (pass_ipa_cp): Likewise.
10961 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10962 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10963 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10964 and PROP_gimple_leh.
10965
5006671f
RG
109662009-04-03 Richard Guenther <rguenther@suse.de>
10967
10968 PR middle-end/13146
10969 PR tree-optimization/23940
10970 PR tree-optimization/33237
10971 PR middle-end/33974
10972 PR middle-end/34093
10973 PR tree-optimization/36201
10974 PR tree-optimization/36230
10975 PR tree-optimization/38049
10976 PR tree-optimization/38207
10977 PR tree-optimization/38230
10978 PR tree-optimization/38301
10979 PR tree-optimization/38585
10980 PR middle-end/38895
10981 PR tree-optimization/38985
10982 PR tree-optimization/39299
10983 * tree-ssa-structalias.h: Remove.
10984 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10985 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10986 (struct vuse_element_d): Remove.
10987 (struct vuse_vec_d): Likewise.
10988 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10989 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10990 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10991 VUSE_ELEMENT_VAR): Likewise.
10992 (struct voptype_d): Likewise.
10993 (NUM_VOP_FREE_BUCKETS): Likewise.
10994 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10995 (struct stmt_operands_d): Remove.
10996 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10997 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10998 VDEF_NUM, VDEF_VECT): Likewise.
10999 (copy_virtual_operands): Remove.
11000 (operand_build_cmp): Likewise.
11001 (create_ssa_artificial_load_stmt): Likewise.
11002 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11003 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11004 vuse_index and mayuse_index members. Pack and move done and iter_type
11005 members to the front.
11006 (SSA_OP_VMAYUSE): Remove.
11007 (SSA_OP_VIRTUAL_USES): Adjust.
11008 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11009 (unlink_stmt_vdef): Declare.
11010 (add_to_addressable_set): Remove.
11011 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11012 (vrp_visit_stmt): Likewise.
11013 * doc/tree-ssa.texi (Alias analysis): Update.
11014 * doc/invoke.texi (max-aliased-vops): Remove docs.
11015 (avg-aliased-vops): Likewise.
11016 * tree-into-ssa.c (syms_to_rename): Remove.
11017 (need_to_update_vops_p): Likewise.
11018 (need_to_initialize_update_ssa_p): Rename to ...
11019 (update_ssa_initialized_fn): ... this. Track function we are
11020 initialized for.
11021 (symbol_marked_for_renaming): Simplify.
11022 (add_new_name_mapping): Do not set need_to_update_vops_p.
11023 (dump_currdefs): Use SYMS_TO_RENAME.
11024 (rewrite_update_stmt): Always walk all uses/defs.
11025 (dump_update_ssa): Adjust.
11026 (init_update_ssa): Take function argument. Track what we are
11027 initialized for.
11028 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11029 (create_new_def_for): Initialize for cfun, assert we are initialized
11030 for cfun.
11031 (mark_sym_for_renaming): Simplify.
11032 (mark_set_for_renaming): Do not initialize update-ssa.
11033 (need_ssa_update_p): Simplify. Take function argument.
11034 (name_mappings_registered_p): Assert we ask for the correct function.
11035 (name_registered_for_update_p): Likewise.
11036 (ssa_names_to_replace): Likewise.
11037 (release_ssa_name_after_update_ssa): Likewise.
11038 (update_ssa): Likewise. Use SYMS_TO_RENAME.
11039 (dump_decl_set): Do not print a newline.
11040 (debug_decl_set): Do it here.
11041 (dump_update_ssa): And here.
11042 * tree-ssa-loop-im.c (move_computations): Adjust.
11043 (movement_possibility): Likewise.
11044 (determine_max_movement): Likewise.
11045 (gather_mem_refs_stmt): Likewise.
11046 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11047 or NAME_MEMORY_TAG.
11048 * tree-complex.c (update_all_vops): Remove.
11049 (expand_complex_move): Adjust.
11050 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11051 Simplify test for memory referencing statement. Exclude
11052 non-invariant ADDR_EXPRs.
11053 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11054 * tree-loop-distribution.c (generate_memset_zero): Adjust.
11055 (rdg_flag_uses): Likewise.
11056 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11057 related code.
11058 (tree_optimize_tail_calls_1): Also split the
11059 edge from the entry block if we have degenerate PHI nodes in
11060 the first basic block.
11061 * tree.c (init_ttree): Remove memory-tag related code.
11062 (tree_code_size): Likewise.
11063 (tree_node_structure): Likewise.
11064 (build7_stat): Re-write to be build6_stat.
11065 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11066 (SSA_VAR_P): Adjust.
11067 (struct tree_memory_tag): Remove.
11068 (struct tree_memory_partition_tag): Likewise.
11069 (union tree_node): Adjust.
11070 (build7): Re-write to be build6.
11071 * tree-pass.h (pass_reset_cc_flags): Remove.
11072 (TODO_update_address_taken): New flag.
11073 (pass_simple_dse): Remove.
11074 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11075 * params.h (MAX_ALIASED_VOPS): Remove.
11076 (AVG_ALIASED_VOPS): Likewise.
11077 * omp-low.c (expand_omp_taskreg): Update SSA form.
11078 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11079 aliases the lhs in a copy stmt.
11080 * tree-ssa-dse.c (struct address_walk_data): Remove.
11081 (memory_ssa_name_same): Likewise.
11082 (memory_address_same): Likewise.
11083 (get_kill_of_stmt_lhs): Likewise.
11084 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
11085 unused stores. Look through PHI nodes into post-dominated regions.
11086 (dse_optimize_stmt): Simplify. Properly remove stores.
11087 (tree_ssa_dse): Compute dominators.
11088 (execute_simple_dse): Remove.
11089 (pass_simple_dse): Likewise.
11090 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11091 gimple_loaded_syms and gimple_stored_syms computation.
11092 * toplev.c (dump_memory_report): Dump alias and pta stats.
11093 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11094 (vn_reference_eq): Likewise.
11095 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11096 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11097 valueize_vuses): Remove.
11098 (get_def_ref_stmt_vuses): Simplify. Rename to ...
11099 (get_def_ref_stmt_vuse): ... this.
11100 (vn_reference_lookup_2): New function.
11101 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11102 walking equivalent vuses. Simplify.
11103 (vn_reference_lookup): Likewise.
11104 (vn_reference_insert): Likewise.
11105 (vn_reference_insert_pieces): Likewise.
11106 (visit_reference_op_call): Simplify.
11107 (visit_reference_op_load): Likewise.
11108 (visit_reference_op_store): Likewise.
11109 (init_scc_vn): Remove shared_lookup_vuses initialization.
11110 (free_scc_vn): Remove shared_lookup_vuses freeing.
11111 (sort_vuses, sort_vuses_heap): Remove.
11112 (get_ref_from_reference_ops): Export.
11113 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11114 vector with single vuse pointer.
11115 (vn_reference_lookup_pieces, vn_reference_lookup,
11116 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11117 (shared_vuses_from_stmt): Remove.
11118 (get_ref_from_reference_ops): Declare.
11119 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11120 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11121 memory-tag related code.
11122 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11123 (likely_value): Add comment, skip static-chain of call statements.
11124 (surely_varying_stmt_p): Adjust.
11125 (gimplify_and_update_call_from_tree): Likewise.
11126 (execute_fold_all_builtins): Do not rebuild alias info.
11127 (gimplify_and_update_call_from_tree): Properly update VOPs.
11128 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11129 (copy_ref_info): Remove memory-tag related code.
11130 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11131 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11132 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11133 computation.
11134 * tree-ssa-dom.c (gimple_p): Remove typedef.
11135 (eliminate_redundant_computations): Adjust.
11136 (record_equivalences_from_stmt): Likewise.
11137 (avail_expr_hash): Likewise.
11138 (avail_expr_eq): Likewise.
7a715bba 11139 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
11140 (stmt_makes_single_load): Likewise.
11141 (stmt_makes_single_store): Likewise.
11142 * tree-ssa-alias.c: Rewrite completely.
11143 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11144 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11145 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11146 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11147 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11148 Remove public functions.
11149 (pass_reset_cc_flags): Remove.
11150 (pass_build_alias): Move ...
11151 * tree-ssa-structalias.c (pass_build_alias): ... here.
11152 * tree-ssa-alias.c (may_be_aliased): Move ...
11153 * tree-flow-inline.h (may_be_aliased): ... here.
11154 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11155 count_uses_and_derefs): Move ...
11156 * gimple.c: ... here.
11157 * gimple.h (count_uses_and_derefs): Declare.
11158 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11159 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11160 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11161 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11162 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11163 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11164 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11165 New functions.
11166 * tree-dfa.c (refs_may_alias_p): Move ...
11167 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
11168 * tree-ssa-alias.h: New file.
11169 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11170 (statement_sink_location): Likewise.
11171 * opts.c (decode_options): Do not adjust max-aliased-vops or
11172 avg-aliased-vops values.
11173 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11174 (TV_CALL_CLOBBER): Likewise.
11175 (TV_FLOW_SENSITIVE): Likewise.
11176 (TV_FLOW_INSENSITIVE): Likewise.
11177 (TV_MEMORY_PARTITIONING): Likewise.
11178 (TV_ALIAS_STMT_WALK): New timevar.
11179 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11180 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11181 (get_address_description): Remove memory-tag related code.
11182 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11183 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
11184 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
11185 and immediate uses in statements. Document.
11186 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
11187 (dump_symbols): Remove.
11188 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
11189 * alias.c (get_deref_alias_set): New function split out from ...
11190 (get_alias_set): ... here.
11191 * alias.h (get_deref_alias_set): Declare.
11192 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
11193 type parameter. Remove restrict pointer handling. Create a
11194 ref-all pointer in case type-based alias sets do not conflict.
11195 (vect_analyze_data_refs): Remove SMT related code.
11196 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
11197 (vectorizable_load): Likewise.
11198 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
11199 (DR_SYMBOL_TAG, DR_VOPS): Remove.
11200 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
11201 Ignore vops and SMTs.
11202 (dr_analyze_alias): Likewise..
11203 (free_data_ref): Likewise.
11204 (create_data_ref): Likewise.
11205 (analyze_all_data_dependences): Likewise.
11206 (get_references_in_stmt): Adjust.
11207 * tree-flow-inline.h (gimple_aliases_computed_p,
11208 gimple_addressable_vars, gimple_call_clobbered_vars,
11209 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11210 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11211 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11212 gimple_mem_ref_stats): Remove.
11213 (gimple_vop): New function.
11214 (op_iter_next_use): Remove vuses and mayuses cases.
11215 (op_iter_next_def): Remove vdefs case.
11216 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11217 (clear_and_done_ssa_iter): Do not set removed fields.
11218 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
11219 Assert we are not iterating over vuses or vdefs if not also
11220 iterating over uses or defs.
11221 (op_iter_init_use): Likewise.
11222 (op_iter_init_def): Likewise.
11223 (op_iter_next_vdef): Remove.
11224 (op_iter_next_mustdef): Likewise.
11225 (op_iter_init_vdef): Likewise.
11226 (compare_ssa_operands_equal): Likewise.
11227 (link_use_stmts_after): Handle vuse operand.
11228 (is_call_used): Use is_call_clobbered.
11229 (is_call_clobbered): Global variables are always call clobbered,
11230 query the call-clobbers bitmap.
11231 (mark_call_clobbered): Ignore global variables.
11232 (clear_call_clobbered): Likewise.
11233 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11234 virtual operands sanity check.
11235 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11236 Remove.
11237 (TARGET_MEM_REF): Remove TMR_TAG operand.
11238 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11239 Remove call-clobber related code.
11240 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
11241 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11242 partitions or escape reason.
11243 (get_single_def_stmt, get_single_def_stmt_from_phi,
11244 get_single_def_stmt_with_phi): Remove.
11245 (dump_referenced_vars): Tidy.
11246 (get_ref_base_and_extent): Allow bare decls.
11247 (collect_dfa_stats): Adjust.
11248 * graphite.c (rename_variables_in_stmt): Adjust.
11249 (graphite_copy_stmts_from_block): Likewise.
11250 (translate_clast): Likewise.
11251 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11252 (EXPR_DIES): New.
11253 (translate_vuse_through_block): Use the oracle.
11254 (phi_translate_1): Adjust.
11255 (value_dies_in_block_x): Use the oracle. Cache the outcome
11256 in EXPR_DIES.
11257 (valid_in_sets): Check if the VUSE for
11258 a REFERENCE is available.
11259 (eliminate): Do not remove stmts during elimination,
11260 instead queue and remove them afterwards.
11261 (do_pre): Do not rebuild alias info.
11262 (pass_pre): Run TODO_rebuild_alias before PRE.
11263 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11264 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11265 (mark_all_v_defs_stmt): Remove.
11266 (mark_all_v_defs_seq): Adjust.
11267 (sra_replace): Likewise.
11268 (scalarize_use): Likewise.
11269 (scalarize_copy): Likewise.
11270 (scalarize_init): Likewise.
11271 (scalarize_ldst): Likewise.
11272 (todoflags): Remove.
11273 (tree_sra): Do not rebuild alias info.
11274 (tree_sra_early): Adjust.
11275 (pass_sra): Run TODO_update_address_taken before SRA.
11276 * tree-predcom.c (set_alias_info): Remove.
11277 (prepare_initializers_chain): Do not call it.
11278 (mark_virtual_ops_for_renaming): Adjust.
11279 (mark_virtual_ops_for_renaming_list): Remove.
11280 (initialize_root_vars): Adjust.
11281 (initialize_root_vars_lm): Likewise.
11282 (prepare_initializers_chain): Likewise.
11283 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11284 (may_propagate_copy_into_stmt): Likewise.
11285 (merge_alias_info): Do nothing for now.
11286 (propagate_tree_value_into_stmt): Adjust.
11287 (stmt_may_generate_copy): Likewise.
11288 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11289 not mark symbols for renaming.
11290 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11291 with the same statement, make sure to update the new pointed-to one.
11292 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11293 call statements, do not mark symbols for renaming.
11294 (mark_operand_necessary): Dump something.
11295 (ref_may_be_aliased): New function.
11296 (mark_aliased_reaching_defs_necessary_1): New helper function.
11297 (mark_aliased_reaching_defs_necessary): Likewise.
11298 (mark_all_reaching_defs_necessary_1): Likewise.
11299 (mark_all_reaching_defs_necessary): Likewise.
11300 (propagate_necessity): Do not process virtual PHIs. For
11301 non-aliased loads mark all reaching definitions as necessary.
11302 For aliased loads and stores mark the immediate dominating
11303 aliased clobbers as necessary.
11304 (visited): New global static.
11305 (perform_tree_ssa_dce): Free visited bitmap after propagating
11306 necessity.
11307 (remove_dead_phis): Perform simple dead virtual PHI removal.
11308 (remove_dead_stmt): Properly unlink virtual operands when
11309 removing stores.
11310 (eliminate_unnecessary_stmts): Schedule PHI removal after
11311 stmt removal.
11312 * tree-ssa-ter.c (is_replaceable_p): Adjust.
11313 (process_replaceable): Likewise.
11314 (find_replaceable_in_bb): Likewise.
11315 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11316 based on the single gimple vop.
11317 (verify_flow_insensitive_alias_info): Remove.
11318 (verify_flow_sensitive_alias_info): Likewise.
11319 (verify_call_clobbering): Likewise.
11320 (verify_memory_partitions): Likewise.
11321 (verify_alias_info): Likewise.
11322 (verify_ssa): Adjust..
11323 (execute_update_addresses_taken): Export. Update SSA
11324 manually. Optimize only when optimizing. Use a local bitmap.
11325 (pass_update_address_taken): Remove TODO_update_ssa, add
11326 TODO_dump_func.
11327 (pass_update_address_taken): Just use TODO_update_address_taken.
11328 (init_tree_ssa): Do not initialize addressable_vars.
11329 (verify_ssa): Verify new VUSE / VDEF properties.
11330 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11331 Do not call verify_alias_info.
11332 (delete_tree_ssa): Clear the VUSE, VDEF operands.
11333 Do not free the loaded and stored syms bitmaps. Reset the escaped
11334 and callused solutions. Do not free addressable_vars.
11335 Remove memory-tag related code.
11336 (warn_uninitialized_var): Aliases are always available.
11337 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11338 * lambda-code.c (can_put_in_inner_loop): Adjust.
11339 (can_put_after_inner_loop): Likewise.
11340 (perfect_nestify): Likewise.
11341 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11342 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11343 (vectorizable_conversion): Do not mark symbols for renaming.
11344 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11345 (expand_call_inline): Unlink the calls virtual operands before
11346 replacing it.
11347 (tree_function_versioning): Do not call update_ssa if we are not
11348 updating clones. Simplify.
11349 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11350 (propagate_with_phi): Likewise..
11351 * tree-outof-ssa.c (create_temp): Remove memory tag and call
11352 clobber code. Assert we are not aliased or global.
11353 * tree-flow.h: Include tree-ssa-alias.h
11354 (enum escape_type): Remove.
11355 (struct mem_sym_stats_d): Likewise.
11356 (struct mem_ref_stats_d): Likewise.
11357 (struct gimple_df): Add vop member. Remove global_var,
11358 call_clobbered_vars, call_used_vars, addressable_vars,
11359 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
11360 escaped and callused members.
11361 (struct ptr_info_def): Remove all members, add points-to solution
11362 member pt.
11363 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11364 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11365 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11366 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11367 (tree-ssa-alias.o): Likewise.
11368 (toplev.o): Add tree-ssa-alias.h
11369 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11370 * gimple.c (gimple_set_bb): Fix off-by-one error.
11371 (is_gimple_reg): Do not handle memory tags.
11372 (gimple_copy): Also copy virtual operands.
11373 Delay updating the statement. Do not reset loaded and stored syms.
11374 (gimple_set_stored_syms): Remove.
11375 (gimple_set_loaded_syms): Likewise.
11376 (gimple_call_copy_skip_args): Copy the virtual operands
11377 and mark the new statement modified.
11378 * tree-ssa-structalias.c (may_alias_p): Remove.
11379 (set_uids_in_ptset): Take the alias set to prune with as
11380 parameter. Fold in the alias test of may_alias_p.
11381 (compute_points_to_sets): Compute whether a ptr is dereferenced
11382 in a local sbitmap.
11383 (process_constraint): Deal with &ANYTHING on the lhs, reject all
11384 other ADDRESSOF constraints on the lhs.
11385 (get_constraint_for_component_ref): Assert that we don't get
11386 ADDRESSOF constraints from the base of the reference.
11387 Properly generate UNKNOWN_OFFSET for DEREF if needed.
11388 (struct variable_info): Remove collapsed_to member.
11389 (get_varinfo_fc): Remove.
11390 (new_var_info): Do not set collapsed_to.
11391 (dump_constraint): Do not follow cycles.
11392 (dump_constraint_graph): Likewise.
11393 (build_pred_graph): Likewise.
11394 (build_succ_graph): Likewise.
11395 (rewrite_constraints): Likewise.
11396 (do_simple_structure_copy): Remove.
11397 (do_rhs_deref_structure_copy): Remove.
11398 (do_lhs_deref_structure_copy): Remove.
11399 (collapse_rest_of_var): Remove.
11400 (do_structure_copy): Re-implement.
11401 (pta_stats): New global variable.
11402 (dump_pta_stats): New function.
11403 (struct constraint_expr): Make offset signed.
11404 (UNKNOWN_OFFSET): Define special value.
11405 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11406 (solution_set_expand): New helper function split out from ...
11407 (do_sd_constraint): ... here.
11408 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
11409 (do_ds_constraint): Likewise.
11410 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
11411 and CALLUSED = *CALLUSED.
11412 (set_union_with_increment): Make inc argument signed.
11413 (type_safe): Remove.
11414 (get_constraint_for_ptr_offset): Handle unknown and negative
11415 constant offsets.
11416 (first_vi_for_offset): Handle offsets before start. Bail
11417 out early for offsets beyond the variable extent.
11418 (first_or_preceding_vi_for_offset): New function.
11419 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11420 Together with ESCAPED = *ESCAPED this properly computes reachability.
11421 (find_what_var_points_to): New function.
11422 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11423 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11424 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11425 pt_solutions_intersect): New functions.
11426 (compute_call_used_vars): Remove.
11427 (compute_may_aliases): New main entry into PTA computation.
11428 * gimple.h (gimple_p): New typedef.
11429 (struct gimple_statement_base): Remove references_memory_p.
11430 (struct gimple_statement_with_memory_ops_base): Remove
11431 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
11432 members.
11433 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11434 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11435 gimple_set_references_memory): Remove.
11436 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11437 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11438 New functions.
11439 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11440 (verify_expr): Allow RESULT_DECL.
11441 (gimple_duplicate_bb): Do not copy virtual operands.
11442 (gimple_duplicate_sese_region): Adjust.
11443 (gimple_duplicate_sese_tail): Likewise.
11444 (mark_virtual_ops_in_region): Remove.
11445 (move_sese_region_to_fn): Do not call it.
11446 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11447 and pass_simple_dse.
11448 (execute_function_todo): Handle TODO_update_address_taken,
11449 call execute_update_addresses_taken for TODO_rebuild_alias.
11450 (execute_todo): Adjust.
11451 (execute_one_pass): Init dump files early.
11452 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11453 call-clobbered.
11454 (create_general_new_stmt): Clear vops.
11455 * tree-ssa-reassoc.c (get_rank): Adjust.
11456 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11457 symbols for renaming.
11458 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11459 (PARAM_AVG_ALIASED_VOPS): Likewise.
11460 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11461 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 11462 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
11463 (operand_build_cmp, copy_virtual_operands,
11464 create_ssa_artificial_load_stmt, add_to_addressable_set,
11465 gimple_add_to_addresses_taken): Remove public functions.
11466 (unlink_stmt_vdef): New function.
11467
457d1d00
AM
114682009-04-03 Alan Modra <amodra@bigpond.net.au>
11469
11470 * config.gcc (powerpc-*-linux*): Merge variants.
11471
e19da24c 114722009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 11473 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
11474
11475 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11476 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11477 cop0_sp_offset.
11478 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11479 keep_interrupts_masked_p, use_debug_exception_return_p.
11480 (mips_attribute_table): Add interrupt, use_shadow_register_set,
11481 keep_interrupts_masked, use_debug_exception_return.
11482 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11483 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11484 New functions.
11485 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11486 (mips_print_operand): Process COP0 registers to print $0 .. $31
11487 correctly for GAS to process.
11488 (mips_interrupt_extra_call_saved_reg_p): New function.
11489 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11490 extra registers.
11491 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11492 (mips_compute_frame_info): Add supports for interrupt context that
11493 includes doubleword accumulators and COP0 registers.
11494 (mips_for_each_saved_acc): New function.
11495 (mips_for_each_saved_gpr_and_fpr): Change the function name from
11496 mips_for_each_saved_reg.
11497 (mips_save_reg): Save accumulators.
11498 (mips_kernel_reg_p): A new for_each_rtx callback.
11499 (mips_expand_prologue): Support interrupt handlers.
11500 (mips_restore_reg): Restore accumulators.
11501 (mips_expand_epilogue): Support interrupt handlers.
11502 (mips_can_use_return_insn): Return false for interrupt handlers.
11503 (mips_epilogue_uses): New function.
11504 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11505 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11506 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11507 cop0_move): New instructions.
11508 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11509 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11510 defines.
11511 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11512 New defines.
11513 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11514 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11515 interrupt handlers, we use K0 as the temporary register.
11516 (EPILOGUE_USES): Change to a function call.
11517 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11518 handlers, we use K0 as the temporary register.
2ba9daa7 11519
e19da24c
CF
11520 * doc/extend.texi (Function Attributes): Document interrupt,
11521 use_shadow_register_set, keep_interrupts_masked,
11522 use_debug_exception_return for MIPS attributes.
11523
aa1ca044
AM
115242009-04-03 Alan Modra <amodra@bigpond.net.au>
11525
11526 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11527 Remove a number of t-files from tmake_file.
11528 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11529 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11530 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11531 target_prototype, not TARGET_PROTOTYPE.
11532 (LINK_OS_GNU_SPEC): Define.
11533 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11534 and darwin-ldoubdle.c.
11535
14fdc613
MM
115362009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11537
11538 PR driver/39293
11539 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11540 (cpp_options): Ditto.
11541 (default_compilers): Ditto.
11542 (display_help): Ditto.
11543 (process_command): Ditto.
11544 (do_spec_1): Ditto.
11545 (set_input): Use lbasename instead of duplicate code.
11546 (save_temps_prefix): New static for -save-temps=obj.
11547 (save_temps_length): Ditto.
2ba9daa7 11548
14fdc613
MM
11549 * doc/invoke.texi (-save-temps=obj): Document new variant to
11550 -save-temps switch.
11551
d3aa398e
JL
115522009-04-02 Jeff Law <law@redhat.com>
11553
11554 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11555 variable.
11556
83f0ccb8
L
115572009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11558
11559 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11560 * configure: Regenerated.
11561
dcb6e951
RAE
115622009-04-02 Rafael Avila de Espindola <espindola@google.com>
11563
11564 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11565 share the argument list.
11566
d85478c2
RAE
115672009-04-02 Rafael Avila de Espindola <espindola@google.com>
11568
11569 Merge
11570
11571 2009-02-12 Diego Novillo <dnovillo@google.com>
11572
83f0ccb8
L
11573 * varpool.c (debug_varpool): New.
11574 * cgraph.h (debug_varpool): Declare.
d85478c2 11575
34f42a49
JH
115762009-04-02 Jan Hubicka <jh@suse.cz>
11577
11578 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11579 pass.
11580
a4747b4a
L
115812009-04-02 H.J. Lu <hongjiu.lu@intel.com>
11582
11583 * config/i386/i386.c (ix86_abi): Move initialization to ...
11584 (override_options): Here.
11585
63a9de54
CB
115862009-04-02 Christian Bruel <christian.bruel@st.com>
11587
11588 * config/sh/sh.c (sh_dwarf_register_span): New function.
11589 (TARGET_DWARF_REGISTER_SPAN): Define.
11590 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 11591
2f0fa28e
IR
115922009-04-02 Ira Rosen <irar@il.ibm.com>
11593
11594 PR tree-optimization/39595
2ba9daa7 11595 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
11596 interleaved loads group is not greater than the SLP group size.
11597
bbf7ce11
RAE
115982009-04-02 Rafael Avila de Espindola <espindola@google.com>
11599
11600 * builtins.c (is_builtin_name): New.
11601 (called_as_built_in): Use is_builtin_name.
11602 * tree.h (is_builtin_name): New.
11603 * varasm.c (incorporeal_function_p): Use is_builtin_name
11604
47e4dfcf
AS
116052009-04-02 Andrew Stubbs <ams@codesourcery.com>
11606
11607 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11608
d0940d56
DS
116092009-04-02 Dodji Seketeli <dodji@redhat.com>
11610
11611 PR c++/26693
532bfb0a 11612 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11613 * c-common.c (set_underlying_type): ... here.
11614 Also, make sure the function properly sets TYPE_STUB_DECL() on
11615 the newly created typedef variant type.
11616 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11617 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11618 points.
d0940d56 11619
bf1cbdc6
RG
116202009-04-02 Richard Guenther <rguenther@suse.de>
11621
11622 PR tree-optimization/37221
11623 * tree-flow.h (degenerate_phi_result): Declare.
11624 * tree-ssa-dom.c (degenerate_phi_result): Export.
11625 * tree-scalar-evolution.c (analyze_initial_condition): If
11626 the initial condition is defined by a degenerate PHI node
11627 use the degenerate value.
11628
87cfb32c
EB
116292009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11630
11631 PR rtl-optimization/39588
11632 * combine.c (merge_outer_ops): Do not set the constant when this
11633 is not necessary.
11634 (simplify_shift_const_1): Do not modify it either in this case.
11635
bbb6eae8
SB
116362009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11637
11638 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11639 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11640
839a3b8a
JJ
116412009-04-01 Janis Johnson <janis187@us.ibm.com>
11642
11643 PR c/29027
11644 * c-lex.c (interpret_float): Default (no suffix) is double.
11645
667e8acb
XDL
116462009-04-1 Xinliang David Li <davidxl@google.com>
11647
11648 * config/i386/i386.c (legitimate_constant_p): Recognize
11649 all one vector constant.
11650
60839f5d 116512009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11652
60839f5d 11653 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11654 Change #include order to silence two warnings.
11655
60839f5d 116562009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11657
60839f5d 11658 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11659 (ASM_SPEC): Pass -k to the assembler for PIC code.
11660
60839f5d 116612009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11662
60839f5d
EB
11663 * config.gcc: Add vax-*-linux* to the switch.
11664 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11665 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11666
60839f5d 116672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11668
60839f5d 11669 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11670 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11671 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11672 ashlsi3, rotrsi3, <unnamed>): Likewise.
11673
60839f5d 116742009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11675
60839f5d 11676 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11677 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11678 * config/vax/constraints.md: Likewise.
11679 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11680 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11681 * config/vax/predicates.md: Likewise.
11682 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11683 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11684 * config/vax/vax.h: Likewise.
11685 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11686
60839f5d 116872009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11688
60839f5d 11689 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11690 (indirectable_address_p, adjacent_operands_p): Add spaces around
11691 braces.
60839f5d 11692 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11693
60839f5d 116942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11695
60839f5d 11696 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11697 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11698 index_term_p, reg_plus_index_p, legitimate_address_p,
11699 vax_mode_dependent_address_p): Update comments to match functions
11700 modified by the recent int->bool conversion.
11701
60839f5d 117022009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11703
60839f5d
EB
11704 * config/vax/builtins.md: Update copyright message.
11705 * config/vax/constraints.md: Likewise.
11706 * config/vax/netbsd-elf.h: Likewise.
11707 * config/vax/predicates.md: Likewise.
11708 * config/vax/vax-protos.h: Likewise.
11709 * config/vax/vax.c: Likewise.
11710 * config/vax/vax.h: Likewise.
11711 * config/vax/vax.md: Likewise.
11712 * config/vax/vax.opt: Likewise.
c4e75102 11713
60839f5d 117142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11715
60839f5d 11716 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11717 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11718 * config/vax/constraints.md (B, R): Likewise.
11719 * config/vax/predicates.md (external_memory_operand,
c4e75102 11720 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11721 * config/vax/vax.c (vax_output_int_add): Likewise.
11722 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11723 untyped_call): Likewise.
11724
60839f5d 117252009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11726
7a715bba
UB
11727 * config/vax/predicates.md: New file.
11728 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11729 external_const_operand, nonsymbolic_operand, external_memory_operand,
11730 indirect_memory_operand, indexed_memory_operand,
11731 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11732 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11733 predicate.
7a715bba
UB
11734 * config/vax/constraints.md: New file.
11735 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11736 New constraint.
11737 * config/vax/builtins.md: New file.
11738 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11739 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11740 jbbccisi): Define.
c4e75102
MT
11741 * config/vax/vax.opt (mqmath): Add option.
11742 * config/vax/vax.md (isfx): Extend with DI.
11743 (VAXintQH, VAXintQHSD): Define.
11744 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11745 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11746 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11747 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11748 (movdi): Update constraints and use vax_output_int_move().
11749 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11750 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11751 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11752 nonlocal_goto): New.
11753 (mov<mode>): Extend accepted operand types.
11754 (subdi3_old): Rename from subdi3, change update constraints and use
11755 a new implementation.
60839f5d 11756 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11757 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11758 MOVE_RATIO, CLEAR_RATIO): Define.
11759 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11760 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11761 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11762 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11763 (split_quadword_operands): Make static and really allow variable
11764 splitting.
11765 (print_operand_address): Update for PIC generation.
11766 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11767 indexable_address_p, fixup_mathdi_operand,
11768 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11769 (vax_float_literal, legitimate_constant_p,
11770 indirectable_constant_address_p, index_term_p,
11771 reg_plus_index_p): Return bool instead of int.
11772 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11773 where needed.
11774 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11775 generation.
11776 (vax_output_conditional_branch): Indent.
11777 (legitimate_constant_address_p, indirectable_constant_address_p,
11778 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11779 vax_mode_dependent_address_p): Return bool instead of int, update for
11780 PIC generation.
11781 * config/vax/vax-protos.h (legitimate_constant_address_p,
11782 legitimate_constant_p, legitimate_address_p,
11783 vax_mode_dependent_address_p): Change declaration to bool.
11784 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11785 vax_expand_addsub_di_operands, vax_output_int_subtract,
11786 vax_output_movmemsi): Declare.
11787 (split_quadword_operands, vax_float_literal): Delete declaration.
11788 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11789 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11790 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11791 ASM_OUTPUT_DWARF_PCREL): Define.
11792 (ASM_SPEC): Change definition to allow PIC generation.
11793
9332c6eb
L
117942009-04-01 Steve Ellcey <sje@cup.hp.com>
11795
11796 * doc/sourcebuild.texi: Update front-end requirements.
11797
d93e052c
JJ
117982009-04-01 Jakub Jelinek <jakub@redhat.com>
11799
11800 PR target/39226
11801 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11802 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11803 (booldi3_internal3): Use boolean_or_operator instead of
11804 boolean_operator.
11805
6ccb2a4a
JM
118062009-04-01 Joseph Myers <joseph@codesourcery.com>
11807
11808 PR c/39605
11809 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11810 declarator whose size is not an integer constant expression but
11811 folds to an integer constant, then treat it as a constant
11812 subsequently.
11813
299b87f8
RG
118142009-04-01 Richard Guenther <rguenther@suse.de>
11815
11816 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11817 i * 4 + 2 to (i * 2 + 1) * 2.
11818
b85eb797
JJ
118192009-04-01 Jakub Jelinek <jakub@redhat.com>
11820
11821 PR c/37772
11822 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11823 return if c_parser_asm_string_literal returned NULL.
11824
235e1fe8
NC
118252009-04-01 Nick Clifton <nickc@redhat.com>
11826
11827 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11828 already defined.
11829 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11830 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11831 other typedefs to avoid conflicts with libgcc2.c. Define labels
11832 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11833 include it.
11834 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11835 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11836 then include it.
11837
d6868399
RAE
118382009-04-01 Rafael Avila de Espindola <espindola@google.com>
11839
7a715bba
UB
11840 * varasm.c (default_function_rodata_section): Declare DOT as
11841 const char*.
d6868399 11842
73d21f56 118432009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11844 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11845
11846 PR/39492
11847 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11848 Make object_name unique for each process.
11849
03742a9b
JJ
118502009-04-01 Jakub Jelinek <jakub@redhat.com>
11851
11852 PR other/39591
11853 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11854 addressable variables in the parallel that could go out of scope while
11855 running queued tasks.
11856
4223ff5f
AS
118572009-04-01 Anatoly Sokolov <aesok@post.ru>
11858
11859 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11860 (CASE_VALUES_THRESHOLD): Redefine.
11861 * config/avr/avr.c (avr_override_options): Remove initialization of
11862 avr_case_values_threshold variable.
11863 (avr_case_values_threshold): Remove variable. Add new function.
11864 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11865 * config/avr/avr.opt (mno-tablejump): Remove option.
11866 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11867
e893f6f3
DD
118682009-04-01 DJ Delorie <dj@redhat.com>
11869
11870 * varasm.c (default_function_rodata_section): Don't assume
11871 anything about where the first '.' in the section name is.
11872
b246d100
AM
118732009-04-01 Alan Modra <amodra@bigpond.net.au>
11874
11875 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11876 rs6000_emit_stack_tie.
11877
d3e37a9e
ILT
118782009-03-31 Ian Lance Taylor <iant@google.com>
11879
11880 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11881 gimple_code with GIMPLE_RESX, not RESX.
11882
c1b61fca
JM
118832009-03-31 Joseph Myers <joseph@codesourcery.com>
11884
11885 * c-common.c (c_get_ident): New.
7a715bba 11886 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11887
c2d2ad48
BE
118882009-04-01 Ben Elliston <bje@au.ibm.com>
11889
11890 * config/rs6000/sysv4.opt (msdata): Improve option description.
11891
13d1a6e7
SE
118922009-03-31 Steve Ellcey <sje@cup.hp.com>
11893
11894 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11895 (divdf3_internal_lat): Remove.
11896 (divxf3_internal_lat): Remove.
11897 (divxf3_internal_thr): Remove.
11898 (divxf): Use divxf3_internal.
11899 * config/ia64/div.md (divsf3_internal_lat): New.
11900 (divdf3_internal_lat): New.
11901 (divxf3_internal): New.
11902
207bf79d
JM
119032009-03-31 Joseph Myers <joseph@codesourcery.com>
11904
11905 PR c/448
11906 * Makefile.in (USE_GCC_STDINT): Define.
11907 (stmp-int-hdrs): Install stdint.h if applicable.
11908 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11909 if known.
11910 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11911 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11912 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11913 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11914 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11915 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11916 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11917 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11918 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11919 (c_common_nodes_and_builtins): Initialize
11920 underlying_wchar_type_node. Do not initialize
11921 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11922 nodes for new types.
11923 (c_stddef_cpp_builtins): Define macros for new types.
11924 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11925 Remove.
11926 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11927 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11928 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11929 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11930 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11931 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11932 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11933 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11934 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11935 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11936 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11937 int16_type_node, int32_type_node, int64_type_node,
11938 uint8_type_node, uint16_type_node, c_uint32_type_node,
11939 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11940 int_least32_type_node, int_least64_type_node,
11941 uint_least8_type_node, uint_least16_type_node,
11942 uint_least32_type_node, uint_least64_type_node,
11943 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11944 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11945 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11946 uintptr_type_node): Define.
11947 * c-cppbuiltin.c (builtin_define_constants,
11948 builtin_define_type_minmax): New.
11949 (builtin_define_stdint_macros): Define more macros.
11950 (c_cpp_builtins): Define more limit macros.
11951 (type_suffix): New.
11952 (builtin_define_type_max): Define in terms of
11953 builtin_define_type_minmax. Remove is_long parameter. All
11954 callers changed.
11955 * config.gcc (use_gcc_stdint): Define.
11956 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11957 Add newlib-stdint.h for generic targets.
11958 * config/glibc-stdint.h, config/newlib-stdint.h,
11959 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11960 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11961 * config/score/score.h (UINTPTR_TYPE): Define.
11962 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11963 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11964 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11965 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11966 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11967 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11968 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11969 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11970 * config/spu/spu.h (STDINT_LONG32): Define.
11971 * configure.ac (use_gcc_stdint): Substitute.
11972 * configure: Regenerate.
11973 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11974 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11975 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11976 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11977 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11978 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11979 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11980 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11981 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11982 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11983 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11984 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11985 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11986 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11987 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11988 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11989 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11990 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11991 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11992 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11993 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11994 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11995 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11996 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11997 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11998 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11999 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12000 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12001 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12002
ed853664
BS
120032009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
12004
12005 * loop-iv.c (suitable_set_for_replacement): Renamed from
12006 simplify_using_assignment; changed to return bool and to accept new
12007 args DEST and SRC. Return true iff we find a source/destination pair
12008 that can be used to make a replacement, and fill SRC and DEST if so.
12009 Remove arg ALTERED. Don't deal with altered regs here. All callers
12010 changed.
12011 (simplify_using_initial_values): Deal with altered regs here and track
12012 more precisely the effect they have on the validity of our expression.
12013
1569e190
BS
12014 * loop-iv.c (simplify_using_condition): A condition of the form
12015 (EQ REG CONST) can be used to simply make a substitution.
12016 (simplify_using_initial_values): Keep track of conditions we have seen
12017 and keep using them to simplify new expressions, while applying the
12018 same substitutions to them as to the expression.
12019
1d1eb80c
BS
12020 * simplify-rtx.c (simplify_relational_operation_1): Simplify
12021 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12022 GEU/LTU reversed.
12023
28af33b0
BS
12024 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
12025 changed. Use this when trying to improve the upper bound.
12026 Generate the comparison by using simplify_gen_relational.
12027
b30321cd
BS
12028 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12029
60081874
BS
12030 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12031 functions.
2ba9daa7 12032 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
12033 replace_in_expr to make replacements. Call replace_single_def_regs
12034 once on the initial version of the expression.
12035
bebc6e07
RR
120362009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12037
fcb82ab0 12038 PR target/27237
bebc6e07 12039 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 12040
6b12efe9
RG
120412009-03-31 Richard Guenther <rguenther@suse.de>
12042
12043 PR middle-end/31029
12044 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12045 equality comparisons. Fold C - X CMP X if C % 2 == 1.
12046
108f6c2f
RG
120472009-03-31 Richard Guenther <rguenther@suse.de>
12048
12049 * tree.h (div_if_zero_remainder): Declare.
12050 * fold-const.c (div_if_zero_remainder): Export.
12051 * tree-ssa-forwprop.c
12052 (forward_propagate_addr_into_variable_array_index): Handle
12053 constant array index addition outside of the variable index.
12054
8f612190
JM
120552009-03-31 Joseph Myers <joseph@codesourcery.com>
12056
12057 PR target/39592
12058 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12059 define_splits, floatunssi<mode>2): Require x87 conversions from
12060 DImode to be permitted.
12061
47580d22
JM
120622009-03-31 Joseph Myers <joseph@codesourcery.com>
12063
12064 PR preprocessor/15638
12065 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12066
ba4d8f9d
RG
120672009-03-31 Richard Guenther <rguenther@suse.de>
12068
12069 PR middle-end/23401
12070 PR middle-end/27810
12071 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12072 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12073 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12074 a separate statement.
12075 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12076 (lookup_tmp_var): Likewise.
12077 (is_gimple_formal_tmp_or_call_rhs): Remove.
12078 (is_gimple_reg_or_call_rhs): Rename to ...
12079 (is_gimple_reg_rhs_or_call): ... this.
12080 (is_gimple_mem_or_call_rhs): Rename to ...
12081 (is_gimple_mem_rhs_or_call): ... this.
12082 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
12083 DECL_GIMPLE_REG_P only if is_formal is true.
12084 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
12085 for non-proper post-modify expression gimplification.
12086 (gimplify_self_mod_expr): For post-modify expressions gimplify
12087 the lvalue to a minimal lvalue.
12088 (rhs_predicate_for): Remove formal temp case.
12089 (gimplify_modify_expr_rhs): Likewise.
12090 (gimplify_addr_expr): Use is_gimple_reg.
12091 (gimplify_expr): Remove formal temp cases.
12092 (gimple_regimplify_operands): Likewise.
12093 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12094 and FILTER_EXPR like constants.
12095 * gimple.c (walk_gimple_op): Fix val_only initialization, use
12096 is_gimple_reg.
12097 (is_gimple_formal_tmp_rhs): Remove.
12098 (is_gimple_reg_rhs): Remove special casing.
12099 (is_gimple_mem_rhs): Fix.
12100 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12101 (is_gimple_formal_tmp_var): Remove.
12102 (is_gimple_formal_tmp_reg): Likewise.
12103 (is_gimple_min_lval): Allow invariant component ref parts.
12104 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12105 is_gimple_formal_tmp_reg): Remove declarations.
12106 * tree-cfg.c (verify_expr): Verify that variables with address
12107 taken do not have DECL_GIMPLE_REG_P set.
12108 * tree-mudflap.c (mf_build_check_statement_for): Use
12109 force_gimple_operand instead of gimplify_expr.
12110
8de9b877
AZ
121112009-03-31 Ayal Zaks <zaks@il.ibm.com>
12112
12113 * modulo-sched.c (sms_schedule_by_order): Pass the actual
12114 schedulable rows to compute_split_row.
12115
b5e3caf2
BE
121162009-03-31 Ben Elliston <bje@au.ibm.com>
12117
12118 PR target/31635
12119 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12120 OPT_mvrsave.
12121
9752c4ad
AM
121222009-03-31 Alan Modra <amodra@bigpond.net.au>
12123
12124 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12125 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12126 * configure: Regenerate.
12127 * config.in: Regenerate.
12128 * config/rs6000/rs6000.opt (mtls-markers): Add.
12129 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12130 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12131 (tls_ld_aix, tls_ld_sysv): Likewise.
12132 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12133 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12134
b597d1b6
AM
121352009-03-31 Alan Modra <amodra@bigpond.net.au>
12136
12137 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12138
a203a221
JH
121392009-03-30 Jan Hubicka <jh@suse.cz>
12140
b597d1b6
AM
12141 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12142 out of RESX.
12143 (tree_remove_unreachable_handlers): Cleanup EH predecestor
12144 detection and label handling.
a203a221 12145
5b0c0b2c
VM
121462009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12147
12148 * ira-int.h (ira_allocno): Rename left_conflicts_num to
12149 left_conflicts_size.
12150 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12151 ALLOCNO_LEFT_CONFLICTS_SIZE.
12152
12153 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12154 remove_allocno_from_bucket_and_push,
12155 allocno_spill_priority_compare, push_allocnos_to_stack,
12156 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12157 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12158 (setup_allocno_left_conflicts_num): Ditto. Rename to
12159 setup_allocno_left_conflicts_size.
12160 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12161 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12162 setup_allocno_left_conflicts_size instead of
12163 setup_allocno_left_conflicts_num.
12164
12165 * ira-build.c (ira_create_allocno): Use
12166 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12167 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 12168
9a48a93f
VM
121692009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12170
12171 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12172 instead of DF_LR_OUT.
12173
12174 * ira-lives.c (process_bb_node_lives): Ditto.
12175
12176 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12177 instead of DF_LR_{OUT,IN}.
12178
12179 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12180
12181 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12182
4c936d4f
JH
121832009-03-30 Jan Hubicka <jh@suse.cz>
12184
12185 * except.c (label_to_region_map): Fix thinko.
12186
f4d9f129
SE
121872009-03-30 Steve Ellcey <sje@cup.hp.com>
12188
12189 PR middle-end/38237
12190 * tree.h (tree_find_value): New declaration.
12191 * tree.c (tree_find_value): New function.
12192 * varasm.c (assemble_external): Avoid duplicate entries on lists.
12193
b3f27c15
JJ
121942009-03-30 Jakub Jelinek <jakub@redhat.com>
12195
12196 PR debug/39563
12197 * c-decl.c (struct c_binding): Add locus field.
12198 (bind): Add locus argument, set locus field from it.
12199 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
12200 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
12201 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
12202 implicitly_declare, undeclared_variable, lookup_label,
12203 declare_label, c_make_fname_decl, c_builtin_function,
12204 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12205 bind callers.
12206
ad41bd84 122072009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
12208
12209 PR target/38781
12210 * config/i386/i386.c (classify_argument): Check total size of
12211 structure.
12212
133f9369
MJ
122132009-03-30 Martin Jambor <mjambor@suse.cz>
12214
12215 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12216 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12217 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12218 respectively.
12219
12220 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12221 seen_variable_array_ref while also traversing a union.
12222
12223 * tree-inline.c (optimize_inline_calls): Do not call
12224 cgraph_node_remove_callees.
12225 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12226 (pass_remove_cgraph_callee_edges): New variable.
12227 * passes.c (init_optimization_passes): Add
12228 pass_remove_cgraph_callee_edges after early inlining and before all
12229 late intraprocedural passes.
12230
12231 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12232
1190f2eb
PB
122332009-03-30 Paolo Bonzini <bonzini@gnu.org>
12234
12235 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12236 Fix typos in names.
12237
fedc1775
PB
122382009-03-30 Paolo Bonzini <bonzini@gnu.org>
12239
fcb82ab0
UB
12240 * combine.c (simplify_comparison): Use have_insn_for.
12241 * dojump.c (do_jump): Likewise.
fedc1775 12242
65c5ae8b
PB
122432009-03-30 Paolo Bonzini <bonzini@gnu.org>
12244
12245 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12246 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12247 sparc_compare_op0 like sparc_compare_emitted used to be handled.
12248 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12249 instead of sparc_compare_emitted.
12250 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12251 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12252 instead of sparc_compare_emitted.
12253
d25aa7ab
PB
122542009-03-30 Paolo Bonzini <bonzini@gnu.org>
12255
12256 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12257 enter/exit cfglayout mode.
12258 (pass_partition_block): Require it.
12259 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12260 (combine_instructions): Track basic blocks instead of labels.
12261 (update_cfg_for_uncondjump): New.
12262 (try_combine): Use it. Update jumps after rescanning.
12263 (pass_combine): Require PROP_cfglayout.
12264 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12265
9c9e26f5
PB
122662009-03-30 Paolo Bonzini <bonzini@gnu.org>
12267
fcb82ab0
UB
12268 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12269 Provide/destroy PROP_cfglayout respectively.
12270 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12271 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 12272
28ddeea1
PB
122732009-03-30 Paolo Bonzini <bonzini@gnu.org>
12274
12275 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12276 fold_convert_const_fixed_from_fixed,
12277 fold_convert_const_fixed_from_int,
12278 fold_convert_const_fixed_from_real, fold_negate_const): Do not
12279 set TREE_CONSTANT_OVERFLOW.
12280 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12281 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12282
ebfd146a
IR
122832009-03-30 Ira Rosen <irar@il.ibm.com>
12284
12285 * tree-vect-loop-manip.c: New file.
12286 * tree-vectorizer.c: Update documentation and included files.
12287 (vect_loop_location): Make extern.
12288 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
12289 (rename_variables_in_bb, rename_variables_in_loop,
12290 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
12291 slpeel_update_phi_nodes_for_guard1,
12292 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12293 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12294 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 12295 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
12296 find_loop_location): Likewise.
12297 (new_stmt_vec_info): Move to tree-vect-stmts.c.
12298 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12299 get_vectype_for_scalar_type, vect_is_simple_use,
12300 supportable_widening_operation, supportable_narrowing_operation):
12301 Likewise.
12302 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
12303 (new_loop_vec_info, destroy_loop_vec_info,
12304 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
12305 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12306 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12307 (vect_supportable_dr_alignment): Likewise.
12308 * tree-vectorizer.h (tree-data-ref.h): Include.
12309 (vect_loop_location): Declare.
12310 Reorganize function declarations according to the new file structure.
12311 * tree-vect-loop.c: New file.
2ba9daa7 12312 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
12313 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12314 * tree-vect-data-refs.c: New file.
12315 * tree-vect-patterns.c (timevar.h): Don't include.
12316 * tree-vect-stmts.c: New file.
2ba9daa7 12317 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 12318 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
12319 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12320 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
12321 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12322 (tree-vect-analyze.o): Remove.
12323 (tree-vect-transform.o): Likewise.
12324 (tree-vect-data-refs.o): Add rule.
2ba9daa7 12325 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
12326 tree-vect-slp.o): Likewise.
12327 (tree-vect-patterns.o): Remove redundant dependencies.
12328 (tree-vectorizer.o): Likewise.
12329 * tree-vect-slp.c: New file.
12330
40a1cfba
RW
123312009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12332
12333 * optc-gen.awk: Warn if an option flag has multiple different
12334 help strings.
12335
a9a7a9a2
SP
123362009-03-30 Sebastian Pop <sebastian.pop@amd.com>
12337
12338 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12339 -floop-block): Document dependences on PPL, CLooG and Graphite.
12340
8ce94e44
JM
123412009-03-30 Joseph Myers <joseph@codesourcery.com>
12342
12343 PR rtl-optimization/323
12344 * c-common.c (c_fully_fold, convert_and_check,
12345 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12346 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12347 * c-common.def (EXCESS_PRECISION_EXPR): New.
12348 * c-cppbuiltin.c (builtin_define_float_constants): Define
12349 constants with enough digits for long double.
12350 * c-lex.c (interpret_float): Interpret constant with excess
12351 precision where appropriate.
12352 * c-opts.c (c_common_post_options): Set
12353 flag_excess_precision_cmdline. Give an error for
12354 -fexcess-precision=standard for C++ for processors where the
12355 option is significant.
12356 * c-parser.c (c_parser_conditional_expression): Handle excess
12357 precision in condition.
12358 * c-typeck.c (convert_arguments): Handle arguments with excess
12359 precision.
12360 (build_unary_op): Move excess precision outside operation.
12361 (build_conditional_expr): Likewise.
12362 (build_compound_expr): Likewise.
12363 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12364 (build_modify_expr): Handle excess precision in RHS.
12365 (convert_for_assignment): Handle excess precision in converted
12366 value.
12367 (digest_init, output_init_element, process_init_element): Handle
12368 excess precision in initializer.
12369 (c_finish_return): Handle excess precision in return value.
12370 (build_binary_op): Handle excess precision in operands and add
12371 excess precision as needed for operation.
12372 * common.opt (-fexcess-precision=): New option.
12373 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12374 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12375 For standard excess precision, output explicit conversion to and
12376 truncation from XFmode.
12377 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12378 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12379 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12380 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12381 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12382 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12383 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12384 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12385 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12386 define_splits, sqrt<mode>2): Disable where appropriate for
12387 standard excess precision.
12388 * convert.c (convert_to_real): Do not shorten arithmetic to type
12389 for which excess precision would be used.
12390 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12391 * doc/invoke.texi (-fexcess-precision=): Document option.
12392 (-mfpmath=): Correct index entry.
12393 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12394 flag_excess_precision): New.
12395 * langhooks.c (lhd_post_options): Set
12396 flag_excess_precision_cmdline.
12397 * opts.c (common_handle_option): Handle -fexcess-precision=.
12398 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12399 init_excess_precision): New.
12400 (lang_dependent_init_target): Call init_excess_precision.
12401 * tree.c (excess_precision_type): New.
12402 * tree.h (excess_precision_type): Declare.
12403
1e57bf47
JM
124042009-03-30 Joseph Myers <joseph@codesourcery.com>
12405
12406 PR c/35235
12407 * c-typeck.c (build_component_ref): Do not copy qualifiers from
12408 non-lvalue to component.
12409
148e4216
JM
124102009-03-29 Joseph Myers <joseph@codesourcery.com>
12411
12412 PR preprocessor/34695
12413 * Makefile.in (c-opts.o): Depend on c-tree.h.
12414 * c-common.c: Move down include of diagnostic.h.
12415 (done_lexing, c_cpp_error): New.
12416 * c-common.h (done_lexing): Declare.
12417 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12418 (parse_in).
12419 * c-opts.c: Include c-tree.h.
12420 (c_common_init_options): Set preprocessor error callback.
12421 (c_common_handle_option): Do not set preprocessor
12422 inhibit_warnings, warnings_are_errors, warn_system_headers,
12423 pedantic_errors or inhibit_warnings flags.
12424 (c_common_post_options): Do not check cpp_errors (parse_in).
12425 (c_common_finish): Do not output dependencies if there were
12426 errors. Do not check return value of cpp_finish.
12427 * c-ppoutput.c (pp_file_change): Set input_location.
12428 * c-tree.h (c_cpp_error): Declare.
12429 * diagnostic.c (diagnostic_set_info_translated): Also initialize
12430 override_column.
12431 (diagnostic_build_prefix): Check override_column.
12432 * diagnostic.h (diagnostic_info): Add override_column field.
12433 (diagnostic_override_column): Define.
12434
2ec5deb5
PB
124352009-03-28 Paolo Bonzini <bonzini@gnu.org>
12436
ba20e309
UB
12437 * c-common.c (c_expand_expr, c_staticp): Remove.
12438 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12439 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12440 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12441 * c-gimplify.c (gimplify_compound_literal_expr,
12442 optimize_compound_literals_in_ctor): Remove.
12443 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12444 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12445 * c-semantics.c (emit_local_var): Remove.
12446
12447 * langhooks-def.h (lhd_expand_expr): Remove.
12448 * langhooks.c (lhd_expand_expr): Remove.
12449 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12450
12451 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12452 handling from c-semantics.c; don't call into langhook.
12453 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12454 * gimplify.c (gimplify_compound_literal_expr,
12455 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12456 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12457 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12458 as was done in c-gimplify.c.
12459 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12460 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12461 Move from c-common.h.
12462 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
12463
12464 * tree.c (staticp): Do not call langhook.
12465 * langhooks.c (lhd_staticp): Delete.
12466 * langhooks-def.h (lhd_staticp): Delete prototype.
12467 (LANG_HOOKS_STATICP): Delete.
12468 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12469
ba20e309
UB
12470 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12471 instead of DECL_STMTs.
2ec5deb5 12472
928c19bb
JM
124732009-03-29 Joseph Myers <joseph@codesourcery.com>
12474
12475 PR c/456
12476 PR c/5675
12477 PR c/19976
12478 PR c/29116
12479 PR c/31871
12480 PR c/35198
12481 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12482 void_type_node.
12483 (fold_call_expr): Return a NOP_EXPR from folding rather than the
12484 contained expression.
ba20e309 12485 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
12486 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
12487 conditional expressions for C.
12488 (decl_constant_value_for_optimization): Move from
ba20e309 12489 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
12490 whether optimizing and that the expression is a VAR_DECL not of
12491 array type instead of doing such checks in the caller. Do not
12492 check pedantic. Call gcc_unreachable for C++.
12493 * c-common.def (C_MAYBE_CONST_EXPR): New.
12494 * c-common.h (c_fully_fold, c_save_expr,
12495 decl_constant_value_for_optimization): New prototypes.
12496 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12497 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12498 EXPR_INT_CONST_OPERANDS): Define.
12499 * c-convert.c (convert): Strip nops from expression.
12500 * c-decl.c (groktypename): Take extra parameters expr and
12501 expr_const_operands. Update call to grokdeclarator.
12502 (start_decl): Update call to grokdeclarator. Add statement for
12503 expressions used in type of decl.
12504 (grokparm): Update call to grokdeclarator.
12505 (push_parm_decl): Update call to grokdeclarator.
12506 (build_compound_literal): Add parameter non_const and build a
12507 C_MAYBE_COSNT_EXPR if applicable.
12508 (grokdeclarator): Take extra parameters expr and
12509 expr_const_operands. Track expressions used in declaration
12510 specifiers and declarators. Fold array sizes and track whether
12511 they are constant expressions and whether they are integer
12512 constant expressions.
12513 (parser_xref_tag): Set expr and expr_const_operands fields in
12514 return value.
12515 (grokfield): Update call to grokdeclarator.
12516 (start_function): Update call to grokdeclarator.
12517 (build_null_declspecs): Set expr and expr_const_operands fields in
12518 return value.
12519 (declspecs_add_type): Handle expressions in typeof specifiers.
12520 * c-parser.c (c_parser_declspecs): Set expr and
12521 expr_const_operands fields for declaration specifiers.
12522 (c_parser_enum_specifier): Likewise.
12523 (c_parser_struct_or_union_specifier): Likewise.
12524 (c_parser_typeof_specifier): Likewise. Update call to
12525 groktypename. Fold expression as needed. Return expressions with
12526 type instead of adding statements.
12527 (c_parser_attributes): Update calls to c_parser_expr_list.
12528 (c_parser_statement_after_labels): Fold expression before passing
12529 to objc_build_throw_stmt.
12530 (c_parser_condition): Fold expression.
12531 (c_parser_asm_operands): Fold expression.
12532 (c_parser_conditional_expression): Use c_save_expr. Update call
12533 to build_conditional_expr.
12534 (c_parser_alignof_expression): Update call to groktypename.
12535 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12536 original_code. Fold expression argument of va_arg. Create
12537 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12538 argument to va_arg. Update calls to groktypename. Fold array
12539 index for offsetof. Verify that first argument to
12540 __builtin_choose_expr has integer type.
12541 (c_parser_postfix_expression_after_paren_type): Update calls to
12542 groktypename and build_compound_literal. Handle expressions with
12543 side effects in type name.
12544 (c_parser_postfix_expression_after_primary): Update call to
12545 c_parser_expr_list. Set original_code for calls to
12546 __builtin_constant_p.
12547 (c_parser_expr_list): Take extra parameter fold_p. Fold
12548 expressions if requested.
12549 (c_parser_objc_type_name): Update call to groktypename.
12550 (c_parser_objc_synchronized_statement): Fold expression.
12551 (c_parser_objc_receiver): Fold expression.
12552 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12553 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12554 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12555 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12556 (struct c_typespec): Add elements expr and expr_const_operands.
12557 (struct c_declspecs): Add elements expr and expr_const_operands.
12558 (groktypename, build_conditional_expr, build_compound_literal):
12559 Update prototypes.
12560 (in_late_binary_op): Declare.
12561 * c-typeck.c (note_integer_operands): New function.
12562 (in_late_binary_op): New variable.
12563 (decl_constant_value_for_broken_optimization): Move to c-common.c
12564 and rename to decl_constant_value_for_optimization.
12565 (default_function_array_conversion): Do not strip nops.
12566 (default_conversion): Do not call
12567 decl_constant_value_for_broken_optimization.
12568 (build_array_ref): Do not fold result.
12569 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
12570 result when operand is a VLA.
12571 (c_expr_sizeof_type): Update call to groktypename. Handle
12572 expressions included in type name. Use C_MAYBE_CONST_EXPR for
12573 result when operand names a VLA type.
12574 (build_function_call): Update call to build_compound_literal.
12575 Only fold result for calls to __builtin_* functions. Strip
12576 NOP_EXPR from INTEGER_CST returned from such functions. Fold
12577 the function designator.
12578 (convert_arguments): Fold arguments. Update call to
12579 convert_for_assignment.
12580 (build_unary_op): Handle increment and decrement of
12581 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
12582 decrement earlier. Fold operand of increment and decrement.
12583 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
12584 built for integer operand. Wrap returns that are INTEGER_CSTs
12585 without being integer constant expressions or that have integer
12586 constant operands without being INTEGER_CSTs.
12587 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12588 (build_conditional_expr): Add operand ifexp_bcp. Track whether
12589 result is an integer constant expression or can be used in
12590 unevaluated parts of one and avoid folding and wrap as
12591 appropriate. Fold operands before possibly doing -Wsign-compare
12592 warnings.
12593 (build_compound_expr): Wrap result for C99 if operands can be used
12594 in integer constant expressions.
12595 (build_c_cast): Update call to digest_init. Do not ignore
12596 overflow from casting floating-point constants to integers. Wrap
12597 results that could be confused with integer constant expressions,
12598 null pointer constants or floating-point constants.
12599 (c_cast_expr): Update call to groktypename. Handle expressions
12600 included in type name.
12601 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12602 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12603 Update calls to convert_for_assignment.
12604 (convert_for_assignment): Take new parameter
12605 null_pointer_constant. Do not strip nops or call
12606 decl_constant_value_for_broken_optimization. Set
12607 in_late_binary_op for conversions to boolean.
12608 (store_init_value): Update call to digest_init.
12609 (digest_init): Take new parameter null_pointer_constant. Do not
12610 call decl_constant_value_for_broken_optimization. pedwarn for
12611 initializers not constant expressions. Update calls to
12612 convert_for_assignment.
12613 (constructor_nonconst): New.
12614 (struct constructor_stack): Add nonconst element.
12615 (really_start_incremental_init, push_init_level, pop_init_level):
12616 Handle constructor_nonconst and nonconst element.
12617 (set_init_index): Call constant_expression_warning for array
12618 designators.
12619 (output_init_element): Fold value. Set constructor_nonconst as
12620 applicable. pedwarn for initializers not constant expressions.
12621 Update call to digest_init. Call constant_expression_warning
12622 where constant initializers are required.
12623 (process_init_element): Use c_save_expr.
12624 (c_finish_goto_ptr): Fold expression.
12625 (c_finish_return): Fold return value. Update call to
12626 convert_for_assignment.
12627 (c_start_case): Fold switch expression.
12628 (c_process_expr_stmt): Fold expression.
12629 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12630 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12631 (build_binary_op): Track whether results are integer constant
12632 expressions or may occur in such, disable folding and wrap results
12633 as applicable. Fold operands for -Wsign-compare warnings unless
12634 in_late_binary_op.
12635 (c_objc_common_truthvalue_conversion): Handle results folded to
12636 integer constants that are not integer constant expressions.
12637 * doc/extend.texi: Document when typeof operands are evaluated,
12638 that condition of __builtin_choose_expr is an integer constant
12639 expression, and more about use of __builtin_constant_p in
12640 initializers.
12641
5babbcc0
RG
126422009-03-29 Richard Guenther <rguenther@suse.de>
12643
12644 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12645 propagate addresses of array references.
12646
0340f2ba
SB
126472009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12648
12649 * regmove.c (perhaps_ends_bb_p): Remove.
12650 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12651 from INSN and check that the main loop stays within that basic block.
12652 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12653 (regmove_forward_pass): Split out from regmove_optimize. Use
12654 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12655 (regmove_backward_pass): Split out from regmove_optimize. Use
12656 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12657 (regmove_optimize): Simplify.
12658
eeae74a1
L
126592009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12660
12661 PR target/39545
12662 * config/i386/i386.c (classify_argument): Ignore flexible array
12663 member in struct and warn ABI change.
12664
a24078b2
L
126652009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12666
12667 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12668
12669 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12670 (ix86_adjust_cost): Updated.
12671
a8da523f
JH
126722009-03-29 Jan Hubicka <jh@suse.cz>
12673
12674 PR middle-end/28850
12675 * tree-pass.h (pass_cleanup_eh): New function.
12676 (remove_unreachable_regions): Break code handling RTL
12677 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12678 that can not be reached by runtime.
12679 (can_be_reached_by_runtime): New function.
12680 (label_to_region_map): New function.
12681 (num_eh_regions): New function.
12682 (rtl_remove_unreachable_regions): New function.
12683 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12684 (remove_eh_region): New function.
12685 * except.h: Include sbitmap and vecprim.
12686 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12687 num_eh_regions): Declare.
12688 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12689 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12690 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12691 (tree_empty_eh_handler_p): New function.
12692 (cleanup_empty_eh): New function.
12693 (cleanup_eh): New function.
12694 (pass_cleanup_eh): New function.
12695
98f358e5
JH
126962009-03-29 Jan Hubicka <jh@suse.cz>
12697
12698 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12699 for removed regions.
12700
13a9fa44
JH
127012009-03-29 Jan Hubicka <jh@suse.cz>
12702
12703 * except.c (dump_eh_tree): Dump all datastructures.
12704
e38cf733
JH
127052009-03-29 Jan Hubicka <jh@suse.cz>
12706
12707 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12708 (duplicate_eh_regions_1): Likewise.
12709 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12710 vector; call EH verification.
12711 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12712 Be ready for region being removed.
12713
12802c2b
JH
127142009-03-29 Jan Hubicka <jh@suse.cz>
12715
12716 * bitmap.c (bitmap_last_set_bit): New function.
12717 * bitmap.h (bitmap_last_set_bit): Declare.
12718
4ea80a41
DA
127192009-03-29 David Ayers <ayers@fsfe.org>
12720
12721 PR objc/27377
12722 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12723 by calling objc_compare_types and surpress warnings about
12724 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12725
4ea80a41 127262009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12727
12728 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12729 call initialize_inline_failed.
12730 (initialize_inline_failed): Move it from here ...
12731 * cgraph.c (initialize_inline_failed): ... to here.
12732 (cgraph_create_edge): Call initialize_inline_failed rather than
12733 setting inline_failed directly.
12734
7fb0ee07
BE
127352009-03-29 Ben Elliston <bje@au.ibm.com>
12736
12737 PR target/32542
12738 * sysv4.opt (msdata): Improve comment.
12739 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12740 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12741
0be77bf2
BE
127422009-03-29 Ben Elliston <bje@au.ibm.com>
12743
12744 PR target/30451
12745 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12746 load and store attributes.
12747
593812b6
BE
127482009-03-29 Ben Elliston <bje@au.ibm.com>
12749
12750 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12751 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12752 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12753 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12754 __builtin_infq and __builtin_huge_valq.
12755
8272d11d
AS
127562009-03-28 Anatoly Sokolov <aesok@post.ru>
12757
12758 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12759 atmega8m1 devices.
12760 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12761 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12762
74fe548b
XDL
127632009-03-28 Xinliang David Li <davidxl@google.com>
12764
2ba9daa7 12765 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12766 (do_dbg_cnt): New function.
12767
33977f81
JH
127682009-03-28 Jan Hubicka <jh@suse.cz>
12769
12770 Merge from pretty-ipa:
12771
12772 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12773
33977f81
JH
12774 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12775 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12776 * passes.c (function_called_by_processed_nodes_p): New.
12777 * ipa-pure-const.c (check_call): Fix handling of operands.
12778 (analyze_function): Dump debug output for skipped bodies.
12779 (local_pure_const): Use function_called_by_processed_nodes_p.
12780 * dwarf2out.c (reference_to_unused): Use output.
12781 * passes.c (do_per_function_toporder): Likewise.
12782
12783 2008-11-12 Jan Hubicka <jh@suse.cz>
12784
12785 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12786 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12787 state_set_in_source enum
12788 (check_decl): Ignore memory tags; do not set fake looping flags;
12789 dump diagnostics.
12790 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12791 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12792 (check_call, analyze_function): Rewrite.
12793 (check_stmt): New.
12794 (add_new_function): Update call of analyze_function.
12795 (generate_summary): Add call of analyze_function.
12796 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12797 (local_pure_const): New function.
12798 (pass_local_pure_const): New pass.
12799 * ipa-inline.c (inline_transform): Set after_inlining.
12800 * tree-eh.c (stmt_can_throw_external): New.
12801 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12802 work with aliasing built.
12803 * tree-flow.h (stmt_can_throw_external): New.
12804 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12805 and local pure/const pass in early and late optimization queue.
ba20e309 12806
617f3897
MJ
128072009-03-28 Martin Jambor <mjambor@suse.cz>
12808
12809 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12810 allow_func_align.
12811 (fold_binary): Allow function decl aligment consideration is the
12812 second argument is integer constant one.
12813 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12814 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12815 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12816
fe89fbc5
JH
128172009-03-28 Jan Hubicka <jh@suse.cz>
12818
12819 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12820 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12821 * function.h (rtl_data): Add nothrow flag.
12822 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12823 set DECL_NOTHROW for AVAILABLE functions.
12824
574872ff
JJ
128252009-03-28 Jakub Jelinek <jakub@redhat.com>
12826
b3bf8855
JJ
12827 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12828 following vector keyword has expansion starting with pixel or bool
12829 keyword, expand vector to __vector and pixel or bool to __pixel or
12830 __bool.
12831
574872ff
JJ
12832 PR c++/39554
12833 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12834 warn_if_disallowed_function_p): Removed.
12835 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12836 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12837 warning_if_disallowed_function_p.
12838 * flags.h (warn_if_disallowed_function_p,
12839 warn_disallowed_functions): Removed.
12840 * common.opt (Wdisallowed-function-list=): Removed.
12841 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12842
b005da11
RG
128432009-03-28 Richard Guenther <rguenther@suse.de>
12844
12845 PR tree-optimization/38723
12846 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12847 the entry block.
12848
1de812a6
JH
128492009-03-28 Jan Hubicka <jh@suse.cz>
12850
12851 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12852 test introduced by my previous patch.
12853
fbb789d4
RG
128542009-03-28 Richard Guenther <rguenther@suse.de>
12855
12856 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12857 the PHIs value undefined.
12858
6f1873a1
JH
128592009-03-28 Jan Hubicka <jh@suse.cz>
12860
12861 * tree-pass.h (pass_fixup_cfg): New pass.
12862 * ipa-inline.c (inline_transform): Set
12863 always_inline_functions_inlined/after_inlining.
12864 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12865 (pass_fixup_cfg): New pass.
12866 * passes.c (init_optimization_passes): Add fixup_cfg.
12867
17021bc8
RG
128682009-03-28 Richard Guenther <rguenther@suse.de>
12869
12870 PR tree-optimization/38458
12871 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12872 argument use the arguments copy-of value.
12873
e8114fba
RG
128742009-03-28 Richard Guenther <rguenther@suse.de>
12875
12876 PR tree-optimization/38180
12877 * tree-ssa-ccp.c (get_default_value): Simplify.
12878 (likely_value): Likewise.
12879 (surely_varying_stmt_p): Properly handle VOP case.
12880 (ccp_initialize): Likewise.
12881 (ccp_fold): Handle propagating through *&.
12882 (fold_const_aggregate_ref): Also handle decls.
12883
257eb6e3
JH
128842009-03-28 Jan Hubicka <jh@suse.cz>
12885
12886 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12887 * cgraph.h (cgraph_node): Likewise.
12888 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12889 (cgraph_reset_node): Use process flag.
12890 (cgraph_mark_functions_to_output): Likewise.
12891 (cgraph_expand_function): Likewise.
12892 (cgraph_expand_all_functions): Likewise.
12893 (cgraph_output_in_order): Likewise.
12894 * dwarf2out.c (reference_to_unused): Likewise.
12895 * passes.c do_per_function_toporder): Likewise.
12896
61a05df1
JH
128972009-03-28 Jan Hubicka <jh@suse.cz>
12898
12899 Bring from lto-branch:
ba20e309 12900
61a05df1
JH
12901 2008-09-03 Doug Kwan <dougkwan@google.com>
12902
12903 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12904 enums instead of reason strings.
12905 * cgraph.c (cgraph_create_edge): Same.
12906 (cgraph_inline_failed_string): New function.
12907 * cgraph.h (cgraph_inline_failed_t): New enum type.
12908 (cgraph_inline_failed_string): New prototype.
12909 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12910 char pointer to cgraph_inline_failed_t.
12911 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12912 (cgraph_default_inline_p): Ditto.
60839f5d 12913 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12914 to cgraph_inline_failed_t pointer.
12915 * cif-code.def: New file.
12916 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12917 reason string.
12918 (cgraph_check_inline_limits): Change type of REASON to pointer to
12919 cgraph_inline_failed_t. Replace reason strings with enums.
12920 (cgraph_default_inline_p): Ditto.
12921 (cgraph_recursive_inlining_p): Ditto.
12922 (update_caller_keys): Change type of FAILED_REASON to
12923 cgraph_inline_failed_t.
12924 (cgraph_set_inline_failed): Change type of REASON to pointer to
12925 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12926 convert enums to strings for text output.
12927 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12928 to be of type cgraph_inline_failed_t. Replace reason strings with
12929 enums. Call cgraph_inline_failed_string to covert enums
12930 to strings for text output.
12931 (cgraph_decide_inlining): Replace reason strings with enums.
12932 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12933 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12934 for text output.
12935 * tree-inline.c (expand_call_inline): Change type of REASON
12936 to cgraph_inline_failed_t. Replace reason strings with enums.
12937 Call cgraph_inline_failed_string for text output.
12938 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12939 (cgraph.o): Ditto.
12940
144e8aac
JH
129412009-03-28 Jan Hubicka <jh@suse.cz>
12942
12943 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12944 cgraph_clone_node): Remove master clone handling.
12945 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12946 * cgraph.h (master_clone): Remove.
12947 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12948 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12949 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12950
4a371c8d
JH
129512009-03-28 Jan Hubicka <jh@suse.cz>
12952
12953 * cgraph.c (cgraph_function_body_availability): Functions declared
12954 inline are always safe to assume that it is not going to be replaced.
12955
6cdb0ee3
RG
129562009-03-28 Richard Guenther <rguenther@suse.de>
12957
12958 PR tree-optimization/38513
12959 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12960 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12961 EXC_PTR_EXPR and FILTER_EXPR.
12962 (get_ref_from_reference_ops): Likewise.
12963
8ca1fd76
RG
129642009-03-28 Richard Guenther <rguenther@suse.de>
12965
12966 PR tree-optimization/38968
12967 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12968 Use FLOOR_MOD_EXPR to compute misalignment.
12969
a254e44d
RG
129702009-03-28 Richard Guenther <rguenther@suse.de>
12971
12972 PR tree-optimization/37795
12973 * tree.h (combine_comparisons): Declare.
12974 * fold-const.c (combine_comparisons): Export.
12975 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12976 comparisons.
12977 (ifcombine_iforif): Use combine_comparisons.
12978
a8ee227c
JH
129792009-03-28 Jan Hubicka <jh@suse.cz>
12980
12981 * tree-eh.c (inlinable_call_p): New function.
12982 (make_eh_edges): Use it.
12983 (verify_eh_edges): Use it.
12984 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12985 * except.c (reachable_next_level): Add inlinable_function argument
12986 (sjlj_find_directly_reachable_regions): Update.
12987 (add_reachable_handler): Do not set saw_any_handlers.
12988 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12989 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12990 Add new inlinable call parameter.
12991 (can_throw_internal, can_throw_external): Update.
12992 * except.h (can_throw_internal_1, can_throw_external_1,
12993 foreach_reachable_handler): Update declaration.
12994
52c0e446
JM
129952009-03-28 Joseph Myers <joseph@codesourcery.com>
12996
12997 * config/arm/t-arm-coff, config/h8300/coff.h,
12998 config/i386/i386-aout.h, config/i386/i386-coff.h,
12999 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13000 config/pdp11/2bsd.h, config/rs6000/aix41.h,
13001 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13002 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13003 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13004 sys-types.h: Remove.
13005 * Makefile.in: Remove protoize and fixproto support and references
13006 in comments.
13007 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13008 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13009 Remove.
13010 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13011 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13012 unprotoize$(exeext).
13013 (rest.encap): Don't depend on $(STMP_FIXPROTO)
13014 (.PHONY): Don't depend on proto.
13015 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13016 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13017 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13018 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13019 build/gen-protos.o, build/scan.o, xsys-protos.h,
13020 build/fix-header$(build_exeext), build/fix-header.o,
13021 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13022 stmp-install-fixproto): Remove.
13023 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13024 SYSCALLS.c or fixproto files.
13025 (install-common): Don't install protoize.
13026 (install-headers-tar, install-headers-cpio, install-headers-cp):
13027 Don't depend on $(STMP_FIXPROTO).
13028 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
13029 install fixproto files or write out fixproto settings.
13030 (uninstall): Don't uninstall protoize.
13031 * config.gcc (use_fixproto): Remove.
13032 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13033 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13034 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13035 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13036 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13037 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13038 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13039 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13040 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13041 * config/t-vxworks (STMP_FIXPROTO): Remove.
13042 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13043 STMP_FIXPROTO): Remove.
13044 * config.in, configure: Regenerate.
13045 * crtstuff.c (gid_t, uid_t): Don't undefine.
13046 * doc/install.texi: Change m68k-coff to m68k-elf in example.
13047 (arm-*-coff, arm-*-aout: Remove target entries.
13048 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13049 Remove mention of AIX 4.1.
13050 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13051 * doc/invoke.texi (Running Protoize): Remove.
13052 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13053 (Protoize Caveats): Remove.
13054 * tsystem.h: Update comments on headers assumed to exist.
13055
20a07f44
VM
130562009-03-27 Vladimir Makarov <vmakarov@redhat.com>
13057
13058 * genautomata.c: Add a new year to the copyright. Add a new
13059 reference.
13060 (struct insn_reserv_decl): Add comments for member bypass_list.
13061 (find_bypass): Remove.
13062 (insert_bypass): New.
13063 (process_decls): Use insert_bypass.
13064 (output_internal_insn_latency_func): Output all bypasses with the
13065 same input insn in one switch case.
13066
13067 * rtl.def (define_bypass): Describe bypass choice.
13068 * doc/md.texi (define_bypass): Ditto.
13069
3a0d06c1
RB
130702009-03-27 Richard Guenther <rguenther@suse.de>
13071
13072 * gimplify.c (mark_addressable): Export.
13073 * tree-flow.h (mark_addressable): Declare.
13074 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13075 * tree-ssa.c (verify_phi_args): Verify that address taken
13076 variables have TREE_ADDRESSABLE set.
13077
130782009-03-27 Richard Guenther <rguenther@suse.de>
13079
13080 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13081 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
13082 Do not mark decls TREE_ADDRESSABLE.
13083 (build_fold_addr_expr): Adjust.
13084 (fold_addr_expr): Remove.
13085 (fold_unary): Use build_fold_addr_expr.
13086 (fold_comparison): Likewise.
13087 (split_address_to_core_and_offset): Likewise.
13088 * coverage.c (tree_coverage_counter_addr): Mark the array decl
13089 TREE_ADDRESSABLE.
13090 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13091 (gimplify_modify_expr_to_memcpy): Mark source and destination
13092 addressable.
13093 * omp-low.c (create_omp_child_function): Mark the object decl
13094 TREE_ADDRESSABLE.
13095 (lower_rec_input_clauses): Mark the var we take the address of
13096 TREE_ADDRESSABLE.
13097 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13098
2ac26e15
L
130992009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13100
13101 PR middle-end/39315
13102 * cfgexpand.c (expand_one_stack_var_at): Change alignment
13103 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13104
472c7fbd
RG
131052009-03-27 Richard Guenther <rguenther@suse.de>
13106
13107 PR tree-optimization/39120
13108 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13109 constraints.
13110 (handle_lhs_call): Process return constraints. Add escape
13111 constraints if necessary.
13112 (handle_const_call): Fill out return constraints. Make nested
13113 case more precise. Avoid consttmp if possible.
13114 (handle_pure_call): Fill out return constraints. Avoid
13115 callused if possible.
13116 (find_func_aliases): Simplify call handling.
13117
131182009-03-27 Richard Guenther <rguenther@suse.de>
13119
13120 PR tree-optimization/39120
13121 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13122 as a representative.
13123 (solve_graph): Do propagate CALLUSED.
13124 (handle_pure_call): Use a scalar constraint from CALLUSED for
13125 the return value.
13126 (find_what_p_points_to): CALLUSED shall not appear in poins-to
13127 solutions.
13128
d9223014
L
131292009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13130
13131 PR c/39323
13132 * c-common.c (handle_aligned_attribute): Properly check alignment
13133 overflow. Use (1U << i) instead of (1 << i).
13134
ba20e309 13135 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
13136
13137 * expr.h (get_mem_align_offset): Updated.
13138
13139 * tree.h (tree_decl_common): Change align to "unsigned int" and
13140 move it before pointer_alias_set.
13141
689b689c
L
131422009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13143 Jakub Jelinek <jakub@redhat.com>
13144
13145 PR target/38034
13146 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13147 gr_register_operand with gr_reg_or_0_operand.
13148 (cmpxchg_rel_di): Likewise.
13149 (sync_lock_test_and_set<mode>): Likewise.
13150
c619e982
L
131512009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13152
13153 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13154 (true_regnum): Likewise.
13155
13156 * rtlanal.c (subreg_info): Moved to ...
13157 * rtl.h (subreg_info): Here. New.
13158 (subreg_get_info): New.
13159
13160 * rtlanal.c (subreg_get_info): Make it extern.
13161
51212b32
L
131622009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13163
13164 PR target/39472
13165 * config/i386/i386.c (ix86_abi): New.
13166 (override_options): Handle -mabi=.
ba20e309 13167 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
13168 (ix86_call_abi_override): Likewise.
13169 (init_cumulative_args): Likewise.
13170 (function_arg_advance): Likewise.
13171 (function_arg_64): Likewise.
13172 (function_arg): Likewise.
13173 (ix86_pass_by_reference): Likewise.
13174 (ix86_function_value_regno_p): Likewise.
13175 (ix86_build_builtin_va_list_abi): Likewise.
13176 (setup_incoming_varargs_64): Likewise.
13177 (is_va_list_char_pointer): Likewise.
13178 (ix86_init_machine_status): Likewise.
ba20e309 13179 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
13180 (ix86_function_type_abi): Return enum calling_abi. Rewrite
13181 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 13182 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
13183 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
13184 with ix86_abi.
13185 (ix86_fn_abi_va_list): Updated.
13186
13187 * config/i386/i386.h (ix86_abi): New.
13188 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
13189 (CONDITIONAL_REGISTER_USAGE): Likewise.
13190 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
13191 (machine_function): Likewise.
13192
13193 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
13194 with ix86_abi.
13195 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
13196 (STACK_BOUNDARY): Likewise.
13197 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
13198
13199 * config/i386/i386.opt (mabi=): New.
13200
13201 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
13202 return enum calling_abi.
13203 (ix86_function_type_abi): Likewise.
13204 (ix86_function_abi): Removed.
13205
13206 * doc/invoke.texi: Document -mabi= option for x86.
13207
7338ea63
KG
132082009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13209
13210 * builtins.c (real_dconstp): Delete.
13211 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13212
68599f33
DS
132132009-03-27 Dodji Seketeli <dodji@redhat.com>
13214 Jakub Jelinek <jakub@redhat.com>
13215
13216 PR debug/37959
13217 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13218 (gen_subprogram_die): When a function is explicit, generate the
13219 DW_AT_explicit attribute.
13220 * langhooks.h (struct lang_hooks_for_decls): Add
13221 function_decl_explicit_p langhook.
13222 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13223 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13224
9f5e9983
JJ
132252009-03-27 Jakub Jelinek <jakub@redhat.com>
13226
64d7685c
JJ
13227 * builtins.c (fold_builtin_memory_op): Optimize memmove
13228 into memcpy if we can prove source and destination don't overlap.
13229
9f5e9983
JJ
13230 * tree-inline.c: Include gt-tree-inline.h.
13231 (clone_fn_id_num): New variable.
13232 (clone_function_name): New function.
13233 (tree_function_versioning): Use it.
13234 * Makefile.in (GTFILES): Add tree-inline.c.
13235
e54d52a8
MM
132362009-03-27 Mark Mitchell <mark@codesourcery.com>
13237
13238 * BASE-VER: Change to 4.5.0.
13239
e9d51dc6
XDL
132402009-03-27 Xinliang David Li <davidxl@google.com>
13241
13242 PR tree-optimization/39557
13243 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13244
4577cea1
XDL
132452009-03-27 Xinliang David Li <davidxl@google.com>
13246
13247 PR tree-optimization/39548
2ba9daa7 13248 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
13249 candidate check.
13250
0f7464f4
L
132512009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13252
13253 * c-common.c (pointer_int_sum): Use %wd on return from
13254 tree_low_cst.
13255
a8847a7f
L
132562009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13257
13258 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13259 on return from tree_low_cst.
13260
b0957daf
AP
132612009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
13262
13263 PR c++/36799
ba20e309
UB
13264 * ginclude/stdarg.h (va_copy): Define also for
13265 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 13266
a5f805df
MLI
132672009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13268
13269 PR c++/35652
13270 * builtins.h (c_strlen): Do not warn here.
13271 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13272 * c-common.c (pointer_int_sum): Take an explicit location.
13273 Warn about offsets out of bounds.
13274 * c-common.h (pointer_int_sum): Adjust declaration.
13275
6f401211
RW
132762009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13277
a5f805df
MLI
13278 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13279 markup glitch.
6f401211 13280
5a59b39e
JJ
132812009-03-26 Jakub Jelinek <jakub@redhat.com>
13282
13283 PR c++/39554
13284 * opts.c (warn_if_disallowed_function_p): Don't assume
13285 get_callee_fndecl must return non-NULL.
13286
d5f89b53
VM
132872009-03-26 Vladimir Makarov <vmakarov@redhat.com>
13288
13289 PR rtl-optimization/39522
13290 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13291 when reg_reloaded_valid is set.
13292
61238a79
UW
132932009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13294
13295 * config/spu/divv2df3.c: New file.
13296 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13297 (DPBIT_FUNCS): Filter out _div_df.
13298
03f8829b
BS
132992009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
13300
13301 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13302 a jump insn, count that jump in the distance to the loop start.
13303
9fdcdc74
KK
133042009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
13305
13306 PR target/39523
13307 * config/sh/sh.c (calc_live_regs): Fix condition for global
13308 registers except PIC_OFFSET_TABLE_REGNUM.
13309
46994828
KT
133102009-03-25 Kai Tietz <kai.tietz@onevision.com>
13311
13312 PR/39518
13313 * doc/invoke.texi (-mconsole): New.
13314 (-mcygwin): New.
13315 (-mno-cygwin): New.
13316 (-mdll): New.
13317 (-mnop-fun-dllimport): New.
13318 (-mthread): New.
13319 (-mwin32): New.
13320 (-mwindows): New.
13321 (sub section "i386 and x86-64 Windows Options"): New.
13322
60839f5d 133232009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
13324
13325 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13326 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13327
ae560440
RG
133282009-03-25 Richard Guenther <rguenther@suse.de>
13329
13330 PR middle-end/39497
13331 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13332 of -Wno-error.
13333
cd510f15
AM
133342009-03-25 Andrey Belevantsev <abel@ispras.ru>
13335
13336 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13337 neither of haifa/selective schedulers are working.
13338
44ab0f0e
RW
133392009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13340
13341 * doc/invoke.texi (Debugging Options): Fix description of
13342 -fno-merge-debug-strings.
13343
ad9646c7
HPN
133442009-03-24 Hans-Peter Nilsson <hp@axis.com>
13345
e6142656
HPN
13346 * config/cris/libgcc.ver: New version-script.
13347 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13348
ad9646c7
HPN
13349 * configure.ac <GAS features, nop mnemonic>: Add pattern
13350 crisv32-*-* for "nop".
ba20e309 13351 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
13352 * configure: Regenerate.
13353
09ac4473
IR
133542009-03-24 Ira Rosen <irar@il.ibm.com>
13355
13356 PR tree-optimization/39529
13357 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13358 mark_sym_for_renaming for the tag copied to the new vector
13359 pointer.
13360
d94a427e
AL
133612009-03-24 Arthur Loiret <aloiret@debian.org>
13362
ba20e309 13363 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
13364 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13365 EXTRA_SPEC_FUNCTIONS.
13366 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13367 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13368 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13369 -march and -mtune options.
13370
60839f5d 133712009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
13372
13373 * config/m68k/t-rtems: Add m5329 multilib.
13374
603f5959
DS
133752009-03-24 Dodji Seketeli <dodji@redhat.com>
13376 Jakub Jelinek <jakub@redhat.com>
13377
13378 PR debug/39524
13379 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13380 nodes.
13381
c5cdb03f
JJ
133822009-03-23 Jakub Jelinek <jakub@redhat.com>
13383
13384 PR c/39495
13385 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13386 instead of c_parser_expression_conv, if original_code isn't one of the
13387 4 allowed comparison codes, fail.
13388
3691626c
RG
133892009-03-23 Richard Guenther <rguenther@suse.de>
13390
13391 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13392 * tree.h (struct tree_type): Likewise.
13393 * reload.h (struct insn_chain): Likewise.
13394 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13395 * function.h (struct function): Likewise.
13396 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13397
88ccb72a
JJ
133982009-03-23 Jakub Jelinek <jakub@redhat.com>
13399
13400 PR tree-optimization/39516
13401 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13402
60839f5d 134032009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 13404
2ba9daa7 13405 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
13406 should be set true if BITS_PER_WORD of target is bigger than 32
13407
f82162f8
HPN
134082009-03-22 Hans-Peter Nilsson <hp@axis.com>
13409
13410 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13411 Translate -B-options to -rpath-link. Correct existing
13412 rpath-link and conditionalize on !nostdlib.
13413
048fd785
RW
134142009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13415
13416 * doc/extend.texi (Function Attributes, Variable Attributes):
13417 Fix typos.
13418 * doc/invoke.texi (Debugging Options, Optimize Options)
13419 (i386 and x86-64 Options, MCore Options): Likewise.
13420
6e75c1a9
JJ
134212009-03-20 Jakub Jelinek <jakub@redhat.com>
13422
13423 PR debug/37890
13424 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13425 it for block local namespace aliases.
13426 (gen_decl_die): Pass context_die to gen_namespace_die.
13427
ea1199ee
JJ
134282009-03-19 Jakub Jelinek <jakub@redhat.com>
13429
13430 PR c/39495
13431 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13432 minimum or maximum value.
13433
58929c10
AO
134342009-03-19 Alexandre Oliva <aoliva@redhat.com>
13435
13436 * reginfo.c (globalize_reg): Recompute derived reg sets.
13437
60839f5d 134382009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
13439
13440 PR target/39063
13441 * libgcc2.c (mprotect): Do not use signed arguments for
13442 VirtualProtect, use DWORD arguments. Also fix the 'may
13443 be used uninitialized' warning for the np variable.
13444
f57c2f04
JJ
134452009-03-19 Jakub Jelinek <jakub@redhat.com>
13446
13447 PR target/39496
13448 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13449 functions using regparm calling conventions when not optimizing.
13450 (ix86_function_sseregparm): Similarly for sseregparm calling
13451 conventions.
13452
9e517d61
LF
134532009-03-19 Li Feng <nemokingdom@gmail.com>
13454
13455 PR middle-end/39500
13456 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13457 dependence if the first conflict is after niter iterations.
13458
8ef20026
HPN
134592009-03-19 Hans-Peter Nilsson <hp@axis.com>
13460
13461 PR middle-end/38609
13462 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13463 functions with dynamic stack-pointer adjustments.
13464
64e4a1a6
BE
134652009-03-19 Ben Elliston <bje@au.ibm.com>
13466
13467 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13468 option; change to -msdata=data.
13469
9a0f3e86
RW
134702009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13471
13472 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13473 and -fopenmp.
13474
09bc5979
EB
134752009-03-18 Eric Botcazou <ebotcazou@adacore.com>
13476
13477 PR target/35180
13478 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13479
332459cd
SL
134802009-03-18 Sandra Loosemore <sandra@codesourcery.com>
13481
13482 * doc/invoke.texi (Code Gen Options): Expand discussion of
13483 -fno-common.
13484
8f5929e1
JJ
134852009-03-18 Jakub Jelinek <jakub@redhat.com>
13486
13487 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13488 * matrix-reorg.c (struct matrix_info): Likewise.
13489 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13490 * rtl.h (struct mem_attrs): Likewise.
13491 * df.h (struct df): Likewise.
13492 * tree-data-ref.h (struct data_dependence_relation): Likewise.
13493 * ira-int.h (struct ira_allocno): Likewise.
13494 * df-scan.c (struct df_collection_rec): Likewise.
13495 * ira.c (struct equivalence): Likewise.
13496 * function.c (struct temp_slot): Likewise.
13497 * cfgloop.h (struct loop): Likewise.
13498
d130d647
JJ
13499 PR debug/39485
13500 * function.c (use_register_for_decl): When not optimizing, disregard
13501 register keyword for variables with types containing methods.
13502
9968d233
SP
135032009-03-18 Sebastian Pop <sebastian.pop@amd.com>
13504
13505 PR middle-end/39447
13506 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13507 (is_simple_operand): Call contains_component_ref_p before calling data
13508 reference analysis that would fail on COMPONENT_REFs.
13509
13510 * tree-vrp.c (search_for_addr_array): Fix formatting.
13511
69484bfd
RG
135122009-03-18 Richard Guenther <rguenther@suse.de>
13513
13514 * tree-vect-transform.c (vect_loop_versioning): Fold the
13515 generated comparisons.
13516 * tree-vectorizer.c (set_prologue_iterations): Likewise.
13517 (slpeel_tree_peel_loop_to_edge): Likewise.
13518
66811228
RW
135192009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13520
0631b69f
RW
13521 PR middle-end/37805
13522 * opts.c (print_specific_help): In addition to `undocumented',
13523 accept `separate' and `joined' flags if passed alone. Describe
13524 output by the first matched one of those.
13525 (common_handle_option): Skip over empty strings.
13526 * gcc.c (display_help): Fix help string for `--help='.
13527 * doc/invoke.texi (Option Summary, Overall Options): With
13528 `--help=', classes and qualifiers can both be repeated, but
13529 only the latter can be negated. One should not pass only
13530 negated qualifiers. Fix markup and examples.
13531
66811228
RW
13532 Revert
13533 2008-10-14 Jakub Jelinek <jakub@redhat.com>
13534 PR middle-end/37805
13535 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13536 and -fhelp=separate.
13537
3c072c6b
JY
135382009-03-17 Jing Yu <jingyu@google.com>
13539
13540 PR middle-end/39378
80c65208
JY
13541 * function.h (struct rtl_data): Move is_thunk from here...
13542 (struct function): ...to here.
13543 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
13544 * varasm.c (assemble_start_function): Change is_thunk from crtl to
13545 cfun.
80c65208
JY
13546 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13547 cfun.
13548 (alpha_does_function_need_gp, alpha_start_function): Likewise.
13549 (alpha_output_function_end_prologue): Likewise.
13550 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13551 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13552 (rs6000_output_function_epilogue): Likewise.
13553 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 13554
9ade279b
UB
135552009-03-17 Uros Bizjak <ubizjak@gmail.com>
13556
13557 PR target/39482
13558 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13559 from different units in a single alternative.
13560 (*truncdfsf_i387): Ditto.
13561 (*truncxfsf2_mixed): Ditto.
13562 (*truncxfdf2_mixed): Ditto.
13563
16e60c17
JJ
135642009-03-17 Jakub Jelinek <jakub@redhat.com>
13565
98381eb4
JJ
13566 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13567 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13568
df5deb18
JJ
13569 PR debug/39474
13570 * tree-ssa-live.c (remove_unused_locals): Don't remove local
13571 unused non-artificial variables when not optimizing.
13572
a3f596ba
JJ
13573 PR debug/39471
13574 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13575 DW_TAG_imported_module even if decl is IMPORTED_DECL with
13576 NAMESPACE_DECL in its DECL_INITIAL.
13577
6b2b8871
JJ
13578 PR middle-end/39443
13579 * optabs.c (set_user_assembler_libfunc): New function.
13580 * expr.h (set_user_assembler_libfunc): New prototype.
13581 * c-common.c: Include libfuncs.h.
13582 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13583 for memcmp, memset, memcpy, memmove and abort.
13584 * Makefile.in (c-common.o): Depend on libfuncs.h.
13585
16e60c17
JJ
13586 PR debug/39412
13587 * dwarf2out.c (gen_inlined_enumeration_type_die,
13588 gen_inlined_structure_type_die, gen_inlined_union_type_die,
13589 gen_tagged_type_instantiation_die): Removed.
13590 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13591 do nothing.
13592
4d936aca
JJ
135932009-03-17 Janis Johnson <janis187@us.ibm.com>
13594
13595 PR testsuite/38526
13596 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13597 its use.
13598 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13599 (check-parallel-%): Ditto.
13600 (check-consistency): Ditto.
13601
4e9b2e50
KT
136022009-03-17 Kai Tietz <kai.tietz@onevision.com>
13603
13604 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13605 local variable rhs by NULL_TREE.
13606
21440b2d
L
136072009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13608
13609 PR target/39477
9ade279b 13610 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13611
d8905c6a
L
136122009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13613
13614 PR target/39476
9ade279b 13615 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13616
136172009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13618
13619 PR target/39473
13620 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13621 for ms->sysv ABI calls only in 64bit mode.
13622
13623 * config/i386/i386.md (untyped_call): Support 32bit.
13624
cdcabece
L
136252009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13626
13627 * doc/extend.texi: Replace x86_65 with x86_64.
13628
97b4ba9f
JJ
136292009-03-16 Jakub Jelinek <jakub@redhat.com>
13630
13631 PR tree-optimization/39455
13632 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13633 mismatches for POINTER_TYPE_P (type).
13634 (number_of_iterations_le): Likewise.
13635
60839f5d 136362009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13637
13638 * config/picochip/picochip.c: Removed profiling support.
13639 * config/picochip/picochip.md: Removed profiling instruction.
13640 * config/picochip/picochip.h: Removed profiling builtin.
13641
f38095f3
JM
136422009-03-16 Joseph Myers <joseph@codesourcery.com>
13643
13644 * doc/install.texi (--with-host-libstdcxx): Document.
13645
2cb4817b
AS
136462009-03-14 Anatoly Sokolov <aesok@post.ru>
13647
13648 PR target/34299
13649 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13650 generate a warning if the function name does not begin with
13651 "__vector" and the function has either the 'signal' or 'interrupt'
13652 attribute, from here to ...
13653 (avr_declare_function_name): ...here. New function.
13654 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13655 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13656
39b2ac74
JJ
136572009-03-14 Jakub Jelinek <jakub@redhat.com>
13658
13659 PR bootstrap/39454
13660 * cse.c (fold_rtx): Don't modify original const_arg1 when
13661 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13662 separate variable instead.
13663 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13664 from out of range shift counts.
13665 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13666
ad41bd84 136672009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13668
60839f5d 13669 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13670 diagnostic.h with $(DIAGNOSTIC_H).
13671
ad41bd84 136722009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13673
13674 PR target/39431
13675 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13676 predicate.
13677 * config/i386/sync.md (sync_compare_and_swap<mode>,
13678 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13679 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13680 into a register.
13681 (sync_double_compare_and_swapdi_pic,
13682 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13683 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13684
122c59c7
L
136852009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13686
13687 PR target/39445
9ade279b 13688 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13689
cec8874f
L
136902009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13691
13692 PR target/39327
13693 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13694 (avx_addsubv4df3): Likewise.
13695 (*avx_addsubv4sf3): Likewise.
13696 (sse3_addsubv4sf3): Likewise.
13697
bbb52802
L
136982009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13699
13700 PR target/38824
9ade279b 13701 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13702
a812fb07
VM
137032009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13704
13705 PR debug/39432
13706 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13707 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13708 registers for allocnos created from user-defined variables.
13709
4caab5ba
UW
137102009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13711
13712 PR target/39181
13713 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13714 of non-integer mode as well.
13715
498e51ca
AN
137162009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13717
13718 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13719 for functions for which the parameter types are unknown.
13720
9bfaf89d
JJ
137212009-03-11 Jakub Jelinek <jakub@redhat.com>
13722
13723 PR target/39137
9ade279b 13724 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13725 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13726 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13727 * config/i386/i386.c (ix86_local_alignment): For
13728 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13729 long long variables on the stack to avoid dynamic realignment.
13730 Allow the first argument to be a decl rather than type.
13731 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13732
18a3bdcb
NC
137332009-03-11 Nick Clifton <nickc@redhat.com>
13734
13735 PR target/5362
40190a76
NC
13736 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13737 options.
13738 Add description to mno-lsim option.
13739 * config/mcore/mcore.h: Remove comment about deprecated m4align
13740 option.
13741 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13742 * doc/invoke.texi: Add description of mno-lsim and
13743 mstack-increment options.
13744
18a3bdcb
NC
13745 * config/fr30/fr30.opt: Document the -mno-lsim option.
13746 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13747 and -mno-lsim options.
13748
dc215785
UW
137492009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13750
13751 * fold-const.c (fold_comparison): Only call fold_inf_compare
13752 if the mode supports infinities.
13753
7716876b
JM
137542009-03-11 Jason Merrill <jason@redhat.com>
13755
13756 PR debug/39086
13757 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13758 end already did. Notice GIMPLE_CALL modifications of the result.
13759 Don't copy debug information from an ignored decl or a decl from
13760 another function.
13761
ddef83d2
RG
137622009-03-10 Richard Guenther <rguenther@suse.de>
13763 Nathan Froyd <froydnj@codesourcery.com>
13764
13765 PR middle-end/37850
9ade279b 13766 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13767 (__divMODE3): Likewise.
13768
9a9ba8d9
JJ
137692009-03-09 Jakub Jelinek <jakub@redhat.com>
13770
13771 PR tree-optimization/39394
13772 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13773 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13774
929b7fc3
AK
137752009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13776
13777 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13778 inline asms for register asm ("") declarations.
13779
1803581d
EB
137802009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13781
13782 * fold-const.c (fold_unary): Fix comment.
13783
8454d27e
JH
137842009-03-07 Jan Hubicka <jh@suse.cz>
13785
13786 PR target/39361
969a5433
JJ
13787 * tree-inline.c (setup_one_parameter): Do replacement of const
13788 argument by constant in SSA form.
8454d27e 13789
3a695389
UW
137902009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13791
13792 PR middle-end/38028
13793 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13794 determine alignment passed to assign_stack_local.
13795 (assign_parms_unsplit_complex): Likewise.
13796 * except.c (sjlj_build_landing_pads): Likewise.
13797
9f0e7885
JJ
137982009-03-06 Jakub Jelinek <jakub@redhat.com>
13799
65401a0b
JJ
13800 PR middle-end/39360
13801 * tree-flow.h (add_referenced_var): Return bool instead of void.
13802 * tree-dfa.c (add_referenced_var): Return result of
13803 referenced_var_check_and_insert call.
13804 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13805 of referenced_var_check_and_insert.
13806
9f0e7885 13807 PR debug/39372
9ade279b 13808 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13809 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13810 DIE, don't emit it if abstract origin already has it.
13811 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13812 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13813
3b664bd1
JBG
138142009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13815
ba20e309 13816 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13817 detection.
13818 (write_tm_constrs_h): Indent generated code.
13819
d8f8ca80
RR
138202009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13821
13822 * doc/extend.texi (Function Attributes): Add documentation
13823 for isr attributes.
13824
6c3d550c
JJ
138252009-03-06 Jakub Jelinek <jakub@redhat.com>
13826
13827 PR debug/39387
13828 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13829 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13830
f9e96751
BS
138312009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13832
13833 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13834 the loop as bad.
13835
ee0ee7e2
JJ
138362009-03-05 Jakub Jelinek <jakub@redhat.com>
13837
13838 PR debug/39379
13839 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13840 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13841
6c6094f1
UB
138422009-03-05 Uros Bizjak <ubizjak@gmail.com>
13843
13844 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13845 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13846 constants instead of magic numbers.
13847 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13848 (QI_REG_P): Ditto.
13849 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13850 (x86_64_ms_abi_int_parameter_registers): Ditto.
13851 (x86_64_int_return_registers): Ditto.
09f8a8d3 13852 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13853 (ix86_expand_call): Ditto for clobbered_registers array.
13854 (ix86_hard_regno_mode_ok): Ditto.
13855 (x86_extended_QIreg_mentioned_p): Ditto.
13856
b267bd41
R
138572009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13858
6c6094f1 13859 PR tree-optimization/39349
1f3ad3f0
R
13860 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13861
b267bd41
R
13862 * combine.c (gen_lowpart_for_combine): Use omode when generating
13863 clobber.
13864
1242bc9d
R
138652009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13866
6c6094f1 13867 PR rtl-optimization/39235
1242bc9d
R
13868 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13869
48f03606
ZD
138702009-03-04 Zdenek Dvorak <ook@ucw.cz>
13871
13872 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13873
b505e785
RG
138742009-03-04 Richard Guenther <rguenther@suse.de>
13875
13876 PR tree-optimization/39362
13877 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13878 that occur in abnormal PHIs should be varying.
13879
f017bf5e
ZD
138802009-03-04 Zdenek Dvorak <ook@ucw.cz>
13881
13882 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13883 Extend comments.
13884 (simple_iv): Take loop as an argument instead of statement.
13885 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13886 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13887 to simple_iv.
13888 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13889 Ditto.
13890 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13891 * matrix-reorg.c (analyze_transpose): Ditto.
13892 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13893 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13894 * tree-predcom.c (ref_at_iteration): Ditto.
13895 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13896
6a66f28e
RG
138972009-03-04 Richard Guenther <rguenther@suse.de>
13898
13899 PR tree-optimization/39358
13900 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13901 escaped_id and callused_id.
13902 (solve_graph): Likewise.
13903
57e454ee
RG
139042009-03-04 Richard Guenther <rguenther@suse.de>
13905
13906 PR tree-optimization/39339
13907 * tree-sra.c (try_instantiate_multiple_fields): Make it
13908 no longer ICE on the above.
13909
a6fe9ed4
JM
139102009-03-03 Joseph Myers <joseph@codesourcery.com>
13911
13912 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13913 that fits within Pmode.
13914
dc672951
SE
139152009-03-03 Steve Ellcey <sje@cup.hp.com>
13916
13917 PR middle-end/10109
13918 * tm.texi (LIBCALL_VALUE): Update description.
13919
8b9d598f
SE
139202009-03-03 Steve Ellcey <sje@cup.hp.com>
13921
13922 PR middle-end/34443
13923 * doc/extend.texi (section): Update description.
13924
13e4e36e
L
139252009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13926
13927 PR middle-end/39345
13928 * tree-inline.c (remapped_type): New.
13929 (can_be_nonlocal): Call remapped_type instead of remap_type.
13930
067dd3c9
JJ
139312009-03-03 Jakub Jelinek <jakub@redhat.com>
13932
13933 PR fortran/39354
13934 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13935 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13936
9bd9f738
RG
139372009-03-03 Richard Guenther <rguenther@suse.de>
13938
13939 PR middle-end/39272
13940 * tree.c (tree_nonartificial_location): New function.
13941 * tree.h (tree_nonartificial_location): Declare.
13942 * builtins.c (expand_builtin_memory_chk): Provide location
13943 of the call location for artificial function pieces.
13944 (maybe_emit_chk_warning): Likewise.
13945 (maybe_emit_sprintf_chk_warning): Likewise.
13946 (maybe_emit_free_warning): Likewise.
13947 * expr.c (expand_expr_real_1): Likewise.
13948
f07049c8
JJ
139492009-03-03 Jakub Jelinek <jakub@redhat.com>
13950
13951 PR tree-optimization/39343
13952 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13953 COMPONENT_REF t has ARRAY_TYPE.
13954
7d4fba4a
SP
139552009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13956
13957 PR middle-end/39335
13958 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13959 when the type precision of the induction variable should be
13960 larger than the type precision of nit.
13961 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13962 * graphite.c (graphite_loop_normal_form): Same.
13963 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13964
78168632
UB
139652009-03-02 Uros Bizjak <ubizjak@gmail.com>
13966
13967 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13968 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13969 numbers to describe clobbered registers.
78168632 13970 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13971 * config/i386/mmx.md (mmx_emms): Ditto.
13972 (mmx_femms): Ditto.
78168632 13973
63553059
RS
139742009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13975
13976 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13977 of ABI_64.
13978
500a1f85
UW
139792009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13980
13981 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13982 (spu_section_type_flags): New function.
13983
962aae34
UB
139842009-03-02 Uros Bizjak <ubizjak@gmail.com>
13985
13986 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13987 reg_class_contents of FLOAT_REGS into a temporary.
13988
6dfb529c 139892009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13990 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13991
13992 PR tree-optimization/39318
13993 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13994 information to the vectorized statement.
13995
6b5629db
UB
139962009-03-01 Uros Bizjak <ubizjak@gmail.com>
13997
434426d2
UB
13998 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13999 variable. Use defined names instead of magic constants for REX SSE
14000 registers.
6b5629db 14001
14e5b285
RG
140022009-03-01 Richard Guenther <rguenther@suse.de>
14003
14004 PR tree-optimization/39331
14005 * omp-low.c (lower_send_shared_vars): Do not receive new
14006 values for the reference of DECL_BY_REFERENCE parms or results.
14007
526d73ab
JH
140082009-03-01 Jan Hubicka <jh@suse.cz>
14009
14010 PR debug/39267
14011 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14012 BLOCK_NONLOCALIZED_VAR): New macros.
14013 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
14014 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14015 gen_decl_die): Add origin argument. Allow generation of die with
14016 origin at hand only.
526d73ab 14017 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
14018 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14019 of gen_*.
526d73ab
JH
14020 (gen_block_die): Fix checking for unused blocks.
14021 (process_scope_var): Break out from .... ; work with origins only.
14022 (decls_for_scope) ... here; process nonlocalized list.
14023 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
14024 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14025 vars.
526d73ab
JH
14026 (dump_scope_block): Dump them.
14027 * tree-inline.c (remap_decls): Handle nonlocalized vars.
14028 (remap_block): Likewise.
14029 (can_be_nonlocal): New predicate.
14030 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14031
7a9d3fe8
RW
140322009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14033
14034 * configure: Regenerate.
14035
b3cdf3cb
RW
140362009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14037
a16d1645 14038 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 14039 Reuse help texts for duplicate options which do not have any.
a16d1645 14040
1156c176
RW
14041 * gcc.c (display_help): Document --version.
14042
033505fc
RW
14043 * gcc.c (main): If print_help_list and verbose_flag, ensure
14044 driver output comes before subprocess output.
14045
4d077054
RW
14046 * optc-gen.awk: Assign all remaining fields to help string,
14047 space-separated, for multi-line help in *.opt.
14048
a072f1cf
RW
14049 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14050 -Wno-pedantic-ms-format is for MinGW targets only.
14051
b3cdf3cb
RW
14052 * doc/options.texi (Option file format): Fix bad indentation,
14053 restoring dropped sentence.
14054
a3aadcc5
JH
140552009-02-28 Jan Hubicka <jh@suse.cz>
14056
14057 * tree-inline.c (tree_function_versioning): Output debug info.
14058
1cf5abb3
JH
140592009-02-28 Jan Hubicka <jh@suse.cz>
14060
14061 PR debug/39267
14062 * tree-inline.c (setup_one_parameter): Do not copy propagate
14063 arguments when not optimizing.
14064
c4d3f42f
L
140652009-02-28 H.J. Lu <hongjiu.lu@intel.com>
14066
14067 PR target/39327
14068 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14069 (avx_addsubv4df3): Likewise.
14070 (*avx_addsubv4sf3): Likewise.
14071 (sse3_addsubv4sf3): Likewise.
14072 (*avx_addsubv2df3): Likewise.
14073 (sse3_addsubv2df3): Likewise.
14074 (avx_unpckhps256): Correct item selectors.
14075 (avx_unpcklps256): Likewise.
14076 (avx_unpckhpd256): Likewise.
14077 (avx_unpcklpd256): Likewise.
14078
eb50f5f4
JH
140792009-02-28 Jan Hubicka <jh@suse.cz>
14080
14081 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14082 static vars.
14083 (copy_arguments_for_versioning): If var is declared don't declare it.
14084 (tree_function_versioning): First setup substitutions and then copy
14085 args.
14086
26140130
JH
140872009-02-27 Jan Hubicka <jh@suse.cz>
14088
14089 PR debug/39267
14090 * cgraph.h (varpool_output_debug_info): Remove.
14091 * cgraphunit.c (varpool_output_debug_info): Remove.
14092 * dwarf2out.c (deferred_locations_struct): New struct
14093 (deferred_locations): New type.
14094 (deferred_locations_list): New static var.
14095 (deffer_location): New function.
14096 (gen_variable_die): Use it.
14097 (decls_for_scope): Output info on local static vars.
14098 (dwarf2out_finish): Process deferred locations.
14099 * varpool.c (varpool_output_debug_info): Remove.
14100
cff7525f
JH
141012009-02-27 Jan Hubicka <jh@suse.cz>
14102
14103 PR debug/39267
14104 * tree.h (TREE_PROTECTED): Fix comment.
14105 (BLOCK_HANDLER_BLOCK): Remove.
14106 (struct tree_block): Remove handler_block add body_block.
14107 (inlined_function_outer_scope_p): New.
14108 (is_body_block): Remove.
14109 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14110 * dwarf2out.c (is_inlined_entry_point): Remove.
14111 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
14112 (gen_block_die): Use is_inlined_entry_point check. Remove body block
14113 code.
cff7525f
JH
14114 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14115 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
14116 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14117 block with multiple subblocks.
cff7525f
JH
14118 (dump_scope_block): Prettier output; dump more flags and info.
14119 (dump_scope_blocks): New.
14120 (remove_unused_locals): Use dump_scope_blocks.
14121 * tree-flow.h (dump_scope_blocks): Declare.
14122 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14123 * stmt.c (is_body_block): Remove.
14124 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14125 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14126
c20993b9
SP
141272009-02-27 Sebastian Pop <sebastian.pop@amd.com>
14128
14129 PR middle-end/39308
2ba9daa7 14130 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
14131 number_of_iterations_exit from a gcc_assert.
14132
e3cba5e5
AK
141332009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14134
60839f5d 14135 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
14136 jumps if COND is NULL.
14137 (find_cond_jump): New function.
14138 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 14139 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 14140
9dadeeb8
UB
141412009-02-26 Uros Bizjak <ubizjak@gmail.com>
14142
14143 * config/alpha/alpha.h (alpha_expand_mov): Return false if
14144 force_const_mem returns NULL_RTX.
14145
625d3251
EB
141462009-02-26 Jan Hubicka <jh@suse.cz>
14147
14148 PR debug/39267
14149 * cgraph.h (varpool_output_debug_info): Remove.
14150 * cgraphunit.c (varpool_output_debug_info): Remove.
14151 * dwarf2out.c (deferred_locations_struct): New struct
14152 (deferred_locations): New type.
14153 (deferred_locations_list): New static var.
14154 (deffer_location): New function.
14155 (gen_variable_die): Use it.
14156 (decls_for_scope): Output info on local static vars.
14157 (dwarf2out_finish): Process deferred locations.
14158 * varpool.c (varpool_output_debug_info): Remove.
14159
38432148 141602009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
14161
14162 PR rtl-optimization/39241
14163 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14164 to subreg_offset_representable_p.
14165
62d049cf
PB
141662009-02-25 Paolo Bonzini <bonzini@gnu.org>
14167
14168 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14169 execute function prototype. Get f and nregs from max_reg_num
14170 and get_insns. Remove the first backward pass as it's dead,
14171 guard the forward pass by flag_expensive_optimizations.
14172 (rest_of_handle_regmove): Delete.
14173 (pass_regmove): Replace it with regmove_optimize.
14174
f618d33e
MJ
141752009-02-25 Martin Jambor <mjambor@suse.cz>
14176
14177 PR tree-optimization/39259
14178 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 14179 calls_alloca function flags.
f618d33e
MJ
14180 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14181 calls are detected.
14182
c8a05f7c
PB
141832009-02-25 Paolo Bonzini <bonzini@gnu.org>
14184
14185 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
14186 flags_set_1_rtx, flags_set_1_set): Delete.
14187 (regmove_optimize): Do not call mark_flags_life_zones.
14188
6d2538f5
JB
141892009-02-24 Julian Brown <julian@codesourcery.com>
14190
14191 PR target/35965
14192 * config/arm/arm.c (require_pic_register): Only set
14193 cfun->machine->pic_reg once per function.
14194
a2fa6772
SL
141952009-02-24 Sandra Loosemore <sandra@codesourcery.com>
14196
14197 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 14198 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 14199
5472de36
SE
142002009-02-24 Steve Ellcey <sje@cup.hp.com>
14201
14202 PR target/33785
14203 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
14204
844216f3
RG
142052009-02-24 Richard Guenther <rguenther@suse.de>
14206
14207 PR debug/39285
14208 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14209
71adbef3 142102009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 14211 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
14212
14213 PR tree-optimization/39233
14214 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14215 from converting them to a generic type.
14216
f1a558e0
SP
142172009-02-23 Sebastian Pop <sebastian.pop@amd.com>
14218
14219 PR tree-optimization/39260
14220 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14221 contains a condition with a real type.
14222 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14223
d8028f2c
JM
142242009-02-23 Jason Merrill <jason@redhat.com>
14225
14226 PR c++/38880
14227 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14228 narrowing_initializer_constant_valid_p.
2ba9daa7 14229 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
14230 null_pointer_node for adding a pointer to itself.
14231
9283b513
JH
142322009-02-23 Jan Hubicka <jh@suse.cz>
14233
14234 PR c/12245
9dadeeb8
UB
14235 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14236 resizing.
9283b513 14237
61e04322
JH
142382009-02-23 Jan Hubicka <jh@suse.cz>
14239
9dadeeb8
UB
14240 PR tree-optimization/37709
14241 * tree.c (block_ultimate_origin): Move here from dwarf2out.
14242 * tree.h (block_ultimate_origin): Declare.
14243 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
14244 * tree-ssa-live.c (remove_unused_scope_block_p):
14245 Eliminate blocks containig no instructions nor live variables nor
14246 nested blocks.
14247 (dump_scope_block): New function.
14248 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 14249 enable dumping at TDF_DETAILS.
61e04322 14250
38432148 142512009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
14252
14253 * config/i386/i386.c (classify_argument): Don't allow COImode
14254 and OImode.
14255 (function_arg_advance_32): Don't allow OImode.
14256 (function_arg_32): Likewise.
14257 (function_value_32): Likewise.
14258 (return_in_memory_32): Likewise.
14259 (function_arg_64): Remove OImode comment.
14260
38432148 142612009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
14262
14263 PR target/39261
14264 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14265 ix86_expand_vector_set for V4DImode in 64bit mode only.
14266 (ix86_expand_vector_init_one_var): Likewise.
14267
dcd739a6
SP
142682009-02-21 Sebastian Pop <sebastian.pop@amd.com>
14269
14270 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14271
6c3b938d
RS
142722009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14273
8e361f23 14274 PR bootstrap/39257
6c3b938d
RS
14275 * loop-iv.c: Revert last change.
14276 * emit-rtl.c: Likewise.
14277
38432148 142782009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
14279
14280 PR target/39256
14281 * config/i386/i386.c (type_natural_mode): Remove an extra
14282 space in the warning message.
14283 (function_value_32): Handle 32-byte vector modes.
14284 (return_in_memory_32): Likewise.
14285
2ec62529
RS
142862009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14287
14288 * loop-iv.c (truncate_value): New function.
14289 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14290 of lowpart_subreg.
14291 (lowpart_subreg): Move to...
14292 * emit-rtl.c: ...here.
14293
ecb8c3cc 142942009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 14295
ecb8c3cc
DS
14296 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14297 accidental and undocumented change at revision 140860.
14298
ae46a823
JM
142992009-02-21 Joseph Myers <joseph@codesourcery.com>
14300
14301 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14302 take gimple_seq * arguments.
14303 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14304 types_compatible_p langhook.
14305
07d8efe3 143062009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 14307 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
14308
14309 * config/arm/arm.c (arm_builtin_va_list): New function.
14310 (arm_expand_builtin_va_start): Likewise.
14311 (arm_gimplify_va_arg_expr): Likewise.
14312 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14313 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14314 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14315 (va_list_type): New variable.
14316 (arm_mangle_type): Mangle va_list_type appropriately.
14317
b1fb9f56
JJ
143182009-02-20 Jakub Jelinek <jakub@redhat.com>
14319
14320 PR middle-end/39157
14321 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14322 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14323 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14324 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14325 parameter to 1000 for -O1 by default.
14326 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14327 parameter.
14328 * loop-invariant.c: Include params.h.
14329 (move_loop_invariants): Don't call move_single_loop_invariants on
14330 very large loops.
14331
5bc0807c
JM
143322009-02-20 Jaka Mocnik <jaka@xlab.si>
14333
14334 * calls.c (emit_library_call_value_1): Use slot_offset instead of
14335 offset when calculating bounds for indexing stack_usage_map. Fixes
14336 a buffer overflow with certain target setups.
14337
c69cd1f5
JJ
143382009-02-20 Jakub Jelinek <jakub@redhat.com>
14339
14340 PR target/39240
14341 * calls.c (expand_call): Clear try_tail_call if caller and callee
14342 disagree in promotion of function return value.
14343
09812622
JJ
143442009-02-19 Jakub Jelinek <jakub@redhat.com>
14345
14346 PR target/39175
14347 * c-common.c (c_determine_visibility): If visibility changed and
14348 DECL_RTL has been already set, call make_decl_rtl to update symbol
14349 flags.
14350
68017cb4
L
143512009-02-19 H.J. Lu <hongjiu.lu@intel.com>
14352
14353 PR c++/39188
14354 * varasm.c (assemble_variable): Don't check DECL_NAME when
14355 globalizing a variable.
14356
ab4194da
JM
143572009-02-19 Joseph Myers <joseph@codesourcery.com>
14358
14359 PR c/38483
14360 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14361 expression before any __builtin_trap call.
14362 * c-typeck.c (build_function_call): Convert and check function
14363 arguments before generating a call to a trap. Evaluate the
14364 function arguments before the trap.
14365
6b67572e
UB
143662009-02-19 Uros Bizjak <ubizjak@gmail.com>
14367
14368 PR target/39228
14369 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14370 (UNSPEC_FXAM_MEM): New unspec.
14371 (fxam<mode>2_i387_with_temp): New insn and split pattern.
14372 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
14373 memory using fxam<mode>2_i387_with_temp to remove excess precision.
14374
9e39dba6
RG
143752009-02-19 Richard Guenther <rguenther@suse.de>
14376
14377 PR tree-optimization/39207
14378 PR tree-optimization/39074
14379 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14380 storedanything_tree): New.
14381 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 14382 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
14383 (build_succ_graph): Add edges from STOREDANYTHING to all
14384 non-direct nodes.
14385 (init_base_vars): Initialize STOREDANYTHING.
14386 (compute_points_to_sets): Free substitution info after
14387 building the succ graph.
14388 (ipa_pta_execute): Likewise.
14389
14390 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14391 field.
14392 (do_ds_constraint): Do not add to special var or non-pointer
14393 field solutions.
14394 (type_could_have_pointers): Split out from ...
14395 (could_have_pointers): ... here. For arrays use the element type.
14396 (create_variable_info_for): Initialize may_have_pointers.
14397 (new_var_info): Likewise.
14398 (handle_lhs_call): Make the HEAP variable unknown-sized.
14399 (intra_create_variable_infos): Use a type with pointers for
14400 PARM_NOALIAS, make it unknown-sized.
14401
fd7b2603
L
144022009-02-18 H.J. Lu <hongjiu.lu@intel.com>
14403
14404 PR target/39224
6b67572e 14405 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 14406
98b80692
JM
144072009-02-18 Jason Merrill <jason@redhat.com>
14408
14409 PR target/39179
14410 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14411 value if DECL_EXTERNAL.
14412 * tree-sra.c (sra_walk_gimple_assign): Likewise.
14413 * target.h (gcc_target::binds_local_p): Clarify "module".
14414 * tree.h (TREE_PUBLIC): Clarify "module".
14415
0705d3f4
L
144162009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
14417
14418 PR target/38891
14419 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14420 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14421
bce08d50
L
144222009-02-17 H.J. Lu <hongjiu.lu@intel.com>
14423
14424 PR target/39082
14425 * c.opt (Wabi): Support C and ObjC.
14426 (Wpsabi): New.
14427
14428 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14429
14430 * config/i386/i386.c (classify_argument): Warn once about the ABI
14431 change when passing union with long double.
14432
14433 * doc/invoke.texi: Update -Wabi for warning psABI changes.
14434
5600f233
JM
144352009-02-18 Joseph Myers <joseph@codesourcery.com>
14436
14437 PR c/35447
14438 * c-parser.c (c_parser_compound_statement): Always enter and leave
14439 a scope.
14440
8cd01fe6
JDA
144412009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14442
14443 PR target/34587
14444 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14445
418df9d7
JJ
144462009-02-18 Jakub Jelinek <jakub@redhat.com>
14447
14448 PR tree-optimization/36922
14449 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14450 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14451 Likewise.
14452
082d2ebb
RS
144532009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14454
14455 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14456 to 0 for EABI64.
14457
17de576c
RS
144582009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14459
14460 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14461
6d8d5435
RS
144622009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
14463
14464 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14465 tree sharing.
14466
e69ff910
RB
144672009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
14468 Richard Sandiford <rdsandiford@googlemail.com>
14469
14470 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14471 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14472 (loongson_biadd): ...this.
14473
6b24ee26
RG
144742009-02-17 Richard Guenther <rguenther@suse.de>
14475
14476 PR tree-optimization/39202
14477 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14478 a var make sure to follow existing collapses.
14479
91ab2c86
RG
144802009-02-17 Richard Guenther <rguenther@suse.de>
14481
14482 PR middle-end/39214
14483 * langhooks.c (lhd_print_error_function): Check for NULL block.
14484
73a63870
RG
144852009-02-17 Richard Guenther <rguenther@suse.de>
14486
14487 PR tree-optimization/39204
14488 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14489 of the PHI arg.
14490
0e08f686
UB
144912009-02-17 Uros Bizjak <ubizjak@gmail.com>
14492
14493 * config/soft-fp/double.h: Update from glibc CVS.
14494
a60b7ddb
RG
144952009-02-17 Richard Guenther <rguenther@suse.de>
14496
14497 PR tree-optimization/39207
14498 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14499 strict-aliasing warnings for pointers pointing to NULL.
14500
a47e20fd
JM
145012009-02-16 Joseph Myers <joseph@codesourcery.com>
14502
14503 PR c/35446
14504 * c-parser.c (c_parser_braced_init): Call pop_init_level when
14505 skipping until next close brace.
14506
50aab7dc
L
145072009-02-16 H.J. Lu <hongjiu.lu@intel.com>
14508
14509 PR target/37049
14510 * config/i386/i386.c (ix86_expand_push): Set memory alignment
14511 to function argument boundary.
14512
68e53db0
HS
145132009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14514
14515 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14516 in the lea_add. Reload eventually constraints it properly.
0d50d55a 14517 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
14518 "b", since it is not needed anymore.
14519
09e361bb
JJ
145202009-02-16 Jakub Jelinek <jakub@redhat.com>
14521
14522 * gthr-dce.h: Uglify function parameter and local variable names.
14523 * gthr-gnat.h: Likewise.
14524 * gthr-mipssde.h: Likewise.
14525 * gthr-nks.h: Likewise.
14526 * gthr-posix95.h: Likewise.
14527 * gthr-posix.h: Likewise.
14528 * gthr-rtems.h: Likewise.
14529 * gthr-single.h: Likewise.
14530 * gthr-solaris.h: Likewise.
14531 * gthr-tpf.h: Likewise.
14532 * gthr-vxworks.h: Likewise.
14533 * gthr-win32.h: Likewise.
14534
47f5a48f
L
145352009-02-15 H.J. Lu <hongjiu.lu@intel.com>
14536
14537 PR target/39196
14538 * config/i386/i386.md: Restrict the new peephole2 to move
14539 between MMX/SSE registers.
14540
68c9ab45
RG
145412009-02-15 Richard Guenther <rguenther@suse.de>
14542
14543 Revert
14544 2009-02-13 Richard Guenther <rguenther@suse.de>
14545
14546 * configure.ac: Enable LFS.
14547 * configure: Re-generate.
14548 * config.in: Likewise.
14549
d7815554
UW
145502009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14551
14552 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14553 spu_srqwbyte, spu_srqwbytebc): Define.
14554 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14555 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14556 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14557 "shrqby_<mode>"): New insn-and-split patterns.
14558 * config/spu/spu.c (expand_builtin_args): Determine and return
14559 number of operands using spu_builtin_description data.
14560 (spu_expand_builtin_1): Use it.
14561
c208436c
SE
145622009-02-13 Steve Ellcey <sje@cup.hp.com>
14563
14564 PR target/38056
14565 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14566 TARGET_CONST_GP.
14567
c2e7ba7e
L
145682009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14569
14570 PR target/39149
14571 * config/i386/i386.c (override_options): Correct warning
6c6094f1 14572 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 14573
72f4e3a7
L
145742009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14575
14576 PR target/39152
14577 * config/i386/i386.md: Restrict the new peephole2 to move
14578 between the general purpose registers.
14579
53f648e2
L
145802009-02-13 H.J. Lu <hongjiu.lu@intel.com>
14581
14582 PR target/39162
14583 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 14584 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
14585 (function_arg_advance): Updated.
14586 (function_arg): Likewise.
14587 (ix86_function_value): Likewise.
14588 (ix86_return_in_memory): Likewise.
14589 (ix86_sol10_return_in_memory): Likewise.
14590 (ix86_gimplify_va_arg): Likewise.
14591 (function_arg_32): Don't warn ABX ABI change here.
14592 (function_arg_64): Likewise.
14593
38432148 145942009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
14595
14596 * loop-iv.c (implies_p): In the final case, test that operands 0
14597 of the two comparisons match.
14598
dd2139e7
BS
14599 * config/bfin/bfin.c (find_prev_insn_start): New function.
14600 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14601 (find_next_insn_start): Move.
14602
601b3e1a
RG
146032009-02-13 Richard Guenther <rguenther@suse.de>
14604
14605 * configure.ac: Enable LFS.
14606 * configure: Re-generate.
14607 * config.in: Likewise.
14608
f007042e
JM
146092009-02-13 Joseph Myers <joseph@codesourcery.com>
14610
14611 PR c/35444
14612 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14613 sizes on syntax error after some arguments have been parsed.
14614
3f238e8b
JJ
146152009-02-12 Jakub Jelinek <jakub@redhat.com>
14616
14617 * doc/invoke.texi (-fira): Remove.
14618
328e13b7
L
146192009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14620
14621 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14622 * recog.c: Likewise.
14623 * rtl.h: Likewise.
14624
c252db20
L
146252009-02-12 Uros Bizjak <ubizjak@gmail.com>
14626
14627 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14628 (umul_ppmm): Likewise.
14629 (count_leading_zeros): Likewise.
14630 (count_trailing_zeros): Likewise.
14631 (UMUL_TIME): Likewise.
14632
146332009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14634
ba181049
UB
14635 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14636 soft-fp/t-softfp to tmake_file.
c252db20
L
14637
14638 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14639 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14640 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14641 IA64_BUILTIN_INFQ]: New.
c252db20
L
14642 (ia64_init_builtins): Initialize __builtin_infq,
14643 __builtin_fabsq and __builtin_copysignq if not HPUX.
14644 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14645 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14646
14647 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14648 SHARED is defined.
14649 (__fixtfti): Likewise.
14650 (__fixunstfti): Likewise.
14651 (__floattitf): Likewise.
14652
14653 * config/ia64/libgcc-glibc.ver: New.
14654 * config/ia64/t-fprules-softfp: Likewise.
14655 * config/ia64/sfp-machine.h: Likewise.
14656
14657 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14658 (LIBGCC2_TF_CEXT): Likewise.
14659 (TF_SIZE): Likewise.
14660 (TARGET_INIT_LIBFUNCS): Likewise.
14661
ba181049 14662 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14663 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14664
f13eae6a
L
146652009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14666
14667 * config/i386/i386.c (construct_container): Rewrite processing
14668 BLKmode with X86_64_SSE_CLASS.
14669
12019aec
L
146702009-02-12 Paolo Bonzini <bonzini@gnu.org>
14671
14672 PR target/39152
14673 * config/i386/i386.md: Replace simplify_replace_rtx with
14674 replace_rtx in the new peephole2.
14675
28c11eb3
NS
146762009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14677
14678 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14679 loop unrolling do not happen at -O2.
14680
c7b94907
MM
146812009-02-12 Michael Matz <matz@suse.de>
14682
14683 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14684
61e98967
JJ
146852009-02-12 Jakub Jelinek <jakub@redhat.com>
14686
14687 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14688 for -g3.
14689
a2a237b5
BE
146902009-02-12 Ben Elliston <bje@au.ibm.com>
14691
14692 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14693 patterns when updating the back chain. Missed in the 2009-02-10
14694 change.
14695
853eda8d
JJ
146962009-02-11 Janis Johnson <janis187@us.ibm.com>
14697
14698 * doc/extend.texi (Decimal Floating Types): Update identifier of
14699 draft TR and list of missing support.
14700
3ad6b266
JJ
147012009-02-11 Jakub Jelinek <jakub@redhat.com>
14702
14703 PR middle-end/39154
14704 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14705 bit to variable length decl's flags, add it also to its
14706 pointer replacement variable.
14707
b058b753
UB
147082009-02-11 Uros Bizjak <ubizjak@gmail.com>
14709 Jakub Jelinek <jakub@redhat.com>
14710
14711 PR target/39118
14712 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14713 (memory_blockage): New expander.
14714 (*memory_blockage): New insn pattern.
14715 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14716 instead of general blockage at the end of function prologue when
14717 frame pointer is used to access red zone area. Do not emit blockage
14718 when profiling, it is emitted in generic code.
14719 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14720 function epilogue when frame pointer is used to access red zone area.
14721
bab64f23
PB
147222009-02-11 Paolo Bonzini <bonzini@gnu.org>
14723
0ce6dcfa 14724 PR target/38824
bab64f23
PB
14725 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14726 by arithmetic with memory operands.
14727 * config/i386/predicates.md (commutative_operator): New.
14728
8fd94bda
JJ
147292009-02-10 Janis Johnson <janis187@us.ibm.com>
14730
14731 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14732 bulleted lists.
14733
794511d2
EB
147342009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14735
14736 * alias.h (record_alias_subset): Declare.
14737 * alias.c (record_alias_subset): Make global.
14738
6da7fc87
NC
147392009-02-10 Nick Clifton <nickc@redhat.com>
14740
14741 * tree-parloops.c: Change license to GPLv3.
14742 * ipa-struct-reorg.c: Change license to GPLv3.
14743 * ipa-struct-reorg.h: Change license to GPLv3.
14744
a03813c8
SE
147452009-02-10 Steve Ellcey <sje@cup.hp.com>
14746
14747 PR c/39084
14748 * c-decl.c (start_struct): Return NULL on error.
14749
fc3103e7
JJ
147502009-02-10 Jakub Jelinek <jakub@redhat.com>
14751
9b43d37b
JJ
14752 PR middle-end/39124
14753 * cfgloopmanip.c (remove_path): Call remove_bbs after
14754 cancel_loop_tree, not before it.
14755
fc3103e7 14756 PR target/39139
b058b753 14757 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14758 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14759 VAR_DECLs were seen.
14760 * tree-ssa-live.c (remove_unused_locals): Recompute
14761 cfun->has_local_explicit_reg_vars.
14762 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14763 copies or clearings if cfun->has_local_explicit_reg_vars.
14764
dbf9ee15
UB
147652009-02-10 Uros Bizjak <ubizjak@gmail.com>
14766
14767 PR target/39118
14768 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14769 of function prologue when frame pointer is used to access
14770 red zone area.
14771
bdec4dc7
RG
147722009-02-10 Richard Guenther <rguenther@suse.de>
14773
14774 PR middle-end/39127
14775 * gimplify.c (gimple_regimplify_operands): Always look if
14776 we need to create a temporary.
14777
7cae94fc
RG
147782009-02-10 Richard Guenther <rguenther@suse.de>
14779
14780 PR tree-optimization/39132
14781 * tree-loop-distribution.c (todo): New global var.
14782 (generate_memset_zero): Trigger TODO_rebuild_alias.
14783 (tree_loop_distribution): Return todo.
14784
a8800687
L
147852009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14786
14787 PR target/39119
14788 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14789 (x86_64_reg_class_name): Removed.
14790 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14791 first one isn't X86_64_SSE_CLASS or any other ones aren't
14792 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14793 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14794 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14795 and 3 X86_64_SSEUP_CLASS.
14796 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14797 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14798
d4bacef0
BE
147992009-02-10 Ben Elliston <bje@au.ibm.com>
14800
14801 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14802 form instruction to update the stack back chain word, even if the
14803 user has disabled the generation of update instructions.
14804 (movdi_<mode>_update_stack): New.
14805 (movsi_update_stack): Likewise.
14806 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14807 always use an update form instruction to update the stack back
14808 chain word.
14809
01d7d2f3
SP
148102009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14811
14812 PR middle-end/38953
b058b753
UB
14813 * graphite.c (if_region_set_false_region): After moving a region in
14814 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14815 (gloog): Remove wrong fix for PR38953.
14816
e41e2ab4
UW
148172009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14818
14819 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14820 generation due to implicit sign extension.
14821
4bb07c5d
EB
148222009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14823
14824 PR middle-end/38981
14825 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14826 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14827
f060a261
RG
148282009-02-09 Richard Guenther <rguenther@suse.de>
14829
14830 PR middle-end/35202
14831 * convert.c (convert_to_real): Disable (float)fn((double)x)
14832 to fnf(x) conversion if errno differences may occur and
14833 -fmath-errno is set.
14834
5a7e237c
AS
148352009-02-07 Anatoly Sokolov <aesok@post.ru>
14836
14837 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14838 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14839 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14840
feab5a67
JM
148412009-02-06 Joseph Myers <joseph@codesourcery.com>
14842
14843 PR c/35434
14844 * c-common.c (handle_alias_attribute): Disallow attribute for
14845 anything not a FUNCTION_DECL or VAR_DECL.
14846
90ef2296
JJ
148472009-02-06 Janis Johnson <janis187@us.ibm.com>
14848
14849 PR c/39035
14850 * real.c (do_compare): Special-case compare of zero against
14851 decimal float value.
14852
1de2c900
JM
148532009-02-06 Joseph Myers <joseph@codesourcery.com>
14854
14855 PR c/36432
14856 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14857 as indicating flexible array members unless the field itself is
14858 being declarared as the incomplete array.
14859
e901811a
JH
148602009-02-06 Jan Hubicka <jh@suse.cz>
14861
14862 PR tree-optimization/38844
14863 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14864 is already inlined.
14865
3cfa762b
RG
148662009-02-06 Richard Guenther <rguenther@suse.de>
14867
14868 PR middle-end/38977
14869 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14870 fork because we may expand it as __gcov_fork.
14871
8506528c
NC
148722009-02-06 Nick Clifton <nickc@redhat.com>
14873
dbf9ee15 14874 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14875
85169114
PB
148762009-02-06 Paolo Bonzini <bonzini@gnu.org>
14877
14878 PR tree-optimization/35659
14879 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14880 vn_phi_eq): Shortcut if hashcode does not match.
14881 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14882 NULL operands.
14883 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14884 and avoid iterative_hash_expr.
14885 (FOR_EACH_VALUE_ID_IN_SET): New.
14886 (value_id_compare): Remove.
14887 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14888 sort expressions by value id.
14889
6d39673d
KK
148902009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14891
14892 PR target/38991
14893 * config/sh/predicates.md (general_movsrc_operand): Don't check
14894 the subreg of system registers here.
14895
e6e1c050
JJ
148962009-02-05 Jakub Jelinek <jakub@redhat.com>
14897
14898 PR c++/39106
14899 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14900 on the copied decl.
14901
65a74b5d
PB
149022009-02-05 Paolo Bonzini <bonzini@gnu.org>
14903
14904 PR rtl-optimization/39110
14905 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14906 addresses, not aligned ones.
14907
08e14b2a
DB
149082009-02-05 Daniel Berlin <dberlin@dberlin.org>
14909 Richard Guenther <rguenther@suse.de>
14910
14911 PR tree-optimization/39100
14912 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14913 comment says and add edges.
14914
5006381c
JM
149152009-02-05 Joseph Myers <joseph@codesourcery.com>
14916
14917 PR c/35435
14918 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14919 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14920
2ba9daa7 149212009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14922
14923 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14924 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14925 register_bb_in_sese, new_sese, free_sese): Moved.
14926 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14927 outermost_loop_in_scop, build_scop_iteration_domain,
14928 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14929 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14930 Use loop_in_sese_p instead of loop_in_scop_p.
14931 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14932 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14933 (scopdet_basic_block_info): Fix bug in scop detection.
14934 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14935 eq_loop_to_cloog_loop): Remove.
14936 (nb_loops_around_loop_in_scop, nb_loop
14937 ref_nb_loops): Moved here...
14938 * graphite.h (ref_nb_loops): ... from here.
14939 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14940 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14941 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14942 * testsuite/gcc.dg/graphite/scop-19.c: New
14943
48e8382e
PB
149442009-02-04 Paolo Bonzini <bonzini@gnu.org>
14945 Hans-Peter Nilsson <hp@axis.com>
14946
14947 PR rtl-optimization/37889
14948 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14949 Move offset handling from PLUS to before the switch. Use new
14950 arguments when considering SYMBOL_REFs too.
14951 (rtx_addr_can_trap_p): Pass dummy offset and size.
14952 (enum may_trap_p_flags): Remove.
14953 (may_trap_p_1): Pass size from MEM_SIZE.
14954
14955 PR rtl-optimization/38921
14956 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14957 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14958 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14959 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14960
69349ea5
L
149612009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14962
14963 AVX Programming Reference (January, 2009)
14964 * config/i386/sse.md (*vpclmulqdq): New.
14965
b545e411
JJ
149662009-02-04 Jakub Jelinek <jakub@redhat.com>
14967
14968 PR tree-optimization/38977
14969 PR gcov-profile/38292
bf9b2cc9 14970 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14971
5b43bf05
HS
149722009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14973
14974 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14975 non-indexable addresses even before reload.
14976
062c4bb3
JM
149772009-02-03 Joseph Myers <joseph@codesourcery.com>
14978
14979 PR c/29129
14980 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14981 as having variable size. Do not give an error for unnamed
14982 parameters with [*] declarators. Give a warning for type names
14983 with [*] declarators and mark them as variable size.
14984 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14985 for sizeof applied to [*] type names.
14986
6175f578
AP
149872009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14988
14989 PR C++/36607
14990 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14991
d4f4bc84
JJ
149922009-02-03 Jakub Jelinek <jakub@redhat.com>
14993
14994 * gcc.c (process_command): Update copyright notice dates.
14995 * gcov.c (print_version): Likewise.
14996 * gcov-dump.c (print_version): Likewise.
14997 * mips-tfile.c (main): Likewise.
14998 * mips-tdump.c (main): Likewise.
14999
f6294de7
JM
150002009-02-03 Joseph Myers <joseph@codesourcery.com>
15001
15002 PR c/35433
15003 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15004 for composite type involving a zero-length array type.
15005
754ccf7c
JJ
150062009-02-03 Jakub Jelinek <jakub@redhat.com>
15007
70f16287
JJ
15008 PR target/35318
15009 * function.c (match_asm_constraints_1): Skip over
15010 initial optional % in the constraint.
15011
754ccf7c
JJ
15012 PR inline-asm/39059
15013 * c-parser.c (c_parser_postfix_expression): If fixed point is not
15014 supported, don't accept FIXED_CSTs.
15015 * c-decl.c (finish_declspecs): Error if fixed point is not supported
15016 and _Sat is used without _Fract/_Accum. Set specs->type to
15017 integer_type_node for cts_fract/cts_accum if fixed point is not
15018 supported.
15019
965fdadf
CM
150202009-02-02 Catherine Moore <clm@codesourcery.com>
15021
dbf9ee15 15022 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 15023
2e8a796f
RS
150242009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15025
15026 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15027 (ABI_HAS_64BIT_SYMBOLS): Use it.
15028 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15029
e0079468
PB
150302009-02-02 Paul Brook <paul@codesourcery.com>
15031
15032 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15033
eca72963
JJ
150342009-02-02 Jakub Jelinek <jakub@redhat.com>
15035
15036 PR inline-asm/39058
15037 * recog.h (asm_operand_ok): Add constraints argument.
15038 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
15039 recurse on matching constraint.
15040 (check_asm_operands): Pass constraints as 3rd argument to
15041 asm_operand_ok. Don't look up matching constraint here.
15042 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15043 to asm_operand_ok.
15044
b5bde9ff
BE
150452009-02-02 Ben Elliston <bje@au.ibm.com>
15046
15047 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15048 TARGET_NARROW_VOLATILE_BITFIELD macro names.
15049
30f3e427
JDA
150502009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15051
be7659ba
JDA
15052 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15053 information. Remove some obsolete information. Reorganize.
15054
30f3e427
JDA
15055 * config/pa/fptr.c: Revert license to GPL 2.
15056 * config/pa/milli64.S: Likewise.
15057
3cbfaf98
DK
150582009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15059
15060 PR target/38904
15061 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
15062 LIBRARY name in, instead of hard-coding it.
15063 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
15064 extra target make frag to tmake_files according to EH model.
15065 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
15066 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
15067 frags that define makefile variable EH_MODEL appropriately.
15068 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
15069 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
15070 to "-sjlj" according to type of EH configured.
15071 (LIBGCC_SONAME): Concatenate it to shared library base name.
15072 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
15073 to "_sjlj" according to type of EH configured.
15074 (LIBGCC_SONAME): Concatenate it to shared library base name.
15075 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
15076 (SHLIB_LINK): Add missing semicolon to if-else construct.
15077 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15078 string value of "pe_dll" command-line option.
15079 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
15080 (SHLIB_SONAME): Use it when overriding t-cygming default.
15081 (SHLIB_IMPLIB): Override t-cygming default.
15082 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15083 string value of "pe_dll" command-line option.
15084
8d0b6068
DK
150852009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15086
15087 PR target/38952
15088 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 15089 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 15090
14c28276
RG
150912009-01-31 Richard Guenther <rguenther@suse.de>
15092
15093 PR tree-optimization/38937
15094 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15095 computing the transitive closure.
15096
5f4d82c2
RG
150972009-01-30 Richard Guenther <rguenther@suse.de>
15098
15099 PR tree-optimization/39041
15100 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15101 Propagate variable indices only if the types match for this stmt.
15102
d0728ae0
JJ
151032009-01-30 Jakub Jelinek <jakub@redhat.com>
15104
15105 PR target/39013
15106 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15107 inline but never defined.
15108
6b67572e 151092009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
15110
15111 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15112 (*insv_h_di_reg_extimm): New insn.
15113 (*insv_l<mode>_reg_extimm): New insn.
15114
151152009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
15116
15117 * config/picochip/picochip.c (flag_conserve_stack): set
15118 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15119 fconserve-stack. Reduce call-overhead used by inliner.
15120
9fec758d 151212009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
15122
15123 PR/38157
15124 * common.opt (flag_conserve_stack): Initialised to zero.
15125
7f1c539c
KT
151262009-01-30 Kai Tietz <kai.tietz@onevision.com>
15127
15128 PR/39002
15129 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15130 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15131 method.
15132
3631be48
L
151332009-01-29 H.J. Lu <hongjiu.lu@intel.com>
15134
15135 * ira-color.c (allocno_reload_assign): Update comments.
15136 * regmove.c (regmove_optimize): Likewise.
15137
15138 * ra.h: Removed.
15139
416ac4d4
RM
151402009-01-29 Robert Millan <rmh@aybabtu.com>
15141
60839f5d
EB
15142 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15143 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 15144 `MD_UNWIND_SUPPORT'.
60839f5d 15145 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 15146
d5e54bc1
KH
151472009-01-29 Kazu Hirata <kazu@codesourcery.com>
15148
15149 PR tree-optimization/39007
15150 * tree-loop-distribution.c (generate_builtin): Use
15151 recompute_dominator to compute the immediate dominator of the
15152 basic block just after the loop.
15153
38432148 151542009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
15155
15156 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15157 (ASM_OUTPUT_DWARF_PCREL): Define.
15158
38432148 151592009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
15160
15161 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15162 * doc/passes.texi: Remove entries about regclass, local-alloc, and
15163 global. Modify entries about regmove and IRA.
15164
15165 * ra-conflict.c: Remove the file.
15166
15167 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15168
15169 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15170 (pass_regclass_init): Rename to pass_reginfo_init.
15171
15172 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15173
15174 * toplev.h (flag_ira): Remove.
15175
15176 * caller-save.c (setup_save_areas): Remove flag_ira.
15177
bf9b2cc9 15178 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
15179
15180 * global.c: Remove the file.
15181
ba20e309 15182 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
15183
15184 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
15185
15186 * regmove.c: Modify file description.
15187 (find_use_as_address, try_auto_increment): Define them only if
15188 AUTO_INC_DEC is defined.
15189 (replacement_quality, replace_in_call_usage, fixup_match_1,
15190 stable_and_no_regs_but_for_p): Remove.
15191 (reg_set_in_bb): Make it static.
15192 (regmove_optimize): Remove flag_ira and code which worked for
15193 !flag_ira.
15194
15195 * local-alloc.c: Remove the file.
15196
15197 * common.opt (fira): Remove.
15198
15199 * ira.c: Include except.h.
15200 (eliminable_regset): Move from global.c.
15201 (mark_elimination): Ditto. Remove flag_ira.
15202 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
15203 equiv_mem_modified, validate_equiv_mem_from_store,
15204 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15205 contains_replace_regs, memref_referenced_p, memref_used_between_p,
15206 no_equiv, recorded_label_ref): Move from local-alloc.c.
15207 (update_equiv_regs): Ditto. Make it static.
15208 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 15209 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
15210 (build_insn_chain): Ditto. Make it static.
15211 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
15212 Rename to init_live_subregs.
15213 (gate_ira): Remove flag_ira.
15214
15215 * regclass.c: Rename reginfo.c. Change file description.
15216 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 15217 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
15218 (init_reg_sets_1): Remove code for evaluation of
15219 reg_class_superclasses and losing_caller_save_reg_set.
15220 (init_regs): Remove init_reg_autoinc.
15221 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15222 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 15223 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
15224 (pass_regclass_init): Rename to pass_reginfo_init. Modify
15225 corresponding entries.
15226 (dump_regclass, record_operand_costs, scan_one_insn,
15227 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15228 record_address_regs, auto_inc_dec_reg_p): Remove.
15229 (gt-regclass.h): Rename to gt-reginfo.h.
15230
15231 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 15232 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
15233
15234 * Makefile.in (RA_H): Remove.
15235 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15236 Rename regclass.o to reginfo.o.
15237 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
15238 gt-reginfo.h.
15239 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15240 (GTFILES): Rename regclass.c to reginfo.c.
15241
15242 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 15243 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
15244
15245 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15246 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15247 Remove flag_ira.
6b67572e 15248 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 15249
c95b2534 152502009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
15251
15252 PR middle-end/35854
15253 * doc/invoke.texi (rtl debug options): Complete rewrite.
15254 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15255 to auto_inc_dec".
15256 * mode-switching.c (pass_mode_switching): Rename pass from
15257 "mode-sw" to "mode_sw".
15258 * except.c (pass_convert_to_eh_ranges): Rename pass from
15259 "eh-ranges" to "eh_ranges".
15260 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15261 to "subreg1".
2ba9daa7
AS
15262
15263
72a54528
AM
152642009-01-29 Andrey Belevantsev <abel@ispras.ru>
15265 Alexander Monakov <amonakov@ispras.ru>
15266
15267 PR middle-end/38857
15268 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15269 register.
15270 (move_exprs_to_boundary): Change return type and pass through
15271 should_move from move_op. Relax assert. Update usage ...
15272 (schedule_expr_on_boundary): ... here. Use should_move instead of
15273 cant_move.
15274 (move_op_orig_expr_found): Indicate that insn was disconnected from
15275 stream.
15276 (code_motion_process_successors): Do not call after_merge_succs
15277 callback if original expression was not found when traversing any of
15278 the branches.
15279 (code_motion_path_driver): Change return type. Update prototype.
15280 (move_op): Update comment. Add a new parameter (should_move). Update
15281 prototype. Set *should_move based on indication provided by
15282 move_op_orig_expr_found.
15283
001b9eb6
PH
152842009-01-28 Pat Haugen <pthaugen@us.ibm.com>
15285
15286 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15287 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15288 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15289 * config/rs6000/rs6000.c (rs6000_override_options): Default
15290 avoid-indexed-addresses on for Power6, off for everything else.
15291 (avoiding_indexed_address_p): New function.
15292 (rs6000_legitimize_address): Use it.
15293 (rs6000_legitimate_address): Likewise.
15294 * config/rs6000/rs6000.md (movXX_updateX): Likewise
15295
59dc4898
KH
152962009-01-28 Kazu Hirata <kazu@codesourcery.com>
15297
15298 PR tree-optimization/38997
15299 * tree-loop-distribution.c (generate_memset_zero): Use
15300 POINTER_PLUS_EXPR for a pointer addition.
15301
07da44ab
AK
153022009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
15303
15304 * config/s390/s390.md (bswap<mode>2): New pattern added.
15305
cdc15d23
WG
153062009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15307
15308 * config/s390/s390.md (*tls_load_31): Added type attribute.
15309
d46f24b6
WG
153102009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15311
15312 * config/s390/s390.md: Fix a few comments.
15313
729e750f
WG
153142009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15315
15316 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15317 (*tm<mode>_full): Fixed z10prop attribute.
15318 (*tst<mode>_extimm): Fixed z10prop attribute.
15319 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15320 (*tstqiCCT_cconly): Fixed z10prop attribute.
15321 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15322 (*movsi_larl): Fixed z10prop attribute.
15323 (*movsi_zarch): Fixed z10prop attribute.
15324 (*movsi_eas): Fixed z10prop attribute.
15325 (*movhi): Fixed z10prop attribute.
15326 (*movqi): Fixed z10prop attribute.
15327 (*movstrictqi): Fixed z10prop attribute.
15328 (*mov<mode>): Fixed z10prop attribute.
15329 (*movcc): Fixed z10prop attribute.
15330 (*sethighpartdi_64): Fixed z10prop attribute.
15331 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15332 (*negdi2_sign_cc): Fixed z10prop attribute.
15333 (*negdi2_sign): Fixed z10prop attribute.
15334 (*absdi2_sign_cc): Fixed z10prop attribute.
15335 (*absdi2_sign): Fixed z10prop attribute.
15336 (*negabsdi2_sign_cc): Fixed z10prop attribute.
15337 (*negabsdi2_sign): Fixed z10prop attribute.
15338 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15339 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15340 (doloop_si64): Fixed z10prop attribute.
15341 (doloop_si31): Fixed z10prop attribute.
15342 (doloop_long): Fixed z10prop attribute.
15343 (indirect_jump): Fixed z10prop attribute.
15344 (nop): Fixed z10prop attribute.
15345 (main_base_64): Fixed z10prop attribute.
15346 (reload_base_64): Fixed z10prop attribute.
15347
c7789bfb
JJ
153482009-01-28 Jakub Jelinek <jakub@redhat.com>
15349
15350 PR rtl-optimization/38740
6b67572e
UB
15351 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15352 if !optimize.
c7789bfb
JJ
15353 * config/mips/mips.c (mips_reorg): Likewise.
15354
de081cfd
RG
153552009-01-28 Richard Guenther <rguenther@suse.de>
15356
15357 PR tree-optimization/38926
15358 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15359 with the correct value id to a value.
15360 (do_regular_insertion): Use the value number of edoubleprime
15361 for the value number of the expr.
15362
15363 Revert
15364 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 15365
d748c406
UB
15366 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15367 a PHI ask VN if it is already available.
15368 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15369 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 15370
a9d386a1
JJ
153712009-01-28 Jakub Jelinek <jakub@redhat.com>
15372
15373 PR middle-end/38934
15374 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15375 set to varying whenever max has TREE_OVERFLOW set, similarly
15376 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15377
97a170cd
RG
153782009-01-28 Richard Guenther <rguenther@suse.de>
15379
15380 PR middle-end/38908
15381 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15382 uninitialized aggregate uses in call arguments.
15383
89ebafc6
PB
153842009-01-28 Paolo Bonzini <bonzini@gnu.org>
15385
15386 PR tree-optimization/38984
15387 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15388 the nothing_id variable if -fno-delete-null-pointer-checks.
15389
bef3c57b
UB
153902009-01-28 Uros Bizjak <ubizjak@gmail.com>
15391
15392 PR target/38988
15393 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15394 (set_got_offset_rex64): Ditto.
15395
0c6390fa
L
153962009-01-27 H.J. Lu <hongjiu.lu@intel.com>
15397
15398 PR target/38941
15399 * doc/extend.texi: Improve local variable with asm reg.
15400
bee6fa6d
AN
154012009-01-27 Adam Nemet <anemet@caviumnetworks.com>
15402
15403 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15404 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15405 was not supplied then set warn_packed_bitfield_compat to the
15406 default value of 1.
15407 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15408 against 1.
15409
b5c3dfbb
RG
154102009-01-27 Richard Guenther <rguenther@suse.de>
15411
15412 PR tree-optimization/38503
15413 * cfgexpand.c (expand_gimple_basic_block): Ignore
15414 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15415 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15416 variables that cannot have TBAA applied.
15417 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15418 statements.
15419
d748c406 154202009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
15421
15422 PR middle-end/38969
15423 * calls.c (initialize_argument_information): Do not wrap complex
15424 arguments in SAVE_EXPR.
15425
9112bb38
AT
154262009-01-26 Andreas Tobler <a.tobler@schweiz.org>
15427
15428 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 15429 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 15430
4757704f
RG
154312009-01-26 Richard Guenther <rguenther@suse.de>
15432
15433 PR tree-optimization/38745
15434 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15435 from special handling.
15436
e3e6cff4
RG
154372009-01-26 Richard Guenther <rguenther@suse.de>
15438
15439 PR tree-optimization/38745
15440 * tree-ssa.c (execute_update_addresses_taken): Do not include
15441 variables that cannot possibly be a register in not_reg_needs.
15442 Do not clear TREE_ADDRESSABLE on vars that may not become
15443 registers.
15444 * tree-ssa.c (update_alias_info_1): Include those in the set
15445 of addressable vars.
15446
dc874b53
RG
154472009-01-26 Richard Guenther <rguenther@suse.de>
15448
15449 PR middle-end/38851
15450 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15451 * tree-ssa-dse.c: Include langhooks.h
15452 (execute_simple_dse): Remove stores with zero size.
15453
849421a3
JJ
154542009-01-24 Jakub Jelinek <jakub@redhat.com>
15455
15456 PR c/38957
15457 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15458 as PLUS_EXPR.
15459
82f70421
JB
154602009-01-24 Julian Brown <julian@codesourcery.com>
15461
15462 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15463 config/arm/linux-atomic.c.
15464 * config/arm/linux-atomic.c: New.
15465
863412d6
EB
154662009-01-24 Eric Botcazou <ebotcazou@adacore.com>
15467
15468 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15469 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15470 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15471
8c684300
L
154722009-01-24 H.J. Lu <hongjiu.lu@intel.com>
15473
15474 PR c/38938
93f1527a 15475 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
15476 properly.
15477
b840fb02
SP
154782009-01-24 Sebastian Pop <sebastian.pop@amd.com>
15479
15480 PR tree-optimization/38953
15481 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15482 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15483 (gloog): Split the exit of the scop when the scop exit is a loop exit.
15484 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15485 changed the CFG.
15486
ecee559f
PB
154872009-01-24 Paul Brook <paul@codesourcery.com>
15488
15489 * config/arm/neon.md (neon_type): Move to arm.md.
15490 (neon_mov<VSTRUCT>): Add neon_type attribute.
15491 * config/arm/arm.md (neon_type): Move to here.
15492 (conds): Add "unconditioal" and use as default for NEON insns.
15493
61ad0914
BE
154942009-01-24 Ben Elliston <bje@au.ibm.com>
15495
15496 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15497 void *' warning from -Wc++-compat.
15498 * Makefile.in (dominance.o-warn): Remove.
15499
38432148 155002009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
15501
15502 PR tree-optimization/38932
15503 * fold-const.c (fold_unary_ignore_overflow): New.
15504 * tree.h (fold_unary_ignore_overflow): Declare.
15505 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15506 * tree-ssa-sccvn.c (visit_reference_op_load,
15507 simplify_unary_expression): Likewise.
15508
2cd36c22
AN
155092009-01-22 Adam Nemet <anemet@caviumnetworks.com>
15510
15511 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15512 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
15513 regardless of their type.
15514 * c-common.c (handle_packed_attribute): Don't ignore packed on
15515 bitfields.
15516 * c.opt (Wpacked-bitfield-compat): New warning option.
15517 * stor-layout.c (place_field): Warn if offset of a field changed.
15518 * doc/extend.texi (packed): Mention the ABI change.
15519 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15520 (Warning Options): Add it to the list.
15521
e4e624ab
L
155222009-01-22 H.J. Lu <hongjiu.lu@intel.com>
15523
15524 * c-opts.c (c_common_post_options): Fix a typo in comments.
15525
d0ea0759
SE
155262009-01-22 Steve Ellcey <sje@cup.hp.com>
15527
15528 PR middle-end/38615
15529 * gimplify.c (gimplify_init_constructor): Fix promotion of const
15530 variables to static.
15531 * doc/invoke.texi (-fmerge-all-constants): Update description.
15532
87673f84
UB
155332009-01-22 Uros Bizjak <ubizjak@gmail.com>
15534
15535 PR target/38931
15536 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15537 (*movdi_1_rex64): Use type "mmx" for alternative 5.
15538
96339268
RE
155392009-01-22 Richard Earnshaw <rearnsha@arm.com>
15540
15541 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15542 a word boundary.
15543 (LOCAL_ALIGNMENT): Similarly.
15544
442dc742 155452009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 15546 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
15547
15548 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15549 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15550 * config/arm/arm-tune.md: Regenerate.
15551 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15552 -march=iwmmxt2.
15553
9b34732e
MS
155542009-01-22 Mark Shinwell <shinwell@codesourcery.com>
15555
15556 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15557 version number to five.
15558
03c2a308
DS
155592009-01-22 Dodji Seketeli <dodji@redhat.com>
15560
15561 PR c++/38930
ba20e309 15562 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
15563 * c-common.c (set_underlying_type): Likewise.
15564 (is_typedef_decl ): Likewise
15565 * tree.h: Likewise
15566 (set_underlying_type): Likewise.
15567 (is_typedef_type): Likewise.
15568
1240d76e
VM
155692009-01-21 Vladimir Makarov <vmakarov@redhat.com>
15570
15571 PR middle-end/38587
15572 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15573 crossing setjmps.
15574
b8a1087d
DK
155752009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
15576
15577 PR bootstrap/37660
15578 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
15579 (LIBGCC_SPEC): Don't define.
15580 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
15581
435da628
UB
155822009-01-21 Uros Bizjak <ubizjak@gmail.com>
15583
15584 PR rtl-optimization/38879
15585 * alias.c (base_alias_check): Unaligned access via AND address can
15586 alias all surrounding object types except those with sizes equal
15587 or wider than the size of unaligned access.
15588
d597b3ce
DS
155892009-01-21 Dodji Seketeli <dodji@redhat.com>
15590
15591 PR c++/26693
ba20e309 15592 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 15593 * c-common.c (set_underlying_type): ... here.
435da628 15594 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
15595 the newly created typedef variant type.
15596 (is_typedef_decl ): New entry point.
15597 * tree.h: Added a new member member_types_needing_access_check to
15598 struct tree_decl_non_common.
15599 (set_underlying_type): New entry point.
15600 (is_typedef_type): Likewise.
15601
71a6fe66
BM
156022009-01-21 Bingfeng Mei <bmei@broadcom.com>
15603
15604 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15605 Check whether two instructions have memory references that
15606 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15607 are helper functions for traversing.
15608 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15609 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15610 not to draw dependency edge for instructions with non-conflicting
15611 alias sets.
15612
5a248274
JM
156132009-01-20 Joseph Myers <joseph@codesourcery.com>
15614
15615 PR other/38758
6b67572e
UB
15616 * longlong.h: Update copyright years. Use soft-fp license notice.
15617 Sync __clz_tab declaration with glibc.
5a248274 15618
4b84f3de
SE
156192009-01-20 Steve Ellcey <sje@cup.hp.com>
15620
15621 PR target/30687
15622 * doc/extend.texi (syscall_linkage): New.
15623 (version_id): Modify.
15624
37348bf1 156252009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15626 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15627
15628 PR tree-optimization/38747
15629 PR tree-optimization/38748
15630 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15631 conversion if the base address is an indirect reference and the
15632 aliasing sets could cause issues.
15633
d0a58904
SP
156342009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15635
2ba9daa7 15636 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15637 explaining why these options are not documented.
15638
71e7afb2
SP
156392009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15640
15641 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15642 gimple_call_lhs is NULL.
15643
38432148 156442009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15645
15646 PR target/38868
15647 * emit-rtl.c (adjust_address_1): Make sure memref is never
15648 overwritten.
15649
cbb8dee3
BE
156502009-01-20 Ben Elliston <bje@au.ibm.com>
15651
15652 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15653 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15654 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15655 const qualifier from arg 2.
15656
72c66596
IS
156572009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15658
435da628 15659 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15660
f68211cd
VM
156612009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15662
15663 PR c/38869
15664 * rtl.h (reinit_regs): New prototype.
15665 * regclass.c: Include ira.h.
15666 (reinit_regs): New.
15667 * Makefile.in (regclass.o): Add ira.h.
15668 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15669
6e4f1168
L
156702009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15671
15672 PR target/38736
15673 * c-common.c (handle_aligned_attribute): Use
15674 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15675 default alignment value.
15676
15677 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15678
15679 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15680 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15681
15682 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15683 __BIGGEST_ALIGNMENT__.
15684
15685 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15686
890065bf
RG
156872009-01-18 Richard Guenther <rguenther@suse.de>
15688
15689 PR tree-optimization/38819
15690 * tree-flow.h (operation_could_trap_helper_p): Declare.
15691 * tree-eh.c (operation_could_trap_helper_p): Export.
15692 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15693 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15694 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15695 are about to insert a possibly trapping instruction and fail
15696 in this case.
15697
a729d731
AS
156982009-01-18 Andreas Schwab <schwab@suse.de>
15699
15700 * doc/install.texi (Configuration): Remove obsolete paragraph
15701 about use of --with-gnu-ld with --with-gnu-as.
15702
a640c13b
KH
157032009-01-18 Kazu Hirata <kazu@codesourcery.com>
15704
15705 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15706 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15707 Follow spelling conventions.
15708
dba2cc0c
BE
157092009-01-18 Ben Elliston <bje@au.ibm.com>
15710
15711 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15712 C++ warning about implicit conversion from void * to struct
15713 bitmap_head_def *.
15714 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15715 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15716
2207a498
DK
157172009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15718
15719 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15720
8137e465
SP
157212009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15722 Tobias Grosser <tobi.grosser@amd.com>
15723
15724 * graphite.c (graphite_trans_scop_block): Do not block single
15725 nested loops.
15726
5be1c58c
AO
157272009-01-16 Alexandre Oliva <aoliva@redhat.com>
15728
15729 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15730 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15731 test with assertion.
15732
786ce82d
RG
157332009-01-16 Richard Guenther <rguenther@suse.de>
15734
15735 PR tree-optimization/38835
15736 PR middle-end/36227
15737 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15738 and INT + PTR -> (INT)(PTR p+ INT) folding.
15739 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15740
c1cb09ad
AN
157412009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15742
15743 PR target/38554
15744 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15745 the subreg from a lowpart subreg if it is also casting the value.
15746
bcab4e19
SP
157472009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15748 Tobias Grosser <tobi.grosser@amd.com>
15749
15750 * graphite.c (compare_prefix_loops): New.
15751 (build_scop_canonical_schedules): Rewritten.
15752 (graphite_transform_loops): Move build_scop_canonical_schedules
15753 after build_scop_iteration_domain.
15754
0b040072
SP
157552009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15756 Tobias Grosser <tobi.grosser@amd.com>
15757
2ba9daa7 15758 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15759 the dimension of the iteration domain. Do copy the domain
15760 only when it exists.
15761 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15762 (add_conditions_to_constraints): New.
15763 (can_generate_code_stmt, can_generate_code): Removed.
15764 (gloog): Do not call can_generate_code.
15765 (graphite_transform_loops): Call add_conditions_to_constraints
15766 after building the iteration domain.
15767
56c6a499
JJ
157682009-01-16 Jakub Jelinek <jakub@redhat.com>
15769
15770 PR tree-optimization/38789
15771 * tree-ssa-threadedge.c
15772 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15773 __builtin_constant_p.
15774
c95b2534 157752009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15776
15777 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15778 examined before deleting them.
2ba9daa7 15779
c433cb14
RE
157802009-01-16 Richard Earnshaw <rearnsha@arm.com>
15781
15782 * function.c (aggregate_value_p): Correctly extract the function
15783 type from CALL_EXPR_FN lookup.
15784
c95b2534 157852009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15786
15787 * config/picochip/picochip.c (picochip_override_options): Revert
15788 CFI asm flag disable commited previously.
15789
c77bb78f
SP
157902009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15791 Tobias Grosser <tobi.grosser@amd.com>
15792 Jan Sjodin <jan.sjodin@amd.com>
15793
15794 * graphite.c (scan_tree_for_params): On substractions negate
15795 all the coefficients of the term.
15796 (clast_to_gcc_expression_red): New. Handle reduction expressions
15797 of more than two operands.
15798 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15799 (get_vdef_before_scop): Handle also the case of default definitions.
15800
574af2d6
RS
158012009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15802
15803 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15804 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15805 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15806
e939805b
L
158072009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15808 Joey Ye <joey.ye@intel.com>
15809
15810 PR middle-end/37843
15811 * cfgexpand.c (expand_stack_alignment): Don't update stack
15812 boundary nor check incoming stack boundary here.
15813 (gimple_expand_cfg): Update stack boundary and check incoming
15814 stack boundary here.
15815
c95b2534 158162009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15817
435da628 15818 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15819
0196c95e
JJ
158202009-01-14 Jakub Jelinek <jakub@redhat.com>
15821
15822 PR rtl-optimization/38245
15823 * calls.c (expand_call): Add stack arguments to
15824 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15825 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15826 in regs and partially in memory or BLKmode arguments.
15827 (emit_library_call_value_1): Add stack arguments to
15828 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15829 ACCUMULATE_OUTGOING_ARGS).
15830 * dce.c: Include tm_p.h.
15831 (find_call_stack_args): New function.
15832 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15833 argument.
15834 (mark_insn): Call find_call_stack_args for CALL_Ps.
15835 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15836 forwards. Allocate and free arg_stores bitmap if needed, pass it
15837 down to deletable_insn_p, don't mark stores set in arg_stores
15838 bitmap, clear the bitmap at the beginning of each bb.
15839 * Makefile.in (dce.o): Depend on $(TM_P_H).
15840
6df6bcfa
MM
158412009-01-14 Michael Meissner <gnu@the-meissners.org>
15842
15843 PR target/22599
435da628
UB
15844 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15845 to make sure the insn is a conditional test (bug 22599). Reformat a
15846 few long lines.
6df6bcfa 15847
765ec70c
SP
158482009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15849
15850 PR middle-end/38431
15851 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15852 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15853 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15854 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15855 scops have been code generated.
15856
7de2b688
BS
158572009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15858 * doc/gty.texi (Invoking the garbage collector): Added new node
15859 and section documenting ggc_collect.
15860
10bd6c5c
RG
158612009-01-14 Richard Guenther <rguenther@suse.de>
15862
15863 PR tree-optimization/38826
15864 PR middle-end/38477
15865 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15866 initialization notes only if we actually emitted a warning.
15867 (intra_create_variable_infos): Add constraints for a result decl
15868 that is passed by hidden reference.
15869 (build_pred_graph): Mark all related variables non-direct on
15870 address-taking.
15871
9c7c70ee
NC
158722009-01-14 Nick Clifton <nickc@redhat.com>
15873
15874 * ira-conflicts.c: Include addresses.h for the definition of
15875 base_reg_class.
435da628
UB
15876 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15877 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15878
cf0c2a60
VM
158792009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15880
15881 PR target/38811
15882 * Makefile.in (ira-lives.o): Add except.h.
15883
15884 * ira-lives.c: Include except.h.
15885 (process_bb_node_lives): Process can_throw_internal.
15886
d3302fd3
JJ
158872009-01-13 Jakub Jelinek <jakub@redhat.com>
15888
15889 PR rtl-optimization/38774
15890 * combine.c (simplify_set): When undoing cc_use change, don't do
15891 PUT_CODE on the newly created comparison, but instead put back the
15892 old comparison.
15893
7ab23fd0
JM
158942009-01-13 Joseph Myers <joseph@codesourcery.com>
15895
15896 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15897 values. Remove duplicate arm8 entry.
15898
f9344488
SP
158992009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15900
15901 PR tree-optimization/38786
15902 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15903 the SSA_NAME case of expand_scalar_variables_expr.
15904 Set the type of an expression to the type of its assign statement.
15905 (expand_scalar_variables_expr): Also gather the scalar computation
15906 used to index the memory access. Do not pass loop_p.
15907 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15908 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15909 the gimple_stmt_iterator where it inserts new code.
15910 Do not pass loop_p.
f9344488
SP
15911 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15912 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15913
2d8bb84d
SP
159142009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15915
15916 * graphite.h (debug_value): Removed.
15917 * graphite.c (debug_value): Removed.
15918
ff128632
RE
159192009-01-13 Richard Earnshaw <rearnsha@arm.com>
15920
435da628
UB
15921 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15922 ldrd/strd with two 32-bit instructions.
ff128632 15923
d5a0a47b
RE
159242009-01-13 Richard Earnshaw <rearnsha@arm.com>
15925
435da628
UB
15926 * config/arm/arm.c (struct processors): Pass for speed down into
15927 cost helper functions.
d5a0a47b
RE
15928 (const_ok_for_op): Handle COMPARE and inequality nodes.
15929 (arm_rtx_costs_1): Rewrite.
15930 (arm_size_rtx_costs): Update prototype.
15931 (arm_rtx_costs): Pass speed down to helper functions.
15932 (arm_slowmul_rtx_costs): Rework cost calculations.
15933 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15934 (arm_9e_rtx_costs): Likewise.
15935
26d5bf5b
UB
159362009-01-13 Uros Bizjak <ubizjak@gmail.com>
15937
15938 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15939 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15940 (alpha_legitimize_address): Do not split local symbols wider than
15941 UNITS_PER_WORD into HIGH/LO_SUM parts.
15942
5d14e3d5
DS
159432009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15944
15945 PR bootstrap/38580
15946 * gcc.c (process_command): Replace call to execvp with calls
15947 to pex_one and exit.
15948
33faafca
AS
159492009-01-03 Anatoly Sokolov <aesok@post.ru>
15950
15951 PR target/29141
15952 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15953 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15954 variant for devices with 3-byte PC.
ba20e309 15955 (__tablejump_elpm__): New.
33faafca 15956
634b5df5
JJ
159572009-01-12 Jakub Jelinek <jakub@redhat.com>
15958
15959 PR c/32041
15960 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15961 offsetof member-designator, handle it as `[0].'.
15962
2842bb86
JDA
159632009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15964
15965 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15966 function when not using named sections on targets with named sections
15967 if branch distance is less than 262132.
15968
76ee70f6
RE
159692009-01-12 Richard Earnshaw <rearnsha@arm.com>
15970
15971 * combine.c (combine_instructions): Recompute
15972 optimize_this_for_speed_p for each BB in the main combine loop.
15973
f56e675d
TB
159742009-01-12 Tomas Bily <tbily@suse.cz>
15975
15976 PR middlend/38385
26d5bf5b
UB
15977 * tree-loop-distribution.c (prop_phis): New function.
15978 (generate_builtin): Call prop_phis.
15979 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15980
c2152239
JJ
159812009-01-12 Jakub Jelinek <jakub@redhat.com>
15982
15983 PR tree-optimization/38807
15984 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15985 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15986
0e510b3e
AN
159872009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15988
15989 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15990 subreg of op0 to the original op0.
15991
c95b2534 159922009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15993
15994 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15995
53a7ff9a
MS
159962009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15997
15998 PR debug/7055
60839f5d 15999 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
16000 starting with digits.
16001
b3a796bc
JJ
160022009-01-10 Jakub Jelinek <jakub@redhat.com>
16003
16004 PR target/38695
16005 * config/arm/arm.c (arm_is_long_call_p): Don't call
16006 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16007
b21b850e
SB
160082009-01-09 Steven Bosscher <steven@gcc.gnu.org>
16009
16010 * regrename.c (regrename_optimize): Fix dumping.
16011 (find_oldest_value_reg): Preserve REG_POINTER.
16012 (copy_hardreg_forward_1): Likewise.
16013
e0e10d3a
DN
160142009-01-09 Diego Novillo <dnovillo@google.com>
16015
bf9b2cc9 16016 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
16017 the restrictions on its use.
16018 (gimple_uid): Tidy.
16019 (gimple_set_uid): Tidy.
16020
c9da2ae8
JJ
160212009-01-09 Jakub Jelinek <jakub@redhat.com>
16022
16023 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16024 zero guard even if align_bytes != 0 and count is smaller than
16025 size_needed.
16026
38432148 160272009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
16028
16029 PR rtl-optimization/38495
26d5bf5b 16030 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
16031 (add_range_and_copies_from_move_list): Print all added ranges.
16032 Add ranges to memory optimized destination.
16033
260fda3d
JJ
160342009-01-09 Jakub Jelinek <jakub@redhat.com>
16035
6f6278ad
JJ
16036 PR target/38686
16037 PR target/38708
16038 * config/i386/i386.c (override_options): Reject
16039 -mstringop-strategy=rep_8byte with -m32.
16040 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16041 to 1. Do count comparison against epilogue_size_needed at compile
16042 time even when count_exp was constant forced into register. For
16043 size_needed don't jump to epilogue, instead just avoid aligning
16044 and invoke the body algorithm. If need_zero_guard, add zero guard
16045 even if count is non-zero, but smaller than size_needed + number of
16046 bytes that could be stored for alignment.
16047 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16048 to 1. If need_zero_guard, add zero guard even if count is non-zero,
16049 but smaller than size_needed + number of bytes that could be stored
16050 for alignment. Compare size_needed with epilogue_size_needed instead
16051 of desired_align - align, don't adjust size_needed, pass
16052 epilogue_size_needed to the epilogue expanders.
16053
260fda3d 16054 PR c/35742
26d5bf5b 16055 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 16056
67b846fa
JDA
160572009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16058
16059 * pa.c (last_address): Change to unsigned.
16060 (update_total_code_bytes): Change argument to unsigned. Don't
16061 check if insn addresses are set.
16062 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16063 addresses are not set.
16064 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16065
91c82473
NC
160662009-01-09 Nick Clifton <nickc@redhat.com>
16067
16068 * config/sh/symbian.c: Replace uses of DECL_INLINE with
16069 DECL_DECLARED_INLINE_P.
16070
4017e262
JJ
160712009-01-09 Jakub Jelinek <jakub@redhat.com>
16072
0a49e5c2
JJ
16073 PR middle-end/38347
16074 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16075 GET_MODE (op0) in operand_subword_force calls.
16076
4017e262
JJ
16077 PR middle-end/38771
16078 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16079 fold_convert arg0 operands to TREE_TYPE (op0) first.
16080
7cd06356
VM
160812009-01-08 Vladimir Makarov <vmakarov@redhat.com>
16082
16083 * params.def (ira-max-conflict-table-size): Decrease default value
16084 to 1000.
16085
96867bbd
JJ
160862009-01-08 Jakub Jelinek <jakub@redhat.com>
16087
16088 PR tree-optimization/37031
16089 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16090 on parameter_set.
16091 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16092 allocate it using gc instead of heap, use VEC_quick_push instead of
16093 VEC_safe_push.
16094 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16095 instead of heap, use VEC_quick_push instead of VEC_safe_push.
16096 * tree-data-ref.h (struct access_matrix): Change matrix to gc
16097 allocated vector from heap allocated.
16098 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16099 * tree-loop-linear.c (linear_transform_loops): Allocate nest
16100 vector only after perfect_loop_nest_depth call.
16101
68f61c3d
SP
161022009-01-08 Sebastian Pop <sebastian.pop@amd.com>
16103 Jan Sjodin <jan.sjodin@amd.com>
16104
16105 PR tree-optimization/38559
16106 * graphite.c (debug_value, copy_constraint,
16107 swap_constraint_variables, scale_constraint_variable, ): New.
16108 (get_lower_bound, get_upper_bound): Removed.
16109 (graphite_trans_bb_strip_mine): Clean up this code that works
16110 only for constant number of iterations. Fully copy upper and
16111 lower bound constraints, not only the constant part of them.
16112 * graphite.h (debug_value): Declared.
16113
82567e33
IR
161142009-01-08 Ira Rosen <irar@il.ibm.com>
16115
16116 PR tree-optimization/37194
16117 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 16118 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
16119 outside cost in case of known number of iterations.
16120
7da13f1d
NF
161212009-01-07 Nathan Froyd <froydnj@codesourcery.com>
16122 Alan Modra <amodra@bigpond.net.au>
16123
16124 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16125 non-word-aligned REG+CONST addressing.
16126
c0f64575
UB
161272009-01-07 Uros Bizjak <ubizjak@gmail.com>
16128
16129 PR target/38706
16130 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16131 free_after_compilation when outputting a thunk.
16132 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16133 Do not call free_after_compilation here.
16134
301b6a4e
UB
161352009-01-07 Uros Bizjak <ubizjak@gmail.com>
16136
16137 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
16138 (ix86_valid_target_attribute_inner_p): Ditto.
16139
6a114766
JS
161402009-01-07 Jan Sjodin <jan.sjodin@amd.com>
16141
16142 PR tree-optimization/38492
16143 PR tree-optimization/38498
16144 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16145 * tree-chrec.h (scev_is_linear_expression): Declared.
16146 * graphite.c (graphite_cannot_represent_loop_niter): New.
16147 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16148 (graphite_loop_normal_form): Use gcc_assert.
16149 (scan_tree_for_params): Use CASE_CONVERT.
16150 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16151 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16152 Use gcc_assert. Discard scops that contain unhandled cases.
16153 (build_scop_conditions): Return a boolean status for unhandled cases.
16154 (strip_mine_profitable_p): Print the loop number, not its depth.
16155 (is_interchange_valid): Pass the depth of the loop nest, don't
16156 recompute it wrongly.
16157 (graphite_trans_bb_block): Same.
16158 (graphite_trans_bb_block): Print tentative of loop blocking.
16159 (graphite_trans_scop_block): Do not print that the loop has been
16160 blocked.
16161 (graphite_transform_loops): Do not handle scops that contain condition
16162 scalar phi nodes.
16163
65b82caa
L
161642009-01-07 H.J. Lu <hongjiu.lu@intel.com>
16165
16166 AVX Programming Reference (December, 2008)
16167 * config/i386/avxintrin.h (_mm256_stream_si256): New.
16168 (_mm256_stream_pd): Likewise.
16169 (_mm256_stream_ps): Likewise.
16170
16171 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16172 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16173 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16174 (bdesc_special_args): Add __builtin_ia32_movntdq256,
16175 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16176 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16177 (ix86_expand_special_args_builtin): Likewise.
16178
16179 * config/i386/sse.md (AVXMODEDI): New.
16180 (avx_movnt<mode>): Likewise.
16181 (avx_movnt<mode>): Likewise.
16182 (<sse>_movnt<mode>): Remove AVX support.
16183 (sse2_movntv2di): Likewise.
16184
cef158f9
RG
161852009-01-07 Richard Guenther <rguenther@suse.de>
16186
16187 PR middle-end/38751
16188 * fold-const.c (extract_muldiv): Remove obsolete comment.
16189 (fold_plusminus_mult_expr): Undo MINUS_EXPR
16190 to PLUS_EXPR canonicalization for the canonicalization.
16191
246cb5be
GP
161922009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
16193
16194 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
16195 hosted cross-compilers generating less efficient code.
16196
84b9b872
RS
161972009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16198
16199 * function.h (rtl_data): Add a dbr_scheduled_p field.
16200 * reorg.c (dbr_schedule): Set it.
16201 (gate_handle_delay_slots): Check it.
16202 * config/mips/mips.c (mips_base_delayed_branch): Delete.
16203 (mips_reorg): Check flag_delayed_branch instead of
16204 mips_base_delayed_branch.
16205 (mips_override_options): Don't set mips_base_delayed_branch
16206 or flag_delayed_branch.
16207
ace984c8
RS
162082009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16209
16210 PR rtl-optimization/38426.
16211 * ira.c (ira): Set current_function_is_leaf earlier.
16212
7ad7809b
JJ
162132009-01-06 Jakub Jelinek <jakub@redhat.com>
16214
16215 PR rtl-optimization/38722
16216 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16217 too early, only set a flag and modify after last possible
16218 undo_all point.
16219
c52ec948
JJ
162202009-01-06 Janis Johnson <janis187@us.ibm.com>
16221
16222 PR c/34252
16223 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16224 * real.c (decimal_single_format): Correct values of emin and emax.
16225 (decimal_double_format): Ditto.
16226 (decimal_quad_format): Ditto.
16227 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16228 computation of DECnn_MIN and DECnn_MAX for corrected values of
16229 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
16230 __DECnn_MIN__, and adjust its computation for the corrected value
16231 of emin.
16232
300240e1
JH
162332009-01-06 Jan Hubicka <jh@suse.cz>
16234
16235 PR target/38744
435da628 16236 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 16237
271c069e
GP
162382009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16239
16240 * doc/contrib.texi (Contributors): Slightly adjust the end note.
16241 Add Robert Clark to the list of testers.
16242
64e4c301 162432009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16244 Kai Tietz <kai.tietz@onevision.com>
64e4c301 16245
435da628
UB
16246 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16247 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 16248
7650b83e 162492009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16250 Kai Tietz <kai.tietz@onevision.com>
7650b83e 16251
435da628
UB
16252 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16253 for w64 ABI.
16254 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
16255 (ix86_nsaved_regs): Count only general purpose regs.
16256 (ix86_nsaved_sseregs): New.
16257 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16258 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
16259 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16260 general purpose regs.
7650b83e
JH
16261 (ix86_emit_save_sse_regs_using_mov): New.
16262 (ix86_expand_prologue): Save SSE regs if needed.
16263 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16264 (ix86_emit_restore_sse_regs_using_mov): New.
16265 (ix86_expand_epilogue): Save SSE regs if needed.
16266
9aa5c1b2 162672009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 16268 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 16269
435da628
UB
16270 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16271 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16272 functions when accumulate outgoing args is off.
9aa5c1b2 16273
f7556aae
L
162742009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16275
16276 PR bootstrap/38742
16277 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16278 before using pseudos_have_intersected_live_ranges_p.
16279
16280 * ira-int.h (ira_assert): Always define.
16281
e47b7d04
L
162822009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16283
16284 AVX Programming Reference (December, 2008)
16285 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16286 (_mm256_permute2_pd): Likewise.
16287 (_mm_permute2_ps): Likewise.
16288 (_mm256_permute2_ps): Likewise.
16289 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16290 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16291
16292 * config/i386/i386.c (ix86_builtins): Remove
16293 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16294 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16295 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16296 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16297 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16298 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16299 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16300 __builtin_ia32_vpermil2ps256.
16301 (ix86_init_mmx_sse_builtins): Updated.
16302 (ix86_expand_args_builtin): Likewise.
16303
44b86471
JDA
163042009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16305
e47b7d04
L
16306 * pa.c (output_call): Relocate non-jump insns in the delay slot of
16307 long absolute calls when generating PA 2.0 code.
44b86471 16308
311aab06
VM
163092009-01-05 Vladimir Makarov <vmakarov@redhat.com>
16310
16311 PR rtl-optimization/38583
16312 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16313
16314 * params.def (ira-max-conflict-table-size): New.
16315
16316 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 16317
311aab06 16318 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 16319
311aab06
VM
16320 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16321 table. Report this. Return result of building.
16322 (ira_build_conflicts): Use ira_conflicts_p. Check result of
16323 building conflict table.
16324
301b6a4e 16325 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 16326 (ira_color): Use ira_conflicts_p.
2ba9daa7 16327
311aab06
VM
16328 * global.c: Include ira.h.
16329 (pseudo_for_reload_consideration_p, build_insn_chain): Use
16330 ira_conflicts_p.
16331
16332 * Makefile.in (global.o): Add ira.h.
2ba9daa7 16333
311aab06
VM
16334 * ira-build.c (mark_all_loops_for_removal,
16335 propagate_some_info_from_allocno): New.
16336 (remove_unnecessary_allocnos): Call
16337 propagate_some_info_from_allocno.
16338 (remove_low_level_allocnos): New.
16339 (remove_unnecessary_regions): Add parameter. Call
16340 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
16341 parameter to remove_unnecessary_regions.
16342 (ira_build): Remove all regions but root if the conflict table was
16343 not built. Update conflict hard regs for allocnos crossing calls.
16344
16345 * ira.c (ira_conflicts_p): New global.
16346 (ira): Define and use ira_conflicts_p.
16347
16348 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16349 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 16350 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 16351
5641785f
BE
163522009-01-06 Ben Elliston <bje@au.ibm.com>
16353
16354 * gengtype-lex.l (YY_NO_INPUT): Define.
16355
e4e5261f
AP
163562009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
16357
16358 PR c/34911
5641785f
BE
16359 * c-common.c (handle_vector_size_attribute): Also reject
16360 BOOLEAN_TYPE types.
e4e5261f 16361
7b10257f
SP
163622009-01-05 Sebastian Pop <sebastian.pop@amd.com>
16363
16364 PR tree-optimization/38492
16365 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
16366 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16367 rename_map_elt_info, eq_rename_map_elts,
16368 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
16369 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16370 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16371 (sese_build_livein_liveouts): New.
16372 (new_sese, free_sese): New.
16373 (new_scop): Call new_sese.
16374 (free_scop): Call free_sese.
16375 (rename_variables_from_edge, rename_phis_end_scop): Removed.
16376 (register_old_new_names): Renamed register_old_and_new_names.
16377 (register_scop_liveout_renames, add_loop_exit_phis,
16378 insert_loop_close_phis, struct igp,
16379 default_liveout_before_guard, add_guard_exit_phis,
16380 insert_guard_phis, copy_renames): New.
16381 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16382 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16383 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16384 (scop_adjust_phis_for_liveouts): New.
16385 (gloog): Call scop_adjust_phis_for_liveouts.
16386
16387 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 16388 num_ver and livein.
7b10257f
SP
16389 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16390 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16391 (struct scop): Added field liveout_renames.
16392 (SCOP_LIVEOUT_RENAMES): New.
16393
9761fcc7
HJ
163942009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
16395
16396 PR tree-optimization/38510
16397 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16398 (translate_clast): Call recompute_all_dominators before
16399 graphite_verify.
16400 (gloog): Call recompute_all_dominators before graphite_verify.
16401
164022009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 16403 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
16404
16405 PR tree-optimization/38500
16406 * graphite.c (create_sese_edges): Call fix_loop_structure after
16407 splitting blocks.
16408
c95b2534 164092009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
16410
16411 * config.gcc: Add m32r*-*-rtems*.
16412 * config/m32r/rtems.h: New file.
16413
fc0cd180
BE
164142009-01-05 Ben Elliston <bje@au.ibm.com>
16415
16416 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16417 (.po.pox): Likewise.
16418 (po/gcc.pot): Likewise.
16419
3106d8e5
DM
164202009-01-04 David S. Miller <davem@davemloft.net>
16421
16422 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16423 (STARTING_FRAME_OFFSET): Always set to zero.
16424
0009b473
RS
164252009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16426
16427 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16428 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16429 fixed-point types, and vectors of the same.
16430
4f24c6d6
RS
164312009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
16432
16433 * config/mips/sync.md (*mb_barrier): Rename to...
16434 (*memory_barrier): ...this.
16435
1df48f5c
JW
164362009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
16437
16438 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 16439 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
16440 and put in alphabetical order. Fix 'target' name and put in order.
16441 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16442 typos.
16443
1a8c13b3
UB
164442009-01-04 Uros Bizjak <ubizjak@gmail.com>
16445
16446 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16447 (memory_barrier): Expand as unspec instead of unspec_volatile.
16448 Remove mem:BLK from insn operands. Use Pmode scratch register.
16449 (*memory_barrier): Define as unspec instead of unspec_volatile.
16450 Use (match_dup 0) as input operand.
16451
16452 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16453 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16454 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
16455 scratch register. Remove operand 1.
16456 (*stbar): Define as unspec instead of unspec_volatile.
16457 Use (match_dup 0) as input operand, remove (const_int 8).
16458 (*membar): Define as unspec instead of unspec_volatile.
16459 Use (match_dup 0) as input operand, remove input operand 2.
16460
16461 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16462 (memory_barrier): Expand as unspec instead of unspec_volatile.
16463 Remove mem:BLK from insn operands. Use Pmode scratch register.
16464 (*memory_barrier): Define as unspec instead of unspec_volatile.
16465 Use (match_dup 0) as input operand.
16466
16467 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16468 Remove mem:BLK from insn operands. Use Pmode scratch register.
16469 Set volatile flag on operand 0.
16470 (*memory_barrier): New insn pattern.
16471
16472 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16473 insn operands.
16474 (*memory_barrier): Use (match_dup 0) as input operand.
16475
16476 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16477 Remove mem:BLK from insn operands. Use Pmode scratch register.
16478 Set volatile flag on operand 0.
301b6a4e 16479 (*mb_internal): New insn pattern.
1a8c13b3
UB
16480
16481 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16482
fb0703f7
SB
164832009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16484
16485 PR middle-end/38586
16486 * function.c (struct temp_slot): Move to the section of the file
16487 that deals with temp slots. Remove field 'address'.
16488 (temp_slot_address_table): New hash table of address -> temp slot.
16489 (struct temp_slot_address_entry): New struct, items for the table.
16490 (temp_slot_address_compute_hash, temp_slot_address_hash,
16491 temp_slot_address_eq, insert_temp_slot_address): Support functions
16492 for the new table.
16493 (find_temp_slot_from_address): Rewrite to use the new hash table.
16494 (remove_unused_temp_slot_addresses): Remove addresses of temp
16495 slots that have been made available.
16496 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16497 worker function for remove_unused_temp_slot_addresses.
16498 (assign_stack_temp_for_type): Don't clear the temp slot address list.
16499 Add the temp slot address to the address -> temp slot map.
16500 (update_temp_slot_address): Update via insert_temp_slot_address.
16501 (free_temp_slots): Call remove_unused_temp_slot_addresses.
16502 (pop_temp_slots): Likewise.
16503 (init_temp_slots): Allocate the address -> temp slot map, or empty
16504 the map if it is already allocated.
16505 (prepare_function_start): Initialize temp slot processing.
16506
b5a430f3
SB
165072009-01-04 Steven Bosscher <steven@gcc.gnu.org>
16508
16509 PR middle-end/38584
16510 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16511 Calculate the size of all stack vars assuming no packing of stack
16512 vars will happen, replacing a quadratic algorithm with a linear one.
16513
5d560619
JJ
165142009-01-03 Jakub Jelinek <jakub@redhat.com>
16515
16516 PR target/38707
16517 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16518 can't be used.
16519
953a7caa
DN
165202009-01-03 Diego Novillo <dnovillo@google.com>
16521
16522 * doc/contrib.texi: Update contributions.
16523
5f26a230
JJ
165242009-01-03 Jakub Jelinek <jakub@redhat.com>
16525
493aa551
JJ
16526 PR c++/38705
16527 * builtins.c (fold_builtin_memory_op): Give up if either operand
16528 is volatile. Set srctype or desttype to non-qualified version
16529 of the other type.
16530
5f26a230
JJ
16531 PR c/38700
16532 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16533 and FUNCTION_DECLs.
16534
c95b2534 165352009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
16536
16537 PR rtl-optimization/35805
16538 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16539 problem if fast dce is able to remove any instructions.
16540 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 16541
0b355794
MM
165422009-01-02 Mark Mitchell <mark@codesourcery.com>
16543
16544 PR 33649
16545 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16546
0cf0d02b
JJ
165472009-01-02 Jakub Jelinek <jakub@redhat.com>
16548
16549 PR middle-end/38690
16550 * tree-flow.h (op_code_prio, op_prio): New prototypes.
16551 * tree-pretty-print.c (op_code_prio): New function.
16552 (op_prio): No longer static. Use op_code_prio.
16553 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16554 Use op_prio and op_code_prio to determine if () should be
16555 printed around operand(s) or not.
16556
16557 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16558 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16559 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16560 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16561 pp_character instead of pp_string for single letter printing.
16562
e3606f3b
RS
165632009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
16564
16565 * doc/extend.texi: Fix '#pragma GCC option' typo.
16566
c95b2534 165672009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 16568
a5f061dc
RG
16569 * doc/install.texi (--enable-checking): Mention different
16570 default for stage1.
16571 (--enable-stage1-checking): Document.
00f39bd5 16572
26de0bcb
AP
165732009-01-01 Andrew Pinski <pinskia@gmail.com>
16574
16575 PR middle-end/30142
16576 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
16577 case to be an error.
16578
7a7d8fab
BE
165792009-01-02 Ben Elliston <bje@au.ibm.com>
16580
16581 * config/fp-bit.h (pack_d): Constify argument.
16582 * config/fp-bit.c (makenan): Constify return type. Remove casts.
16583 (isnan): Constify argument.
16584 (isinf): Likewise.
16585 (iszero): Likewise.
16586 (pack_d): Likewise.
16587 (_fpadd_parts): Constify return type.
16588 (_fpmul_parts): Likewise.
16589 (_fpdiv_parts): Likewise.
16590
b295aee2
JJ
165912009-01-01 Jakub Jelinek <jakub@redhat.com>
16592
16593 PR c/36489
16594 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
16595 warn about overwriting initializer with side-effects or
16596 -Woverride-init if !IMPLICIT.
16597 (output_init_element): Likewise. Pass IMPLICIT down to
16598 add_pending_init.
16599 (process_init_element): Add IMPLICIT argument. Pass it down
16600 to output_init_element.
16601 (push_init_element, pop_init_level, set_designator): Adjust
16602 process_init_element callers.
16603 (set_nonincremental_init, set_nonincremental_init_from_string):
16604 Adjust add_pending_init callers.
16605 (output_pending_init_elements): Adjust output_init_element callers.
16606 * c-tree.h (process_init_element): Adjust prototype.
16607 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16608 process_init_element callers.
ad41bd84
JM
16609
16610\f
16611Copyright (C) 2009 Free Software Foundation, Inc.
16612
16613Copying and distribution of this file, with or without modification,
16614are permitted in any medium without royalty provided the copyright
16615notice and this notice are preserved.