graphite.c: Revert previous patch.
[gcc.git] / gcc / ChangeLog
1 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2
3 * graphite.c: Revert previous patch.
4
5 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6
7 PR bootstrap/40103
8 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
9
10 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
11
12 * tree-ssa-loop-prefetch.c
13 (loop_prefetch_arrays): Fixed a portability problem in printf format
14 string.
15
16 2009-06-09 Martin Jambor <mjambor@suse.cz>
17
18 PR tree-optimization/40351
19 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
20 to a potential artifical subaccess can be constructed.
21
22 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
23
24 * config/sh/sh-protos.h (sh_optimization_options): Declare.
25 (sh_override_options): Likewise.
26 * config/sh/sh.c: Include params.h.
27 (sh_optimization_options): New.
28 (sh_override_options): Likewise.
29 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
30 (OVERRIDE_OPTIONS): Use sh_override_options.
31
32 2009-06-08 Jakub Jelinek <jakub@redhat.com>
33
34 * dwarf2out.c (emit_cfa_remember): New variable.
35 (add_fde_cfi): If emit_cfa_remember, recurse to add
36 DW_CFA_remember_state first.
37 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
38 instead just set emit_cfa_remember.
39
40 2009-06-08 Jan Hubicka <jh@suse.cz>
41
42 PR debug/40126
43 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
44
45 2009-06-08 Jan Hubicka <jh@suse.cz>
46
47 PR middle-end/39834
48 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
49 for saved inline bodies.
50 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
51 for given function.
52
53 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
54
55 * jump.c (returnjump_p): Handle delayed branches. Add missing
56 function comment.
57
58 2009-06-08 Jan Hubicka <jh@suse.cz>
59
60 PR middle-end/40102
61 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
62 original node might've been modified.
63 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
64
65 2009-06-08 Jakub Jelinek <jakub@redhat.com>
66
67 * tree-object-size.c (addr_object_size): Add OSI argument.
68 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
69 (compute_builtin_object_size, expr_object_size): Adjust callers.
70 (plus_stmt_object_size): Call addr_object_size instead of
71 compute_builtin_object_size.
72
73 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
74 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
75
76 * tree-ssa-loop-prefetch.c
77 (gather_memory_references): Introduced a counter for the number of
78 memory references.
79 (anything_to_prefetch_p): Introduced a counter for the number of
80 prefetches.
81 (is_loop_prefetching_profitable): New function with a cost model
82 for prefetching.
83 (loop_prefetch_arrays): Use the new cost model to determine if
84 prefetching is profitable.
85 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
86 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
87 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
88 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
89 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
90 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
91
92 2009-06-08 Michael Matz <matz@suse.de>
93
94 PR debug/40012
95 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
96 partitions use the same.
97 (expand_one_var): Deal with DECL_RTL sometimes begin set also
98 for basevars of SSA_NAMEs.
99 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
100 to not expand them twice.
101 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
102 multiple places.
103
104 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
105
106 * common.opt (fcompare-debug=, fcompare-debug-second): New.
107 (fdump-final-insns=, gtoggle): New.
108 * doc/invoke.texi: Document them.
109 * final.c (rest_of_clean_state): Dump final insn stream.
110 * gcc.c (invoke_as): Hook in -fcompare-debug.
111 (static_spec_functions): Add compare-debug-dump-opt,
112 compare-debug-self-opt and compare-debug-auxbase-opt.
113 (compare_debug, compare_debug_second, compare_debug_opt): New.
114 (switches_debug_check, n_switches_debug_check): New.
115 (debug_auxbase_opt, debug_check_temp_file): New.
116 (process_command): Handle -fno-compare-debug, -fcompare-debug and
117 -fcompare-debug=*.
118 (do_self_spec): Handle arguments after switches.
119 (do_spec_1): Add .gk extension to temp file basenames for compare.
120 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
121 (cc1_options): Use it instead of normal auxbase computation for
122 the second compare-debug compilation.
123 (compare_files): New.
124 (main): Set up and implement compare debug mode.
125 (compare_debug_dump_opt_spec_function): New.
126 (compare_debug_self_opt_spec_function): New.
127 (compare_debug_auxbase_opt_spec_function): New.
128 * toplev.c (process_options): Handle flag_gtoggle,
129 flag_dump_final_insns.
130 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
131 during -fcompare-debug-second compilation.
132
133 2009-06-07 Ian Lance Taylor <iant@google.com>
134
135 * dwarf2.h (enum dwarf_location_atom): Add
136 INTERNAL_DW_OP_tls_addr.
137 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
138
139 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
140 with no default node. Change warning with %H to warning_at.
141 Don't clear warn_switch around case checking.
142 * doc/invoke.texi (Warning Options): Clarify distinction between
143 -Wswitch and -Wswitch-enum.
144
145 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
146
147 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
148
149 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
150
151 * gbl-ctors.h: Add header guard.
152
153 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
154
155 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
156 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
157 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
158 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
159 prototypes for removed functions.
160 (expressions_equal_p): Move to ...
161 * tree-ssa-sccvn.h: ... here and ...
162 * matrix-reorg.c: ... adjust includes.
163
164 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
165
166 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
167
168 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
169
170 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
171 (finish_function): Remove erroneous whitespace.
172
173 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
174
175 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
176 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
177
178 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
179
180 * errors.c (internal_error): Commentary typo fix.
181 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
182 * tree-ssa-pre.c: Ditto.
183
184 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
185
186 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
187 them is supposed to hold actual statements.
188
189 2009-06-06 Ian Lance Taylor <iant@google.com>
190
191 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
192 empty statements can now have attributes.
193
194 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
195
196 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
197 * config/mips/mips.md: Ditto.
198
199 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
200
201 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
202 _RELOCATABLE.
203 (__eabi_uconvert): Likewise.
204
205 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
206
207 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
208 CFI_* definitions with IN_GCC.
209
210 2009-06-05 David Edelsohn <edelsohn@gnu.org>
211
212 * xcoffout.h (xcoffout_source_line): Update prototype.
213
214 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
215
216 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
217 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
218
219 2009-06-05 Jakub Jelinek <jakub@redhat.com>
220
221 PR middle-end/40340
222 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
223 inlined_function_outer_scope_p blocks for artificial inlines
224 even at -g0/-g1.
225 * tree.c (tree_nonartificial_location): Rewrite using
226 block_nonartificial_location.
227
228 2009-06-05 Revital Eres <eres@il.ibm.com>
229 Leehod Baruch <leehod@il.ibm.com>
230
231 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
232 (expand_expr_real_1): Remove comment.
233 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
234 Vectorize misaligned access when the target supports it.
235 (vect_supportable_dr_alignment): Check for unaligned access
236 support.
237 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
238 and remove asset.
239
240 2009-06-05 Julian Brown <julian@codesourcery.com>
241
242 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
243 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
244
245 2009-06-05 Richard Guenther <rguenther@suse.de>
246
247 PR bootstrap/40350
248 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
249 as possibly unused.
250
251 2009-06-05 Jakub Jelinek <jakub@redhat.com>
252
253 * config/s390/s390.c (global_not_special_regno_p): New static inline.
254 (save_gprs): Don't tell unwinder when a global register is saved.
255 (s390_emit_epilogue): Emit needed epilogue unwind info.
256
257 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
258
259 * dwarf2out.c (deferred_asm_name): New.
260 (add_name_and_src_coords_attributes): Defer creation of
261 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
262 computed yet.
263 (move_linkage_attr): New.
264 (dwarf2out_finish): Revisit deferrals and emit attributes at the
265 right place.
266
267 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
268
269 * tree-nested.c (finalize_nesting_tree_1): Declare the
270 frame_decl in the binding tree.
271
272 2009-06-04 Cary Coutant <ccoutant@google.com>
273
274 * basic-block.h (struct basic_block_def): Add discriminator field.
275 * dbxout.c (dbxout_source_line): Add new parameter. Change all
276 callers.
277 * debug.c (do_nothing_debug_hooks): Add additional entry.
278 (debug_nothing_int_charstar_int): New function.
279 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
280 hook.
281 (debug_nothing_int_charstar_int): New declaration.
282 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
283 discriminator value in .loc directive.
284 * final.c (last_discriminator): New variable.
285 (discriminator): New variable.
286 (final_start_function): Initialize above variables, pass current
287 discriminator to debug hook.
288 (notice_source_line): Check for discriminator change.
289 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
290 * sdbout.c (sdbout_source_line): New parameter.
291 * tree-cfg.c (struct locus_discrim_map): New structure type.
292 (discriminator_per_locus): New hash table.
293 (build_gimple_cfg): Allocate and free discriminator hash table.
294 (make_edges): Call assign_discriminator.
295 (locus_map_hash): New function.
296 (locus_map_eq): New function.
297 (next_discriminator_for_locus): New function.
298 (same_line_p): New function.
299 (assign_discriminator): New function.
300 (make_cond_expr_edges): Call assign_discriminator.
301 (make_gimple_switch_edges): Likewise.
302 (first_non_label_stmt): New function.
303 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
304 all callers.
305 * xcoffout.c (xcoffout_source_line): Add new parameter.
306
307 * configure.ac (gcc_cv_as_discriminator): New configury check for
308 gas support for discriminator.
309 * configure: Regenerate.
310 * config.in: Regenerate.
311
312 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
313
314 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
315 val after checking for integers.
316
317 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
318
319 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
320 X64_REGPARM_MAX.
321 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
322 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
323 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
324 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
325 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
326 X64_SSE_REGPARM_MAX.
327 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
328 X64_SSE_REGPARM_MAX.
329
330 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
331
332 * gcc.c (report_times_to_file): New.
333 (execute): Implement it.
334 (process_command): Support -time=.
335 * doc/invoke.texi: Document it.
336
337 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
338
339 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
340 that have value exprs.
341
342 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
343
344 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
345 declarations for constants until...
346 (dw2_output_indirect_constant_1): ... this point.
347
348 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
349
350 PR target/10242
351 * arm.md (arm_addsi3): Don't try to split an add with an
352 eliminable register until after reload has completed.
353
354 2009-06-03 Ian Lance Taylor <iant@google.com>
355
356 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
357 * genattrtab.c (write_length_unit_log): Likewise.
358 * genchecksum.c (dosum): Likewise.
359 * gengtype.c (write_rtx_next): Likewise.
360 (finish_root_table, write_roots): Likewise.
361 * gimple.c (gimple_ops_offset_): Likewise.
362 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
363 * config/arc/arc.c (arc_attribute_table): Likewise.
364 * config/arm/arm.c (arm_attribute_table): Likewise.
365 * config/avr/avr.c (avr_attribute_table): Likewise.
366 * config/crx/crx.c (crx_attribute_table): Likewise.
367 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
368 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
369 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
370 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
371 * config/sh/sh.c (sh_attribute_table): Likewise.
372 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
373 * config/spu/spu.c (spu_attribute_table): Likewise.
374 * config/v850/v850.c (v850_attribute_table): Likewise.
375
376 * config/alpha/alpha.c (vms_attribute_table): Make static.
377 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
378 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
379 * config/mips/mips.c (mips_attribute_table): Likewise.
380
381 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
382 $(SYSTEM_H).
383 (cc1-checksum.o): Likewise.
384
385 2009-06-03 Steve Ellcey <sje@cup.hp.com>
386
387 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
388
389 2009-06-03 Jakub Jelinek <jakub@redhat.com>
390
391 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
392 insn if it is changing sp. Use gen_add3_insn instead of
393 conditionally gen_addsi3 and gen_adddi3.
394 (offset_below_red_zone_p): New static inline function.
395 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
396 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
397 * config/rs6000/ppc-asm.h: Include auto-host.h.
398 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
399 CFI_RESTORE): Define.
400 * config/rs6000/crtresxgpr.asm: Add unwind info.
401 * config/rs6000/crtresxfpr.asm: Likewise.
402 * config/rs6000/crtresgpr.asm: Likewise.
403 * config/rs6000/crtresfpr.asm: Likewise.
404 * config/rs6000/crtsavgpr.asm: Likewise.
405 * config/rs6000/crtsavfpr.asm: Likewise.
406
407 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
408 0 to second argument of DWARF2_FRAME_REG_OUT macros.
409
410 2009-06-03 Julian Brown <julian@codesourcery.com>
411
412 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
413 words or less (including TImode) in core registers.
414
415 2009-06-03 Richard Guenther <rguenther@suse.de>
416
417 PR middle-end/40328
418 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
419
420 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
421
422 * statistics.c (statistics_counter_event): Do not record event
423 in pass dump if its number == -1.
424 (curr_statistics_hash): Add assert that we never get passes
425 with static number == -1.
426
427 2009-06-03 Richard Guenther <rguenther@suse.de>
428 Andrey Belevantsev <abel@ispras.ru>
429
430 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
431 non-BLKmode arrays addressable.
432
433 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
434
435 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
436 * config/m68k/m68k.h: ... here.
437 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
438 m68k and fido.
439
440 2009-06-03 Martin Jambor <mjambor@suse.cz>
441
442 PR tree-optimization/40323
443 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
444 assignment.
445
446 2009-06-03 Richard Guenther <rguenther@suse.de>
447
448 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
449 consistently.
450
451 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
452
453 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
454 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
455 JUMP_TABLE_DATA_P where applicable.
456 * config/sh/sh.c: Ditto.
457 * config/sh/sh.h: Ditto.
458 * config/sh/sh.md: Ditto.
459 * config/sh/symbian.c: Ditto.
460
461 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
462
463 * config/i386/driver-i386.c (describe_cache): Optimize
464 concatenation of strings. Use snprintf instead of sprintf.
465 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
466 target when not compiling with GCC.
467
468 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
469
470 * config/sh/sh.c: Revert last change.
471 (sh_expand_epilogue): Emit a blockage insn before the frame
472 pointer adjustment unconditionally.
473
474 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
475
476 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
477 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
478 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
479 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
480 to COLLECT_GCC_OPTIONS.
481
482 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
483
484 * collect2.c (target_system_root): New variable.
485 (main): Handle --sysroot=.
486 (ignore_library): Strip the sysroot from the library path.
487
488 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
489
490 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
491 (collect2.o): Depend on collect2-aix.h.
492 (collect2-aix.o): New rule.
493 * collect2-aix.h: New file.
494 * collect2-aix.c: Likewise.
495 * collect2.c: Include collect2-aix.h. Don't undefine
496 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
497 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
498 Use TARGET_AIX_VERSION instead of _AIX51.
499 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
500 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
501 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
502 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
503 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
504
505 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
506
507 * collect2.c (ignore_library): Avoid premature post-increment
508 and null deference.
509
510 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
511
512 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
513 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
514 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
515 CROSS_DIRECTORY_STRUCTURE too.
516 (LINK_LIBG_SPEC): Likewise.
517 (LIB_SPEC): Add %R to sysroot paths.
518 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
519 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
520 * config/rs6000/aix51.h: As for aix43.h.
521 * config/rs6000/aix52.h: Likewise.
522 * config/rs6000/aix53.h: Likewise.
523 * config/rs6000/aix61.h: Likewise.
524 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
525 to the beginning of sysroot paths.
526
527 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
528
529 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
530 INSN_LISTs that are out of the REG_NOTE range.
531
532 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
533
534 * loop-unroll.c (struct iv_to_split): Add pointer to next.
535 (struct var_to_expand): Likewise.
536 (struct opt_info): Add head and tail for linked lists of the above.
537 (analyze_insn_to_expand_var): Initialize next.
538 (analyze_iv_to_split_insn): Likewise.
539 (analyze_insns_in_loop): Create linked lists.
540 (allocate_basic_variable): Simplify for use without hash table.
541 (insert_var_expansion_initialization): Likewise, make it type-safer.
542 (combine_var_copies_in_loop_exit): Likewise.
543 (apply_opt_in_copies): Walk lists rather than hash tables.
544 (release_var_copies): Simplified and inlined by hand into...
545 (free_opt_info): ... this function.
546
547 2009-06-02 Richard Guenther <rguenther@suse.de>
548
549 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
550 for field decls.
551
552 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
553
554 * cfgexpand.c (gimple_expand_cfg): Discard the source location
555 only for builtins that are not overridden.
556
557 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
558
559 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
560 label string.
561
562 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
563
564 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
565
566 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
567
568 * combine.c (move_deaths): Compare LUIDs within the same BB only.
569
570 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
571
572 * common.opt (fdump-unnumbered-links): New.
573 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
574 * print-rtl.c (flag_dump_unnumbered_links): New.
575 (print_rtx): Test it.
576
577 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
578
579 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
580 push/pop multiple to 8-byte alignment.
581
582 2009-06-01 Jakub Jelinek <jakub@redhat.com>
583
584 * config/i386/i386.c (queued_cfa_restores): New static variable.
585 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
586 functions.
587 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
588 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
589 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
590 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
591 note unconditionally.
592 (ix86_emit_restore_regs_using_mov): Likewise.
593 (ix86_emit_restore_sse_regs_using_mov): Likewise.
594 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
595 it through to ix86_emit_restore_reg_using_pop.
596 (ix86_emit_leave): Add RED_OFFSET argument. Call
597 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
598 instead of adding REG_CFA_OFFSET note unconditionally.
599 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
600 the above functions. Call ix86_add_queued_cfa_restore_notes when
601 needed.
602
603 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
604 force output of the label even for dwarf2out_do_cfi_asm.
605 (add_fde_cfi): If -g2 and above and cfi might change CFA,
606 force creation of CFI label and chain DW_CFA_set_loc jumping to it
607 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
608 caller.
609 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
610 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
611 dwarf2out_cfi_label callers.
612 * tree.h (dwarf2out_cfi_label): Adjust prototype.
613 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
614 Adjust dwarf2out_cfi_label callers.
615 * config/vax/vax.c (vax_output_function_prologue): Likewise.
616
617 * config/i386/i386.h (struct machine_cfa_state,
618 struct machine_function): Guard with ifndef USED_FOR_TARGET
619 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
620
621 PR other/40024
622 * emutls.c (__emutls_get_address): Change arr->size to mean number
623 of allocated arr->data entries instead of # of slots + 1.
624
625 PR middle-end/40316
626 * recog.c (peep2_reinit_state): New function.
627 (peephole2_init_state): Use it at the end of a basic block and also
628 when seeing a RTX_FRAME_RELATED_P insn.
629
630 2009-06-01 Steve Ellcey <sje@cup.hp.com>
631
632 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
633 fixuns_truncrfdi2): New.
634 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
635 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
636 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
637 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
638 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
639 *recip_approx): Remove.
640 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
641 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
642 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
643 move to div.md.
644 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
645 setf_exp_rf): New.
646
647 2009-06-01 Ian Lance Taylor <iant@google.com>
648
649 * attribs.c (register_attribute): Use CONST_CAST.
650 * collect2.c (main): Use CONST_CAST2.
651 (scan_prog_file): Likewise.
652 * gcc.c (process_command, main): Likewise.
653 * toplev.c (toplev_main): Likewise.
654
655 * c-typeck.c (handle_warn_cast_qual): New static function,
656 partially broken out of build_c_cast.
657 (build_c_cast): Call handle_warn_cast_qual.
658 * doc/invoke.texi (Warning Options): Document new effect of
659 -Wcast-qual.
660
661 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
662
663 * diagnostic.c (diagnostic_build_prefix): Always print columns.
664 (diagnostic_report_current_module): Print columns.
665 * common.opt (flag_show_column): Enable by default.
666
667 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
668
669 * alias.c (find_base_term): Check for NULL term before returning.
670
671 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
672
673 Revert due to PR40320:
674 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
675 * calls.c (emit_library_call_value_1): Don't force_operand for move
676 and push insns.
677
678 2009-06-01 Olivier Hainque <hainque@adacore.com>
679 Eric Botcazou <ebotcazou@adacore.com>
680
681 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
682 to be processed as a bitfield for constructor output purposes.
683 * output.h (initializer_constant_valid_for_bitfield_p): Declare
684 new function.
685 * varasm.c (oc_local_state): New type, output_constructor
686 local state to support communication with helpers.
687 (oc_outer_state): New type, output_constructor outer state of
688 relevance in recursive calls.
689 (output_constructor_array_range): New output_constructor helper,
690 extracted code for an array range element.
691 (output_constructor_regular_field): New output_constructor helper,
692 extracted code for an element that is not a bitfield.
693 (output_constructor_bitfield): New output_constructor helper,
694 extracted code for a bitfield element. Accept an OUTER state
695 argument for recursive processing. Recurse on record or array
696 CONSTRUCTOR values, possibly past noop conversions.
697 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
698 VALUE is a valid constant-valued expression for use in a static
699 bit-field initializer.
700 (output_constructor): Rework to use helpers. Accept and honor an
701 OUTER state argument for recursive calls. Return total size. Be
702 prepared for nested constructors initializing bitfields.
703 (output_constant): Feed OUTER in calls to output_constructor.
704
705 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
706
707 * calls.c (emit_library_call_value_1): Don't force_operand for move
708 and push insns.
709
710 2009-06-01 Nick Clifton <nickc@redhat.com>
711
712 * doc/invoke.texi (IA-64 Options): Fix typo.
713
714 2009-06-01 Ira Rosen <irar@il.ibm.com>
715
716 PR tree-optimization/39129
717 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
718 printed message.
719 (vect_do_peeling_for_loop_bound): Use
720 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
721 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
722 (vect_loop_versioning): Likewise.
723 (vect_create_cond_for_alias_checks): Fix indentation.
724 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
725 macros.
726 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
727 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
728 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
729 "control flow in loop".
730 (vect_estimate_min_profitable_iters): Use
731 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
732 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
733 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
734 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
735 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
736 statement belongs to a group of strided accesses with the exact code
737 check.
738 (vectorizable_load): Likewise.
739 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
740 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
741
742 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
743
744 * config/freebsd-stdint.h: New file.
745 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
746 Add freebsd-stdint.h to tm_file.
747
748 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
749
750 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
751 (thumb2_extendhidi2): Likewise.
752
753 2009-05-31 Ian Lance Taylor <iant@google.com>
754
755 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
756
757 2009-05-31 Ian Lance Taylor <iant@google.com>
758
759 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
760 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
761 (ipa-reference.o): Depend upon gt-ipa-reference.h.
762
763 2009-05-31 Jason Merrill <jason@redhat.com>
764
765 * tree-pretty-print.c (print_call_name): Take the callee, not the
766 call itself. Make non-static. Use dump_function_name for functions.
767 (dump_generic_node): Adjust.
768 * diagnostic.h: Declare print_call_name.
769 * gimple-pretty-print.c (dump_gimple_call): Use it.
770
771 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
772
773 * config/sh/sh.md (ashldi3_std): New define_expand.
774 (ashldi3): Use it.
775
776 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
777
778 PR target/40313
779 * config/sh/sh.c: Include debug.h.
780 (sh_expand_epilogue): Emit a blockage insn before the frame
781 pointer adjustment also when dwarf2out_do_frame returns true.
782
783 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
784
785 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
786 (thumb2_extendqidi2): New pattern.
787
788 2009-05-31 Ira Rosen <irar@il.ibm.com>
789
790 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
791 mark phis for renaming.
792 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
793 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
794 Call mark_sym_for_renaming.
795 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
796 * tree-vect-loop.c (vect_transform_loop): Remove
797 vect_memsyms_to_rename initialization and a call to
798 mark_set_for_renaming.
799
800 2009-05-31 Jakub Jelinek <jakub@redhat.com>
801
802 PR middle-end/40304
803 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
804 frame related even if !set_cfa && style < 0.
805
806 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
807
808 * config/i386/mingw-tls.c: New file.
809 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
810 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
811 defining _WIN32 but not __CYGWIN__.
812
813 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
814
815 * configure.ac: Add MPC support.
816
817 * config.in, configure: Regenerate.
818
819 2009-05-29 Richard Henderson <rth@redhat.com>
820
821 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
822 NOTE_INSN_BASIC_BLOCK.
823 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
824 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
825 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
826 to be deleted.
827 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
828 add in_use field.
829 (add_cfi): Disable check redefining cfa away from drap.
830 (lookup_cfa_1): Add remember argument; handle remember/restore.
831 (lookup_cfa): Pass remember argument.
832 (cfa_remember): New.
833 (compute_barrier_args_size_1): Remove sibcall check.
834 (dwarf2out_frame_debug_def_cfa): New.
835 (dwarf2out_frame_debug_adjust_cfa): New.
836 (dwarf2out_frame_debug_cfa_offset): New.
837 (dwarf2out_frame_debug_cfa_register): New.
838 (dwarf2out_frame_debug_cfa_restore): New.
839 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
840 (dwarf2out_begin_epilogue): New.
841 (dwarf2out_frame_debug_restore_state): New.
842 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
843 DW_CFA_restore_state.
844 (output_cfi_directive): Likewise.
845 (convert_cfa_to_fb_loc_list): Likewise.
846 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
847 * dwarf2out.h: Update.
848 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
849 (copy_insn_1): Early out for null.
850 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
851 and dwarf2out_frame_debug_restore_state.
852 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
853 (prologue_insn_hash, epilogue_insn_hash): New.
854 (free_after_compilation): Adjust freeing accordingly.
855 (record_insns): Create hash table if needed; push insns into
856 hash instead of array.
857 (maybe_copy_epilogue_insn): New.
858 (contains): Search hash table instead of array.
859 (sibcall_epilogue_contains): Remove.
860 (thread_prologue_and_epilogue_insns): Split eh_return insns
861 and mark them as epilogues.
862 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
863 scanning in terms of basic blocks.
864 * insn-notes.def (CFA_RESTORE_STATE): New.
865 * jump.c (returnjump_p_1): Accept EH_RETURN.
866 (eh_returnjump_p_1, eh_returnjump_p): New.
867 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
868 CFA_REGISTER, CFA_RESTORE): New.
869 * rtl.def (EH_RETURN): New.
870 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
871
872 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
873 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
874
875 * config/i386/i386.c (gen_push): Update cfa state.
876 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
877 add a CFA_ADJUST_CFA note.
878 (ix86_dwarf_handle_frame_unspec): Remove.
879 (ix86_expand_prologue): Update cfa state.
880 (ix86_emit_restore_reg_using_pop): New.
881 (ix86_emit_restore_regs_using_pop): New.
882 (ix86_emit_leave): New.
883 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
884 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
885 * config/i386/i386.h (struct machine_cfa_state): New.
886 (ix86_cfa_state): New.
887 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
888 (eh_return_internal): Merge from eh_return_<mode>,
889 use eh_return rtx, split w/ epilogue.
890
891 2009-05-29 Ian Lance Taylor <iant@google.com>
892
893 * builtins.c (validate_gimple_arglist): Don't use va_arg with
894 enum type.
895 * calls.c (emit_library_call_value_1): Likewise.
896
897 * c-typeck.c (c_build_va_arg): New function.
898 * c-tree.h (c_build_va_arg): Declare.
899 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
900 instead of build_va_arg.
901
902 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
903
904 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
905 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
906 (ptr_difference_cost): Use affine combinations to compute it.
907 (difference_cost): Likewise.
908 (get_computation_cost_at): Compute more accurate cost for addresses
909 if the ratio is a multiplier allowed in addresses.
910 For non-addresses, consider that an additional offset or symbol is
911 added only once.
912
913 2009-05-29 Jakub Jelinek <jakub@redhat.com>
914
915 * config/i386/i386.c (ix86_decompose_address): Avoid useless
916 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
917
918 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
919 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
920 (prefix_rex): For UNIT_MMX don't imply the prefix by default
921 if MODE_DI.
922 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
923 to 1 for TYPE_SSE{IADD1,CVT1}.
924 (prefix_vex_imm8): Removed.
925 (length_vex): Only pass 1 as second argument to
926 ix86_attr_length_vex_default if prefix_extra is 0.
927 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
928 (length): For prefix vex computation use length_immediate
929 attribute instead of prefix_vex_imm8.
930 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
931 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
932 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
933 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
934 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
935 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
936 a space in between the operands.
937 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
938 if one operand is 0xff and the other one si, di, bp or sp.
939 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
940 other one si, di, bp or sp.
941 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
942 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
943 type and mode attributes.
944 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
945 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
946 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
947 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
948 prefix_data16 attribute iff MODE_DF.
949 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
950 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
951 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
952 constm128_operand in length_immediate computation.
953 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
954 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
955 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
956 length_immediate attribute to 1.
957 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
958 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
959 for certain alternatives.
960 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
961 prefix_data16 attribute if MODE_V1DF.
962 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
963 length_immediate to 1.
964 (set_got_rex64, set_rip_rex64): Remove length attribute, set
965 length_address to 4, set mode attribute to MODE_DI.
966 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
967 (fxam<mode>2_i387): Set length attribute to 4.
968 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
969 *prefetch_3dnow_rex): Override length_address attribute.
970 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
971 attributes.
972 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
973 (constm128_operand): Removed.
974 * config/i386/i386.c (memory_address_length): For
975 disp && !index && !base in 64-bit mode account for SIB byte if
976 print_operand_address can't optimize disp32 into disp32(%rip)
977 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
978 for fs: or gs: segment.
979 (ix86_attr_length_immediate_default): When checking if shortform
980 is possible, truncate immediate to the length of the non-shortened
981 immediate.
982 (ix86_attr_length_address_default): Ignore MEM_P operands
983 with X constraint.
984 (ix86_attr_length_vex_default): Only check for DImode on
985 GENERAL_REG_P operands.
986 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
987 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
988 (sse_cvttps2pi): Clear prefix_rep attribute.
989 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
990 attribute.
991 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
992 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
993 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
994 iff operand 2 is const_int_operand.
995 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
996 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
997 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
998 instead of vex.
999 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1000 prefix_data16.
1001 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1002 prefix_data16 attribute for movlpd and movhpd instructions.
1003 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1004 length_immediate for shufpd instruction.
1005 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1006 (avx_cmpp<avxmodesuffixf2c><mode>3,
1007 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1008 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1009 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
1010 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
1011 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1012 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1013 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1014 prefix_data16 attribute for the first alternative to 1.
1015 (*avx_loadlps): Override length_immediate for the first alternative.
1016 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1017 attributes for second alternative.
1018 (*vec_concatv2sf_sse4_1): Override length_immediate and
1019 prefix_data16 attributes for second alternative.
1020 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1021 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1022 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1023 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1024 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1025 prefix_data16 and length_immediate to 1.
1026 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1027 to 1.
1028 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
1029 prefix_extra attribute for variants that don't have 0f prefix alone.
1030 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1031 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1032 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1033 *sse4_1_pextrd): Set length_immediate to 1.
1034 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1035 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1036 to 1.
1037 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1038 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1039 length_immediate to 1 for second alternative.
1040 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1041 prefix_extra and length_immediate attributes for the first
1042 alternative.
1043 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1044 first alternative.
1045 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1046 to 1 for the first and third alternative.
1047 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1048 alternative.
1049 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1050 attribute.
1051 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1052 attribute to 0.
1053 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1054 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1055 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1056 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1057 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1058 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1059 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1060 ssse3_psign<mode>3): Override prefix_rex attribute.
1061 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
1062 (ssse3_palignrti): Override length_immediate to 1.
1063 (ssse3_palignrdi): Override length_immediate to 1, override
1064 prefix_rex attribute.
1065 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
1066 (sse4a_extrqi): Override length_immediate to 2.
1067 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1068 (sse4a_insertq): Override prefix_data16 to 0.
1069 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1070 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1071 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1072 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1073 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1074 and length_immediate to 1.
1075 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1076 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1077 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1078 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1079 and length_immediate to 1.
1080 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1081 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1082 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1083 avx_ptest256): Override prefix_extra to 1.
1084 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1085 Override prefix_data16 and length_immediate to 1.
1086 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1087 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1088 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1089 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1090 prefix_data16 to 0 and prefix_extra to 2.
1091 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1092 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1093 attribute.
1094 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1095 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1096 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1097 and prefix_extra to 2.
1098 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1099 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1100 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1101 avx_vpermilvar<mode>3,
1102 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1103 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1104 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1105 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1106 Override prefix_extra to 1.
1107 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1108 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1109 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1110 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1111 prefix_extra and length_immediate to 1.
1112 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1113 modrm to 0.
1114 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1115 to 1 for the first alternative.
1116 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1117 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1118 cases.
1119 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1120 *movv2sf_internal_avx, *movv2sf_internal): Override
1121 prefix_rep attribute for certain alternatives.
1122 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1123 attributes for certain alternatives.
1124 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1125 attributes for certain alternatives.
1126 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1127 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1128 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1129 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1130 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1131 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1132 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1133 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1134 length_immediate to 1 if operand 2 is const_int_operand.
1135 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
1136 *vec_extractv2si_1): Set length_immediate attribute to 1.
1137 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1138 using old 3DNOW insn rather than SSE/3DNOW_A.
1139 (mmx_emms, mmx_femms): Clear modrm attribute.
1140
1141 2009-05-29 Martin Jambor <mjambor@suse.cz>
1142
1143 * tree-sra.c: New implementation of SRA.
1144
1145 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1146 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1147 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1148 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1149 (SRA_MAX_STRUCTURE_COUNT): Removed.
1150 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1151 * doc/invoke.texi (sra-max-structure-size): Removed.
1152 (sra-field-structure-ratio): Removed.
1153
1154 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR middle-end/40291
1157 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1158 before expansion.
1159
1160 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
1161
1162 PR rtl-optimization/40101
1163 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1164 seqno. Adjust comment.
1165 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1166 inserting bookkeeping before a jump, the jump is not scheduled.
1167 When no positive seqno found, provide a value. Add comment.
1168
1169 2009-05-29 Richard Guenther <rguenther@suse.de>
1170
1171 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1172 short-cutting on the first component.
1173
1174 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1175
1176 PR middle-end/39958
1177 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1178 for trees other than decls/types.
1179
1180 2009-05-29 Richard Guenther <rguenther@suse.de>
1181
1182 * tree-ssa-operands.c (get_expr_operands): Do not handle
1183 INDIRECT_REFs in the handled-component case. Remove
1184 unused get_ref_base_and_extent case.
1185 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1186 tree_low_cst and host_integerp where possible.
1187 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1188 codes for equivalence.
1189 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1190
1191 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1192
1193 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1194 to tmake_file for i[34567]86-*-cygwin*.
1195
1196 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1197
1198 PR target/40017
1199 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1200 (altivec_categorize_keyword, init_vector_keywords,
1201 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1202 similar to bool.
1203
1204 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
1205
1206 * tree.c (handle_dll_attribute): Check if node is
1207 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1208
1209 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
1210
1211 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1212 component.
1213 (thumb2_zero_extendqidi2): Likewise.
1214
1215 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1216
1217 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1218 instead of gen_movrt.
1219 * config/sh/sh.md (movrt): Remove.
1220
1221 2009-05-28 Steve Ellcey <sje@cup.hp.com>
1222
1223 * doc/invoke.texi (IA-64 Options):
1224 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1225 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1226 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1227 -msched-prefer-non-control-spec-insns,
1228 -msched-stop-bits-after-every-cycle,
1229 -msched-count-spec-in-critical-path,
1230 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
1231 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
1232 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1233 and -msched-spec-verbose.
1234
1235 2009-05-28 Joseph Myers <joseph@codesourcery.com>
1236
1237 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
1238 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1239 error if used.
1240 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1241
1242 2009-05-28 Richard Guenther <rguenther@suse.de>
1243
1244 * tree-ssa-alias.c (ao_ref_init): New function.
1245 (ao_ref_base): Likewise.
1246 (ao_ref_base_alias_set): Likewise.
1247 (ao_ref_alias_set): Likewise.
1248 (refs_may_alias_p_1): Change signature.
1249 (refs_may_alias_p): Adjust.
1250 (refs_anti_dependent_p): Likewise.
1251 (refs_output_dependent_p): Likewise.
1252 (call_may_clobber_ref_p_1): Change signature.
1253 (call_may_clobber_ref_p): Adjust.
1254 (stmt_may_clobber_ref_p_1): New function split out from ...
1255 (stmt_may_clobber_ref_p): ... here.
1256 (maybe_skip_until): Adjust signature.
1257 (get_continuation_for_phi): Likewise.
1258 (walk_non_aliased_vuses): Likewise.
1259 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1260 (ao_ref_init): Declare.
1261 (ao_ref_base): Likewise.
1262 (ao_ref_alias_set): Likewise.
1263 (stmt_may_clobber_ref_p_1): Likewise.
1264 (walk_non_aliased_vuses): Adjust.
1265 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1266 (get_ref_from_reference_ops): remove.
1267 (vn_reference_lookup_2): Adjust signature.
1268 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
1269 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
1270 (vn_reference_lookup): Adjust.
1271 (vn_reference_insert): Likewise.
1272 (vn_reference_insert_pieces): Adjust signature.
1273 (visit_reference_op_call): Adjust.
1274 * tree-ssa-pre.c (get_expr_type): Simplify.
1275 (phi_translate_1): Adjust.
1276 (compute_avail): Likewise.
1277 (translate_vuse_through_block): Do not re-build trees.
1278 (value_dies_in_block_x): Likewise.
1279 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1280 fields.
1281 (vn_reference_lookup_pieces): Adjust declaration.
1282 (vn_reference_insert_pieces): Likewise.
1283
1284 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1285
1286 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1287 with checking disabled.
1288
1289 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1290
1291 PR target/37216
1292
1293 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1294 macro definition for support of three-operand format aligned
1295 .comm directive in assembler on cygwin/pe/mingw target OS.
1296 * configure: Regenerate.
1297 * config.h: Regenerate.
1298
1299 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1300 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1301 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1302
1303 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1304 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1305
1306 2009-05-28 Ira Rosen <irar@il.ibm.com>
1307
1308 PR tree-optimization/40254
1309 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1310 in analysis of basic blocks.
1311
1312 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1313
1314 PR middle-end/33699
1315 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
1316 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1317 (TARGET_INITIALIZER): Use it.
1318 * cse.c (CHEAPER): Move it up to the other macros.
1319 (insert): Rename this ...
1320 (insert_with_costs): ... to this. Add cost parameters. Update
1321 function comment.
1322 (insert): New function. Call insert_with_costs.
1323 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1324 find_reg_offset_for_const, try_const_anchors): New functions.
1325 (cse_insn): Call try_const_anchors. Adjust cost of src_related
1326 when using a const-anchor. Call insert_const_anchors.
1327 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
1328 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1329
1330 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
1331
1332 * tree-inline.c (remap_decls): Enable nonlocalized variables
1333 when not optimizing.
1334
1335 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
1336
1337 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1338 Simplify other tests involving optimize.
1339
1340 2009-05-27 Tom Tromey <tromey@redhat.com>
1341
1342 * unwind-dw2.c (_Unwind_DebugHook): New function.
1343 (uw_install_context): Call _Unwind_DebugHook.
1344
1345 2009-05-27 Tom Tromey <tromey@redhat.com>
1346
1347 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1348
1349 2009-05-27 Ian Lance Taylor <iant@google.com>
1350
1351 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1352 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1353 (ALL_LINKERFLAGS): Define.
1354 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1355 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1356 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1357 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1358 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1359 $(LINKER_FOR_BUILD).
1360 (build/gcov-iov$(build_exeext)): Likewise.
1361
1362 2009-05-27 Julian Brown <julian@codesourcery.com>
1363
1364 * gcse.c (target.h): Include.
1365 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1366 copy of argument to a pseudo register.
1367
1368 2009-05-27 Diego Novillo <dnovillo@google.com>
1369
1370 * tree-ssa-live.c (dump_scope_block): Document arguments.
1371 (dump_scope_blocks): Document.
1372 (debug_scope_blocks): New.
1373 * tree-flow.h (debug_scope_blocks): Declare.
1374
1375 2009-05-21 Denis Chertykov <denisc@overta.ru>
1376
1377 * doc/contrib.texi (Contributors): Add myself to the list.
1378
1379 2009-05-27 Olivier Hainque <hainque@adacore.com>
1380
1381 * expr.c (target_align): New function. Alignment the TARGET of an
1382 assignment may be assume to have.
1383 (highest_pow2_factor_for_target): Use it instead of relying on
1384 immediate tree attributes of TARGET, not necessarily honored when
1385 intermediate bitfields are involved.
1386
1387 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
1388
1389 PR target/40266
1390 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1391 AVX, SSE4, AES, PCLMUL and POPCNT.
1392
1393 2009-05-27 Diego Novillo <dnovillo@google.com>
1394
1395 * tree-pretty-print.c (dump_location): New.
1396 (dump_generic_node): Call it.
1397 Factor code to handle BLOCK nodes ...
1398 (dump_block_node): ... here.
1399
1400 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
1401
1402 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1403 with it.
1404 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1405 included.
1406 * gcc-plugin.h: Include config.h and system.h.
1407 (IN_GCC): Define if not defined.
1408
1409 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
1410
1411 PR middle-end/40249
1412 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1413 with -fno-inline.
1414
1415 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
1416
1417 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1418 applicable.
1419 * config/m32r/m32r.h: Ditto.
1420 * config/m32r/m32r.md: Ditto.
1421 * config/m32r/predicates.md: Ditto.
1422
1423 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
1424
1425 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1426
1427 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
1428
1429 * doc/plugins.texi
1430 (Loading plugins): typo.
1431 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1432 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1433 (Interacting with the GCC Garbage Collector): Added new section.
1434 (Giving information about a plugin): Added new section for
1435 PLUGIN_INFO.
1436 * ggc.h (ggc_register_root_tab): Added declaration.
1437 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1438 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1439 (register_callback): Improved comment in declaration.
1440 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1441 (extra_root_vec) Added static variable for dynamic roots registration.
1442 (ggc_register_root_tab) Added new routine.
1443 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1444 PLUGIN_GGC_MARKING event.
1445 * ggc-zone.c: Include plugin.h.
1446 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1447 * ggc-page.c: Include plugin.h.
1448 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1449 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1450 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1451 (register_callback): check lack of callbacks for
1452 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1453 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1454 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1455 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1456 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1457 dependency on plugin.h.
1458 (plugin.o): Added dependency on ggc.h...
1459
1460 2009-05-26 Richard Guenther <rguenther@suse.de>
1461
1462 PR middle-end/40248
1463 Revert
1464 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1465 with mismatched comparison modes.
1466
1467 * expr.c (expand_expr_real_1): Expand the operand of a
1468 VIEW_CONVERT_EXPR in its natural mode.
1469
1470 2009-05-26 Ian Lance Taylor <iant@google.com>
1471
1472 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1473 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1474 (ALL_COMPILERFLAGS): Define.
1475 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1476 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1477 (collect2$(exeext), collect2.o): Likewise.
1478 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1479 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1480 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1481 (libbackend.o, intl.o, cppdefault.o): Likewise.
1482 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1483 (build/%.o): Use $(COMPILER_FOR_BUILD).
1484 (build/gen%$(build_exeext)): Likewise.
1485 (build/gcov-iov$(build_exeext)): LIkewise.
1486 * config/t-darwin (darwin.o): Use $(COMPILER).
1487 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1488 * config/t-sol2 (sol2-c.o): Likewise.
1489 (sol2.o): Likewise.
1490 * config/t-vxworks (vxworks.o): Likewise.
1491 * config/x-darwin (host-darwin.o): Likewise.
1492 * config/x-hpux (host-hpux.o): Likewise.
1493 * config/x-linux (host-linux.o): Likewise.
1494 * config/x-solaris (host-solaris.o): Likewise.
1495 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1496 * config/arm/t-arm (arm-c.o): Likewise.
1497 * config/arm/t-pe (pe.o): Likewise.
1498 * config/arm/t-wince-pe (pe.o): Likewise.
1499 * config/i386/t-cygming (winnt.o): Likewise.
1500 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1501 * config/i386/t-cygwin (cygwin1.o): Likewise.
1502 (cygwin2.o): Likewise.
1503 * config/i386/t-i386 (i386-c.o): Likewise.
1504 * config/i386/t-interix (winnt.o): Likewise.
1505 * config/i386/t-netware (netware.o): Likewise.
1506 * config/i386/t-nwld (nwld.o): Likewise.
1507 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1508 * config/i386/x-i386 (driver-i386.o): Likewise.
1509 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1510 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1511 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1512 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1513 * config/mips/x-native (driver-native.o): Likewise.
1514 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1515 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1516 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1517 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1518 * config/score/t-score-elf (score7.o): Likewise.
1519 (score3.o): Likewise.
1520 * config/sh/t-sh (sh-c.o): Likewise.
1521 * config/sh/t-symbian (sh-c.o): Likewise.
1522 (symbian.o): Likewise.
1523 * config/spu/t-spu-elf (spu-c.o): Likewise.
1524 * config/v850/t-v850 (v850-c.o): Likewise.
1525 * config/v850/t-v850e (v850-c.o): Likewise.
1526
1527 2009-05-26 Richard Guenther <rguenther@suse.de>
1528
1529 PR tree-optimization/40122
1530 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1531 VECTOR_CSTs if possible.
1532 (fold_gimple_assign): Likewise.
1533
1534 2009-05-26 Richard Guenther <rguenther@suse.de>
1535
1536 PR middle-end/40252
1537 * fold-const.c (fold_binary): Use the correct types for building
1538 rotates.
1539
1540 2009-05-26 Richard Guenther <rguenther@suse.de>
1541
1542 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1543 redundant calls to merge_alias_info.
1544 (bump_vector_ptr): Likewise.
1545 * tree-ssa-copy.c (merge_alias_info): Remove.
1546 (replace_exp_1): Remove call to merge_alias_info.
1547 (propagate_tree_value): Likewise.
1548 (fini_copy_prop): Propagate points-to info.
1549 * tree-flow.h (merge_alias_info): Remove.
1550
1551 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1552
1553 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1554
1555 2009-05-25 Jan Hubicka <jh@suse.cz>
1556
1557 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1558 * cgraph.h (struct inline_summary): New filed self_wize,
1559 size_inlining_benefit, self_time and time_inlining_benefit.
1560 (struct cgraph_global_info): Replace insns by time ans size fields.
1561 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1562 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1563 (ipcp_update_callgraph): Do not touch function bodies.
1564 * ipa-inline.c: Include except.h
1565 (MAX_TIME): New constant.
1566 (overall_insns): Remove.
1567 (leaf_node_p): New.
1568 (overall_size, max_benefit): New static variables.
1569 (cgraph_estimate_time_after_inlining): New function.
1570 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1571 (cgraph_clone_inlined_nodes): Update size.
1572 (cgraph_mark_inline_edge): Update size.
1573 (cgraph_estimate_growth): Use size info.
1574 (cgraph_check_inline_limits): Check size.
1575 (cgraph_default_inline_p): Likewise.
1576 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1577 (cgraph_decide_recursive_inlining): Check size.
1578 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1579 and times.
1580 (cgraph_decide_inlining): Likewise.
1581 (cgraph_decide_inlining_incrementally): Likewise; honor
1582 PARAM_EARLY_INLINING_INSNS.
1583 (likely_eliminated_by_inlining_p): New predicate.
1584 (estimate_function_body_sizes): New function.
1585 (compute_inline_parameters): Use it.
1586 * except.c (must_not_throw_labels): New function.
1587 * except.h (must_not_throw_labels): Declare.
1588 * tree-inline.c (init_inline_once): Kill inlining_weigths
1589 * tree-ssa-structalias.c: Avoid uninitialized warning.
1590 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1591 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1592 (PARAM_INLINE_CALL_COST): Remove.
1593 (PARAM_EARLY_INLINING_INSNS): New.
1594
1595 2009-05-25 Richard Guenther <rguenther@suse.de>
1596
1597 PR tree-optimization/36327
1598 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
1599 callback for reference translation or lookup at the point of may-defs.
1600 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1601 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1602 for union COMPONENT_REFs.
1603 (vn_reference_lookup_3): New callback. Lookup from memset
1604 and CONSTRUCTOR assignment, translate through struct copies.
1605 (vn_reference_lookup_pieces): Make sure to not free the
1606 passed operands array. Adjust walk_non_aliased_vuses call.
1607 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1608 make sure we do not leak memory.
1609
1610 2009-05-25 Richard Guenther <rguenther@suse.de>
1611
1612 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1613 * tree-inline.c (expand_call_inline): Reset the escaped and
1614 callused solutions.
1615 * tree-ssa-structalias.c (pass_build_ealias): New.
1616 * tree-pass.h (pass_build_ealias): Declare.
1617 * passes.c (init_optimization_passes): Add PTA during
1618 early optimizations.
1619 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1620 and CALLUSED solutions.
1621 (dump_points_to_solution): New function, split out from ...
1622 (dump_points_to_info_for): ... here.
1623 * tree-parloops.c (parallelize_loops): Reset the escaped and
1624 callused solutions.
1625
1626 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1627
1628 PR bootstrap/40027
1629 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1630 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1631
1632 2009-05-25 Ira Rosen <irar@il.ibm.com>
1633
1634 PR tree-optimization/40238
1635 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1636 statements after basic block's labels.
1637 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1638 to free the allocated memory.
1639
1640 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1641
1642 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1643 return address with a USE.
1644
1645 2009-05-24 Richard Guenther <rguenther@suse.de>
1646
1647 PR middle-end/40233
1648 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1649 array type from the main variant of the inner type.
1650
1651 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1652
1653 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1654 definition to bool (from int) to un-break build.
1655 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1656
1657 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
1658
1659 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1660 discard_stmt_changes): Delete.
1661 * tree-ssa-operands.c (scb_stack): Delete.
1662 (init_ssa_operands): Do not initialize it.
1663 (fini_ssa_operands): Do not free it.
1664 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1665
1666 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1667 update_stmt, remove the others. Fix comments.
1668 * tree-dfa.c (optimize_stack_restore): Likewise.
1669 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1670 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1671 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1672 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1673 Likewise.
1674 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1675 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1676 (dom_opt_finalize_block): Likewise, adjusting access to
1677 stmts_to_rescan.
1678 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1679 (stmts_to_rescan): Change item type to gimple.
1680 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1681
1682 2009-05-24 Ira Rosen <irar@il.ibm.com>
1683
1684 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1685 * tree-pass.h (pass_slp_vectorize): New pass.
1686 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1687 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1688 * tree-vectorizer.c (timevar.h): Include.
1689 (user_vect_verbosity_level): Declare.
1690 (vect_location): Fix comment.
1691 (vect_set_verbosity_level): Update user_vect_verbosity_level
1692 instead of vect_verbosity_level.
1693 (vect_set_dump_settings): Add an argument. Ignore user defined
1694 verbosity if dump flags require higher level of verbosity. Print to
1695 stderr only for loop vectorization.
1696 (vectorize_loops): Update call to vect_set_dump_settings.
1697 (execute_vect_slp): New function.
1698 (gate_vect_slp): Likewise.
1699 (struct gimple_opt_pass pass_slp_vectorize): New.
1700 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1701 access its members.
1702 (vec_info_for_bb): New function.
1703 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1704 (VECTORIZATION_ENABLED): New macro.
1705 (SLP_ENABLED, SLP_DISABLED): Likewise.
1706 (vect_is_simple_use): Add bb_vec_info argument.
1707 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1708 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1709 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1710 vect_schedule_slp, vect_analyze_slp): Likewise.
1711 (vect_analyze_stmt): Add slp_tree argument.
1712 (find_bb_location): Declare.
1713 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1714 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1715 (vect_analyze_loop_operations, vect_analyze_loop,
1716 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1717 vect_finalize_reduction, vectorizable_reduction,
1718 vectorizable_live_operation, vect_transform_loop): Likewise.
1719 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1720 skip evolution analysis if analyzing a basic block.
1721 (dr_analyze_indices): Likewise.
1722 (initialize_data_dependence_relation): Skip the test whether the
1723 object is invariant for basic blocks.
1724 (compute_all_dependences): Skip dependence analysis for data
1725 references in basic blocks.
1726 (find_data_references_in_stmt): Don't fail in case of invariant
1727 access in basic block.
1728 (find_data_references_in_bb): New function.
1729 (find_data_references_in_loop): Move code to
1730 find_data_references_in_bb and add a call to it.
1731 (compute_data_dependences_for_bb): New function.
1732 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1733 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1734 that STEP is 0.
1735 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1736 unknown dependence in basic block and fail in case of dependence in
1737 basic block.
1738 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1739 dependence instances from either loop or basic block vectorization
1740 info.
1741 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1742 before calling nested_in_vect_loop_p.
1743 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1744 dependence instances from either loop or basic block vectorization
1745 info.
1746 (vect_verify_datarefs_alignment): Likewise.
1747 (vect_enhance_data_refs_alignment): Adjust function calls.
1748 (vect_analyze_data_refs_alignment): Likewise.
1749 (vect_analyze_group_access): Fix printing. Skip different checks if
1750 DR_STEP is 0. Keep strided stores either in loop or basic block
1751 vectorization data structure. Fix indentation.
1752 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1753 basic blocks.
1754 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1755 dependence instances from either loop or basic block vectorization
1756 info.
1757 (vect_analyze_data_refs): Update comment. Call
1758 compute_data_dependences_for_bb to analyze basic blocks.
1759 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1760 case of loop vectorization. In case of basic block vectorization use
1761 data-ref itself as a base.
1762 (vect_create_data_ref_ptr): In case of basic block vectorization:
1763 don't advance the pointer, add new statements before the current
1764 statement. Adjust function calls.
1765 (vect_supportable_dr_alignment): Support only aligned accesses in
1766 basic block vectorization.
1767 * common.opt (ftree-slp-vectorize): New flag.
1768 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1769 (vect_pattern_recog_1): Likewise.
1770 * tree-vect-stmts.c (process_use): Likewise.
1771 (vect_init_vector): Add new statements in the beginning of the basic
1772 block in case of basic block SLP.
1773 (vect_get_vec_def_for_operand): Adjust function calls.
1774 (vect_finish_stmt_generation): Likewise.
1775 (vectorizable_call): Add assert that it is loop vectorization, adjust
1776 function calls.
1777 (vectorizable_conversion, vectorizable_assignment): Likewise.
1778 (vectorizable_operation): In case of basic block SLP, take
1779 vectorization factor from statement's type and skip the relevance
1780 check. Adjust function calls.
1781 (vectorizable_type_demotion): Add assert that it is loop
1782 vectorization, adjust function calls.
1783 (vectorizable_type_promotion): Likewise.
1784 (vectorizable_store): Check for outer loop only in case of loop
1785 vectorization. Adjust function calls. For basic blocks, skip the
1786 relevance check and don't advance pointers.
1787 (vectorizable_load): Likewise.
1788 (vectorizable_condition): Add assert that it is loop vectorization,
1789 adjust function calls.
1790 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1791 that it is not reduction, get vector type, call only supported
1792 functions, skip loop specific parts.
1793 (vect_transform_stmt): Check for outer loop only in case of loop
1794 vectorization.
1795 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1796 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1797 for external definition.
1798 * passes.c (pass_slp_vectorize): New pass.
1799 * tree-vect-slp.c (find_bb_location): New function.
1800 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1801 check for patterns only in loops.
1802 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1803 case of multiple types in basic block SLP.
1804 (vect_mark_slp_stmts_relevant): New function.
1805 (vect_supported_load_permutation_p): Fix comment.
1806 (vect_analyze_slp_instance): Add argument. In case of basic block
1807 SLP, take vectorization factor from statement's type, check that
1808 unrolling factor is 1. Adjust function call. Save SLP instance in
1809 either loop or basic block vectorization structure. Return FALSE,
1810 if SLP failed.
1811 (vect_analyze_slp): Add argument. Get strided stores groups from
1812 either loop or basic block vectorization structure. Return FALSE
1813 if basic block SLP failed.
1814 (new_bb_vec_info): New function.
1815 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1816 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1817 (vect_schedule_slp): Add argument. Get SLP instances from either
1818 loop or basic block vectorization structure. Set vectorization factor
1819 to be 1 for basic block SLP.
1820 (vect_slp_transform_bb): New function.
1821 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1822
1823 2009-05-23 Mark Mitchell <mark@codesourcery.com>
1824
1825 * final.c (shorten_branches): Do not align labels for jump tables.
1826 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1827
1828 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1829
1830 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1831 Remove outdated reference to flow.c and fix nits.
1832 * doc/gccint.texi: Tweak RTL description.
1833 * doc/rtl.texi: Likewise.
1834
1835 2009-05-23 Denis Chertykov <chertykov@gmail.com>
1836
1837 * config/avr/avr.c: Change my email address.
1838 * config/avr/avr.h: Likewise.
1839 * config/avr/avr.md: Likewise.
1840 * config/avr/avr-protos.h: Likewise.
1841 * config/avr/libgcc.S: Likewise.
1842
1843 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1844
1845 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1846 (spu_split_load, spu_split_store): Change return type to int.
1847 (spu_split_convert): Declare.
1848 * config/spu/predicates.md (spu_mem_operand): Remove.
1849 (spu_mov_operand): Update.
1850 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1851 * config/spu/spu.c (regno_aligned_for_load): Remove.
1852 (reg_aligned_for_addr, spu_expand_load): Define.
1853 (spu_expand_extv): Reimplement and handle MEM.
1854 (spu_expand_insv): Handle MEM.
1855 (spu_sched_reorder): Handle insn's with length 0.
1856 (spu_legitimate_address_p): Reimplement.
1857 (store_with_one_insn_p): Return TRUE for any mode with size
1858 larger than 16 bytes.
1859 (address_needs_split): Define.
1860 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1861 operands.
1862 (spu_convert_move): Define.
1863 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
1864 (spu_split_store): Change all MEM's to TImode.
1865 (spu_init_expanders): Preallocate registers that correspond to
1866 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1867 mark_reg_pointer.
1868 (spu_split_convert): Define.
1869 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1870 (_move<mode>, _movdi, _movti): Update predicate and condition.
1871 (load, store): Change to define_split.
1872 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1873 extend<mode>ti2.
1874 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1875 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1876 define_insn_and_split of lshr<mode>3.
1877 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1878 (<v>ashr<mode>3_imm): Define.
1879 (extv, extzv, insv): Allow MEM operands.
1880 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1881 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1882 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1883 (_spu_convert2): Change to define_insn_and_split and remove the
1884 corresponding define_peephole2.
1885 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1886 Change predicates to memory_operand.
1887
1888 2009-05-22 Mark Mitchell <mark@codesourcery.com>
1889
1890 * config/arm/thumb2.md: Add 16-bit multiply instructions.
1891
1892 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1893
1894 PR tree-optimization/40219
1895 * tree.c (iterative_hash_expr): Make sure the builtin function is
1896 a normal builtin function and not a front end or back end builtin
1897 before indexing into the built_in_decls array.
1898
1899 2009-05-22 Richard Guenther <rguenther@suse.de>
1900
1901 PR middle-end/38964
1902 * alias.c (write_dependence_p): Do not use TBAA for answering
1903 anti-dependence or output-dependence.
1904 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
1905 (emit_pointer_definition): Remove.
1906 (emit_alias_warning): Likewise.
1907 (find_what_var_points_to): Remove TBAA pruning code.
1908 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1909 violations.
1910 (compute_points_to_sets): Remove code computing the set of
1911 dereferenced pointers.
1912 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1913 oracle for querying anti and output dependencies.
1914 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1915 if TBAA may be applied.
1916 (refs_anti_dependent_p): New function.
1917 (refs_output_dependent_p): Likewise.
1918 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1919 (refs_output_dependent_p): Likewise.
1920 * doc/tree-ssa.texi (Memory model): New section.
1921 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1922 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1923 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1924 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1925 * expr.c (expand_expr_real_1): Likewise.
1926 * gimple-low.c (lower_stmt): Likewise.
1927 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1928 (dump_gimple_cdt): Remove.
1929 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1930 (gimple_size): Likewise.
1931 (walk_gimple_op): Likewise.
1932 (is_gimple_stmt): Likewise.
1933 (walk_stmt_load_store_addr_ops): Likewise.
1934 (gimple_build_cdt): Remove.
1935 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1936 * gimple.h (gimple_cdt_new_type): Remove.
1937 (gimple_cdt_new_type_ptr): Likewise.
1938 (gimple_cdt_set_new_type): Likewise.
1939 (gimple_cdt_location): Likewise.
1940 (gimple_cdt_location_ptr): Likewise.
1941 (gimple_cdt_set_location): Likewise.
1942 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1943 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1944 GIMPLE_CHANGE_DYNAMIC_TYPE.
1945 (verify_types_in_gimple_stmt): Likewise.
1946 * tree-inline.c (estimate_num_insns): Likewise.
1947 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1948 (copy_decl_to_var): Likewise.
1949 (copy_result_decl_to_var): Likewise.
1950 * tree-pretty-print.c (dump_generic_node): Do not handle
1951 CHANGE_DYNAMIC_TYPE_EXPR.
1952 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1953 * tree-ssa-operands.c (get_expr_operands): Likewise.
1954 * tree-ssa-structalias.c (struct variable_info): Remove
1955 no_tbaa_pruning member.
1956 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1957 (unify_nodes): Do not copy it.
1958 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1959 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1960 (set_uids_in_ptset): Do not check it.
1961 (find_what_var_points_to): Likewise.
1962 (compute_tbaa_pruning): Remove.
1963 (compute_points_to_sets): Do not call it.
1964 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1965 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1966 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1967 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1968 (DECL_NO_TBAA_P): Likewise.
1969 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1970 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1971 (expand_omp_atomic_pipeline): Do not set it.
1972 * print-tree.c (print_node): Do not dump it.
1973 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1974 redundant check.
1975
1976 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1977
1978 PR target/39856
1979 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1980 for clobber.
1981
1982 2009-05-22 Mark Mitchell <mark@codesourcery.com>
1983
1984 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1985 non-external.
1986
1987 2009-05-22 Ben Elliston <bje@au.ibm.com>
1988
1989 * Makefile.in (bversion.h, s-bversion): New targets.
1990 (TOPLEV_H): Add bversion.h.
1991 * toplev.h: Include "bversion.h".
1992 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1993 the __format__ attribute only if compiling with the same version
1994 of GCC as the sources (the "build version").
1995
1996 2009-05-22 Ben Elliston <bje@au.ibm.com>
1997
1998 * c-format.c (handle_format_attribute): Fix comment typo.
1999
2000 2009-05-21 Steve Ellcey <sje@cup.hp.com>
2001
2002 PR target/37846
2003 * config/ia64/ia64.opt (mfused-madd): New.
2004 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2005 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2006 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2007 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2008 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2009 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2010 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2011 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2012 instruction if !TARGET_FUSED_MADD.
2013 (fpma, fpms): Remove colon from name.
2014
2015 2009-05-22 Richard Guenther <rguenther@suse.de>
2016
2017 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2018 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2019 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2020 TARGET_MEM_REF.
2021 (create_expression_by_pieces): Only convert if necessary.
2022 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2023 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2024
2025 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2026
2027 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2028 regular pattern from a template and rename it ...
2029 (*extzv_truncsi_exts): ... to this.
2030
2031 2009-05-21 Richard Guenther <rguenther@suse.de>
2032
2033 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2034 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2035 (cgraph_default_inline_p): Likewise.
2036 (cgraph_decide_inlining_incrementally): Likewise.
2037
2038 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2039 Uros Bizjak <ubizjak@gmail.com>
2040
2041 * config/i386/cpuid.h (bit_MOVBE): New.
2042
2043 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2044
2045 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2046 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2047 (ix86_handle_option): Handle OPT_mmovbe.
2048 (ix86_target_string): Add -mmovbe.
2049 (pta_flags): Add PTA_MOVBE.
2050 (processor_alias_table): Add PTA_MOVBE to "atom".
2051 (override_options): Handle PTA_MOVBE.
2052
2053 * config/i386/i386.h (TARGET_MOVBE): New.
2054
2055 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2056 (*bswapsi_movbe): New.
2057 (*bswapdi_movbe): Likewise.
2058 (bswapdi2): Renamed to ...
2059 (*bswapdi_1): This.
2060 (bswapdi2): New expander.
2061
2062 * config/i386/i386.opt (mmovbe): New.
2063
2064 * doc/invoke.texi: Document -mmovbe.
2065
2066 2009-05-21 Taras Glek <tglek@mozilla.com>
2067
2068 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2069 * gcc-plugin.h (plugin_init): Updated signature.
2070 * gcc-plugin.h (plugin_name_args): Moved to this header.
2071 * doc/plugins.texi (plugin_init): Updated documention to reflect
2072 API change.
2073 * doc/plugins.texi (plugin_name_args): Added to documention.
2074
2075 2009-05-21 Mark Mitchell <mark@codesourcery.com>
2076
2077 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2078 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2079
2080 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2081
2082 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2083 JUMP_TABLE_DATA_P predicates where applicable.
2084 * config/i386/predicates.md: Ditto.
2085 * config/i386/sse.md: Ditto.
2086
2087 2009-05-21 Jakub Jelinek <jakub@redhat.com>
2088
2089 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2090 operand2 -128 override length_immediate attribute to 1.
2091 * config/i386/predicates.md (constm128_operand): New predicate.
2092
2093 * config/i386/i386.c (memory_address_length): Handle %r12
2094 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2095 also check REGNO.
2096 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2097 mode look through optional ZERO_EXTEND and SUBREG.
2098 * config/i386/i386.md (R12_REG): New define_constant.
2099 (prefix_data16): For sse unit set also for MODE_TI insns.
2100 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2101 insns set if operand 1 is ext_QIreg_operand.
2102 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2103 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2104 immediate.
2105 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2106 mode from MODE_DI to MODE_SI.
2107 (movdi_1_rex64): Override modrm and length_immediate attributes
2108 only for movabs (TYPE_IMOV, alternative 2).
2109 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2110 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2111 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2112 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2113 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2114 prefix_rex attribute if DImode.
2115 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2116 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2117 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2118 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2119 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2120 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2121 Likewise. For TYPE_IMOV clear length_immediate attribute.
2122 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2123 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2124 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2125 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2126 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2127 or one operand TYPE_ISHIFT.
2128 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2129 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2130 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2131 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2132 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2133 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2134 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2135 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2136 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2137 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2138 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2139 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2140 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2141 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2142 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2143 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2144 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2145 set mode attribute, don't override length attribute.
2146 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2147 to 1.
2148 (return_internal_long): Set length attribute to 2 instead of 1.
2149 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2150 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2151 prefix_rex attribute.
2152 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2153 New predicates.
2154 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2155
2156 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2157
2158 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2159
2160 2009-05-20 Ian Lance Taylor <iant@google.com>
2161
2162 * tree.c (build_tree_list_vec_stat): New function.
2163 (ctor_to_vec): New function.
2164 (build_nt_call_vec): New function.
2165 (build_call_array): Change args to be a const pointer.
2166 (build_call_vec): New function.
2167 * tree.h (build_nt_call_vec): Declare.
2168 (build_tree_list_vec_stat): Declare.
2169 (build_tree_list_vec): Define.
2170 (build_call_array): Update declaration.
2171 (build_call_vec): Declare.
2172 (ctor_to_vec): Declare.
2173 * c-common.c (tree_vector_cache): New static variable.
2174 (make_tree_vector): New function.
2175 (release_tree_vector): New function.
2176 (make_tree_vector_single): New function.
2177 (make_tree_vector_copy): New function.
2178 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2179 (make_tree_vector_single, make_tree_vector_copy): Declare.
2180 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2181 (c_parser_expr_list): Don't manage cache here, instead call
2182 make_tree_vector.
2183 (c_parser_release_expr_list): Remove static function.
2184 (c_parser_vec_to_tree_list): Remove static function.
2185 (c_parser_attributes): Call build_tree_list_vec instead of
2186 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2187 c_parser_release_expr_list.
2188 (c_parser_postfix_expression_after_primary): Likewise.
2189 (c_parser_objc_keywordexpr): Likewise.
2190
2191 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2192
2193 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2194 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2195 TARGET_CONVERT_TO_TYPE.
2196 * hooks.c (hook_tree_const_tree_null): Define.
2197 * hooks.h (hook_tree_const_tree_null): Declare.
2198 * target.h (struct gcc_target): Add invalid_parameter_type,
2199 invalid_return_type, promoted_type, and convert_to_type fields.
2200 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2201 (TARGET_INVALID_RETURN_TYPE): Define.
2202 (TARGET_PROMOTED_TYPE): Define.
2203 (TARGET_CONVERT_TO_TYPE): Define.
2204 (TARGET_INITIALIZER): Update for new fields.
2205 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2206 (grokparms): Check targetm.invalid_parameter_type.
2207 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2208 * c-convert.c (convert): Check targetm.convert_to_type.
2209
2210 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2211
2212 * config/mips/mips.md (*extenddi_truncate<mode>,
2213 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2214 defintions.
2215 (*extendhi_truncateqi): New define_insn_and_sptit.
2216
2217 2009-05-20 Jakub Jelinek <jakub@redhat.com>
2218
2219 PR middle-end/40204
2220 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2221 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
2222
2223 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2224
2225 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2226 the operand of VIEW_CONVERT_EXPR.
2227
2228 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2229
2230 * config/i386/driver-i386.c (host_detect_local_cpu): Check
2231 extended family and model for Intel processors. Support Intel Atom.
2232
2233 2009-05-20 Olivier Hainque <hainque@adacore.com>
2234
2235 * gstab.h (stab_code_type): Define, to be used instead of the
2236 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2237 notice.
2238 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2239 occurrences by stab_code_type.
2240 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2241
2242 2009-05-20 Martin Jambor <mjambor@suse.cz>
2243
2244 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2245 (sra_insert_before): Likewise.
2246 (sra_insert_after): Likewise.
2247 (sra_init_cache): Likewise.
2248 (sra_type_can_be_decomposed_p): Likewise.
2249 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2250 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2251 (sra_insert_before): Likewise.
2252 (sra_insert_after): Likewise.
2253 (sra_init_cache): Likewise.
2254 (insert_edge_copies_seq): Made static and moved upwards.
2255
2256 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2257 case.
2258
2259 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2260
2261 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2262 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2263 simple copies.
2264
2265 2009-05-20 Richard Guenther <rguenther@suse.de>
2266
2267 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2268 with mismatched comparison modes.
2269
2270 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2271
2272 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2273 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2274 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2275 with shifts for Thumb2.
2276 (orsi_notsi): New for orn.
2277 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2278 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2279 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2280 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2281 Don't invert remainder for IOR.
2282
2283 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
2284
2285 PR tree-optimization/40087
2286 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2287 number_of_iterations_ne): Rename never_infinite argument.
2288 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2289 number_of_iterations_le): Handle pointer-type ivs when
2290 exit_must_be_taken is false.
2291 (number_of_iterations_cond): Do not always assume that
2292 exit_must_be_taken if the control variable is a pointer.
2293
2294 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2295
2296 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2297 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2298
2299 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2300
2301 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2302 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2303
2304 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2305
2306 PR c/40172
2307 * c.opt (Wlogical-op): Disabled by default.
2308 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2309 Wextra.
2310 * doc/invoke.texi (Wlogical-op): Likewise.
2311
2312 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2313
2314 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2315 into CASE_CONVERT.
2316 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2317 Propagate the type of the first operand.
2318 <ASSERT_EXPR>: Simplify.
2319 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2320 Rewrite using the RHS code as discriminant.
2321 <NOP_EXPR>: Turn into CASE_CONVERT.
2322 <PLUS_EXPR>: Propagate the type of the first operand.
2323
2324 2009-05-19 Steve Ellcey <sje@cup.hp.com>
2325
2326 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2327 (ia64_dconst_0_375): New.
2328 * config/ia64/ia64.c (ia64_override_options): Remove
2329 -minline-sqrt-min-latency warning.
2330 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2331 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2332 * config/ia64/ia64.md (*sqrt_approx): Remove.
2333 (sqrtsf2): Remove #if 0.
2334 (sqrtsf2_internal_thr): Rewrite and move to div.md.
2335 (sqrtdf): Remove assert.
2336 (sqrtdf2_internal_thr): Rewrite and move to div.md.
2337 (sqrtxf2): Remove #if 0.
2338 (sqrtxf2_internal_thr): Rewrite and move to div.md.
2339 * div.md (sqrt_approx_rf): New.
2340 (sqrtsf2_internal_thr): New implementation.
2341 (sqrtsf2_internal_lat): New.
2342 (sqrtdf2_internal_thr: New implementation.
2343 (sqrtxf2_internal): New implementation.
2344
2345 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
2346 Hans-Peter Nilsson <hp@axis.com>
2347
2348 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2349 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2350 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2351 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2352 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2353 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2354 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2355 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2356 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2357 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2358 * c-common.c: ...from here.
2359
2360 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2361
2362 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
2363
2364 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2365
2366 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2367
2368 2009-05-19 Ben Elliston <bje@au.ibm.com>
2369
2370 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2371 assignments with memcpy calls.
2372 (add_fdes): Likewise.
2373 (binary_search_unencoded_fdes): Likewise.
2374 (linear_search_fdes): Eliminate type puns.
2375
2376 2009-05-19 Richard Guenther <rguenther@suse.de>
2377
2378 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2379 not falsely claim to have propagated into all uses.
2380
2381 2009-05-19 Ben Elliston <bje@au.ibm.com>
2382
2383 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2384 version to v3.0.
2385
2386 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2387
2388 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2389 * config/sh/sh.c (sh_legitimate_address_p): Make static.
2390 (TARGET_LEGITIMATE_ADDRESS_P): New.
2391 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2392 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2393
2394 2009-05-18 Dodji Seketeli <dodji@redhat.com>
2395
2396 PR debug/40109
2397 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2398 child of the containing namespace's DIE.
2399
2400 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
2401
2402 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2403 *zero_extendhi_truncqi): Move after the zero_extend patterns.
2404 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2405 extend patterns.
2406
2407 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
2408
2409 PR target/39942
2410 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2411 gen_align with gen_pad.
2412 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2413 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2414
2415 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2416 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2417
2418 * config/i386/i386.md (align): Renamed to ...
2419 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2420 ASM_OUTPUT_MAX_SKIP_PAD.
2421
2422 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
2423
2424 * config.gcc: Fix variable syntax.
2425
2426 PR target/39531
2427 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2428 before calling exact_log2.
2429 (output_iorsi3): Likewise.
2430 (output_xorsi3): Likewise.
2431
2432 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2433
2434 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2435 for the none zero constant operand except for EQ and NE
2436 comprisons even when the first operand is R0.
2437
2438 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
2439
2440 * config/s390/2064.md: Remove trailing whitespaces.
2441 * config/s390/2084.md: Likewise.
2442 * config/s390/constraints.md: Likewise.
2443 * config/s390/fixdfdi.h: Likewise.
2444 * config/s390/libgcc-glibc.ver: Likewise.
2445 * config/s390/s390-modes.def: Likewise.
2446 * config/s390/s390-protos.h: Likewise.
2447 * config/s390/s390.c: Likewise.
2448 * config/s390/s390.h: Likewise.
2449 * config/s390/s390.md: Likewise.
2450 * config/s390/tpf-unwind.h: Likewise.
2451
2452 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2453
2454 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2455
2456 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2457
2458 M68K TLS support.
2459 * configure.ac (m68k-*-*): Check if binutils support TLS.
2460 * configure: Regenerate.
2461 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2462 * config/m68k/constraints.md (Cu): New constraint.
2463 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2464 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2465 (movsi): Handle TLS symbols.
2466 (addsi3_5200): Handle XTLS symbols, indent.
2467 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2468 (m68k_tls_reference_p): Declare.
2469 (m68k_legitimize_address): Declare.
2470 (m68k_unwrap_symbol): Declare.
2471 * config/m68k/m68k.opt (mxtls): New option.
2472 * config/m68k/m68k.c (ggc.h): Include.
2473 (m68k_output_dwarf_dtprel): Implement hook.
2474 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2475 (m68k_expand_prologue): Load GOT pointer when function needs it.
2476 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2477 (m68k_legitimate_constant_address_p): Same.
2478 (m68k_decompose_address): Handle TLS references.
2479 (m68k_get_gp): New static function.
2480 (enum m68k_reloc): New contants.
2481 (TLS_RELOC_P): New macro.
2482 (m68k_wrap_symbol): New static function.
2483 (m68k_unwrap_symbol): New function.
2484 (m68k_final_prescan_insn_1): New static function.
2485 (m68k_final_prescan_insn): New function.
2486 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2487 functions.
2488 (legitimize_pic_address): Handle TLS references..
2489 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2490 (m68k_libcall_value_in_a0_p)
2491 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2492 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2493 (m68k_legitimize_tls_address): Handle TLS references.
2494 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2495 New functions.
2496 (m68k_legitimize_address): Handle TLS symbols.
2497 (m68k_get_reloc_decoration): New static function.
2498 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2499 UNSPEC_RELOC32.
2500 (m68k_output_dwarf_dtprel): Implement hook.
2501 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2502 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2503 m68k_call_* routines.
2504 (sched_attr_op_type): Handle TLS symbols.
2505 (gt-m68k.h): Include.
2506 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2507 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2508
2509 2009-05-18 Martin Jambor <mjambor@suse.cz>
2510
2511 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2512 (visit_store_addr_for_mod_analysis): New function.
2513 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2514 (determine_cst_member_ptr): Use gimple_assign_single_p.
2515 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2516 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2517 operands. Don't check number of operands of a NOP_EXPR.
2518
2519 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
2520
2521 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2522
2523 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2524
2525 PR c/40172
2526 * c-common.c (warn_logical_operator): Don't warn if one of
2527 expression isn't always true or false.
2528
2529 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
2530
2531 * config/i386/biarch32.h: New file.
2532 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
2533
2534 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2535
2536 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2537 *zero_extend<mode>_truncqi): Merge these into ...
2538 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2539 Name the pattern following this as *zero_extendhi_truncqi.
2540
2541 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
2542
2543 PR middle-end/39301
2544 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2545 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2546 (output_info): Make field HOST_WIDEST_INT.
2547 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2548 (dump_bitmat_statistics): Same.
2549
2550 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2551
2552 * config.gcc (use_gcc_stdint): Set to wrap.
2553 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2554 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2555 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2556 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2557 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2558 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2559 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2560 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2561
2562 2009-05-16 Joseph Myers <joseph@codesourcery.com>
2563
2564 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2565 tune_64.
2566 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2567 Move definitions earlier.
2568 (OPT_ARCH64, OPT_ARCH32): Define.
2569 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2570 and tune_64.
2571
2572 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
2573
2574 PR target/40153
2575 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2576 implies.
2577
2578 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
2579
2580 * arm.md (movdi2): Copy non-reg values to DImode registers.
2581
2582 2009-05-16 Jakub Jelinek <jakub@redhat.com>
2583
2584 PR target/39942
2585 * final.c (label_to_max_skip): New function.
2586 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2587 CODE_LABEL_NUMBER <= max_labelno.
2588 * output.h (label_to_max_skip): New prototype.
2589 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2590 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2591 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2592 Handle CODE_LABELs with >= 16 byte alignment or with
2593 max_skip == (1 << align) - 1.
2594 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2595 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2596
2597 PR target/39942
2598 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2599 .p2align 3 if MAX_SKIP is smaller than 7.
2600 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2601
2602 2009-05-15 Ian Lance Taylor <iant@google.com>
2603
2604 * alias.c (struct alias_set_entry_d): Rename from struct
2605 alias_set_entry. Change all uses.
2606 * except.c (struct call_site_record_d): Rename from struct
2607 call_site_record. Change all uses.
2608 * except.h (struct eh_region_d): Rename from struct eh_region.
2609 Change all uses.
2610 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2611 Change all uses.
2612 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2613 ivtype_map_elt. Change all uses.
2614 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2615 Change all uses.
2616 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2617 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2618 Change all uses.
2619 (struct sese_d): Rename from struct sese. Change all uses.
2620 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2621 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
2622 * optabs.h (struct optab_d): Rename from struct optab. Change all
2623 uses.
2624 (struct convert_optab_d): Rename from struct convert_optab.
2625 Change all uses.
2626 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2627 ipa_opt_pass. Change all uses.
2628 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2629 all uses.
2630
2631 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2632 defined as a typedef.
2633 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2634 defined as a tag.
2635
2636 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2637
2638 PR 16302
2639 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2640 declaration to...
2641 (merge_ranges): Returns bool.
2642 * tree.h (make_range): .. to here.
2643 (build_range_check): Likewise.
2644 (merge_ranges): Likewise. Renamed from merge_ranges.
2645 * c-typeck.c (parser_build_binary_op): Update calls to
2646 warn_logical_operator.
2647 * c-common.c (warn_logical_operator): Add new warning.
2648 * c-common.h (warn_logical_operator): Update declaration.
2649
2650 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2651
2652 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2653
2654 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2655
2656 * doc/install.texi: Document MPC requirements, flags etc.
2657
2658 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2659 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2660 Evaluate constant arguments.
2661 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2662 (fold_builtin_1): Likewise, also evaluate constant arguments.
2663 Remove superfluous break.
2664 (do_mpc_ckconv): New.
2665 * real.h: Include mpc.h.
2666 * toplev.c (print_version): Output MPC version info if available.
2667
2668 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2669
2670 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2671
2672 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2673
2674 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2675 only once.
2676
2677 2009-05-15 Jan Hubicka <jh@suse.cz>
2678
2679 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2680 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2681 (try_inline): Fix return value.
2682 (cgraph_decide_inlining_incrementally): Honor new value.
2683 (cgraph_early_inlining): Handle indirect inlining.
2684 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2685
2686 2009-05-15 Jan Hubicka <jh@suse.cz>
2687
2688 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2689 * cgraphunit.c (cgraph_finalize_function): Set it.
2690 (cgraph_expand_function): Use it.
2691
2692 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2693
2694 * real.c (encode_ieee_half): Define.
2695 (decode_ieee_half): Define.
2696 (ieee_half_format): Define.
2697 (arm_half_format): Define.
2698 * real.h (ieee_half_format): Declare.
2699 (arm_half_format): Declare.
2700
2701 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2702
2703 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2704 swapped, and reversed optabs exist before trying to use them.
2705
2706 2009-05-15 Paul Brook <paul@codesourcery.com>
2707 Sandra Loosemore <sandra@codesourcery.com>
2708
2709 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2710 loads. Allow PRE_DEC.
2711 (output_move_neon): Handle PRE_DEC.
2712 (arm_print_operand): Add 'A' for neon structure loads.
2713 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2714 * config/arm/neon.md (neon_mov): Update comment.
2715 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2716 calls.
2717 (Um): New constraint.
2718
2719 2009-05-15 Jan Hubicka <jh@suse.cz>
2720
2721 Revert the following patch until testsuite fallout is fixed:
2722 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2723 * cgraph.h (struct inline_summary): New filed self_wize,
2724 size_inlining_benefit, self_time and time_inlining_benefit.
2725 (struct cgraph_global_info): Replace insns by time ans size fields.
2726 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2727 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2728 (ipcp_update_callgraph): Do not touch function bodies.
2729 * ipa-inline.c: Include except.h
2730 (MAX_TIME): New constant.
2731 (overall_insns): Remove
2732 (overall_size, max_benefit): New static variables.
2733 (cgraph_estimate_time_after_inlining): New function.
2734 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2735 (cgraph_clone_inlined_nodes): Update size.
2736 (cgraph_mark_inline_edge): Update size.
2737 (cgraph_estimate_growth): Use size info.
2738 (cgraph_check_inline_limits): Check size.
2739 (cgraph_default_inline_p): Likewise.
2740 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2741 (cgraph_decide_recursive_inlining): Check size.
2742 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2743 and times.
2744 (cgraph_decide_inlining): Likewise.
2745 (cgraph_decide_inlining_incrementally): Likewise; honor
2746 PARAM_EARLY_INLINING_INSNS.
2747 (likely_eliminated_by_inlining_p): New predicate.
2748 (estimate_function_body_sizes): New function.
2749 (compute_inline_parameters): Use it.
2750 * except.c (must_not_throw_labels): New function.
2751 * except.h (must_not_throw_labels): Declare.
2752 * tree-inline.c (init_inline_once): Kill inlining_weigths
2753 * tree-ssa-structalias.c: Avoid uninitialized warning.
2754 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2755 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2756 (PARAM_INLINE_CALL_COST): Remove.
2757 (PARAM_EARLY_INLINING_INSNS): New.
2758
2759 2009-05-15 Richard Guenther <rguenther@suse.de>
2760
2761 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2762 not TODO_update_ssa.
2763
2764 2009-05-15 Richard Guenther <rguenther@suse.de>
2765
2766 PR tree-optimization/39999
2767 * gimple.h (gimple_expr_type): Use the expression type looking
2768 through useless conversions.
2769 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2770 (vn_nary_op_insert_stmt): Likewise.
2771 (simplify_binary_expression): Likewise.
2772
2773 2009-05-15 Richard Guenther <rguenther@suse.de>
2774
2775 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2776 New options, enabled by default.
2777 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2778 Document.
2779 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2780 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2781 * tree-ssa-structalias.c (gate_tree_pta): New function.
2782 (pass_build_alias): Use it.
2783
2784 2009-05-15 Joseph Myers <joseph@codesourcery.com>
2785
2786 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2787 recurse on an invariant address if a conversion from a pointer
2788 type to a wider integer type is involved.
2789
2790 2009-05-15 Jan Hubicka <jh@suse.cz>
2791
2792 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2793 * cgraph.h (struct inline_summary): New filed self_wize,
2794 size_inlining_benefit, self_time and time_inlining_benefit.
2795 (struct cgraph_global_info): Replace insns by time ans size fields.
2796 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2797 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2798 (ipcp_update_callgraph): Do not touch function bodies.
2799 * ipa-inline.c: Include except.h
2800 (MAX_TIME): New constant.
2801 (overall_insns): Remove
2802 (overall_size, max_benefit): New static variables.
2803 (cgraph_estimate_time_after_inlining): New function.
2804 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2805 (cgraph_clone_inlined_nodes): Update size.
2806 (cgraph_mark_inline_edge): Update size.
2807 (cgraph_estimate_growth): Use size info.
2808 (cgraph_check_inline_limits): Check size.
2809 (cgraph_default_inline_p): Likewise.
2810 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2811 (cgraph_decide_recursive_inlining): Check size.
2812 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2813 and times.
2814 (cgraph_decide_inlining): Likewise.
2815 (cgraph_decide_inlining_incrementally): Likewise; honor
2816 PARAM_EARLY_INLINING_INSNS.
2817 (likely_eliminated_by_inlining_p): New predicate.
2818 (estimate_function_body_sizes): New function.
2819 (compute_inline_parameters): Use it.
2820 * except.c (must_not_throw_labels): New function.
2821 * except.h (must_not_throw_labels): Declare.
2822 * tree-inline.c (init_inline_once): Kill inlining_weigths
2823 * tree-ssa-structalias.c: Avoid uninitialized warning.
2824 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2825 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2826 (PARAM_INLINE_CALL_COST): Remove.
2827 (PARAM_EARLY_INLINING_INSNS): New.
2828 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2829 (inline-call-cost): Remove.
2830 (early-inlining-insns): New.
2831
2832 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2833
2834 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2835 for bounds.
2836 (print_int_cst_bounds_in_octal_p): Likewise.
2837 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2838 with subtypes.
2839 * dwarf2out.c (base_type_die): Likewise.
2840 (is_subrange_type): Delete.
2841 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2842 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2843 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2844 if the destination type is boolean.
2845 (build_range_check): Do not special-case subtypes.
2846 (fold_sign_changed_comparison): Likewise.
2847 (fold_unary): Likewise.
2848 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2849 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2850 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2851 * tree.c (subrange_type_for_debug_p): New predicate based on the
2852 former is_subrange_type.
2853 * tree.h (subrange_type_for_debug_p): Declare.
2854 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2855 (convert_affine_scev): Remove call to above function.
2856 (chrec_convert_aggressive): Likewise.
2857 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2858 false for conversions involving subtypes.
2859 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2860 (vrp_val_min): Likewise.
2861 (needs_overflow_infinity): Likewise.
2862 (extract_range_from_unary_expr): Likewise.
2863
2864 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
2865
2866 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2867 * config/frv/frv.c: Likewise.
2868 * config/s390/s390.c: Likewise.
2869 * config/sparc/sparc.h: Likewise.
2870 * config/i386/i386.h: Likewise.
2871 * config/i386/i386.c: Likewise.
2872 * config/crx/crx.c: Likewise.
2873 * config/m68hc11/m68hc11.h: Likewise.
2874 * config/iq2000/iq2000.c: Likewise.
2875 * config/mn10300/mn10300.h: Likewise.
2876 * config/mn10300/mn10300.c: Likewise.
2877 * config/m68k/m68k.c: Likewise.
2878 * config/rs6000/rs6000.c: Likewise.
2879 * config/rs6000/xcoff.h: Likewise.
2880 * config/rs6000/linux64.h: Likewise.
2881 * config/rs6000/sysv4.h: Likewise.
2882 * config/score/score3.c: Likewise.
2883 * config/score/score7.c: Likewise.
2884 * config/score/score.c: Likewise.
2885 * config/arm/arm.md: Likewise.
2886 * config/mips/mips.c: Likewise.
2887 * config/mips/mips.md: Likewise.
2888 * config/bfin/bfin.h: Likewise.
2889 * config/pa/pa.c: Likewise.
2890 * config/pa/constraints.md: Likewise.
2891
2892 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2893 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2894 * config/pdp11/pdp11.h: Use memory_address_p instead.
2895
2896 2009-05-14 Ian Lance Taylor <iant@google.com>
2897
2898 * passes.c (finish_optimization_passes): Change i to int.
2899 * plugin.c (plugins_active_p): Change event to int.
2900 (dump_active_plugins): Likewise.
2901 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2902 Add cast.
2903 * tree.c (tree_range_check_failed): Change c to unsigned int.
2904 (omp_clause_range_check_failed): Likewise.
2905 (build_common_builtin_nodes): Change mode to int. Add cast.
2906 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2907 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2908
2909 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2910 ++ or -- with a variable of enum type.
2911
2912 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2913
2914 PR driver/40144
2915 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2916
2917 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2918
2919 * store-motion.c: Do not include params.h
2920 * Makefile.in: Fix dependencies for various files.
2921
2922 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2923
2924 * auto-inc-dec.c: Fix pass description, remove apparent
2925 accidental duplication.
2926
2927 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2928
2929 PR middle-end/40147
2930 * ipa-utils.h (memory_identifier_string): Moved to ...
2931 * tree.h (memory_identifier_string): Here. Add GTY(()).
2932
2933 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
2934
2935 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2936 in the former documentation of...
2937 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2938 * ira-conflicts.c (get_dup_num): Use address_operand.
2939 * targhooks.c (default_legitimate_address_p): New.
2940 * targhooks.h (default_legitimate_address_p): New.
2941 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2942 Call hook.
2943 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2944 * target.h (struct target): Add legitimate_address_p.
2945 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2946 (TARGET_INITIALIZER): Include it.
2947
2948 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2949 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2950 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2951 (TARGET_LEGITIMATE_ADDRESS_P): New.
2952
2953 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2954 (REG_OK_STRICT_P): Delete.
2955 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2956 (frv_legitimate_address_p_1): ... this.
2957 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2958 (frv_legitimate_address_p_1): ... the renamed old
2959 frv_legitimate_address_p.
2960 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2961 (TARGET_LEGITIMATE_ADDRESS_P): New.
2962
2963 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2964 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2965 * config/s390/s390.c (legitimate_address_p): Rename to...
2966 (s390_legitimate_address_p): ... this, make static.
2967 (legitimize_address): Adjust call.
2968 (TARGET_LEGITIMATE_ADDRESS_P): New.
2969 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2970
2971 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2972 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2973 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2974 (TARGET_LEGITIMATE_ADDRESS_P): New.
2975
2976 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2977 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2978 * config/spu/spu.c (spu_legitimate_address): Rename to...
2979 (spu_legitimate_address_p): ... this, make static.
2980 (TARGET_LEGITIMATE_ADDRESS_P): New.
2981
2982 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2983 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2984 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2985 (sparc_legitimate_address_p): ... this, make static and return bool.
2986 (legitimize_address): Adjust call.
2987 (TARGET_LEGITIMATE_ADDRESS_P): New.
2988
2989 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2990 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2991 * config/i386/i386.c (legitimate_address_p): Rename to...
2992 (ix86_legitimate_address_p): ... this, make static.
2993 (constant_address_p): Move after it, adjust call.
2994 (TARGET_LEGITIMATE_ADDRESS_P): New.
2995
2996 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2997 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2998 * config/avr/avr.c (legitimate_address_p): Rename to...
2999 (avr_legitimate_address_p): ... this, make static.
3000 (legitimize_address): Adjust call.
3001 (TARGET_LEGITIMATE_ADDRESS_P): New.
3002
3003 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3004 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3005 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3006 (TARGET_LEGITIMATE_ADDRESS_P): New.
3007
3008 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3009 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3010 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3011 (TARGET_LEGITIMATE_ADDRESS_P): New.
3012
3013 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3014 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3015 Remove.
3016 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3017 Make static.
3018 (TARGET_LEGITIMATE_ADDRESS_P): New.
3019
3020 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3021 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3022 Remove.
3023 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3024 Rename to...
3025 (m68hc11_legitimate_address_p): ... this, make static.
3026 (go_if_legitimate_address_internal): Rename to...
3027 (m68hc11_legitimate_address_p_1): ... this.
3028 (legitimize_address): Adjust call.
3029 (TARGET_LEGITIMATE_ADDRESS_P): New.
3030
3031 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3032 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3033 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
3034 (TARGET_LEGITIMATE_ADDRESS_P): New.
3035
3036 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3037 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3038 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3039 (mn10300_legitimate_address_p): ... this, make static.
3040 (TARGET_LEGITIMATE_ADDRESS_P): New.
3041
3042 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3043 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3044 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3045 (TARGET_LEGITIMATE_ADDRESS_P): New.
3046
3047 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3048 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3049 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3050 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3051 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3052 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3053 (rs6000_legitimate_address_p): ... this, make static.
3054 (TARGET_LEGITIMATE_ADDRESS_P): New.
3055 (REG_MODE_OK_FOR_BASE_P): Delete.
3056 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3057
3058 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3059 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3060 Delete.
3061 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3062 static, adjust types.
3063 (TARGET_LEGITIMATE_ADDRESS_P): New.
3064
3065 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3066 * config/score/score.c (score_address_p): Rename to...
3067 (score_legitimate_address_p): ... this.
3068 (TARGET_LEGITIMATE_ADDRESS_P): New.
3069 * config/score/score3.c (score3_address_p): Rename to...
3070 (score3_legitimate_address_p): ... this.
3071 * config/score/score7.c (score7_address_p): Rename to...
3072 (score7_legitimate_address_p): ... this.
3073
3074 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3075 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3076 GO_IF_LEGITIMATE_ADDRESS): Delete.
3077 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3078 thumb2_legitimate_address_p): Delete.
3079 (arm_legitimate_address_p): Rename to...
3080 (arm_legitimate_address_outer_p): ... this.
3081 * config/arm/constraints.md ("Uq"): Adjust call.
3082 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
3083 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3084 to...
3085 (arm_legitimate_address_outer_p): ... this.
3086 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3087 static.
3088 (TARGET_LEGITIMATE_ADDRESS_P): New.
3089
3090 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3091 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3092 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3093 (TARGET_LEGITIMATE_ADDRESS_P): New.
3094
3095 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3096 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3097 * config/vax/vax.c (legitimate_address_p): Rename to...
3098 (vax_legitimate_address_p): ... this, make static.
3099 (TARGET_LEGITIMATE_ADDRESS_P): New.
3100
3101 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3102 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3103 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3104 (TARGET_LEGITIMATE_ADDRESS_P): New.
3105
3106 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3107 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3108 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3109 (mmix_legitimate_address_p): ... this, make static.
3110 (TARGET_LEGITIMATE_ADDRESS_P): New.
3111
3112 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3113 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3114 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3115 (TARGET_LEGITIMATE_ADDRESS_P): New.
3116
3117 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
3118
3119 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3120 of MODE_COMPLEX_INT.
3121
3122 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3123
3124 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3125 LCT_NORMAL in function call.
3126 * mips-tdump.c (print_file_desc): Add cast to enum type.
3127 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3128 (mark_stabs): Add casts to enum types.
3129 (parse_stabs_common): Add casts to enum types.
3130
3131 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3132
3133 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3134 Check for invalid values of LETTER.
3135
3136 2009-05-13 Taras Glek <tglek@mozilla.com>
3137
3138 * attribs.c (register_attribute): moved out attribute registration
3139 into register_attribute.
3140 * doc/plugins.texi: Documented register_attribute and
3141 PLUGIN_ATTRIBUTES.
3142 * gcc-plugin.h: Added forward decl for register_attribute.
3143 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3144 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3145 PLUGIN_ATTRIBUTES boilerplate.
3146
3147 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3148
3149 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3150 values even in sentinel and empty entries.
3151 (ms_printf_flag_specs): Likewise.
3152 (ms_scanf_flag_specs): Likewise.
3153 (ms_strftime_flag_specs): Likewise.
3154 (ms_print_char_table): Likewise.
3155 (ms_scan_char_table): Likewise.
3156 (ms_time_char_table): Likewise.
3157
3158 2009-05-13 Doug Kwan <dougkwan@google.com>
3159
3160 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3161
3162 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3163
3164 * config/mips/mips.md (store): Add attributes for QI and HI.
3165 Update comment.
3166 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3167 (truncdi<mode>2): ... this new pattern.
3168
3169 2009-05-13 Brad Hards <bradh@kde.org>
3170
3171 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3172
3173 2009-05-14 Jakub Jelinek <jakub@redhat.com>
3174 Ben Elliston <bje@au.ibm.com>
3175
3176 PR middle-end/40035
3177 * dse.c (check_mem_read_rtx): Guard against width == -1.
3178
3179 2009-05-13 Michael Matz <matz@suse.de>
3180
3181 PR middle-end/39976
3182 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3183 (trivially_conflicts_p): New function.
3184 (insert_backedge_copies): Use it.
3185
3186 2009-05-13 Janis Johnson <janis187@us.ibm.com>
3187
3188 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3189 (handle_stdc_pragma): Use new enum constant names.
3190 (handle_pragma_float_const_decimal64): Ditto.
3191
3192 2009-05-13 Ian Lance Taylor <iant@google.com>
3193
3194 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3195 tree.def.
3196
3197 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3198
3199 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3200 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3201 multilibs.
3202 * config/m68k/m68k.h (FL_UCLINUX): Define.
3203
3204 2009-05-13 Jan Hubicka <jh@suse.cz>
3205
3206 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3207
3208 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3209
3210 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3211 unless -fschedule-insns is specified.
3212
3213 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3214
3215 PR target/39561
3216 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3217 TARGET_EXPAND_CBRANCHDI4.
3218 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3219 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3220 (cmpeqdi): Fix comment.
3221
3222 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3223
3224 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3225 (sh_legitimate_address_p): Likewise.
3226 * config/sh/sh.c (sh_legitimate_index_p): New.
3227 (sh_legitimate_address_p): Likewise.
3228 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3229 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3230 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3231 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3232 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3233 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3234 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3235 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3236 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3237
3238 2009-05-12 Jan Hubicka <jh@suse.cz>
3239
3240 * tree-inline.c (estimate_operator_cost): Add operands;
3241 when division happens by constant, it is cheap.
3242 (estimate_num_insns): Loads and stores are not having cost of 0;
3243 EH magic stuff is cheap; when computing runtime cost of switch,
3244 use log2 base of amount of its cases; builtin_expect has cost of 0;
3245 compute cost for moving return value of call.
3246 (init_inline_once): Initialize time_based flags.
3247 * tree-inline.h (eni_weights_d): Add time_based flag.
3248
3249 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3250
3251 * df-core.c: Update head documentation.
3252
3253 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3254
3255 PR bootstrap/40118
3256 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3257 shadowing exisiting variable op1.
3258
3259 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
3260
3261 PR target/37179
3262 * config/i386/driver-i386.c (processor_signatures): New enum.
3263 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3264 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3265 processor signature to detect geode processor.
3266
3267 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3268
3269 Revert:
3270
3271 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3272
3273 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3274 causes spurious differences between trunk and cond-optab branch.
3275
3276 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3277
3278 * dojump.c (compare_from_rtx): Delete.
3279 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3280 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
3281 if the comparison does not satisfy the predicate; test predicates for
3282 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3283 further if one existing pattern fails.
3284 * expr.h (compare_from_rtx): Delete.
3285 (prepare_operand): Declare it.
3286 * optabs.c: Change "lib call" to "libcall" throughout.
3287 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
3288 HAVE_conditional_trap, emit_cmp_insn): Delete.
3289 (can_compare_p): Delete cmp_optab case.
3290 (prepare_float_lib_cmp): Return an rtx and a machine mode.
3291 Accept other parameters by value.
3292 (prepare_operand): Make non-static.
3293 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3294 other parameters by value. Try to widen operands here based on
3295 an optab_methods argument and looking at cbranch_optab.
3296 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3297 loop. Use cbranch_optab directly.
3298 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3299 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3300 assertion.
3301 (emit_conditional_move, emit_conditional_add): Inline what's needed
3302 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3303 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3304 with COMPARE. Move cmov_optab and cstore_optab above
3305 with cbranch_optab, move cmp_optab down with ucmp_optab,
3306 remove tst_otpab. Do not initialize trap_rtx.
3307 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
3308 for trap code. Do not check HAVE_conditional_trap. Use
3309 prepare_cmp_insn. Accept no predicate for operand 3.
3310 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3311 (OTI_ctrap, ctrap_optab): New.
3312 (tst_optab): Delete.
3313 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3314 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3315 with lookup of ctrap_optab.
3316 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3317 Delete.
3318 (ctrap_optab): New.
3319
3320 * combine.c (combine_simplify_rtx, simplify_set): Do not
3321 special case comparing against zero for cc0 machines.
3322 * simplify-rtx.c (simplify_binary_operation_1): Never remove
3323 COMPARE on cc0 machines.
3324 (simplify_relational_operation): Return a new expression when
3325 a COMPARE could be removed.
3326 * final.c (final_scan_insn): Compare cc_status values
3327 against LHS of a (compare FOO (const_int 0)) cc0 source.
3328 Also check if cc_status.value is the full compare.
3329
3330 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3331 (cstoreMM4): Document.
3332 (conditional_trap): Document ctrapMM4 instead.
3333 (sync_compare_and_swapMM): Refer to cbranchcc4.
3334 (Dependent Patterns): Eliminate obsolete information referring to
3335 the old jump optimization phase.
3336 (Canonicalization): Include cbranchcc4 case, omit canonicalization
3337 of compares with 0 on cc0 machines.
3338 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3339 avoiding references to cc0. Remove text about storing operands
3340 in cmpMM.
3341 * doc/tm.texi (Condition Codes): Include blurb on different
3342 condition code representations, separate into subsections for
3343 CC0, MODE_CC and conditional execution.
3344
3345 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3346 alpha_emit_setcc): Accept operands and a machine mode.
3347 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3348 Get code/op0/op1 from operands, use machine mode argument
3349 instead of alpha_compare.fp_p. Emit the branch here.
3350 (alpha_emit_setcc): Likewise, and return boolean.
3351 (alpha_emit_conditional_move): Likewise. Assert that
3352 cmp_op_mode == cmp_mode, and simplify accordingly.
3353 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3354 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3355 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3356 Delete.
3357 (stack probe test): Use cbranchdi4.
3358 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3359
3360 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3361 * config/arc/arc.h (movsicc, movsfcc): Use it.
3362 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3363 (cbranchsi4, cstoresi4): New.
3364 (cmpsi, bCC and sCC expanders): Remove.
3365
3366 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3367 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3368 * config/arm/predicates.md (arm_comparison_operator): Only include
3369 floating-point operators if there is a hardware floating-point unit.
3370 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3371 deferring to cbranch_cc and cstore_cc respectively.
3372 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3373 cbranch_cc, cstore_cc): New.
3374 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
3375 arm_compare_op1.
3376 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3377
3378 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3379 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3380 as an argument.
3381 (adjust_insn_length): Adjust calls.
3382 (avr_reorg): Handle (compare (foo) (const_int 0)).
3383 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3384 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3385 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3386 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3387 (bCC): Remove.
3388 (cbranchqi4, cbranchhi4, cbranchsi4): New.
3389 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3390
3391 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3392 (cbranchsi4, cstorebi4, cstoresi4): New.
3393 (movbisi): This insn is duplicate, split it to zero_extend.
3394 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3395 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
3396 (bfin_optimize_loop): Use cbranch expander.
3397 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3398 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3399 (bfin_bimode_comparison_operator): ... this.
3400 (bfin_direct_comparison_operator): New.
3401
3402 * config/cris/cris.c (cris_normal_notice_update_cc): Look
3403 inside (compare FOO (const_int 0)).
3404 (cris_rtx_costs): Handle ZERO_EXTRACT.
3405 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3406 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3407 (*tstdi_v32): Delete.
3408 (*cmpdi_non_v32): Add M alternative for operand 1.
3409 (cmpsi, cmp<mode>): Make private.
3410 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3411 with COMPARE.
3412 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3413
3414 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3415 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3416 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
3417 (cc_reg_operand): New.
3418 (any_cond): Delete.
3419 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3420 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3421 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3422 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3423 crx_expand_scond): Delete.
3424
3425 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3426 (cbranchsi4): New.
3427 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3428 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3429
3430 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3431 cstoresi4, cstoresf4, cstoredf4): New.
3432 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3433 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3434 Receive the entire operands array.
3435 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3436 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3437 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3438 Get test/op0/op1 from the operands array.
3439 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3440
3441 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3442 (h8300_expand_store): New.
3443 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3444 (const_int 0)).
3445 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3446 (h8300_expand_store): New.
3447 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3448 or do not try to produce (set (cc0) REG).
3449 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3450 change a compare into a move to a scratch register. Disable some
3451 peepholes when comparing with zero.
3452 (tstsi, tsthi, tstsi, cmpqi): Make private.
3453 (cmphi): Delete.
3454 (bCC, sCC): Delete.
3455 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3456 cstoresi4): New.
3457
3458 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3459 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3460 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3461 (ix86_emit_i387_log1p): Use cbranchxf2.
3462 (ix86_expand_setcc): Return void.
3463 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3464 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3465 cmp<MODEF>, cmpcc): Remove.
3466 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3467 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3468 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
3469 (sCC and bCC expanders): Remove.
3470 (stack_protect_test): Use cbranchcc4.
3471
3472 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3473 Delete.
3474 (ia64_expand_compare): Accept three rtx by reference and return void.
3475 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3476 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3477 from *expr. Update *expr with the BImode comparison to do.
3478 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3479 cmptf, bCC, sCC, conditional_trap): Delete.
3480 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3481 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3482 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3483 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3484 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3485
3486 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3487 type of last argument.
3488 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3489 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3490 use machine mode argument instead of branch_type. Remove dead
3491 code for floating-point comparisons.
3492 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3493 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3494 Remove.
3495 (cbranchsi4, cstoresi4): New.
3496 * config/iq2000/predicates.md (reg_or_const_operand): New.
3497
3498 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3499 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3500 (b<code>_op): Rewrite to...
3501 (bcc_op): ... this, using match_operator.
3502 (s<code>_op): Rewrite to...
3503 (scc_op): ... this, using match_operator.
3504 (s<code>_24_op): Rewrite to...
3505 (scc_op_24): ... this, using match_operator.
3506 (s<code>_<mode>): Rewrite to...
3507 (cstore<mode>4): ... this, using match_operator.
3508 (s<code>_<mode>_24): Rewrite to...
3509 (cstore<mode>4_24): ... this, using match_operator.
3510 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3511 m32c_unpend_compare, m32c_expand_scc): Delete.
3512 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3513 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3514 (m32c_expand_movcc): Change NE to EQ if necessary.
3515 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3516
3517 * config/m32r/m32r-protos.h (gen_cond_store): New.
3518 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3519 (gen_cond_store): New, from sCC patterns.
3520 (m32r_expand_block_move): Use cbranchsi4.
3521 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3522 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3523 (cbranchsi4, cstoresi4): New.
3524
3525 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3526 Delete.
3527 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
3528 (m68hc11_notice_update_cc): Look into a compare with 0.
3529 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3530 Delete.
3531 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3532 cmphi, cmpqi, bCC): Delete.
3533 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3534 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3535 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3536 sets with COMPARE.
3537
3538 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3539 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3540 * config/m68k/constraints.md (H): New.
3541 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3542 the define_insn below.
3543 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3544 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3545 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3546 patterns): Wrap RHS with COMPARE.
3547 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3548 (*cmpdi_internal): Name this pattern.
3549 (cmpdi): Change to define_insn.
3550 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3551 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3552 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3553 predicate.
3554 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3555 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3556 (conditional_trap): Change to...
3557 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3558 (*conditional_trap): Use the ordered_comparison_operator and
3559 const1_operand predicates.
3560 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3561 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3562 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3563 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3564
3565 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3566 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3567 (mcore_gen_compare): New.
3568 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3569 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3570 (mcore_gen_compare): ... this.
3571 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3572 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3573 (stack probe pattern): Use cbranchsi4.
3574
3575 * config/mips/predicates.md (mips_cstore_operator): New.
3576 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3577 * config/mips/mips.md (any_cond): Delete.
3578 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3579 always succeed.
3580 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3581 fixuns_truncsfdi2): Use cbranch patterns.
3582 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3583 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3584 Adjust call to mips_expand_conditional_branch.
3585 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3586 cstore<GPR:mode>4.
3587 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3588 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3589 * config/mips/mips.c (cmp_operands): Delete.
3590 (mips_emit_compare): Get comparison operands from *op0/*op1.
3591 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3592 that it succeeds. Use op0/op1 instead of cmp_operands.
3593 (mips_expand_conditional_branch, mips_expand_conditional_move,
3594 mips_expand_conditional_trap): Likewise.
3595 (mips_block_move_loop): Use cbranch patterns.
3596 * config/mips/mips.h (cmp_operands): Delete.
3597
3598 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3599 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3600 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3601 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3602 (*cmpcc_folded): Rename to...
3603 (*cmpdi_folded): this.
3604 (*cmpcc): Rename to...
3605 (*cmps): ... this.
3606 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3607 (bCC): Remove.
3608 (cbranchdi4): New.
3609 (cbranchdf4): New. Handle invalid comparisons here.
3610 * config/mmix/predicates.md (float_comparison_operator): New.
3611
3612 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3613 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3614 * config/mn10300/mn10300.md (tst): Delete.
3615 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3616 Name these patterns and wrap RHS in a compare.
3617 (*cmpsi): Make this pattern private. Include tst.
3618 (*cmpsf): Make this pattern private.
3619 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3620 (compare with zero peepholes): Likewise.
3621 (bCC): Remove.
3622 (cbranchsi4, cbranchsf4): New.
3623 (casesi): Use cbranchsi4.
3624
3625 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3626 hppa_branch_type): Delete.
3627 (return_addr_rtx): Use cbranchsi4.
3628 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3629 Emit CCFPmode comparison here.
3630 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3631 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3632 hppa_branch_type): Delete.
3633 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3634 (movsicc, movdicc): Remove references to hppa_compare_op0,
3635 hppa_compare_op1 and compare_from_rtx.
3636 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3637 (casesi): Use cbranchsi4.
3638
3639 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3640 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3641 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3642 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3643 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3644 (bCC): Delete.
3645 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3646 (*branch, *branch_inverted): New.
3647
3648 * config/picochip/picochip.md (cbranchhi4): Use
3649 ordered_comparison_operator.
3650 (cmphi, bCC): Remove.
3651
3652 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3653 (trap_comparison_operator): Delete.
3654 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3655 rs6000_emit_cbranch): Accept mode and operands.
3656 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3657 rs6000_compare_fp_p): Delete.
3658 (rs6000_generate_compare): Accept mode and comparison. Extract code
3659 and op0/op1 from there. Replace references to rs6000_compare_op0
3660 and rs6000_compare_op1.
3661 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3662 extract result from passed operands.
3663 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3664 extract loc from passed operands.
3665 (rs6000_emit_cmove): Likewise.
3666 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3667 rs6000_compare_fp_p): Delete.
3668 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3669 (cbranch<GPR>4, cbranch<FP>4): New.
3670 (cstore<mode>4): New. Consolidate here all choices about when to use
3671 portable or specialized sCC sequences.
3672 (stack_protect_test): Use cbranchsi4.
3673 (conditional_trap): Replace with ctrap<GPR>4.
3674 (conditional trap insn): Replace trap_comparison_operator with
3675 ordered_comparison_operator.
3676
3677 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3678 (s390_emit_prologue): Use ctrap.
3679 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3680 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3681 New predicates replacing...
3682 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3683 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3684 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3685 (add<mode>cc): Do not use s390_compare_op0/op1.
3686 (s<code>): Change to...
3687 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3688 (seq): Change to...
3689 (cstorecc4): ... this. Handle EQ or NE equally.
3690 (*sne): Un-privatize for use in cstorecc4.
3691 (b<code>): Change to...
3692 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3693 (conditional_trap): Replace with...
3694 (ctrap<GPR>4, ctrap<FP>4): ... these.
3695 (stack_protect): Use cbranchcc4.
3696
3697 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3698 * config/score/score-protos.h (score_gen_cmp): Delete.
3699 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3700 (score_block_move-loop): Use cbranchsi4.
3701 * config/score/score.md (cbranchsi4): New.
3702 (cmpsi, bCC): Delete.
3703 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3704 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3705 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3706 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3707 * config/score/score3.h (score3_gen_cmp): Delete.
3708 * config/score/score7.h (score7_gen_cmp): Delete.
3709
3710 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3711 (sh_emit_scc_to_t): ... this. Return void.
3712 (from_compare): Rename to...
3713 (sh_emit_compare_and_branch): ... this.
3714 (sh_emit_compare_and_set): New.
3715 (sh_expand_t_scc): Accept operands.
3716 * config/sh/predicates.md (sh_float_comparison_operator): New.
3717 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3718 (prepare_scc_operands): Rename to...
3719 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3720 arguments.
3721 (sh_emit_cheap_store_flag): New.
3722 (sh_emit_set_t_insn): New.
3723 (from_compare): Rename to...
3724 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3725 handling of TARGET_SH2E floating point to avoid recursive call.
3726 Generate branch here.
3727 (sh_emit_compare_and_set): New.
3728 (sh_expand_t_scc): Get op0/op1 from arguments.
3729 (sh_emit_cheap_store_flag): New.
3730 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3731 cases.
3732 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
3733 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3734 (movsicc, movdicc): Do nothing when it recreated operands from
3735 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3736 prepare_scc_operands (now sh_emit_scc_to_t).
3737 (udivdi3): Use cstoresi4.
3738 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3739 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3740 (cbranchint4_media, cbranchfp4_media): New.
3741 (casesi): Use cbranchdi4.
3742 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3743 Delete.
3744 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3745 (movnegt): Remove second operand.
3746 (cbranchsf4, cbranchdf4): New.
3747 (stack_protect): Use cbranchdi4/cbranchsi4.
3748
3749 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3750 (gen_compare_reg): Accept comparison, extract part of it to...
3751 (gen_compare_reg_1): ... this.
3752 (gen_compare_operator): Delete.
3753 (gen_v9_scc): Accept separate destination, comparison code and arms.
3754 Do not use sparc_compare_op0/sparc_compare_op1.
3755 (emit_scc_insn, emit_conditional_branch_insn): New.
3756 (emit_v9_brxx): Make static. Remove useless assertion.
3757 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3758 emit_cmp_insn.
3759 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3760 * config/sparc/sparc-protos.h (gen_compare_reg,
3761 sparc_emit_float_lib_cmp): Adjust prototype.
3762 (emit_scc_insn, emit_conditional_branch_insn): New.
3763 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
3764 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3765 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3766 iterators to the top.
3767 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3768 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
3769 snedi_special_trunc): Delete.
3770 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
3771 and snedi_special_trunc.
3772 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3773 cbranchdi4, cbranch<F:mode>4): New.
3774 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3775 here. Use gen_compare_reg instead of gen_compare_operator.
3776 (conditional_trap): Replace with...
3777 (ctrapsi4, ctrapdi4): ... this.
3778 (stack_protect_test): Use cbranchcc4.
3779
3780 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3781 argument to rtx.
3782 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3783 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3784 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3785 from operands[0] or operands[3] depending on is_set.
3786 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3787 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3788 cmpdf, bCC), sCC: Remove.
3789 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3790 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3791 cstoredf4): New.
3792 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3793 spu_emit_branch_or_set.
3794
3795 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3796 Add two arguments.
3797 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3798 xstormy16_compare_op1): Delete.
3799 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3800 xstormy16_compare_op1): Delete.
3801 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3802 Adjust calls.
3803 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3804 (cmphi, cmpsi, bCC): Remove.
3805
3806 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3807 (*cmpsi): ... this one.
3808 (cbranchsi4, cstoresi4): New.
3809 (bCC expanders): Delete.
3810 (sCC insns): Fold into...
3811 (*setcc): ... this one.
3812 (casesi): Do not use gen_cmpsi and gen_bgtu.
3813 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3814 (movsicc): Simplify.
3815 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3816
3817 * config/vax/vax-protos.h (cond_name): New.
3818 (vax_output_conditional_branch): Remove.
3819 * config/vax/vax.c (cond_name): New.
3820 (vax_output_conditional_branch): Remove.
3821 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3822 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3823 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3824 (bit<VAXint>): Wrap source with (compare).
3825 (b<code> and following unnamed pattern): Rename to *branch and
3826 *branch_reversed. Change macroization to match_operator.
3827 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3828
3829 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3830 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3831 Change last argument to machine_mode.
3832 (xtensa_expand_scc): Add machine_mode argument.
3833 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3834 (gen_conditional_move, xtensa_expand_conditional_branch,
3835 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3836 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3837 Adjust operand numbers.
3838 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3839 Delete.
3840 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3841 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3842 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
3843
3844 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3845
3846 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3847 causes spurious differences between trunk and cond-optab branch.
3848
3849 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
3850
3851 PR target/37137
3852 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3853
3854 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
3855
3856 * tree.c (iterative_hash_pointer): Delete.
3857 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3858 Hash UIDs and versions of SSA names. Don't special-case built-in
3859 function declarations.
3860
3861 2009-05-11 Ian Lance Taylor <iant@google.com>
3862
3863 PR bootstrap/40103
3864 * graphite.c: Force -Wc++-compat to only be a warning before
3865 #including "cloog/cloog.h".
3866
3867 2009-05-11 Martin Jambor <mjambor@suse.cz>
3868
3869 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3870
3871 2009-05-11 Jan Hubicka <jh@suse.cz>
3872
3873 * tree-ssa-loop-ivcanon.c: Include target.h
3874 (struct loop_size): new structure.
3875 (constant_after_peeling): New predicate.
3876 (tree_estimate_loop_size): New function.
3877 (estimated_unrolled_size): Rewrite for new estimates.
3878 (try_unroll_loop_completely): Use new estimates.
3879 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3880
3881 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3882
3883 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3884 libcpp interface change.
3885 (spu_macro_to_expand): Likewise.
3886
3887 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
3888
3889 PR tree-optimization/40026
3890 * gimplify.c (gimplify_init_constructor): Change initial conditional
3891 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3892 optimize_compound_literals_in_ctor.
3893
3894 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3895
3896 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3897 New devices.
3898 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3899
3900 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3901
3902 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3903 HOST_WIDE_INT for gap.
3904
3905 2009-05-11 Ira Rosen <irar@il.ibm.com>
3906
3907 PR tree-optimization/40074
3908 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3909 account in group size and step comparison.
3910
3911 2009-05-11 Richard Guenther <rguenther@suse.de>
3912
3913 * passes.c (init_optimization_passes): Strip now incorrect comment.
3914 (execute_function_todo): Do not set PROP_alias.
3915 * tree-pass.h (PROP_alias): Remove.
3916 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3917 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3918 * tree-nrv.c (pass_return_slot): Likewise.
3919 * tree-object-size.c (pass_object_sizes): Likewise.
3920 * tree-ssa-dom.c (pass_dominator): Likewise.
3921 (pass_phi_only_cprop): Likewise.
3922 * tree-ssa-dse.c (pass_dse): Likewise.
3923 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3924 (pass_cselim): Likewise.
3925 * tree-ssa-pre.c (pass_pre): Likewise.
3926 (pass_fre): Likewise.
3927 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3928 * tree-ssa-sink.c (pass_sink_code): Likewise.
3929 * tree-stdarg.c (pass_stdarg): Likewise.
3930 * tree-tailcall.c (pass_tail_calls): Likewise.
3931 * tree-vrp.c (pass_vrp): Likewise.
3932
3933 2009-05-10 Ian Lance Taylor <iant@google.com>
3934
3935 * basic-block.h (enum profile_status): Break out of struct
3936 control_flow_graph.
3937 * cgraph.h (struct inline_summary): Break out of struct
3938 cgraph_local_info.
3939 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3940 of struct cgraph_order_sort.
3941 * combine.c (enum undo_kind): New enum, broken out of struct undo.
3942 * cse.c (struct branch_path): Break out of struct
3943 cse_basic_block_data.
3944 * except.h (enum eh_region_type): Break out of struct eh_region.
3945 * gcc.c (enum add_del): Break out of struct modify_target.
3946 * genrecog.c (enum decision_type): Break out of struct decision_test.
3947 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3948 ggc_pch_data.
3949 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3950 * regmove.c (enum match_use): New enum, broken out of struct match.
3951 * sched-int.h (enum post_call_group): New enum, broken out of
3952 struct deps.
3953 (struct deps_reg): Break out of struct deps.
3954 * target.h (struct asm_int_op): Break out of struct gcc_target.
3955 * tree-eh.c (struct goto_queue_node): Break out of struct
3956 leh_tf_state.
3957 * tree-inline.h (enum copy_body_cge_which): Break out of
3958 copy_body_data.
3959 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3960
3961 * c-decl.c (in_struct, struct_types): New static variables.
3962 (pushtag): Add loc parameter. Change all callers.
3963 (lookup_tag): Add ploc parameter. Change all callers.
3964 (check_compound_literal_type): New function.
3965 (parser_xref_tag): Add loc parameter. Change all callers. If
3966 -Wc++-compat, warn about struct/union/enum types defined within a
3967 struct or union.
3968 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3969 and loc parameters. Change all callers. Change error calls to
3970 error_at, using loc. For a redefinition, if the location of the
3971 original definition is known, report it. Set in_struct and
3972 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
3973 (finish_struct): Add new parameters enclosing_in_struct and
3974 enclosing_struct_types. Change all callers. Set
3975 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3976 in the struct. If in a struct, add this struct to struct_types.
3977 (start_enum): Add loc parameter. Change all callers. Use
3978 error_at for errors, using loc. For a redefinition, if the
3979 location of the original definition is known, report it. If in a
3980 struct, add this enum type to struct_types. If -Wc++-compat warn
3981 if in sizeof, typeof, or alignof.
3982 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3983 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
3984 (c_parser_enum_specifier): Get enum location for start_enum.
3985 (c_parser_struct_or_union_specifier): Get struct location for
3986 start_struct. Save in_struct and struct_types status between
3987 start_struct and finish_struct.
3988 (c_parser_cast_expression): Get location of cast.
3989 (c_parser_alignof_expression): Get location of type.
3990 (c_parser_postfix_expression): Likewise.
3991 (c_parser_postfix_expression_after_paren_type): Add type_loc
3992 parameter. Change all callers. Call check_compound_literal_type.
3993 Use type_loc for error about variable size type.
3994 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3995 of an enum constant from an enum type defined in a struct or union.
3996 (c_cast_expr): Add loc parameter. Change all callers. If
3997 -Wc++-compat, warn about defining a type in a cast.
3998 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3999 (start_enum, start_struct, finish_struct): Update declarations.
4000 (parser_xref_tag, c_cast_expr): Update declarations.
4001 (check_compound_literal_type): Declare.
4002
4003 2009-05-11 Ben Elliston <bje@au.ibm.com>
4004
4005 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4006 for recent libcpp interface change.
4007 (rs6000_macro_to_expand): Likewise.
4008
4009 2009-05-10 Michael Matz <matz@suse.de>
4010
4011 PR target/40031
4012 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4013 not at entry of function.
4014
4015 2009-05-10 Richard Guenther <rguenther@suse.de>
4016
4017 PR tree-optimization/40081
4018 Revert
4019 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4020 using the main variant of the element type. Do not fiddle with
4021 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4022
4023 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4024 structs with volatile fields.
4025
4026 2009-05-10 Jan Hubicka <jh@suse.cz>
4027
4028 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
4029 (estimate_move_cost): Assert that it does not get called for
4030 VOID_TYPE_P.
4031 (estimate_num_insns): Skip VOID types in argument handling.
4032 (optimize_inline_calls): Delete unreachable blocks and verify that
4033 callgraph is valid.
4034
4035 2009-05-10 Jan Hubicka <jh@suse.cz>
4036
4037 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4038 * cgraph.c (cgraph_mark_address_taken_node): New function.
4039 (dump_cgraph_node): Dump new flag.
4040 * cgraph.h (struct cgraph_node): Add address_taken.
4041 (cgraph_mark_address_taken_node): New function.
4042 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4043 since new direct calls can be born.
4044
4045 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4046
4047 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4048 tok->val.node.node.
4049
4050 2009-05-10 Jan Hubicka <jh@suse.cz>
4051
4052 PR middle-end/40084
4053 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4054 argument; rewrite.
4055 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4056 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4057 * tree-inline.c (copy_bb): Set frequency correctly.
4058 (fold_marked_statements): Update call to
4059 cgraph_update_edges_for_call_stmt.
4060
4061 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4062
4063 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4064 identifiers in diagnostics.
4065 * config/arm/arm.c (arm_handle_fndecl_attribute,
4066 arm_handle_isr_attribute): Likewise.
4067 * config/avr/avr.c (avr_handle_progmem_attribute,
4068 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
4069 * config/bfin/bfin.c (handle_int_attribute,
4070 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4071 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4072 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4073 Likewise.
4074 * config/darwin.c (darwin_handle_kext_attribute,
4075 darwin_handle_weak_import_attribute): Likewise.
4076 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4077 h8300_handle_eightbit_data_attribute,
4078 h8300_handle_tiny_data_attribute): Likewise.
4079 * config/i386/i386.c (ix86_handle_cconv_attribute,
4080 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
4081 * config/i386/winnt.c (ix86_handle_shared_attribute,
4082 ix86_handle_selectany_attribute): Likewise.
4083 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4084 * config/m32c/m32c.c (function_vector_handler): Likewise.
4085 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4086 m68hc11_handle_fntype_attribute): Likewise.
4087 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4088 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4089 * config/mips/mips.c (mips_insert_attributes,
4090 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4091 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4092 rs6000_handle_struct_attribute): Likewise.
4093 * config/sh/sh.c (sh_insert_attributes,
4094 sh_handle_resbank_handler_attribute,
4095 sh_handle_interrupt_handler_attribute,
4096 sh2a_handle_function_vector_handler_attribute,
4097 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4098 Likewise.
4099 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4100 * config/spu/spu.c (spu_handle_fndecl_attribute,
4101 spu_handle_vector_attribute): Likewise.
4102 * config/stormy16/stormy16.c
4103 (xstormy16_handle_interrupt_attribute): Likewise.
4104 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4105 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4106
4107 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4108
4109 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
4110 (pp_translate_identifiers): New.
4111 (pp_identifier): Only conditionally translate identifier to locale
4112 character set.
4113 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4114 (pp_base_tree_identifier): Only conditionally translate identifier
4115 to locale character set.
4116 * c-pretty-print.c (M_): Define.
4117 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4118 fragments for conditional translation with M_.
4119 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4120 identifier translation.
4121
4122 2009-05-10 Richard Guenther <rguenther@suse.de>
4123
4124 PR tree-optimization/40081
4125 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4126 using the main variant of the element type. Do not fiddle with
4127 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4128
4129 2009-05-09 Jan Hubicka <jh@suse.cz>
4130
4131 PR middle-end/40080
4132 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4133 indirect calls; verify cgraph afterwards.
4134
4135 2009-05-09 Jan Hubicka <jh@suse.cz>
4136
4137 PR bootstrap/40082
4138 * ipa.c (update_inlined_to_pointer): New function.
4139 (cgraph_remove_unreachable_nodes): Use it.
4140
4141 2009-05-09 Jan Hubicka <jh@suse.cz>
4142
4143 * tree-eh.c (struct leh_state): Remove prev_try.
4144 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4145 not track prev_try.
4146 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4147 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4148 remove_eh_handler_and_replace, foreach_reachable_handler,
4149 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4150 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4151 (gen_eh_region_cleanup): Update prototype.
4152
4153 2009-05-09 Jan Hubicka <jh@suse.cz>
4154
4155 PR middle-end/40043
4156 * except.c (copy_eh_region): Always set prev_try.
4157 (redirect_eh_edge_to_label): Find outer try.
4158 (foreach_reachable_handler): When looking for prev try
4159 handle case where previous try is not going to be taken.
4160
4161 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4162
4163 PR tree-optimization/40049
4164 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4165 only vector/vector shifts, convert the type of the constant to the
4166 appropriate type to avoid building incorrect trees, which
4167 eventually have problems with garbage collection.
4168
4169 2009-05-08 Joseph Myers <joseph@codesourcery.com>
4170
4171 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4172 -1 for complex floating-point types if honoring signed zeros.
4173
4174 2009-05-08 Jan Hubicka <jh@suse.cz>
4175
4176 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4177 argument; handle correctly when profile is absent.
4178 (build_cgraph_edges): Update.
4179 (rebuild_cgraph_edges): Update.
4180 * cgraph.c: Do not include varray.h.
4181 (cgraph_set_call_stmt_including_clones): New function.
4182 (cgraph_create_edge_including_clones): Likewise
4183 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
4184 (cgraph_update_edges_for_call_stmt): Handle clones.
4185 (cgraph_remove_node): Handle clone tree.
4186 (cgraph_remove_node_and_inline_clones): New function.
4187 (dump_cgraph_node): Dump clone tree.
4188 (cgraph_clone_node): Handle clone tree.
4189 (clone_function_name): Bring here from tree-inline.c.
4190 (cgraph_create_virtual_clone): New function.
4191 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4192 (cgraph_clone_info): New function.
4193 (strut cgraph_node): Add clone_info and new clone tree pointers.
4194 (cgraph_remove_node_and_inline_clones,
4195 cgraph_set_call_stmt_including_clones,
4196 cgraph_create_edge_including_clones,
4197 cgraph_create_virtual_clone): Declare.
4198 (cgraph_function_versioning): Use VEC argument.
4199 (compute_call_stmt_bb_frequency): Update prototype.
4200 (cgraph_materialize_all_clones): New function.
4201 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4202 (ipcp_create_replace_map): Update to VECtors.
4203 (ipcp_update_callgraph): Use virtual clones.
4204 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4205 (ipcp_update_profiling): Do not update local profiling.
4206 (ipcp_insert_stage): Use VECtors and virtual clones.
4207 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4208 (clone_of_p): New function.
4209 (cgraph_preserve_function_body_p): Use clone tree.
4210 (cgraph_optimize): Materialize clones.
4211 (cgraph_function_versioning): Update for VECtors.
4212 (save_inline_function_body): Use clone tree.
4213 (cgraph_materialize_clone): New function.
4214 (cgraph_materialize_all_clones): Likewise.
4215 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4216 * ipa.c: Include gimple.h.
4217 (cgraph_remove_unreachable_nodes): Use clone tree.
4218 * ipa-prop.c (ipa_note_param_call): Update call to
4219 compute_call_stmt_bb_frequencycall.
4220 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
4221 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
4222 (copy_bb): Handle updating of clone tree; add new edge when new call
4223 appears.
4224 (expand_call_inline): Be strict about every call having edge.
4225 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4226 (delete_unreachable_blocks_update_callgraph): New function.
4227 (tree_function_versioning): Use VECtors; always remove unreachable
4228 blocks and fold conditionals.
4229 * tree-inline.h: Do not include varray.h.
4230 (tree_function_versioning): Remove.
4231 * Makefile.in (GTFILES): Remove tree-inline.c
4232 * passes.c (do_per_function): Do only functions having body.
4233 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4234 tree.
4235
4236 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4237 Andrew Morrow <acm@google.com>
4238
4239 PR c/36892
4240 * c-common.c (c_common_attribute_table): Permit deprecated
4241 attribute to take an optional argument.
4242 (handle_deprecated_attribute): If the optional argument to
4243 __attribute__((deprecated)) is not a string ignore the attribute
4244 and emit a warning.
4245
4246 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4247 * c-typeck.c (build_component_ref): Likewise.
4248 (build_external_ref): Likewise.
4249
4250 * toplev.c (warn_deprecated_use): Add an attribute argument.
4251 Emit the message associated with __attribute__((deprecated)).
4252
4253 * toplev.h (warn_deprecated_use): Updated.
4254
4255 * doc/extend.texi: Document new optional parameter to
4256 __attribute__((deprecated))
4257
4258 2009-05-08 Michael Eager <eager@eagercon.com>
4259
4260 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4261 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4262
4263 2009-05-08 Richard Guenther <rguenther@suse.de>
4264
4265 PR tree-optimization/40062
4266 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4267 Avoid exponential behavior.
4268
4269 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4270
4271 PR rtl-optimization/33928
4272 PR 26854
4273 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4274 process_uses, build_single_def_use_links): New.
4275 (update_df): Update use_def_ref.
4276 (forward_propagate_into): Use get_def_for_use instead of use-def
4277 chains.
4278 (fwprop_init): Call build_single_def_use_links and let it initialize
4279 dataflow.
4280 (fwprop_done): Free use_def_ref.
4281 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4282 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4283 df_rd_simulate_one_insn): New.
4284 (df_rd_bb_local_compute_process_def): Update head comment.
4285 (df_chain_create_bb): Use the new RD simulation functions.
4286 * df.h (df_rd_simulate_artificial_defs_at_top,
4287 df_rd_simulate_one_insn): New.
4288 * opts.c (decode_options): Enable fwprop at -O1.
4289 * doc/invoke.texi (-fforward-propagate): Document this.
4290
4291 2009-05-08 Joseph Myers <joseph@codesourcery.com>
4292
4293 PR c/24581
4294 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4295 and one complex operand specially.
4296 * tree-complex.c (some_nonzerop): Do not identify a real value as
4297 zero if flag_signed_zeros.
4298
4299 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4300
4301 PR rtl-optimization/33928
4302 * loop-invariant.c (record_use): Fix && vs. || mishap.
4303
4304 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4305
4306 PR rtl-optimization/33928
4307 * loop-invariant.c (struct use): Add addr_use_p.
4308 (struct def): Add n_addr_uses.
4309 (struct invariant): Add cheap_address.
4310 (create_new_invariant): Set cheap_address.
4311 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4312 (record_uses): Pass df_ref to record_use.
4313 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4314 used only as such.
4315
4316 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4317
4318 * config/sh/sh.c: Do not include c-pragma.h.
4319
4320 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4321
4322 * config/spu/spu.c: Remove include of c-common.h.
4323
4324 2009-05-07 Janis Johnson <janis187@us.ibm.com>
4325
4326 PR c/39037
4327 * c-common.h (mark_valid_location_for_stdc_pragma,
4328 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4329 clear_float_const_decimal64, float_const_decimal64_p): New.
4330 * c.opt (Wunsuffixed-float-constants): New.
4331 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4332 unsuffixed float constant, handle new warning.
4333 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4334 * c-decl.c (c_scope): New flag float_const_decimal64.
4335 (set_float_const_decimal64, clear_float_const_decimal64,
4336 float_const_decimal64_p): New.
4337 (push_scope): Set new flag.
4338 * c-parser.c (c_parser_translation_unit): Mark when it's valid
4339 to use STDC pragmas.
4340 (c_parser_external_declaration): Ditto.
4341 (c_parser_compound_statement_nostart): Ditto.
4342 * c-pragma.c (valid_location_for_stdc_pragma,
4343 mark_valid_location_for_stdc_pragma,
4344 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4345 handle_pragma_float_const_decimal64): New.
4346 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4347 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4348 set_float_const_decimal64, clear_float_const_decimal64,
4349 float_const_decimal64_p): New dummy functions.
4350 * doc/extend.texi (Decimal Float): Remove statement that the
4351 pragma, and suffix for double constants, are not supported.
4352 * doc/invoke.texi (Warning Options): List new option.
4353 (-Wunsuffixed-float-constants): New.
4354
4355 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4356
4357 * config/i386/i386.c: Do not include c-common.h.
4358
4359 2009-05-07 Mark Heffernan <meheff@google.com>
4360
4361 * doc/invoke.texi (Debugging Options): Document change of debugging
4362 dump location.
4363 * opts.c (decode_options): Make dump_base_name relative to
4364 aux_base_name directory.
4365
4366 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4367
4368 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4369 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4370
4371 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
4372
4373 * Makefile.in (install-plugin): Simplify a bit.
4374
4375 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
4376
4377 * Makefile.in (OBJS-common): Add regcprop.o.
4378 (regcprop.o): New.
4379 * timevar.def (TV_CPROP_REGISTERS): New.
4380 * regrename.c (regrename_optimize): Return 0.
4381 (rest_of_handle_regrename): Delete.
4382 (pass_rename_registers): Point to regrename_optimize.
4383 (struct value_data_entry, struct value_data,
4384 kill_value_one_regno, kill_value_regno, kill_value,
4385 set_value_regno, init_value_data, kill_clobbered_value,
4386 kill_set_value, kill_autoinc_value, copy_value,
4387 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4388 replace_oldest_value_reg, replace_oldest_value_addr,
4389 replace_oldest_value_mem, copyprop_hardreg_forward_1,
4390 debug_value_data, validate_value_data): Move...
4391 * regcprop.c: ... here.
4392 (rest_of_handle_cprop): Delete.
4393 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4394
4395 2009-05-07 Jakub Jelinek <jakub@redhat.com>
4396
4397 PR middle-end/40057
4398 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4399 GEN_INT for 1 << bitnum.
4400 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4401 build_int_cst_type.
4402
4403 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
4404
4405 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
4406 Remove wrong description of "nand" operation.
4407
4408 2009-05-06 Richard Guenther <rguenther@suse.de>
4409 Adam Nemet <anemet@caviumnetworks.com>
4410
4411 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4412 comment. Add that if LHS is not a gimple register, then RHS1 has
4413 to be a single object (GIMPLE_SINGLE_RHS).
4414
4415 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
4416
4417 * expr.c (get_def_for_expr): Move it up in the file.
4418 (store_field): When expanding a bit-field store, look at the
4419 defining gimple stmt for the masking conversion.
4420
4421 2009-05-06 Janis Johnson <janis187@us.ibm.com>
4422
4423 PR middle-end/39986
4424 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4425 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4426 32-bit memcpy into long.
4427
4428 2009-05-06 Jakub Jelinek <jakub@redhat.com>
4429
4430 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4431 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4432 new_reg_loc_descr.
4433 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4434 instead of appending DW_OP_deref*.
4435
4436 2009-05-06 Michael Matz <matz@suse.de>
4437
4438 PR middle-end/40021
4439 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4440 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4441
4442 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
4443
4444 * Makefile.in (install-plugin): Fix srcdir handling.
4445
4446 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
4447
4448 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4449 when processing for not_regs_needed bitmap.
4450 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4451 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4452 handling it for rhs.
4453
4454 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4455
4456 * config/i386/i386.md (unnamed inc/dec peephole): Use
4457 optimize_insn_for_size_p instead of optimize_size.
4458 * config/i386/predicates.md (incdec_operand): Likewise.
4459 (aligned_operand): Likewise.
4460 * config/i386/sse.md (divv8sf3): Likewise.
4461 (sqrtv8sf2): Likewise.
4462
4463 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4464
4465 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4466
4467 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4468
4469 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4470
4471 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4472 ssemodesuffixf2c with avxmodesuffixf2c.
4473
4474 2009-05-06 Joseph Myers <joseph@codesourcery.com>
4475
4476 PR c/40032
4477 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
4478
4479 2009-05-05 Jakub Jelinek <jakub@redhat.com>
4480
4481 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4482 (struct tree_base): Adjust spacing for 8 bit boundaries.
4483 (struct tree_decl_common): Add decl_by_reference_flag bit.
4484 (DECL_BY_REFERENCE): Adjust.
4485 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4486 print DECL_BY_REFERENCE bit.
4487 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4488 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4489 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4490 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4491 unconditionally.
4492
4493 PR middle-end/39666
4494 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4495 range of the type, but default label is missing, add it with one
4496 of the existing labels instead of adding a new label for it.
4497
4498 2009-05-05 Joseph Myers <joseph@codesourcery.com>
4499
4500 * dwarf.h: Remove.
4501
4502 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
4503
4504 * Makefile.in (enable_plugin, plugin_includedir): New.
4505 (install): Depend on install-plugin.
4506 (PLUGIN_HEADERS): New.
4507 (install-plugin): New.
4508 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4509
4510 2009-05-05 Richard Guenther <rguenther@suse.de>
4511
4512 PR tree-optimization/40022
4513 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4514 the only vuse.
4515 (phivn_valid_p): Fix tuplification error, simplify.
4516 (phiprop_insert_phi): Add dumps.
4517 (propagate_with_phi): Simplify.
4518
4519 2009-05-05 Richard Guenther <rguenther@suse.de>
4520
4521 PR middle-end/40023
4522 * builtins.c (gimplify_va_arg_expr): Properly build the address.
4523
4524 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4525
4526 * tree.h (strip_float_extensions): Remove duplicate declaration.
4527 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4528 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4529 block_ultimate_origin): Rearrange the declarations line to match the
4530 comment that indicates the .c file which the functions are defined.
4531 (dwarf2out_*, set_decl_rtl): Add comment.
4532 (get_base_address): Adjust comment.
4533 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4534 declarations line and add comment.
4535 (is_builtin_name): Add blank after function name, for clarity.
4536
4537 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4538
4539 * attribs.c (decl_attributes): Use %qE for identifiers in
4540 diagnostics.
4541 * cgraphunit.c (verify_cgraph_node): Translate function names to
4542 locale character set in diagnostics.
4543 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4544 diagnostics.
4545 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4546 Document that functions are named in UTF-8.
4547 * expr.c (expand_expr_real_1): Translate function names to locale
4548 character set in diagnostics.
4549 * gimplify.c (omp_notice_variable, omp_is_private,
4550 gimplify_scan_omp_clauses): Use %qE for identifiers in
4551 diagnostics.
4552 * langhooks.c (lhd_print_error_function): Translate function names
4553 to locale character set.
4554 * langhooks.h (decl_printable_name): Document that return value is
4555 in internal character set.
4556 * stmt.c: Include pretty-print.h
4557 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4558 diagnostics.
4559 (resolve_operand_name_1): Translate named operand name to locale
4560 character set.
4561 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4562 diagnostics.
4563 * toplev.c (announce_function): Translate function names to locale
4564 character set.
4565 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4566 (default_tree_printer): Use pp_identifier or translate identifiers
4567 to locale character set. Mark "<anonymous>" for translation.
4568 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4569 for identifiers in diagnostics.
4570 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4571 diagnostics.
4572 * varasm.c (output_constructor): Use %qE for identifiers in
4573 diagnostics.
4574
4575 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
4576
4577 * configure.ac: use ` ` instead of $()
4578 * configure: Regenerate.
4579
4580 2009-05-05 Ben Elliston <bje@au.ibm.com>
4581
4582 * config/pa/linux-atomic.c: Eliminate conditional include of
4583 errno.h on non-LP64 systems to simplify build requirements.
4584
4585 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4586
4587 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4588 diagnostics.
4589 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4590 and pass value to identifier_to_locale.
4591 (warn_variable_length_array): Make name a tree.
4592 (grokdeclarator): Separate diagnostic texts for named and unnamed
4593 declarators. Use %qE for named declarators.
4594 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4595 diagnostics.
4596 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4597 identifiers in diagnostics.
4598 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4599 identifier_to_locale. Mark "anonymous" strings for translation.
4600
4601 2009-05-04 Michael Eager <eager@eagercon.com>
4602
4603 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
4604 address for DImode/DFmode only if double-precision FP regs.
4605
4606 2009-05-04 Michael Eager <eager@eagercon.com>
4607
4608 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4609 TARGET_SINGLE_FLOAT check.
4610
4611 2009-05-04 Michael Eager <eager@eagercon.com>
4612
4613 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4614
4615 2009-05-04 Michael Eager <eager@eagercon.com>
4616
4617 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4618 * config/rs6000/t-xilinx: New
4619
4620 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
4621
4622 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
4623 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4624 * gcc/explow.c (memory_address): Use target hook.
4625 * gcc/targhooks.c (default_legitimize_address): New.
4626 * gcc/targhooks.h (default_legitimize_address): New.
4627 * gcc/target.h (legitimize_address): New.
4628 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4629 (TARGET_INITIALIZER): Include it.
4630 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4631
4632 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4633 * config/bfin/bfin.c (legitimize_address): Remove.
4634 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
4635 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4636 Remove.
4637 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4638 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4639
4640 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4641 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4642 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4643 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4644 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4645 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4646 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4647 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4648 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4649 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4650 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4651 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4652 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4653 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4654 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4655 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4656 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4657 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4658 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4659 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4660 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4661 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4662 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4663
4664 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4665 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4666 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4667 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4668 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4669 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4670 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4671 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4672 (thumb_legitimize_address): Delete.
4673 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4674 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4675 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4676 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4677 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
4678 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4679 Delete.
4680 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4681 Delete.
4682
4683 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4684 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4685 * config/m32r/m32r.c (m32r_legitimize_address): New.
4686 * config/m68k/m68k.c (m68k_legitimize_address): New.
4687 * config/score/score.c (score_legitimize_address): Standardize.
4688 * config/score/score3.c (score3_legitimize_address): Standardize.
4689 * config/score/score3.h (score3_legitimize_address): Adjust.
4690 * config/score/score7.c (score7_legitimize_address): Standardize.
4691 * config/score/score7.h (score7_legitimize_address): Adjust.
4692 * config/sh/sh.c (sh_legitimize_address): New.
4693 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4694
4695 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4696 (s390_legitimize_address): ... this.
4697 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4698 (sparc_legitimize_address): ... this.
4699 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4700 (ix86_legitimize_address): ... this.
4701 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4702 (avr_legitimize_address): ... this.
4703 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4704 (mn10300_legitimize_address): ... this.
4705 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4706 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4707 (alpha_expand_mov): Adjust call.
4708
4709 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4710 * config/spu/spu.c (spu_legitimize_address): Likewise.
4711 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4712 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4713
4714 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4715
4716 * intl.c (locale_encoding, locale_utf8): New.
4717 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4718 * intl.h (locale_encoding, locale_utf8): Declare.
4719 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4720 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4721 New.
4722 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4723 argument.
4724 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4725 (pp_base_tree_identifier): Declare as function.
4726 (identifier_to_locale): Declare.
4727 * Makefile.in (pretty-print.o): Update dependencies.
4728 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
4729
4730 2009-05-04 Richard Guenther <rguenther@suse.de>
4731
4732 PR middle-end/40015
4733 * builtins.c (fold_builtin_memory_op): Do not decay to element
4734 type if the size matches the whole array.
4735
4736 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
4737
4738 * expmed.c (synth_mult): When trying out a shift, pass the result
4739 of a signed shift.
4740
4741 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
4742
4743 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4744 (shiftsub1_cost): New.
4745 (init_expmed): Compute shiftsub1_cost.
4746 (synth_mult): Optimize multiplications by constants of the form
4747 -(2^^m-1) for some constant positive integer m.
4748
4749 2009-05-03 Richard Guenther <rguenther@suse.de>
4750
4751 PR c/39983
4752 * c-typeck.c (array_to_pointer_conversion): Do not built
4753 ADDR_EXPRs of arrays of pointer-to-element type.
4754 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4755 up wrong ADDR_EXPRs after-the-fact.
4756 * c-common.c (strict_aliasing_warning): Strip pointer
4757 conversions for obtaining the original type.
4758 * builtins.c (fold_builtin_memset): Handle array types.
4759 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4760 and array types
4761
4762 2009-05-03 Richard Guenther <rguenther@suse.de>
4763
4764 PR middle-end/23329
4765 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4766 Do not lose casts from array types with unknown extent to array
4767 types with known extent.
4768 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4769 alias set compatibility.
4770
4771 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4772
4773 * flags.h (extra_warnings): Delete.
4774 * toplev.c (process_options): Handle Wuninitialized here.
4775 * opts.c (extra_warnings): Delete.
4776 (set_Wextra): Delete.
4777 (common_handle_option): -Wextra can be handled automatically.
4778 * c-opts.c (c_common_handle_option): Delete obsolete code.
4779 (c_common_post_options): Simplify comment.
4780 * common.opt (W): Add Var.
4781 (Wextra): Add Var.
4782 (Wuninitialized): Initialize to -1.
4783
4784 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4785 Richard Guenther <rguenther@suse.de>
4786
4787 * expr.c (get_def_for_expr): New function.
4788 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4789 SSA rather than trees.
4790 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4791 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4792
4793 2009-05-03 Joseph Myers <joseph@codesourcery.com>
4794
4795 * c-common.c (reswords): Add _Imaginary.
4796 * c-common.c (enum rid): Add RID_IMAGINARY.
4797
4798 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
4799
4800 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4801 Patch by Richard Guenther.
4802
4803 2009-05-03 Anatoly Sokolov <aesok@post.ru>
4804
4805 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4806 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4807 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4808 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4809 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4810 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4811 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4812 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4813 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4814 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4815 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4816 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4817 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4818 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4819 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4820 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4821 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4822 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4823
4824 2009-05-02 Richard Guenther <rguenther@suse.de>
4825
4826 PR tree-optimization/39940
4827 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4828 doing so.
4829
4830 2009-05-02 Richard Guenther <rguenther@suse.de>
4831
4832 PR middle-end/40001
4833 * tree-ssa.c (execute_update_addresses_taken): Properly check
4834 if we can mark a variable DECL_GIMPLE_REG_P.
4835 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4836 back to the end of the function.
4837 (is_gimple_reg_type): Remove complex type special casing.
4838 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4839 if not optimizing.
4840
4841 2009-05-02 Ben Elliston <bje@au.ibm.com>
4842
4843 * doc/collect2.texi (Collect2): Document search path behaviour
4844 when configured with --with-ld.
4845
4846 2009-05-02 Jan Hubicka <jh@suse.cz>
4847
4848 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4849 parameter; update callers.
4850 (coalesce_cost_edge): EH edges are costier because they needs
4851 splitting even if not critical and even more costier when there are
4852 multiple EH predecestors.
4853
4854 2009-05-02 Jan Hubicka <jh@suse.cz>
4855
4856 * except.c (remove_eh_handler_and_replace): Handle updating after
4857 removing TRY blocks.
4858
4859 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4860
4861 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4862
4863 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4864
4865 * varasm.c: Do not include c-pragma.h.
4866 * attribs.c: Do not incude c-common.h.
4867
4868 2009-05-01 Michael Matz <matz@suse.de>
4869
4870 * calls.c (initialize_argument_information): Handle SSA names like
4871 decls with a non MEM_P DECL_RTL.
4872
4873 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4874
4875 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4876 * ipa-utils.c: Likewise.
4877 * ipa-type-escape.c: Likewise.
4878 * cgraphunit.c Do not include c-common.h.
4879 * ipa-pure-const.c: Likewise.
4880 * tree-if-conv.c: Likewise.
4881 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4882 * ipa-struct-reorg.c: Likewise.
4883 * tree-nomudflap.c: Likewise.
4884 * tree-ssa-structalias.c: Likewise.
4885
4886 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4887
4888 * store-motion.c: Many cleanups to make this pass a first-class
4889 citizen instead of an appendix to gcse load motion. Add TODO list
4890 to make this pass faster/cleaner/better.
4891
4892 (struct ls_expr): Post gcse.c-split cleanups.
4893 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4894 "stores" field to "avail_stores".
4895 (pre_ldst_mems): Rename to store_motion_mems.
4896 (pre_ldst_table): Rename to store_motion_mems_table.
4897 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4898 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4899 (ldst_entry): Rename to st_expr_entry, update users.
4900 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4901 (free_ldst_mems): Rename to free_store_motion_mems, update users.
4902 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4903 update caller.
4904 (first_ls_expr): Rename to first_st_expr, update users.
4905 (next_ls_expr): Rename to next_st_expr, update users.
4906 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4907 fields properly for store motion instead of names inherited from load
4908 motion in gcse.c.
4909 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4910 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4911 are done with it.
4912
4913 (ae_kill): Rename to st_kill, update users.
4914 (ae_gen): Rename to st_avloc, update users.
4915 (transp): Rename to st_transp, update users.
4916 (pre_insert_map): Rename to st_insert_map, update users.
4917 (pre_delete_map): Rename to st_delete_map, update users.
4918 (insert_store, build_store_vectors, free_store_memory,
4919 one_store_motion_pass): Update for abovementioned changes.
4920
4921 (gcse_subst_count, gcse_create_count): Remove.
4922 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4923 and "n_stores_created", local variables.
4924
4925 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4926 use for_each_rtx.
4927
4928 (regvec, compute_store_table_current_insn): Remove.
4929 (reg_set_info, reg_clear_last_set): Remove.
4930 (compute_store_table): Use DF caches instead of local dataflow
4931 solvers.
4932
4933 2009-05-01 Joseph Myers <joseph@codesourcery.com>
4934
4935 * c-objc-common.c (c_tree_printer): Print identifiers with
4936 pp_identifier, not pp_string. Mark "({anonymous})" for
4937 translation.
4938 * c-pretty-print.c (pp_c_ws_string): New.
4939 (pp_c_cv_qualifier, pp_c_type_specifier,
4940 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4941 pp_c_storage_class_specifier, pp_c_function_specifier,
4942 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4943 pp_c_primary_expression, pp_c_postfix_expression,
4944 pp_c_unary_expression, pp_c_shift_expression,
4945 pp_c_relational_expression, pp_c_equality_expression,
4946 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4947 use pp_string and pp_c_ws_string in place of pp_identifier and
4948 pp_c_identifier for non-identifiers. Mark English strings for
4949 translation.
4950 * c-pretty-print.h (pp_c_ws_string): Declare.
4951
4952 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4953 Roland McGrath <roland@redhat.com>
4954
4955 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
4956 (ENABLE_LD_BUILDID): New configuration option.
4957 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4958 (LINK_BUILDID_SPEC): New macro.
4959 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4960 link_spec.
4961 * doc/install.texi: Document --enable-linker-build-id option.
4962 * configure: Rebuild.
4963 * config.in: Rebuild.
4964
4965 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4966
4967 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4968 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4969 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4970 MIPS_GP_SAVE_AREA_SIZE.
4971 * config/mips/mips.c (struct mips_frame_info): Update comment
4972 before arg_pointer_offset and hard_frame_pointer_offset.
4973 (mips_compute_frame_info): Update diagram before function: to
4974 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4975 indicate the position of frame_pointer_rtx with -fstack-protector and
4976 to show args_size. Don't allocate cprestore area for leaf functions
4977 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4978 cprestore_size.
4979 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4980
4981 2009-04-30 Michael Matz <matz@suse.de>
4982
4983 PR tree-optimization/39955
4984 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
4985
4986 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4987
4988 * ira.c (setup_cover_and_important_classes): Use safe macro
4989 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4990 directly.
4991 * genpreds.c (write_tm_preds_h): Output suitable definition of
4992 REG_CLASS_FOR_CONSTRAINT.
4993
4994 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
4995
4996 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4997 instead of an int.
4998 * bitmap.c (bitmap_descriptor): Likewise.
4999 * ggc-common.c (loc_descriptor): Likewise.
5000 * varray.c (varray_descriptor): Likewise.
5001 * vec.c (vec_descriptor): Likewise.
5002
5003 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
5004
5005 * Makefile.in (dce.o): Add $(EXCEPT_H).
5006 * dce.c: Include except.h and delete redundant vector definitions.
5007 (deletable_insn_p): Return false for non-call insns that can throw
5008 if DF is running.
5009
5010 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5011
5012 * gcse.c (ae_gen): Remove.
5013 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5014 and make non-static function to make it available in store-motion.c.
5015 Update call sites with search-and-replace.
5016 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5017 extract_mentioned_regs, extract_mentioned_regs_helper,
5018 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5019 store_killed_in_insn, store_killed_after, store_killed_before,
5020 build_store_vectors, insert_insn_start_basic_block, insert-store,
5021 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5022 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5023 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5024 * store-motion.c: ...new file. Also copy data structures from gcse.c
5025 and clean up to remove parts not used by store motion.
5026 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5027 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5028
5029 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5030
5031 PR target/38571
5032 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5033 when optimizing for size.
5034
5035 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
5036
5037 * gcse.c (gcse_constant_p): Fix typo in last change.
5038
5039 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
5040
5041 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5042
5043 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5044
5045 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5046
5047 2009-04-29 James E. Wilson <wilson@codesourcery.com>
5048
5049 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5050 CONST_HIGH_PART result.
5051
5052 2009-04-29 Anatoly Sokolov <aesok@post.ru>
5053
5054 * config/avr/avr.c (initial_elimination_offset): Rename to
5055 avr_initial_elimination_offset.
5056 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5057 change return type to bool.
5058 (avr_can_eliminate): New function.
5059 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5060 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5061 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
5062 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
5063 avr_initial_elimination_offset.
5064 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5065 (avr_initial_elimination_offset): Define.
5066
5067 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
5068 Steven Bosscher <steven@gcc.gnu.org>
5069
5070 PR rtl-optimization/39938
5071 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5072 * cfgrtl.c: Include insn-attr.h.
5073 (rest_of_pass_free_cfg): New function.
5074 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5075 * resource.c (init_resource_info): Remove call to df_analyze.
5076
5077 2009-04-29 Richard Guenther <rguenther@suse.de>
5078
5079 PR target/39943
5080 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5081 allow conversion to signed integers.
5082
5083 2009-04-29 Richard Guenther <rguenther@suse.de>
5084
5085 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5086 shifts of floating point vectors if the shift amount is
5087 a constant multiple of the element size.
5088
5089 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5090 Michael Matz <matz@suse.de>
5091
5092 PR middle-end/39927
5093 PR bootstrap/39929
5094 * tree-outof-ssa.c (emit_partition_copy): New function.
5095 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5096 insert_part_to_rtx_on_edge): Perform the partition base var
5097 copy using emit_partition_copy.
5098 (insert_value_copy_on_edge): Convert constants to the right mode.
5099 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5100 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5101
5102 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5103
5104 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5105 scan backwards to try to find a constant to initialize it.
5106
5107 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5108 insn before the loop_end instruction, don't look past labels.
5109
5110 2009-04-29 Richard Guenther <rguenther@suse.de>
5111
5112 PR middle-end/39937
5113 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5114 loose type conversions.
5115 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5116 stmts only if there are no uses of its definition.
5117
5118 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5119
5120 * config/bfin/bfin.h (splitting_loops): Declare.
5121 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5122 Reorder bit definitions to be ascending.
5123 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5124 * config/bfin/bfin.c (splitting_loops): New variable.
5125 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5126 (struct loop_info): Remove members INIT and LOOP_INIT.
5127 (bfin_optimize_loop): Don't set them. Reorder the code that generates
5128 the LSETUP sequence. Allow LC to be loaded from any register, but
5129 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
5130 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5131 set to 1.
5132 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5133 of reload_completed.
5134
5135 From Jie Zhang:
5136 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5137
5138 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
5139
5140 * Makefile.in (PLUGIN_VERSION_H): New.
5141 (OBJS-common): Remove plugin-version.o.
5142 (plugin.o): Depend on (PLUGIN_VERSION_H).
5143 (plugin-version.o): Remove.
5144 * configure: Regenerate
5145 * configure.ac: Create plugin-version.h.
5146 * gcc-plugin.h (plugin_gcc_version): Remove.
5147 (plugin_default_version_check): Change signature.
5148 * plugin-version.c: Remove.
5149 * plugin.c: Include plugin-version.h.
5150 (str_plugin_gcc_version_name): Remove.
5151 (try_init_one_plugin): Pass gcc version to plugin_init.
5152 (plugin_default_version_check): Both gcc and plugin versions are now
5153 arguments.
5154
5155 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5156
5157 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5158 problematic last insns. Test for TYPE_CALL rather than CALL_P.
5159 Remove special case testing for last insn of inner loops. Don't fail
5160 if the loop ends with a jump, emit an extra nop instead.
5161
5162 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5163 DREGS rather than comparing directly. Remove code that tries to
5164 account for latencies.
5165
5166 2009-04-29 Richard Guenther <rguenther@suse.de>
5167
5168 PR tree-optimization/39941
5169 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5170 eliminating an indirect call.
5171
5172 2009-04-29 Richard Guenther <rguenther@suse.de>
5173
5174 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5175 parameter. Allow invariants as base if !require_lvalue.
5176 (verify_gimple_assign_single): Adjust.
5177
5178 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5179
5180 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5181 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
5182 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5183 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
5184 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5185 a VEC_SELECT.
5186 * config/bfin/bfin.c (bfin_expand_builtin,
5187 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
5188
5189 2009-04-28 Richard Guenther <rguenther@suse.de>
5190
5191 * tree-vect-loop.c (get_initial_def_for_induction): Use
5192 correct types for pointer increment.
5193
5194 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5195
5196 * toplev.c (print_version): Update GMP version string calculation.
5197
5198 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5199
5200 PR rtl-optimization/39938
5201 * resource.c (init_resource_info): Add call to df_analyze.
5202
5203 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5204
5205 * config/alpha/alpha.md (usegp): Cast the result of
5206 alpha_find_lo_sum_using_gp to enum attr_usegp.
5207 * config/alpha/alpha.c (override_options): Remove end-of-structure
5208 marker element from cpu_table. Use array size of cpu_table to handle
5209 -mcpu and -mtune options.
5210 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5211
5212 2009-04-28 Joseph Myers <joseph@codesourcery.com>
5213
5214 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5215 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5216 tune_32 and tune_64.
5217 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5218 support on PowerPC.
5219 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5220 * config/rs6000/option-defaults.h: ... here. New file.
5221 (OPT_64, OPT_32): Define.
5222 (MASK_64BIT): Define to 0 if not already defined.
5223 (OPT_ARCH64, OPT_ARCH32): Define.
5224 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5225 and tune_64.
5226
5227 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5228
5229 * config/arm/arm.c (arm_override_options): Emit error on using
5230 fpa with AAPCS.
5231
5232 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5233
5234 PR rtl-optimization/39914
5235 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5236 registers for allocnos created from user-defined variables only
5237 when not optimizing.
5238
5239 2009-04-28 Richard Guenther <rguenther@suse.de>
5240
5241 PR middle-end/39937
5242 * fold-const.c (fold_binary): Use distribute_real_division only
5243 on float types.
5244
5245 2009-04-28 Steve Ellcey <sje@cup.hp.com>
5246
5247 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5248 add hpux-stdint.h to tm_file.
5249 (hppa[12]*-*-hpux11*): Ditto.
5250 (ia64*-*-hpux*): Ditto.
5251 * config/hpux-stdint.h: New.
5252 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
5253 __STDC_EXT__ for all compiles.
5254 * config/pa/pa-hpux.h: Ditto.
5255 * config/pa/pa-hpux10.h: Ditto.
5256 * config/pa/pa-hpux11.h: Ditto.
5257
5258 2009-04-28 Catherine Moore <clm@codesourcery.com>
5259
5260 * debug.h (set_name): Add comment.
5261
5262 2009-04-28 Andrew Pinski <pinskia@gmail.com>
5263
5264 PR target/39929
5265 * config/darwin.c (machopic_gen_offset): Check
5266 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5267 * config/arm/arm.c (require_pic_register): Likewise.
5268
5269 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
5270
5271 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5272 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5273 m32c_promote_prototypes): Delete.
5274
5275 2009-04-28 Michael Matz <matz@suse.de>
5276
5277 PR middle-end/39922
5278 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5279 constants.
5280
5281 2009-04-28 Richard Guenther <rguenther@suse.de>
5282
5283 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
5284
5285 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5286
5287 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5288 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5289 * config/arm/arm-tune.md: Regenerate.
5290
5291 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
5292
5293 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5294 block if there are complex incoming edges.
5295 (sel_merge_blocks): Remove useless assert.
5296 (sel_redirect_edge_and_branch): Check that edge was redirected.
5297 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5298 (sel_find_rgns): Delete declaration.
5299 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5300 the region when it is not a preheader.
5301
5302 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5303
5304 PR c/39323
5305 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5306
5307 2009-04-28 Richard Guenther <rguenther@suse.de>
5308
5309 * tree.h (SSA_NAME_VALUE): Remove.
5310 (struct tree_ssa_name): Remove value_handle member.
5311 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5312 array for jump threading.
5313 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5314 SSA_NAME_VALUEs.
5315 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5316 * tree-flow.h (threadedge_initialize_values): Declare.
5317 (threadedge_finalize_values): Likewise.
5318 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5319 (SSA_NAME_VALUE): Define.
5320 (threadedge_initialize_values): New function.
5321 (threadedge_finalize_values): Likewise.
5322 * tree-ssa-dom.c (ssa_name_values): New global variable.
5323 (SSA_NAME_VALUE): Define.
5324 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
5325
5326 2009-04-28 Ira Rosen <irar@il.ibm.com>
5327
5328 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5329 Use REPORT_VECTORIZED_LOCATIONS instead
5330 REPORT_VECTORIZED_LOOPS.
5331 * tree-vectorizer.c (vect_verbosity_level): Make static.
5332 (vect_loop_location): Rename to vect_location.
5333 (vect_set_verbosity_level): Update comment.
5334 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5335 and vect_location.
5336 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5337 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5338 instead REPORT_UNVECTORIZED_LOOPS.
5339 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5340 and vect_loop_def to vect_external_def and vect_internal_def.
5341 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
5342 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
5343 REPORT_UNVECTORIZED_LOCATIONS.
5344 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5345 and vect_used_in_loop and to vect_unused_in_scope and
5346 vect_used_in_scope.
5347 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5348 (vect_verbosity_level): Remove declaration.
5349 (vect_analyze_operations): Likewise.
5350 (vect_analyze_stmt): Declare.
5351 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5352 REPORT_UNVECTORIZED_LOCATIONS.
5353 (vect_get_loop_niters): Fix indentation.
5354 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5355 (vect_analyze_loop_operations): New function.
5356 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5357 vect_analyze_operations.
5358 (vect_is_simple_reduction): Use new names.
5359 (vectorizable_live_operation, vect_transform_loop): Likewise.
5360 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5361 to specify whether the data references can be a part of interleaving
5362 chain.
5363 (vect_analyze_data_ref_dependence): Use new names.
5364 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5365 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5366 * tree-vect-patterns.c (widened_name_p): Use new names.
5367 (vect_recog_dot_prod_pattern): Likewise.
5368 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5369 (process_use, vect_mark_stmts_to_be_vectorized,
5370 vect_model_simple_cost, vect_model_store_cost,
5371 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5372 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5373 vectorizable_operation, vectorizable_type_demotion,
5374 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5375 vectorizable_condition): Likewise.
5376 (vect_analyze_operations): Split into vect_analyze_loop_operations
5377 and ...
5378 (vect_analyze_stmt): ... new function.
5379 (new_stmt_vec_info): Use new names.
5380 (vect_is_simple_use): Use new names and fix comment.
5381 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5382 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5383
5384 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5385
5386 PR target/39911
5387 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5388 and integer modes for x87 operands. Do not ICE for unsupported size,
5389 generate error instead. Generate error for unsupported operand types.
5390 ['z']: Do not handle HImode memory operands specially. Warning
5391 for floating-point operands. Fallthru to 'Z' for unsupported operand
5392 types. Do not ICE for unsupported size, generate error instead.
5393 (output_387_binary_op): Use %Z to output operands.
5394 (output_fp_compare): Ditto.
5395 (output_387_reg_move): Ditto.
5396
5397 2009-04-28 Ben Elliston <bje@au.ibm.com>
5398
5399 PR c++/35652
5400 Revert:
5401
5402 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5403
5404 * builtins.c (c_strlen): Do not warn here.
5405 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5406 * c-common.c (pointer_int_sum): Take an explicit location.
5407 Warn about offsets out of bounds.
5408 * c-common.h (pointer_int_sum): Adjust declaration.
5409
5410 2009-04-27 Ian Lance Taylor <iant@google.com>
5411
5412 * collect2.c (is_ctor_dtor): Change type of ret field in struct
5413 names to symkind.
5414 * dce.c (run_fast_df_dce): Change type of old_flags to int.
5415 * df-core.c (df_set_flags): Change return type to int. Change
5416 type of old_flags to int.
5417 (df_clear_flags): Likewise.
5418 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5419 (df_get_conditional_uses): Likewise.
5420 * df.h (df_set_flags, df_clear_flags): Update declarations.
5421 * dwarf2out.c (struct indirect_string_node): Change type of form
5422 field to enum dwarf_form.
5423 (AT_string_form): Change return type to enum dwarf_form.
5424 * fixed-value.c (fixed_compare): Add cast to enum type.
5425 * fwprop.c (update_df): Change 0 to VOIDmode.
5426 * gensupport.c: Change 0 to UNKNOWN.
5427 * gimple.h (gimple_cond_code): Add cast to enum type.
5428 * haifa-sched.c (reemit_notes): Add cast to enum type.
5429 * hooks.c (hook_int_void_no_regs): Remove function.
5430 * hooks.h (hook_int_void_no_regs): Remove declaration.
5431 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
5432 * predict.c (combine_predictions_for_insn): Add casts to enum type.
5433 * real.c (real_arithmetic): Add cast to enum type.
5434 (real_compare): Likewise.
5435 * target.h (struct gcc_target): Change return type of
5436 branch_target_register_class to enum reg_class.
5437 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5438 default_branch_target_register_class.
5439 * targhooks.c (default_branch_target_register_class): New function.
5440 * targhooks.h (default_branch_target_register_class): Declare.
5441 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
5442 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5443 cast to int.
5444 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5445 ERROR_MARK.
5446 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5447 vect_uninitialized_def. Change 0 to ERROR_MARK.
5448 * tree-vect-stmts.c (supportable_widening_operation): Don't
5449 initialize icode1 and icode2.
5450 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
5451 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5452 and to STD_C89.
5453 (cmn_err_flag_specs): Change 0 to STD_C89.
5454 (cmn_err_char_table): Likewise.
5455 * config/arm/arm.c (get_arm_condition_code): Change type of code
5456 to enum arm_cond_code.
5457 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5458 (IWMMXT_BUILTIN2): Likewise.
5459 (neon_builtin_type_bits): Don't define typedef.
5460 (neon_builtin_datum): Change type of bits field to int.
5461 (arm_expand_neon_args): Add cast to enum type.
5462 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5463 TLS_MODEL_NONE.
5464 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5465 casts to enum type.
5466 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5467 MIPS_FP_COND_f.
5468 * config/mips/mips.md (jal_macro): Return enum constant.
5469 (single_insn): Likewise.
5470 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5471 CODE_FOR_nothing.
5472 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5473 casts to enum type.
5474 * config/s390/s390.c (s390_tune_flags): Change type to int.
5475 (s390_arch_flags): Likewise.
5476 (s390_handle_arch_option): Change flags field of struct pta to int.
5477 * config/s390/s390.h (s390_tune_flags): Update declaration.
5478 (s390_arch_flags): Likewise.
5479 * config/sh/sh.c (prepare_move_operands): Compare
5480 tls_symbolic_operand result with enum constant.
5481 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5482 (sh_expand_prologue): Add cast to enum type.
5483 (sh_expand_epilogue): Likewise.
5484 (tls_symbolic_operand): Change return type to enum tls_model.
5485 (fpscr_set_from_mem): Add cast to enum type.
5486 (legitimize_pic_address): Compare tls_symbolic_operand result with
5487 enum constant.
5488 (sh_target_reg_class): Change return type to enum reg_class.
5489 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5490 PROCESSOR_xxx.
5491 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5492 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
5493 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5494 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5495 (delayed_branch, tls_call_delay): Likewise.
5496 (eligible_for_sibcall_delay): Likewise.
5497 (eligible_for_return_delay): Likewise.
5498 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5499 (spu_expand_builtin_1): Likewise.
5500
5501 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5502 for all types of conversions.
5503 (output_init_element): Issue -Wc++-compat warning if needed when
5504 initializing a bitfield with enum type.
5505 * c-parser.c (c_parser_expression): Set original_type to
5506 original_type of right hand operand of comman operator.
5507
5508 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5509
5510 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5511 grammar nits.
5512 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
5513 * doc/cpp.texi (Standard Predefined Macros)
5514 (Implementation-defined behavior): Likewise.
5515 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
5516 * doc/gimple.texi (GIMPLE Exception Handling)
5517 (@code{GIMPLE_ASSIGN}): Likewise.
5518 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
5519 * doc/invoke.texi (Warning Options, Optimize Options)
5520 (AVR Options, Darwin Options): Likewise.
5521 (Optimize Options): Reformulate -fwhole-program description.
5522 * doc/loop.texi (Lambda): Likewise.
5523 * doc/md.texi (Output Template, Define Constraints)
5524 (Standard Names, Insn Splitting): Likewise.
5525 * doc/options.texi (Option properties): Likewise.
5526 * doc/passes.texi (Tree-SSA passes): Likewise.
5527 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5528 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5529 (File Names and DBX): Likewise.
5530 * doc/trouble.texi (Incompatibilities): Likewise.
5531
5532 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5533
5534 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5535 instruction is correct.
5536
5537 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5538
5539 Allow non-constant arguments to conversion intrinsics.
5540 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5541 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5542 * spu.c (print_operand): Handle 'v' and 'w'.
5543 (exp2_immediate_p, spu_gen_exp2): Define.
5544 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5545 spu_convtf_1): Update parameter descriptions.
5546 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5547 * constraints.md ('v', 'w'): New.
5548 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5549 Remove.
5550 (i2f, I2F): New define_mode_attr.
5551 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5552 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5553 fixuns_truncv4sfv4si2): Update to use mode attribute.
5554 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5555 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5556 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5557 patterns for combine.
5558
5559 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5560
5561 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5562 (cprop, hoist, pre, store_motion): New debug counters.
5563 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5564 is not an RTL pass anymore.
5565 (pass_profiling): Remove extern decl for pass removed in 2005.
5566 (pass_gcse, pass_jump_bypass): Remove.
5567 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5568 to 0 for clean state.
5569 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5570 * cse.c (gate_handle_cse_after_global_opts,
5571 rest_of_handle_cse_after_global_opts): New functions.
5572 (pass_cse_after_global_opts): New pass, does local CSE.
5573 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5574 (TV_CPROP): New timevar.
5575 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5576 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5577 (gcse_main, recompute_all_luids): Remove.
5578 (compute_hash_table_work): Call max_reg_num instead of reading
5579 max_gcse_regno.
5580 (cprop_jump): Don't set run_jump_opt_after_gcse.
5581 (constprop_register): Always allow to alter jumps.
5582 (cprop_insn): Likewise.
5583 (do_local_cprop): Likewise.
5584 (local_cprop_pass): Likewise. Return non-zero if something changed.
5585 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5586 (find_implicit_sets): Add note about missed optimization opportunity.
5587 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5588 pass_rtl_cprop execute function.
5589 Don't bother tracking the pass number, each pass gets its own dumpfile
5590 now anyway.
5591 Always allow to alter jumpsand bypass jumps.
5592 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5593 will just find no suitable set.
5594 (pre_edge_insert): Fix dumping, this function is for PRE only.
5595 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5596 pass_rtl_pre execute function.
5597 (hoist_code): Return non-zero if something changed. Keep track of
5598 substitutions and insertions for statistics gathering similar to PRE.
5599 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5600 called from the pass_rtl_hoist execute function. Show pass statistics.
5601 (compute_store_table): Use max_reg_num directly instead of using the
5602 formerly global max_gcse_regno.
5603 (build_store_vectors): Likewise.
5604 (replace_store_insn): Fix dumping.
5605 (store_motion): Rename to ...
5606 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5607 pass, called from the pass_rtl_store_motion execute function. Keep
5608 track of substitutions and insertions for statistics gathering similar
5609 to PRE.
5610 (bypass_jumps): Remove, fold interesting bits into ...
5611 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5612 from the pass_rtl_cprop execute function.
5613 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5614 pass_jump_bypass): Remove.
5615 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5616 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5617 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5618 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5619 (gate_rtl_store_motion, execute_rtl_store_motion,
5620 pass_rtl_store_motion): New.
5621 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5622 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5623 * passes.c (init_optimization_passes): Remove pass_gcse and
5624 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5625 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5626 instead of pass_jump_bypass.
5627
5628 2009-04-27 Richard Guenther <rguenther@suse.de>
5629
5630 PR middle-end/39928
5631 * gimplify.c (gimplify_expr): If we are required to create
5632 a temporary make sure it ends up as register.
5633
5634 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5635
5636 PR target/39903
5637 * config/i386/i386.c (construct_container): Don't call
5638 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5639 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5640
5641 2009-04-27 Michael Matz <matz@suse.de>
5642
5643 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5644 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5645 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5646 (dump_replaceable_exprs): Take a bitmap.
5647 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5648 array.
5649 (expand_gimple_basic_block): Likewise.
5650 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5651 replaceable_expressions member a bitmap.
5652 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5653 (mark_replaceable): Likewise.
5654 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5655 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5656
5657 2009-04-27 Richard Guenther <rguenther@suse.de>
5658
5659 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5660 (verify_stmts): Dispatch to gimple/type verification code.
5661 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5662 issue with call argument types.
5663
5664 2009-04-27 Michael Matz <matz@suse.de>
5665
5666 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5667 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5668 to above.
5669
5670 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
5671 Eric Botcazou <ebotcazou@adacore.com>
5672
5673 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5674 a label's basic block.
5675 (mark_target_live_regs): Tidy and rework obsolete comments.
5676 Change back DF problem to LIVE. If a label starts a basic block,
5677 assume that all registers that used to be live then still are.
5678 (init_resource_info): If a label starts a basic block, set its
5679 BLOCK_FOR_INSN accordingly.
5680 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5681
5682 2009-04-27 Richard Guenther <rguenther@suse.de>
5683
5684 * tree-flow-inline.h (function_ann): Remove.
5685 (get_function_ann): Likewise.
5686 * tree-dfa.c (create_function_ann): Remove.
5687 * tree-flow.h (struct static_var_ann_d): Remove.
5688 (struct function_ann_d): Likewise.
5689 (union tree_ann_d): Remove fdecl member.
5690 (function_ann_t): Remove.
5691 (function_ann, get_function_ann, create_function_ann): Remove
5692 declarations.
5693
5694 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
5695
5696 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5697
5698 2009-04-27 Jan Hubicka <jh@suse.cz>
5699
5700 * ipa-pure-const.c (struct funct_state_d): New fields
5701 state_previously_known, looping_previously_known; remove
5702 state_set_in_source.
5703 (analyze_function): Use new fields.
5704 (propagate): Avoid assumption that state_set_in_source imply
5705 nonlooping.
5706
5707 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5708 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5709 * cfgloop.h (finite_loop_p): Declare.
5710
5711 2009-04-26 Michael Matz <matz@suse.de>
5712
5713 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5714
5715 2009-04-26 Michael Matz <matz@suse.de>
5716
5717 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5718 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5719 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5720 pass_mark_used_blocks): Remove.
5721 * tree-optimize.c (pass_free_datastructures,
5722 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5723 * passes.c (init_optimization_passes): Don't call
5724 pass_mark_used_blocks, remove dead code.
5725
5726 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5727
5728 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5729 * tree-ssa-live.h (register_ssa_partition): Likewise.
5730
5731 2009-04-26 Michael Matz <matz@suse.de>
5732
5733 Expand from SSA.
5734 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5735 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5736 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5737 SSA names.
5738 (compare_pairs): Swap cost comparison.
5739 (coalesce_ssa_name): Don't use change_partition_var.
5740 * tree-nrv.c (struct nrv_data): Add modified member.
5741 (finalize_nrv_r): Set it.
5742 (tree_nrv): Use it to update statements.
5743 (pass_nrv): Require PROP_ssa.
5744 * tree-mudflap.c (mf_decl_cache_locals,
5745 mf_build_check_statement_for): Use make_rename_temp.
5746 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5747 * alias.c (find_base_decl): Handle SSA names.
5748 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5749 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5750 * rtl.h (set_reg_attrs_for_parm): Declare.
5751 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5752 to "optimized", remove unused locals at finish.
5753 (execute_free_datastructures): Make global, call
5754 delete_tree_cfg_annotations.
5755 (execute_free_cfg_annotations): Don't call
5756 delete_tree_cfg_annotations.
5757
5758 * ssaexpand.h: New file.
5759 * expr.c (toplevel): Include ssaexpand.h.
5760 (expand_assignment): Handle SSA names the same as register variables.
5761 (expand_expr_real_1): Expand SSA names.
5762 * cfgexpand.c (toplevel): Include ssaexpand.h.
5763 (SA): New global variable.
5764 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5765 (SSAVAR): New macro.
5766 (set_rtl): New helper function.
5767 (add_stack_var): Deal with SSA names, use set_rtl.
5768 (expand_one_stack_var_at): Likewise.
5769 (expand_one_stack_var): Deal with SSA names.
5770 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5771 before unique numbers.
5772 (expand_stack_vars): Use set_rtl.
5773 (expand_one_var): Accept SSA names, add asserts for them, feed them
5774 to above subroutines.
5775 (expand_used_vars): Expand all partitions (without default defs),
5776 then only the local decls (ignoring those expanded already).
5777 (expand_gimple_cond): Remove edges when jumpif() expands an
5778 unconditional jump.
5779 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5780 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5781 SSA name.
5782 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5783 members of SA; deal with PARM_DECL partitions here; expand
5784 all PHI nodes, free tree datastructures and SA. Commit instructions
5785 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5786 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5787 info and statements at start, collect garbage at finish.
5788 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5789 (VAR_ANN_PARTITION) Remove.
5790 (change_partition_var): Don't declare.
5791 (partition_to_var): Always return SSA names.
5792 (var_to_partition): Only accept SSA names.
5793 (register_ssa_partition): Only check argument.
5794 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5795 member.
5796 (delete_var_map): Don't free it.
5797 (var_union): Only accept SSA names, simplify.
5798 (partition_view_init): Mark only useful SSA names as used.
5799 (partition_view_fini): Only deal with SSA names.
5800 (change_partition_var): Remove.
5801 (dump_var_map): Use ssa_name instead of partition_to_var member.
5802 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5803 basic blocks.
5804 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5805 (struct _elim_graph): New member const_dests; nodes member vector of
5806 ints.
5807 (set_location_for_edge): New static helper.
5808 (create_temp): Remove.
5809 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
5810 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
5811 (new_elim_graph): Allocate const_dests member.
5812 (clean_elim_graph): Truncate const_dests member.
5813 (delete_elim_graph): Free const_dests member.
5814 (elim_graph_size): Adapt to new type of nodes member.
5815 (elim_graph_add_node): Likewise.
5816 (eliminate_name): Likewise.
5817 (eliminate_build): Don't take basic block argument, deal only with
5818 partition numbers, not variables.
5819 (get_temp_reg): New static helper.
5820 (elim_create): Use it, deal with RTL temporaries instead of trees.
5821 (eliminate_phi): Adjust all calls to new signature.
5822 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5823 (rewrite_trees): Only do checking.
5824 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5825 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5826 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5827 contains_tree_r, MAX_STMTS_IN_LATCH,
5828 process_single_block_loop_latch, analyze_edges_for_bb,
5829 perform_edge_inserts): Remove.
5830 (expand_phi_nodes): New global function.
5831 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5832 functions, initialize new parameter, remember partitions having a
5833 default def.
5834 (finish_out_of_ssa): New global function.
5835 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5836 don't reset in_ssa_p here, don't disable TER when mudflap.
5837 (pass_del_ssa): Remove.
5838 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5839 partition members.
5840 (execute_free_datastructures): Declare.
5841 * Makefile.in (SSAEXPAND_H): New variable.
5842 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5843 * basic-block.h (commit_one_edge_insertion): Declare.
5844 * passes.c (init_optimization_passes): Move pass_nrv and
5845 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5846 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5847 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5848 (redirect_branch_edge): Deal with super block when expanding, split
5849 out jump patching itself into ...
5850 (patch_jump_insn): ... here, new static helper.
5851
5852 2009-04-26 Michael Matz <matz@suse.de>
5853
5854 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5855 beyond num_ssa_names.
5856 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5857 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5858
5859 2009-04-26 Jakub Jelinek <jakub@redhat.com>
5860
5861 PR inline-asm/39543
5862 * fwprop.c (forward_propagate_asm): New function.
5863 (forward_propagate_and_simplify): Propagate also into __asm, if it
5864 doesn't increase the number of referenced registers.
5865
5866 PR c/39889
5867 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5868
5869 2009-04-26 Jakub Jelinek <jakub@redhat.com>
5870
5871 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5872 note_nonlocal_vla_type for nonlocal VLAs.
5873 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5874 contains_remapped_vars, remap_vla_decls): New functions.
5875 (convert_nonlocal_reference_stmt): If not optimizing, call
5876 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5877 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5878 if it wasn't found in var_map.
5879 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5880 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5881 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5882 declare_vars.
5883 * gimplify.c (nonlocal_vlas): New variable.
5884 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5885 referenced VLAs.
5886 (gimplify_body): Create and destroy nonlocal_vlas.
5887
5888 * dwarf2out.c (loc_descr_plus_const): New function.
5889 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5890 mem_loc_descriptor, loc_descriptor_from_tree_1,
5891 descr_info_loc, gen_variable_die): Use it.
5892
5893 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5894 !TREE_STATIC VAR_DECLs.
5895 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5896 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5897 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5898 DECL_BY_REFERENCE is valid.
5899 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5900 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5901 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5902 Copy DECL_BY_REFERENCE.
5903 (struct nesting_copy_body_data): New type.
5904 (nesting_copy_decl): New function.
5905 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5906 if they have variable length.
5907
5908 2009-04-26 Michael Matz <matz@suse.de>
5909
5910 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5911 mark new temporaries for renaming.
5912
5913 2009-04-26 Joseph Myers <joseph@codesourcery.com>
5914
5915 PR c/39581
5916 * c-decl.c (global_bindings_p): Return negative value.
5917 (c_variable_size): New. Based on variable_size from
5918 stor-layout.c.
5919 (grokdeclarator): Call c_variable_size not variable_size.
5920
5921 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
5922
5923 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5924
5925 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
5926
5927 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5928 Redefine it to just use mingw/include.
5929 (ASM_SPEC): Rules for -m32 and -m64.
5930 (LINK_SPEC): Use Likewise.
5931 (SPEC_32): New define.
5932 (SPEC_64): Likewise.
5933 (SUB_LINK_SPEC): Likewise.
5934 (MULTILIB_DEFAULTS): New define.
5935 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5936 Add multilib options.
5937 (MULTILIB_DIRNAMES): Likewise.
5938 (MULTILIB_OSDIRNAMES): Likewise.
5939 (LIBGCC): Likewise.
5940 (INSTALL_LIBGCC): Likewise.
5941
5942 2009-04-26 Joseph Myers <joseph@codesourcery.com>
5943
5944 PR c/39556
5945 * c-tree.h (enum c_inline_static_type): New.
5946 (record_inline_static): Declare.
5947 * c-decl.c (struct c_inline_static, c_inline_statics,
5948 record_inline_static, check_inline_statics): New.
5949 (pop_file_scope): Call check_inline_statics.
5950 (start_decl): Call record_inline_static instead of pedwarning
5951 directly for static in inline function.
5952 * c-typeck.c (build_external_ref): Call record_inline_static
5953 instead of pedwarning directly for static referenced in inline
5954 function.
5955
5956 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5957
5958 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5959 not new but only being rescanned.
5960 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5961 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5962 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5963 record_set_info, compute_set, grealloc): Remove.
5964 (recompute_all_luids): New function.
5965 (gcse_main): Don't compute sets, and don't do related memory
5966 allocations/free-ing. If something changed before the end of the
5967 pass, update LUIDs using recompute_all_luids.
5968 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5969 (free_gcse_mem): Don't free it either.
5970 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5971 Use the df insn LUIDs.
5972 (load_killed_in_block): Likewise.
5973 (compute_hash_table_work): Don't compute reg_set_in_block.
5974 (compute_transp): Use DF_REG_DEF_CHAINs.
5975 (local_cprop_pass): Don't use compute_sets and related functions.
5976 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5977 Use get_max_uid() instead of max_cuid.
5978 (insert_insn_end_basic_block, pre_insert_copy_insn,
5979 update_ld_motion_stores): Don't try to
5980 keep reg_set tables up to date.
5981 (pre_insert_copies): Use df insn LUIDs.
5982 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5983 (reg_set_info): Don't use extra bitmap argument.
5984 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5985 information to compute regs_set_in_block.
5986 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5987 (bypass_jumps): Don't use compute_sets and friends.
5988
5989 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5990
5991 PR testsuite/39710
5992 * opts.c (undocumented_msg): Do not leave blank even with
5993 ENABLE_CHECKING.
5994
5995 2009-04-25 Joseph Myers <joseph@codesourcery.com>
5996
5997 * c-decl.c (build_enumerator): Allow values folding to integer
5998 constants but not integer constant expressions with a pedwarn if
5999 pedantic.
6000
6001 2009-04-25 Joseph Myers <joseph@codesourcery.com>
6002
6003 PR c/39582
6004 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6005 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6006 type is an integer constant.
6007
6008 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
6009
6010 PR target/39897
6011 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6012 HImode operands.
6013
6014 2009-04-25 Joseph Myers <joseph@codesourcery.com>
6015
6016 PR c/39564
6017 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6018 with variably modified return type and no storage class
6019 specifiers, except for the case of nested functions. Distinguish
6020 extern declarations of functions with variably modified return
6021 types from those of objects with variably modified types.
6022
6023 2009-04-25 Jan Hubicka <jh@suse.cz>
6024
6025 * tree.c (list_equal_p): New function.
6026 * tree.h (list_equal_p): Declare.
6027 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6028 basic_block_def, basic_block, const_basic_block): New.
6029 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6030 (redirect_eh_edge): New function.
6031 (make_eh_edge_update_phi): EH edges are not abnormal.
6032 * except.c: Include tree-flow.h.
6033 (list_match): New function.
6034 (eh_region_replaceable_by_p): New function.
6035 (replace_region): New function.
6036 (hash_type_list): New function.
6037 (hash_eh_region): New function.
6038 (eh_regions_equal_p): New function.
6039 (merge_peers): New function.
6040 (remove_unreachable_regions): Verify EH tree when checking;
6041 merge peers.
6042 (copy_eh_region_1): New function.
6043 (copy_eh_region): New function.
6044 (push_reachable_handler): New function.
6045 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6046 regions without label but with live RESX.
6047 * except.h (redirect_eh_edge_to_label): New.
6048 * tree-flow.h (redirect_eh_edge): New.
6049 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6050 basic_block_def, basic_block, const_basic_block): Remove.
6051 * Makefile.in (except.o): Add dependency on tree-flow.h
6052 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6053 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6054 Remove.
6055
6056 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6057
6058 PR bootstrap/39645
6059 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6060 on the destination of memcpy.
6061
6062 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
6063
6064 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6065 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6066 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6067
6068 2009-04-25 Jan Hubicka <jh@suse.cz>
6069
6070 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6071 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6072 to be reached by different label than left.
6073 (update_eh_edges): Update comment; remove edge_to_remove if possible
6074 and return true if suceeded.
6075 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6076 (cleanup_eh): Compute sharing map.
6077 * except.c (remove_eh_handler_and_replace): Add argument if we should
6078 update regions.
6079 (remove_unreachable_regions): Update for label sharing.
6080 (label_to_region_map): Likewise.
6081 (get_next_region_sharing_label): New function.
6082 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6083 prev_try pointers.
6084 (remove_eh_handler): Update.
6085 (remove_eh_region_and_replace_by_outer_of): New function.
6086 * except.h (struct eh_region): Add next_region_sharing_label.
6087 (remove_eh_region_and_replace_by_outer_of,
6088 get_next_region_sharing_label): Declare.
6089 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6090
6091 2009-04-25 Jan Hubicka <jh@suse.cz>
6092
6093 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6094 insert code even if they are not critical.
6095
6096 2009-04-25 Jan Hubicka <jh@suse.cz>
6097
6098 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6099 (gimple_can_remove_branch_p): EH edges won't remove branch by
6100 redirection.
6101 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6102 updating of non-abnormal EH edges.
6103 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6104 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6105 (split_critical_edges): Split also edges where emitting code on them
6106 will lead to splitting later.
6107
6108 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
6109 H.J. Lu <hongjiu.lu@intel.com>
6110
6111 PR target/39590
6112 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6113 the configured assembler supports fildq and fistpq mnemonics.
6114 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6115 * configure: Regenerated.
6116 * config.in: Ditto.
6117
6118 * config/i386/i386.c (print_operand): Handle 'Z'.
6119 ['z']: Remove handling of special fild/fist suffixes.
6120 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6121 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6122 suffix of fild insn.
6123 (*floatsi<mode>2_vector_mixed): Ditto.
6124 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6125 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6126 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6127 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6128 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6129
6130 2009-04-25 Ben Elliston <bje@au.ibm.com>
6131
6132 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6133 the source of a set operation.
6134
6135 2009-04-25 Anatoly Sokolov <aesok@post.ru>
6136
6137 * target.h (struct gcc_target): Add case_values_threshold field.
6138 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6139 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6140 * targhooks.c (default_case_values_threshold): New function.
6141 * targhooks.h (default_case_values_threshold): Declare function.
6142 * stmt.c (expand_case): Use case_values_threshold target hook.
6143 * expr.h (case_values_threshold): Remove declartation.
6144 * expr.c (case_values_threshold): Remove function.
6145 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6146
6147 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6148 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6149 (avr_case_values_threshold): Declare as static.
6150 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6151
6152 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6153 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6154 (mn10300_case_values_threshold): New function.
6155
6156 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6157
6158 * ira.c (setup_cover_and_important_classes): Add enum cast.
6159
6160 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6161
6162 * genpreds.c (write_enum_constraint_num): Output definition of
6163 CONSTRAINT_NUM_DEFINED_P macro.
6164 * ira.c (setup_cover_and_important_classes): Use
6165 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6166
6167 2009-04-24 DJ Delorie <dj@redhat.com>
6168
6169 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6170 __SH2A_SINGLE_ONLY__ also.
6171
6172 2009-04-24 Steve Ellcey <sje@cup.hp.com>
6173
6174 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6175 (movdf_internal): Ditto.
6176 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6177 SFmode and DFmode constants.
6178 (ia64_print_operand): Add 'G' format for printing
6179 floating point constants.
6180
6181 2009-04-24 Richard Guenther <rguenther@suse.de>
6182
6183 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6184 from unsigned additions.
6185
6186 2009-04-24 Joseph Myers <joseph@codesourcery.com>
6187
6188 * c-typeck.c (set_init_index): Allow array designators that are
6189 not integer constant expressions with a pedwarn if pedantic.
6190
6191 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6192
6193 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6194 zero if no overlap in nonzero bits between the operands.
6195
6196 2009-04-24 Ian Lance Taylor <iant@google.com>
6197
6198 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6199 (record_dead_and_set_regs): Likewise.
6200 * df.h (struct df_mw_hardreg): Change flags field to int.
6201 (struct df_base_ref): Likewise.
6202 (struct df): Change changeable_flags field to int.
6203 * df-scan.c (df_defs_record): Change clobber_flags to int.
6204 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6205 constants rather than #define macros.
6206 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6207 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6208 (enum dwarf_calling_convention): Likewise.
6209 (enum dwarf_line_number_x_ops): Likewise.
6210 (enum dwarf_call_frame_info): Likewise.
6211 (enum dwarf_source_language): Likewise.
6212 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6213 (add_calling_convention_attribute): Likewise.
6214 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6215 (combine_comparisons): Change compcode to int. Add cast to enum type.
6216 * genrecog.c (maybe_both_true_2): Change c to int.
6217 (write_switch): Likewise. Add cast to enum type.
6218 * gimplify.c (gimplify_omp_for): Handle return values from
6219 gimplify_expr using MIN rather than bitwise or.
6220 (gimplify_expr): Add cast to enum type.
6221 * ipa-prop.c (update_jump_functions_after_inlining): Change
6222 IPA_BOTTOM to IPA_JF_UNKNOWN.
6223 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6224 Add casts to enum type.
6225 (setup_cover_and_important_classes): Change cl to int. Add casts
6226 to enum type.
6227 (setup_class_translate): Change cl and mode to int.
6228 (ira_init_once): Change mode to int.
6229 (free_register_move_costs): Likewise.
6230 (setup_prohibited_mode_move_regs): Add casts to enum type.
6231 * langhooks.c (add_builtin_function_common): Rework assertion that
6232 value fits bitfield.
6233 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6234 * omega.c (omega_do_elimination): Avoid math on enum types.
6235 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6236 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6237 int local to handle integral_argment value.
6238 * regmove.c (try_auto_increment): Change PUT_MODE to
6239 PUT_REG_NOTE_KIND.
6240 * reload.c (push_secondary_reload): Add casts to enum type.
6241 (secondary_reload_class, find_valid_class): Likewise.
6242 * reload1.c (emit_input_reload_insns): Likewise.
6243 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6244 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6245 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6246 constant.
6247 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6248 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6249 enum type.
6250 (expand_complex_libcall): Add casts to enum type.
6251 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6252 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6253 with ERROR_MARK, not NUM_TREE_CODES.
6254 (vect_create_epilog_for_reduction): Likewise.
6255 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6256 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
6257 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6258 enum machine_mode.
6259 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6260 vect_unused_in_loop. Change 0 to loop_vect.
6261 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
6262 * var-tracking.c (get_init_value): Change return type to enum
6263 var_init_status.
6264 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6265 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6266 arm_fp_model.
6267 (arm_override_options): Add casts to enum type.
6268 (arm_emit_tls_decoration): Likewise.
6269 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6270 to enum type.
6271 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6272 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6273 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6274 enum type.
6275 * config/s390/s390.c (code_for_builtin_64): Change to array of
6276 enum insn_code.
6277 (code_for_builtin_31): Likewise.
6278 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6279 const *.
6280 * config/sparc/sparc.c (sparc_override_options): Change value
6281 field in struct code_model to enum cmodel. In initializer change
6282 0 to NULL and add cast to enum type.
6283
6284 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6285 Change all callers. Issue a -Wc++-compat warning using
6286 lhs_origtype if necessary.
6287 (convert_for_assignment): Issue -Wc++-compat warnings about
6288 invalid conversions to enum type on assignment.
6289 * c-common.h (build_modify_expr): Update declaration.
6290
6291 2009-04-24 Nick Clifton <nickc@redhat.com>
6292
6293 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6294 (function_arg_advance): Likewise.
6295 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6296 5th alternative.
6297
6298 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6299
6300 * config/s390/constraints.md ('I', 'J'): Fix condition.
6301
6302 2009-04-24 Diego Novillo <dnovillo@google.com>
6303
6304 * gengtype-parse.c (parse_error): Add newline after message.
6305
6306 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6307
6308 * config/i386/sse.md (avxmodesuffixs): Removed.
6309 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6310 (*avx_pinsr<ssevecsize>): This.
6311
6312 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6313
6314 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6315 follow chains of regs with a single definition, and allow expressions
6316 that are function_invariant_p.
6317 (simple_rhs_p): Allow expressions that are function_invariant_p.
6318
6319 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
6320
6321 PR middle-end/39867
6322 * fold-const.c (fold_cond_expr_with_comparison): When folding
6323 > and >= to MAX, make sure the MAX uses the same type as the
6324 comparison's operands.
6325
6326 2009-04-24 Nick Clifton <nickc@redhat.com>
6327
6328 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6329 addressing for DImode accesses.
6330 (frv_print_operand_address): Handle PLUS case.
6331 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
6332
6333 2009-04-24 Jakub Jelinek <jakub@redhat.com>
6334
6335 PR rtl-optimization/39794
6336 * alias.c (canon_true_dependence): Add x_addr argument.
6337 * rtl.h (canon_true_dependence): Adjust prototype.
6338 * cse.c (check_dependence): Adjust canon_true_dependence callers.
6339 * cselib.c (cselib_invalidate_mem): Likewise.
6340 * gcse.c (compute_transp): Likewise.
6341 * dse.c (scan_reads_nospill): Likewise.
6342 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
6343 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6344 canon_base_addr of the group, plus optional offset.
6345 (struct group_info): Rename canon_base_mem to
6346 canon_base_addr.
6347 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6348 canon_rtx of base_mem.
6349
6350 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
6351
6352 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6353 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6354
6355 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6356
6357 * config/spu/spu-builtins.h: Delete file.
6358
6359 * config/spu/spu.h (enum spu_builtin_type): Move here from
6360 spu-builtins.h.
6361 (struct spu_builtin_description): Likewise. Add GTY marker.
6362 Do not use enum spu_function_code or enum insn_code.
6363 (spu_builtins): Add extern declaration.
6364
6365 * config/spu/spu.c: Do not include "spu-builtins.h".
6366 (enum spu_function_code, enum spu_builtin_type_index,
6367 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6368 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6369 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6370 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6371 (spu_builtin_types): Make static. Add GTY marker.
6372 (spu_builtins): Add extern declaration with GTY marker.
6373 Include "gt-spu.h".
6374
6375 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6376 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6377 Check programmatically whether all parameters are scalar.
6378
6379 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6380
6381 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
6382
6383 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6384 assignment from the constructor either if the target is volatile.
6385
6386 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
6387
6388 * config/arm/arm.md (insv): Do not share operands[0].
6389
6390 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
6391
6392 * config/vxlib-tls.c (active_tls_threads): Delete.
6393 (delete_hook_installed): New.
6394 (tls_delete_hook): Don't delete the delete hook.
6395 (tls_destructor): Delete it here.
6396 (__gthread_set_specific): Adjust installing the delete hook.
6397 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6398 __gthread_leave_tsd_dtor_context.
6399
6400 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
6401
6402 * c-format.c (gcc_tdiag_char_table): Add support for %E.
6403
6404 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
6405
6406 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6407 enum type.
6408 (alpha_rtx_costs): Ditto.
6409 (emit_unlikely_jump): Use add_reg_note.
6410 (emit_frame_store_1): Ditto.
6411 (alpha_expand_prologue): Ditto.
6412 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6413 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6414
6415 2009-04-23 Nick Clifton <nickc@redhat.com>
6416
6417 * config/v850/v850.md (epilogue): Remove suppressed code.
6418 (return): Rename to return_simple and remove test of frame size.
6419 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6420 to gen_return_simple.
6421
6422 2009-04-22 Jing Yu <jingyu@google.com>
6423
6424 PR testsuite/39781
6425 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6426
6427 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
6428
6429 PR C/31499
6430 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6431 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
6432 value is a VECTOR_CST, the element type is the element type of the
6433 vector.
6434
6435 2009-04-22 DJ Delorie <dj@redhat.com>
6436
6437 * config/m32c/m32c.h: Update GTY annotations to new syntax.
6438
6439 2009-04-22 Jakub Jelinek <jakub@redhat.com>
6440
6441 * alias.c (find_base_term): Move around LO_SUM case, so that
6442 CONST falls through into PLUS/MINUS handling.
6443
6444 PR c/39855
6445 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6446 into 0, use omit_one_operand.
6447
6448 2009-04-23 Ben Elliston <bje@au.ibm.com>
6449
6450 * config/rs6000/linux-unwind.h (get_regs): Remove type
6451 puns. Change the type of `pc' to an array of unsigned ints and
6452 update all users. Constify frame24.
6453
6454 2009-04-22 DJ Delorie <dj@redhat.com>
6455
6456 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6457 declarations before code.
6458 (current_function_special_page_vector): Likewise.
6459 (m32c_expand_insv): Silence a warning.
6460
6461 2009-04-21 Taras Glek <tglek@mozilla.com>
6462
6463 * alias.c: Update GTY annotations to new syntax.
6464 * basic-block.h: Likewise.
6465 * bitmap.h: Likewise.
6466 * c-common.h: Likewise.
6467 * c-decl.c: Likewise.
6468 * c-parser.c: Likewise.
6469 * c-pragma.c: Likewise.
6470 * c-tree.h: Likewise.
6471 * cfgloop.h: Likewise.
6472 * cgraph.h: Likewise.
6473 * config/alpha/alpha.c: Likewise.
6474 * config/arm/arm.h: Likewise.
6475 * config/avr/avr.h: Likewise.
6476 * config/bfin/bfin.c: Likewise.
6477 * config/cris/cris.c: Likewise.
6478 * config/darwin.c: Likewise.
6479 * config/frv/frv.c: Likewise.
6480 * config/i386/i386.c: Likewise.
6481 * config/i386/i386.h: Likewise.
6482 * config/i386/winnt.c: Likewise.
6483 * config/ia64/ia64.h: Likewise.
6484 * config/iq2000/iq2000.c: Likewise.
6485 * config/mips/mips.c: Likewise.
6486 * config/mmix/mmix.h: Likewise.
6487 * config/pa/pa.c: Likewise.
6488 * config/pa/pa.h: Likewise.
6489 * config/rs6000/rs6000.c: Likewise.
6490 * config/s390/s390.c: Likewise.
6491 * config/sparc/sparc.c: Likewise.
6492 * config/xtensa/xtensa.c: Likewise.
6493 * cselib.h: Likewise.
6494 * dbxout.c: Likewise.
6495 * dwarf2out.c: Likewise.
6496 * except.c: Likewise.
6497 * except.h: Likewise.
6498 * fixed-value.h: Likewise.
6499 * function.c: Likewise.
6500 * function.h: Likewise.
6501 * gimple.h: Likewise.
6502 * integrate.c: Likewise.
6503 * optabs.c: Likewise.
6504 * output.h: Likewise.
6505 * real.h: Likewise.
6506 * rtl.h: Likewise.
6507 * stringpool.c: Likewise.
6508 * tree-data-ref.c: Likewise.
6509 * tree-flow.h: Likewise.
6510 * tree-scalar-evolution.c: Likewise.
6511 * tree-ssa-address.c: Likewise.
6512 * tree-ssa-alias.h: Likewise.
6513 * tree-ssa-operands.h: Likewise.
6514 * tree.c: Likewise.
6515 * tree.h: Likewise.
6516 * varasm.c: Likewise.
6517 * varray.h: Likewise.
6518 * vec.h: Likewise.
6519 * coretypes.h: Do not define GTY macro if it is already defined.
6520 * doc/gty.texi: Update GTY documentation to new syntax.
6521 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6522 annotations on structs.
6523 * gengtype-parse.c: Likewise.
6524
6525 2009-04-22 Mark Heffernan <meheff@google.com>
6526
6527 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
6528
6529 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
6530
6531 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6532 where appropriate.
6533
6534 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
6535
6536 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6537 the same as a PLUS without a shift. Increase the cost of a
6538 CONST_INT in MULT.
6539
6540 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6541
6542 * Makefile.in: Update dependencies.
6543 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
6544 * errors.h: Remove bogus comment about compatibility.
6545 (warning): Update declaration.
6546 * genautomata.c: Update all calls to warning.
6547 * gimple.c: Do not include errors.h. Include toplev.h.
6548 * tree-ssa-structalias.c: Do not include errors.h.
6549 * omega.c: Likewise.
6550 * tree-ssa-reassoc.c: Likewise.
6551 * config/spu/spu-c.c: Likewise.
6552 * config/spu/t-spu-elf: Update dependencies.
6553
6554 2009-04-22 Richard Guenther <rguenther@suse.de>
6555
6556 PR tree-optimization/39824
6557 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6558 make sure the types are compatible.
6559
6560 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6561
6562 PR c++/14875
6563 * c-common.c (c_parse_error): Take a token_flags parameter.
6564 Use token_type for the token type instead.
6565 Pass token_flags to cpp_type2name.
6566 * c-common.h (c_parse_error): Update declaration.
6567 * c-parser.c (c_parser_error): Pass 0 as token flags.
6568
6569 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
6570
6571 PR rtl-optimization/39580
6572 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6573
6574 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6575
6576 * function.c (expand_function_end): Do not emit a jump to the "naked"
6577 return label for fall-through returns.
6578 * except.c (sjlj_emit_function_exit): Always place the call to the
6579 unregister function at the location installed by expand_function_end.
6580
6581 2009-04-22 Richard Guenther <rguenther@suse.de>
6582
6583 PR tree-optimization/39845
6584 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6585 (gen_inbound_check): Likewise.
6586
6587 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6588
6589 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6590 padding for PPC.
6591 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6592 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6593
6594 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6595
6596 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6597 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6598 shift counts to avoid out-of-bounds array accesses.
6599
6600 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6601
6602 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6603 (Pmode): Move above.
6604
6605 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
6606
6607 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6608 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6609 GET_CODE macro. Use IN_RANGE macro where appropriate.
6610 * config/alpha/alpha.h: Ditto.
6611 * config/alpha/alpha.md: Ditto.
6612 * config/alpha/constraints.md: Ditto.
6613 * config/alpha/predicates.md: Ditto.
6614
6615 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6616
6617 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6618 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6619 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6620 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6621 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6622 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6623 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6624 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6625 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6626 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6627 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6628 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6629 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6630 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6631 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6632 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6633 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6634 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6635 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6636 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6637 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6638 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6639 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6640 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6641 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6642 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6643 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6644
6645 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6646
6647 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6648 references from comments.
6649 * cfgbuild.c: (count_basic_blocks): Delete.
6650 (find_basic_blocks_1): Delete.
6651 (find_basic_blocks): Delete.
6652 * except.c (finish_eh_generation): Make static. Move comment from
6653 except.h here. Remove find_basic_blocks references from comments.
6654 * except.h (finish_eh_generation): Delete.
6655 * basic-block.h (find_basic_blocks): Delete.
6656 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6657
6658 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6659
6660 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6661 (sdbout_parms): Likewise.
6662
6663 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6664
6665 * config/sh/sh.c (prepare_cbranch_operands): Use
6666 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6667 (expand_cbranchdi4): Likewise.
6668 (from_compare): Add cast to enum type.
6669 (expand_cbranchsi4): Use add_reg_note.
6670 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6671 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6672 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6673 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6674 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6675 instead of CODE_FOR_nothing.
6676 (cbranchdi4): Likewise. Fix the order of arguments for
6677 gen_rtx_fmt_ee.
6678 (push_fpscr): Use add_reg_note.
6679 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6680 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6681
6682 2009-04-21 Joseph Myers <joseph@codesourcery.com>
6683
6684 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6685 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6686 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6687 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6688 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6689 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6690 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6691 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6692 config/alpha/x-vms, config/arc/t-arc,
6693 config/arm/README-interworking, config/arm/arm-c.c,
6694 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6695 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6696 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6697 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6698 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6699 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6700 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6701 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6702 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6703 config/cris/t-elfmulti, config/crx/t-crx,
6704 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6705 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6706 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6707 config/h8300/t-h8300, config/i386/athlon.md,
6708 config/i386/darwin-libgcc.10.4.ver,
6709 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6710 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6711 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6712 config/i386/t-linux64, config/i386/t-nwld,
6713 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6714 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6715 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6716 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6717 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6718 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6719 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6720 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6721 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6722 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6723 config/m68k/t-uclinux, config/mcore/t-mcore,
6724 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6725 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6726 config/mips/crtn.asm, config/mips/irix-crti.asm,
6727 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6728 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6729 config/mips/mips-fixed.md, config/mips/sb1.md,
6730 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6731 config/mips/t-iris6, config/mips/t-isa3264,
6732 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6733 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6734 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6735 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6736 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6737 config/mn10300/t-linux, config/mn10300/t-mn10300,
6738 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6739 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6740 config/picochip/libgccExtras/clzsi2.asm,
6741 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6742 config/rs6000/darwin-libgcc.10.4.ver,
6743 config/rs6000/darwin-libgcc.10.5.ver,
6744 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6745 config/rs6000/t-aix43, config/rs6000/t-aix52,
6746 config/rs6000/t-darwin, config/rs6000/t-fprules,
6747 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6748 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6749 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6750 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6751 config/rs6000/t-rtems, config/rs6000/t-spe,
6752 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6753 config/score/t-score-elf, config/sh/divcost-analysis,
6754 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6755 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6756 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6757 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6758 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6759 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6760 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6761 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6762 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6763 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6764 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6765 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6766 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6767 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6768 * config/h8300/genmova.sh: Include copyright and license notices
6769 in generated output.
6770 * config/h8300/mova.md: Regenerate.
6771 * doc/install.texi2html: Include word "Copyright" in copyright
6772 notice and use name "Free Software Foundation, Inc.".
6773 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6774 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6775 ChangeLog-2007, ChangeLog-2008: Correct dates.
6776
6777 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6778
6779 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6780 NE_EXPR operations as well.
6781 * c-parser.c (c_parser_condition): Do not set location information on
6782 the condition.
6783 (c_parser_conditional_expression): Likewise.
6784 (c_parser_binary_expression): Set location information on operators.
6785 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6786 TRUTH_NOT_EXPR has been folded.
6787 * fold-const.c (fold_truth_not_expr): Copy location information from
6788 the incoming expression to the outgoing one.
6789 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6790 recursive calls on the LHS of the operator but pass that of the
6791 operator to recursive calls on the RHS of the operator. Set it
6792 on the COND_EXPR.
6793 (shortcut_cond_expr): Set the locus of the operator on the second
6794 COND_EXPR and that of the expression on the first in degenerate cases.
6795 Pass the locus of the expression to calls to shortcut_cond_r.
6796 Set the locus of the 'then' block on the associated jump, if any.
6797 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6798 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6799 expression to call to gimplify_boolean_expr.
6800
6801 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
6802
6803 * config.gcc: Add additional configuration for
6804 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6805 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6806 (CPP_SPEC): Redefine for allowing -municode option.
6807 (STARTFILE_SPEC): Likewise.
6808 * config/i386/t-mingw-w64: New.
6809 * config/i386/mingw-w64.opt: New.
6810 (municode): Add new target option.
6811 * doc/invoke.texi (municode): Add documentation for new option.
6812
6813 2009-04-21 Ian Lance Taylor <iant@google.com>
6814
6815 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6816 Correct test for number of arguments.
6817 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6818
6819 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6820
6821 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6822 argument of emit_library_call.
6823
6824 2009-04-21 Richard Guenther <rguenther@suse.de>
6825
6826 PR middle-end/39829
6827 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6828 inside VIEW_CONVERT_EXPRs.
6829
6830 2009-04-21 Martin Jambor <mjambor@suse.cz>
6831
6832 * tree-switch-conversion.c (build_constructors): Split a long line.
6833 (constructor_contains_same_values_p): New function.
6834 (build_one_array): Create assigns of constants if possible, do not
6835 call mark_sym_for_renaming, call update_stmt.
6836 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6837 make_rename_temp. Do not call mark_symbols_for_renaming, call
6838 update_stmt.
6839 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6840 find_new_referenced_vars, call update_stmt.
6841 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6842 instead of calling make_rename_temp. Do not call
6843 find_new_referenced_vars or mark_symbols_for_renaming, call
6844 update_stmt.
6845
6846 2009-04-21 Richard Guenther <rguenther@suse.de>
6847
6848 PR tree-optimization/39827
6849 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
6850 (tree_ssa_phiprop): Pass the correct array size.
6851
6852 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
6853
6854 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6855
6856 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6857
6858 PR 16202
6859 * c-typeck.c (lvalue_p): Move declaration ...
6860 * c-common.h (lvalue_p): ... to here.
6861 * c-common.c (candidate_equal_p): New.
6862 (add_tlist): Use it.
6863 (merge_tlist): Use it.
6864 (warn_for_collisions_1): Likewise.
6865 (warning_candidate_p): Accept more candidates.
6866 (verify_tree): A warning candidate can be an expression. Use
6867 candidate_equal_p.
6868
6869 2009-04-21 Ben Elliston <bje@au.ibm.com>
6870
6871 PR target/5267
6872 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6873 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6874 options. Remove -mcall-solaris documentation.
6875
6876 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6877
6878 PR c++/13358
6879 * doc/invoke.texi (-Wlong-long): Update description.
6880 * c-lex (interpret_integer): Only warn if there was no previous
6881 overflow and -Wlong-long is enabled.
6882 * c-decl.c (declspecs_add_type): Drop redundant flags.
6883 * c.opt (Wlong-long): Init to -1.
6884 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6885 and front-end warn_long_long. Wlong-long only depends on other
6886 flags if it is uninitialized.
6887 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6888 the same for CPP and FE.
6889 (restore_extension_diagnostics): Likewise.
6890
6891 2009-04-20 Ian Lance Taylor <iant@google.com>
6892
6893 Fix enum conversions which are invalid in C++:
6894 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6895 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
6896 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6897 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
6898 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
6899 (dbxout_parms): Likewise.
6900 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
6901 (df_clear_flags): Likewise.
6902 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6903 top_flag parameter to int.
6904 (df_chain_create_bb_process_use): Likewise.
6905 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6906 Remove cast.
6907 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6908 (df_ref_create_structure, df_def_record_1): Likewise.
6909 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6910 (df_notes_rescan): Change 0 to VOIDmode in function call.
6911 (df_get_call_refs, df_insn_refs_collect): Likewise.
6912 (df_bb_regs_collect): Likewise.
6913 (df_entry_block_defs_collect): Likewise.
6914 (df_exit_block_uses_collect): Likewise.
6915 * df.h: Update declarations.
6916 * double-int.c (double_int_divmod): Add cast to enum type.
6917 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6918 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6919 (based_loc_descr): Likewise.
6920 (loc_descriptor_from_tree_1): Change first_op and second_op to
6921 enum dwarf_location_atom. Add cast to enum type.
6922 * expmed.c (init_expmed): Change 0 to SET in function call.
6923 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
6924 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6925 (do_store_flag): Likewise.
6926 * fixed-value.h (struct fixed_value): Change mode to enum
6927 machine_mode.
6928 * function.c (assign_parms): Change 0 to VOIDmode in function call.
6929 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6930 function call.
6931 (insert_insn_decl, insert_decl, insert_state): Likewise.
6932 (automata_list_finish): Likewise.
6933 * genrecog.c (process_define_predicate): Add cast to enum type.
6934 * gensupport.c (init_predicate_table): Add cast to enum type.
6935 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6936 function call.
6937 (gimple_build_call_1, gimple_build_label): Likewise.
6938 (gimple_build_goto, gimple_build_asm_1): Likewise.
6939 (gimple_build_switch_1, gimple_build_cdt): Likewise.
6940 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
6941 (enum fallback): Rename from enum fallback_t.
6942 (fallback_t): Typedef as int.
6943 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6944 GSI_SAME_STMT in function call.
6945 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6946 enum type.
6947 (setup_reg_class_relations): Likewise.
6948 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
6949 (setup_prohibited_class_mode_regs): Add cast to enum type.
6950 (setup_prohibited_mode_move_regs): Likewise.
6951 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
6952 (record_address_regs): Change i to enum reg_class.
6953 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6954 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6955 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6956 (GET_MODE_2XWIDER_MODE): Likewise.
6957 (GET_CLASS_NARROWEST_MODE): Likewise.
6958 * omp-low.c (expand_omp_for): Add cast to enum type.
6959 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6960 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6961 * postreload.c (reload_cse_simplify_operands): Change rclass local
6962 to enum reg_class.
6963 * predict.c (combine_predictions_for_insn): Change best_predictor
6964 and predictor to enum br_predictor.
6965 (combine_predictions_for_bb): Likewise.
6966 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6967 use SET_PREDICT_EXPR_OUTCOME.
6968 * real.c (real_arithmetic): Change icode to code in function call.
6969 * reginfo.c (init_move_cost): Add casts to enum type.
6970 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6971 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6972 enum reg_class.
6973 * reload.c (find_valid_class): Add casts to enum type.
6974 (push_reload): Change 0 to NO_REGS in function call.
6975 (find_reloads): Change this_alternative to array of enum
6976 reg_class. Remove some now-unnecessary casts.
6977 (make_memloc): Change 0 to VOIDmode in function call.
6978 * reload1.c (reload): Change 0 to VOIDmode in function call.
6979 (eliminate_regs_1, elimination_effects): Likewise.
6980 (eliminate_regs_in_insn): Likewise.
6981 (emit_input_reload_insns): Add cast to enum type.
6982 (delete_output_reload): Change 0 to VOIDmode in function call.
6983 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6984 to enum type in function call.
6985 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6986 (SET_PREDICT_EXPR_OUTCOME): Define.
6987 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
6988 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6989 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6990 (dump_function): Likewise.
6991 * tree-dump.h: Update declarations.
6992 * tree-pass.h: Update declarations.
6993 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6994 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6995 enum type.
6996 (arm_rtx_costs_1): Correct parenthesization.
6997 (arm_rtx_costs): Add casts to enum type.
6998 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6999 (vfp_emit_fstmd): Use add_rg_note.
7000 (emit_multi_reg_push, emit_sfm): Likewise.
7001 (thumb_set_frame_pointer): Likewise.
7002 (arm_expand_prologue): Likewise.
7003 (arm_regno_class): Change return type to enum reg_class.
7004 (thumb1_expand_prologue): Use add_reg_note.
7005 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7006 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7007 in function call.
7008 * config/arm/gentune.sh: Add cast to enum type.
7009 * config/arm/arm-tune.md: Rebuild.
7010 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7011 (ix86_split_fp_branch, predict_jump): Likewise.
7012 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7013 insn_code to enum rtx_code.
7014 (ix86_builtin_vectorized_function): Add cast to enum type.
7015 * config/i386/i386.md (truncdfsf2): Change slot to enum
7016 ix86_stack_slot.
7017 (truncxf<mode>2, isinf<mode>2): Likewise.
7018 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7019 enum type.
7020 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7021 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7022 (insert_bundle_state): Change 1 to INSERT in function call.
7023 (ia64_add_bundle_selector_before): Likewise.
7024 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7025 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7026 (restore_stack_nonlocal): Likewise.
7027 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7028 function call.
7029 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7030 function call.
7031 (mips_rtx_costs): Likewise.
7032 (mips_override_options): Add casts to enum type.
7033 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7034 in function call.
7035 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7036 (store_reg, set_reg_plus_d): Likewise.
7037 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7038 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7039 cast to enum type.
7040 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7041 function call.
7042 (emit_unlikely_jump): Use add_reg_note.
7043 (rs6000_emit_allocate_stack): Likewise.
7044 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7045 (output_toc): Change 1 to INSERT in function call.
7046 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7047 (rs6000_initialize_trampoline): Likewise.
7048 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7049 function call.
7050 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7051 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7052 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7053 (save_gprs): Use add_reg_note.
7054 (s390_emit_prologue): Likewise.
7055 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7056 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7057 (sparc_fold_builtin): Add cast to enum type.
7058 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7059 enum insn_code.
7060 (spu_expand_prologue): Use add_reg_note.
7061 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
7062
7063 2009-04-20 Ian Lance Taylor <iant@google.com>
7064
7065 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7066 (c_parser_postfix_expression_after_primary): Get VEC for list of
7067 arguments. Get original types of arguments. Call
7068 build_function_call_vec.
7069 (cached_expr_list_1, cached_expr_list_2): New static variables.
7070 (c_parser_expr_list): Change return type to VEC *. Add
7071 p_orig_types parameter. Change all callers.
7072 (c_parser_release_expr): New static function.
7073 (c_parser_vec_to_tree_list): New static function.
7074 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7075 call build_function_call_vec.
7076 (build_function_call_vec): New function, based on old
7077 build_function_call.
7078 (convert_arguments): Remove nargs and argarray parameters. Change
7079 values to a VEC. Add origtypes parameter.
7080 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
7081 (convert_for_assignment): Add origtype parameter. Change all
7082 callers. If warn_cxx_compat, check for conversion to an enum
7083 type when calling a function.
7084 (store_init_value): Add origtype parameter. Change all callers.
7085 (digest_init): Likewise.
7086 (struct init_node): Add origtype field.
7087 (add_pending_init): Add origtype parameter. Change all callers.
7088 (output_init_element): Likewise.
7089 (output_pending_init_elements): Pass origtype from init_node to
7090 output_init_element.
7091 (process_init_element): Pass origtype from c_expr to
7092 output_init_element.
7093 (c_finish_return): Add origtype parameter. Change all callers.
7094 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7095 caller.
7096 (sync_resolve_params): Likewise.
7097 (sync_resolve_return): Change params to first_param. Change caller.
7098 (resolve_overloaded_builtins): Change params to VEC *. Change
7099 callers. Save first parameter around call to build_function_call_vec.
7100 * c-decl.c (finish_decl): Add origtype parameter. Change all
7101 callers. Call build_function_call_vec rather than
7102 build_function_call for cleanup.
7103 * c-tree.h: Update declarations.
7104 * c-common.h: Update declarations.
7105 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7106 params to first_param.
7107 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7108 params parameter from tree to void *.
7109 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7110 Change arglist parameter to have type void *, and to be a pointer
7111 to a VEC.
7112 * config/rs6000/rs6000-protos.h
7113 (altivec_resolve_overloaded_builtin): Update declaration.
7114 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7115 fnargs parameter to have type void *, and to be a pointer to a
7116 VEC. Call build_function_call_vec instead of
7117 build_function_call.
7118 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
7119
7120 2009-04-20 Joey Ye <joey.ye@intel.com>
7121 Xuepeng Guo <xuepeng.guo@intel.com>
7122 H.J. Lu <hongjiu.lu@intel.com>
7123
7124 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7125
7126 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7127 (IX86_LEA_PRIORITY): Likewise.
7128 (distance_non_agu_define): New function.
7129 (distance_agu_use): Likewise.
7130 (ix86_lea_for_add_ok): Likewise.
7131 (ix86_dep_by_shift_count): Likewise.
7132
7133 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7134 should split for LEA.
7135
7136 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7137 function.
7138 (ix86_dep_by_shift_count): Likewise.
7139
7140 2009-04-20 Richard Guenther <rguenther@suse.de>
7141
7142 * expr.c (handled_component_p): Move ...
7143 * tree.h (handled_component_p): ... here.
7144 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7145 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7146 and REALPART_EXPR to be in one group.
7147
7148 2009-04-20 Richard Guenther <rguenther@suse.de>
7149
7150 * basic-block.h (get_all_dominated_blocks): Declare.
7151 * dominance.c (get_all_dominated_blocks): New function.
7152 * tree-cfg.c (get_all_dominated_blocks): Remove.
7153 (remove_edge_and_dominated_blocks): Adjust.
7154 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7155 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7156 instead of recursing.
7157
7158 2009-04-20 Doug Kwan <dougkwan@google.com>
7159
7160 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7161 (struct cgraph_node_set_def): New type.
7162 (cgraph_node_set) New type. Also declare vector functions.
7163 (struct cgraph_node_set_element_def): New type.
7164 (cgraph_node_set_element): Ditto.
7165 (cgraph_node_set_iterator): New iterator type.
7166 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7167 cgraph_node_set_remove, dump_cgraph_node_set,
7168 debug_cgraph_node_set): New prototypes.
7169 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7170 cgraph_node_set_size): New inlines.
7171 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7172 including cgraph.h.
7173 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7174 argument to function 'write_summary'.
7175 * ipa.c: Include ggc.h.
7176 (hash_cgraph_node_set_element,
7177 eq_cgraph_node_set_element, cgraph_node_set_new,
7178 cgraph_node_set_add, cgraph_node_set_remove,
7179 cgraph_node_set_find, dump_cgraph_node_set,
7180 debug_cgraph_node_set): New functions.
7181 * Makefile.in (ipa.o): Add dependency on GGC_H.
7182
7183 2009-04-20 Ira Rosen <irar@il.ibm.com>
7184
7185 PR tree-optimization/39675
7186 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
7187 check of the return code of vect_schedule_slp. Check that
7188 stmt_vec_info still exists for the statement, before checking its
7189 vectorization type.
7190
7191 2009-04-20 Michael Matz <matz@suse.de>
7192
7193 * Makefile.in (generated_files): Take out $(simple_generated_c).
7194
7195 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7196
7197 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7198 (UINTPTR_TYPE): Likewise.
7199
7200 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7201
7202 PR c/37481
7203 * c-typeck.c (digest_init): Check for initializing an array with a
7204 string literal.
7205
7206 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7207
7208 PR c/19771
7209 * c-semantics.c (pop_stmt_list): Propagate
7210 STATEMENT_LIST_HAS_LABEL to parent statement list.
7211
7212 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7213
7214 * config/mips/mips.h (mips_tune_attr): New macro.
7215 * config/mips/mips.md (cpu): Use it.
7216
7217 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7218
7219 PR c/38243
7220 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7221 declaring a tag.
7222
7223 2009-04-19 Diego Novillo <dnovillo@google.com>
7224
7225 * toplev.c (compile_file): Move call to coverage_finish ...
7226 * cgraphunit.c (ipa_passes): ... here.
7227 Call cgraph_process_new_functions.
7228 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7229 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7230
7231 2009-04-19 Jan Hubicka <jh@suse.cz>
7232
7233 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7234 cfun.
7235 (dump_cgraph_node): Dump can throw external flag.
7236 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7237
7238 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7239
7240 PR c/32061
7241 PR c++/36954
7242 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7243 * common.opt (Wlogical-op): Move from here...
7244 * c.opt (Wlogical-op): ... to here.
7245 * c-typeck.c (parser_build_binary_op): Update call to
7246 warn_logical_operator.
7247 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7248 extra_warnings.
7249 * c-common.c (warn_logical_op): Update.
7250 * c-common.h (warn_logical_op): Update declaration.
7251
7252 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7253
7254 * tree.c (protected_set_expr_location): Fix formatting.
7255
7256 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7257
7258 PR c/27676
7259 * c-typeck.c (readonly_warning): new.
7260 (build_unary_op, build_modify_expr): Use readonly_warning for
7261 storing into something readonly but not const-qualified.
7262
7263 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7264
7265 PR c/22367
7266 * c-typeck.c (build_unary_op): Check for taking address of
7267 expression of type void.
7268
7269 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7270
7271 PR c/35210
7272 * c-typeck.c (build_function_call): Check for calling a function
7273 with qualified void return types. Call require_complete_type when
7274 generating a trap.
7275
7276 2009-04-18 Jan Hubicka <jh@suse.cz>
7277
7278 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7279 Set nothrow flag.
7280 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7281 can_throw_external flag.
7282 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7283 * ipa-pure-const.c (ignore_edge): New function.
7284 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7285 only over can_throw_external edges.
7286 (local_pure_const): Add nothrow flag.
7287 * ipa-utils.c (searchc): Add ignore_edge callback.
7288 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7289 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7290 (set_nothrow_function_flags): Update cgraph.
7291 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7292
7293 2009-04-18 Richard Guenther <rguenther@suse.de>
7294
7295 PR middle-end/39804
7296 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7297 (fold_stmt): ... this and ...
7298 (fold_stmt_inplace): ... this.
7299 (fold_stmt_1): Fold references in calls and asms.
7300 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7301
7302 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7303
7304 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7305 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7306
7307 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7308
7309 * tree.c (function_args_count): Remove.
7310 * tree.h: Remove the prototype for function_args_count.
7311
7312 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7313
7314 * tree-iterator.c (expr_only): Remove.
7315 * tree.h: Remove the prototype for expr_only.
7316
7317 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7318
7319 * reginfo.c (cannot_change_mode_set_regs): Remove.
7320 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7321
7322 2009-04-08 Anatoly Sokolov <aesok@post.ru>
7323
7324 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7325 whether operands 0 and 1 overlaps.
7326
7327 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7328
7329 PR middle-end/36902
7330 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7331 pointer. Use warning_at instead of warning.
7332 (search_for_addr_array): Likewise.
7333 (check_array_bounds): Likewise.
7334 (check_all_array_refs): Check that the incoming edge is not in the
7335 list of edges to be removed.
7336 (check_all_array_refs): Avoid the temporal pointer.
7337 (vrp_visit_cond_stmt): Fix typo.
7338 (simplify_switch_using_ranges): Handle the case where the switch
7339 index is an integer constant.
7340
7341 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
7342
7343 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7344
7345 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7346
7347 * doc/extend.texi, doc/invoke.texi: Fix typos.
7348
7349 2009-04-17 Cary Coutant <ccoutant@google.com>
7350
7351 * tree-flow-inline.h (get_lineno): Fix inverted test.
7352
7353 2009-04-17 Diego Novillo <dnovillo@google.com>
7354
7355 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7356 assertion for AVAIL_OUT.
7357
7358 2009-04-17 Mike Frysinger <vapier@gentoo.org>
7359
7360 PR target/38627
7361 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7362 * config/sh/linux-atomic.asm: Likewise.
7363
7364 2009-04-17 Diego Novillo <dnovillo@google.com>
7365
7366 * except.c (debug_eh_tree): New.
7367 (struct eh_region, struct eh_status): Move ...
7368 * except.h: ... here.
7369 (add_type_for_runtime): Declare extern.
7370 (lookup_type_for_runtime): Likewise.
7371 (debug_eh_tree): Declare.
7372 * Makefile.in (GTFILES): List except.h before except.c
7373
7374 2009-04-17 Diego Novillo <dnovillo@google.com>
7375
7376 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
7377 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7378 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7379 (find_vars_r): ... here.
7380 * tree-flow.h (find_referenced_vars_in): Declare.
7381 * tree-ssa-pre.c (create_expression_by_pieces): Assert
7382 that AVAIL_OUT exists for BLOCK.
7383 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7384 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7385 (tree-parloops.o): Likewise.
7386
7387 2009-04-17 Simon Baldwin <simonb@google.com>
7388
7389 * toplev.c (default_tree_printer): Add handling for %E format.
7390
7391 2009-04-17 Diego Novillo <dnovillo@google.com>
7392
7393 * tree-pretty-print.c (dump_generic_node): Add break after
7394 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
7395 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
7396 FUNCTION_TYPE together. Call print_struct_decl when printing
7397 structures and TDF_SLIM is not given.
7398 (print_struct_decl): Fix logic for detecting recursion.
7399
7400 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
7401
7402 PR 31567
7403 * gcc.c (create_at_file): New.
7404 (compile_input_file_p): New.
7405 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7406 * main.c (main): Update call to toplev_main.
7407 * toplev.c (toplev_main): Change signature. Call expandargv.
7408 * toplev.h (toplev_main): Change signature.
7409
7410 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7411
7412 * dwarf2out.c (field_byte_offset): Use the type size as the field size
7413 if the latter is not constant.
7414
7415 2009-04-17 David Edelsohn <edelsohn@gnu.org>
7416
7417 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7418
7419 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7420
7421 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7422 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7423
7424 2009-04-17 Richard Guenther <rguenther@suse.de>
7425
7426 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7427 Handle component references view-converting an invariant address.
7428
7429 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
7430
7431 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7432 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7433 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7434 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7435 Use @deftypevr rather than @deftypevar.
7436
7437 2009-04-17 Richard Guenther <rguenther@suse.de>
7438
7439 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7440 (get_prop_source_stmt): Likewise.
7441 (can_propagate_from): Likewise.
7442
7443 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
7444
7445 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7446 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7447 (--with-multilib-list): Add default value.
7448 * configure: Regenerate.
7449 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7450 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7451 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7452 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7453 Don't add default cpu to multilib list unnecessarily, but do enable
7454 the relevant compiler option..
7455 Add support for --with-multilib-list=<blank> and
7456 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7457 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7458 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7459 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7460 TM_MULTILIB_CONFIG.
7461 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7462 (MULTILIB_OSDIRNAMES): New variable.
7463 * config/sh/t-1e: Delete file.
7464 * config/sh/t-mlib-sh1: Delete file.
7465 * config/sh/t-mlib-sh2: Delete file.
7466 * config/sh/t-mlib-sh2a: Delete file.
7467 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7468 * config/sh/t-mlib-sh2a-single: Delete file.
7469 * config/sh/t-mlib-sh2a-single-only: Delete file.
7470 * config/sh/t-mlib-sh2e: Delete file.
7471 * config/sh/t-mlib-sh3e: Delete file.
7472 * config/sh/t-mlib-sh4: Delete file.
7473 * config/sh/t-mlib-sh4-nofpu: Delete file.
7474 * config/sh/t-mlib-sh4-single: Delete file.
7475 * config/sh/t-mlib-sh4-single-only: Delete file.
7476 * config/sh/t-mlib-sh4a: Delete file.
7477 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7478 * config/sh/t-mlib-sh4a-single: Delete file.
7479 * config/sh/t-mlib-sh4a-single-only: Delete file.
7480 * config/sh/t-mlib-sh4al: Delete file.
7481 * config/sh/t-mlib-sh5-32media: Delete file.
7482 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7483 * config/sh/t-mlib-sh5-64media: Delete file.
7484 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7485 * config/sh/t-mlib-sh5-compact: Delete file.
7486 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7487 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7488 * doc/install.texi (Options specification): Add
7489 --with-multilib-list and --with-endian.
7490
7491 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
7492
7493 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7494 REVISION_c.
7495 (OBJS-common): Add plugin-version.o.
7496 (plugin-version.o): New.
7497 * gcc-plugin.h (plugin_gcc_version): New.
7498 (plugin_default_version_check): New.
7499 (plugin_init_func, plugin_init): Add version argument.
7500 * plugin-version.c: New.
7501 * plugin.c (str_plugin_gcc_version_name): New.
7502 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7503 pass it to the init function.
7504 (plugin_default_version_check): New.
7505
7506 2009-04-17 Richard Guenther <rguenther@suse.de>
7507
7508 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7509 for decl-vs-decl disambiguation.
7510
7511 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7512
7513 * config/s390/s390.h (s390_tune_attr): New macro definition.
7514 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7515
7516 2009-04-17 Richard Guenther <rguenther@suse.de>
7517
7518 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7519 (fold_stmt_r): Likewise.
7520 (maybe_fold_reference): New function.
7521 (fold_gimple_assign): Handle cases fold_stmt_r did.
7522 (fold_stmt): Do not use fold_stmt_r.
7523 (fold_stmt_inplace): Likewise.
7524
7525 2009-04-17 Richard Guenther <rguenther@suse.de>
7526
7527 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7528 (record_equivalences_from_stmt): Remove useless checks and
7529 simplifications.
7530 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7531 the type is already suitable.
7532
7533 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
7534
7535 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7536
7537 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
7538
7539 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7540 (CMPtype): Define as __gcc_CMPtype.
7541
7542 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7543
7544 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7545 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7546
7547 2009-04-17 Richard Guenther <rguenther@suse.de>
7548
7549 PR tree-optimization/39746
7550 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7551 special-casing for builtins and static variable use/def.
7552 (call_may_clobber_ref_p_1): Likewise.
7553
7554 2009-04-16 Ian Lance Taylor <iant@google.com>
7555
7556 * df.h: Include "timevar.h".
7557 (struct df_problem): Change tv_id field to timevar_id_t.
7558 * tree-pass.h: Include "timevar.h".
7559 (struct opt_pass): Change tv_id field to timevar_id_t.
7560 * timevar.h (timevar_id_t): Define TV_NONE.
7561 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7562 TV_NONE rather than tv_id != 0.
7563 (execute_one_pass): Likewise.
7564 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7565 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7566 dependencies to $(TREE_PASS_H).
7567 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7568 to TV_NONE.
7569 (pass_branch_target_load_optimize2): Likewise.
7570 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7571 (pass_outof_cfg_layout_mode): Likewise.
7572 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7573 (pass_rebuild_cgraph_edges): Likewise.
7574 (pass_remove_cgraph_callee_edges): Likewise.
7575 * df-core.c (pass_df_initialize_opt): Likewise.
7576 (pass_df_initialize_no_opt): Likewise.
7577 (pass_df_finish): Likewise.
7578 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7579 * except.c (pass_set_nothrow_function_flags): Likewise.
7580 (pass_convert_to_eh_region_ranges): Likewise.
7581 * final.c (pass_compute_alignments): Likewise.
7582 * function.c (pass_instantiate_virtual_regs): Likewise.
7583 (pass_init_function): Likewise.
7584 (pass_leaf_regs): Likewise.
7585 (pass_match_asm_constraints): Likewise.
7586 * gimple-low.c (pass_lower_cf): Likewise.
7587 (pass_mark_used_blocks): Likewise.
7588 * init-regs.c (pass_initialize_regs): Likewise.
7589 * integrate.c (pass_initial_value_sets): Likewise.
7590 * ira.c (pass_ira): Likewise.
7591 * jump.c (pass_cleanup_barriers): Likewise.
7592 * omp-low.c (pass_expand_omp): Likewise.
7593 (pass_lower_omp): Likewise.
7594 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7595 * recog.c (pass_split_all_insns): Likewise.
7596 (pass_split_after_reload): Likewise.
7597 (pass_split_before_regstack): Likewise.
7598 (pass_split_before_sched2): Likewise.
7599 (pass_split_for_shorten_branches): Likewise.
7600 * reginfo.c (pass_reginfo_init): Likewise.
7601 (pass_subregs_of_mode_init): Likewise.
7602 (pass_subregs_of_mode_finish): Likewise.
7603 * passes.c (pass_postreload): Likewise.
7604 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7605 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7606 (pass_warn_function_return): Likewise.
7607 (pass_warn_function_noreturn): Likewise.
7608 * tree-complex.c (pass_lower_complex): Likewise.
7609 (pass_lower_complex_O0): Likewise.
7610 * tree-if-conv.c (pass_if_conversion): Likewise.
7611 * tree-into-ssa.c (pass_build_ssa): Likewise.
7612 * tree-mudflap.c (pass_mudflap_1): Likewise.
7613 (pass_mudflap_2): Likewise.
7614 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7615 (pass_mudflap_2): Likewise.
7616 * tree-nrv.c (pass_return_slot): Likewise.
7617 * tree-object-size.c (pass_object_sizes): Likewise.
7618 * tree-optimize.c (pass_all_optimizations): Likewise.
7619 (pass_early_local_passes): Likewise.
7620 (pass_all_early_optimizations): Likewise.
7621 (pass_cleanup_cfg): Likewise.
7622 (pass_cleanup_cfg_post_optimizing): Likewise.
7623 (pass_free_datastructures): Likewise.
7624 (pass_free_cfg_annotations): Likewise.
7625 (pass_fixup_cfg): Likewise.
7626 (pass_init_datastructures): Likewise.
7627 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7628 (pass_late_warn_uninitialized): Likewise.
7629 (pass_update_address_taken): Likewise.
7630 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7631 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7632 (pass_cse_sincos): Likewise.
7633 (pass_convert_to_rsqrt): Likewise.
7634 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7635 * tree-stdarg.c (pass_stdarg): Likewise.
7636 * tree-tailcall.c (pass_tail_recursion): Likewise.
7637 (pass_tail_calls): Likewise.
7638 * tree-vect-generic.c (pass_lower_vector): Likewise.
7639 (pass_lower_vector_ssa): Likewise.
7640 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7641
7642 2009-04-16 Joseph Myers <joseph@codesourcery.com>
7643
7644 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7645 XLR entry.
7646 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7647 Handle -march=xlr.
7648 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7649 logical and signext.
7650
7651 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7652
7653 PR target/39767
7654 * config/sh/predicates.md (arith_operand): Check if the operand
7655 of TRUNCATE is a REG.
7656
7657 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7658
7659 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7660 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7661
7662 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7663
7664 * tree-iterator.c (tsi_split_statement_list_after,
7665 tsi_split_statement_list_before): Remove.
7666 * tree-iterator.h: Remove the prototypes for
7667 tsi_split_statement_list_after and tsi_split_statement_list_before.
7668
7669 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7670
7671 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7672 * tree-ssa-propagate.h: Remove the prototype for
7673 stmt_makes_single_load.
7674
7675 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7676
7677 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7678 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7679
7680 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7681
7682 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7683
7684 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7685
7686 * except.c (eh_region_outer_p): Remove.
7687 * except.h: Remove the prototype for eh_region_outer_p.
7688
7689 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7690
7691 * function.c (current_function_assembler_name): Remove.
7692 * function.h: Remove the prototype for
7693 current_function_assembler_name.
7694
7695 2009-04-16 Ian Lance Taylor <iant@google.com>
7696
7697 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
7698 (add_reg_note): Call alloc_reg_note.
7699 * rtl.h (alloc_reg_note): Declare.
7700 * combine.c (try_combine): Use alloc_reg_note.
7701 (recog_for_combine, move_deaths): Likewise.
7702 (distribute_notes): Use alloc_reg_note and add_reg_note.
7703 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7704 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7705 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7706
7707 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7708
7709 PR rtl-optimization/39762
7710 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7711 ira_may_move_out_cost): Add comments about way of their usage.
7712 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
7713
7714 * ira-conflicts.c (process_regs_for_copy): Use function
7715 ira_get_register_move_cost instead of global
7716 ira_register_move_cost.
7717
7718 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7719 color_pass, move_spill_restore, update_curr_costs): Ditto.
7720
7721 * ira-lives.c (process_single_reg_class_operands): Ditto.
7722
7723 * ira-emit.c (emit_move_list): Ditto.
7724
7725 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7726 (record_reg_classes): Ditto. Use functions
7727 ira_get_register_move_cost and ira_get_may_move_cost instead of
7728 global vars ira_register_move_cost, ira_may_move_out_cost and
7729 ira_may_move_in_cost.
7730 (record_address_regs): Don't call ira_init_register_move_cost.
7731 Use function ira_get_may_move_cost instead of global
7732 ira_may_move_in_cost.
7733 (process_bb_node_for_hard_reg_moves): Use function
7734 ira_get_register_move_cost instead of global ira_register_move_cost.
7735 (ira_costs): Don't call ira_init_register_move_cost.
7736
7737 2009-04-16 Richard Guenther <rguenther@suse.de>
7738
7739 * tree-cfg.c (verify_gimple_assign_binary):
7740 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7741 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7742 (create_general_new_stmt): Note that this function is broken.
7743
7744 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7745
7746 * common.opt (fhelp): Add Var(help_flag).
7747 * gcc-plugin.h (plugin_info): Add help.
7748 * plugin.c (plugin_name_args): Add help.
7749 (register_plugin_info): Set plugin->help.
7750 (print_help_one_plugin): New.
7751 (print_plugins_help): New.
7752 * plugin.h (print_plugins_help): New.
7753 * toplev.c (toplev_main): Call print_plugins_help if needed.
7754
7755 2009-04-16 Richard Guenther <rguenther@suse.de>
7756
7757 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7758 (gimple_ior_addresses_taken_1): New function.
7759 (gimple_ior_addresses_taken): Likewise.
7760 * gimple.h (struct gimple_statement_with_ops_base): Remove
7761 addresses_taken member.
7762 (gimple_ior_addresses_taken): Declare.
7763 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7764 gimple_set_addresses_taken): Remove.
7765 * ipa-reference.c (mark_address): New function.
7766 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7767 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7768 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7769 (gimple_add_to_addresses_taken): Remove.
7770 (get_tmr_operands): Call mark_address_taken.
7771 (get_asm_expr_operands): Likewise.
7772 (get_expr_operands): Likewise.
7773 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7774 (free_stmt_operands): Do not free it.
7775 * tree-ssa.c (delete_tree_ssa): Likewise.
7776 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7777
7778 2009-04-16 Richard Guenther <rguenther@suse.de>
7779
7780 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7781 (walk_stmt_load_store_ops): Likewise.
7782 * gimple.c (get_base_loadstore): New function.
7783 (walk_stmt_load_store_addr_ops): Likewise.
7784 (walk_stmt_load_store_ops): Likewise.
7785 * ipa-pure-const.c (check_op): Simplify.
7786 (check_load, check_store): New functions.
7787 (check_stmt): Use walk_stmt_load_store_ops.
7788 * ipa-reference.c (mark_load): Adjust signature.
7789 (mark_store): Likewise.
7790 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7791
7792 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7793
7794 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7795 (plugin_info): New.
7796 * opts.c (common_handle_option): Don't call print_version.
7797 * plugin.c (plugin_name_args): Add version.
7798 (register_plugin_info): New.
7799 (register_callback): Handle PLUGIN_INFO.
7800 (try_init_one_plugin): New.
7801 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7802 if failed to init.
7803 (finalize_one_plugin): New.
7804 (finalize_plugins): New.
7805 (print_one_plugin): New.
7806 (print_plugins_versions): New.
7807 * plugin.h (print_plugins_versions): New.
7808 (finalize_plugins): New.
7809 * toplev.c (compile_file): Don't call initialize_plugins.
7810 (print_version): Call print_plugins_versions.
7811 (toplev_main): Call initialize_plugins. Print version if needed.
7812 Call finalize_plugins.
7813
7814 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7815
7816 * common.opt (fversion): New.
7817 * gcc.c (print_version): New.
7818 (process_command): Don't print the version. Just set print_version.
7819 (main): Print version. Call subprocesses if print_version and
7820 verbose_flag are set.
7821 * opts.c (common_handle_option): Handle OPT_fversion.
7822
7823 2009-04-16 Richard Guenther <rguenther@suse.de>
7824 Ira Rosen <irar@il.ibm.com>
7825
7826 PR tree-optimization/39698
7827 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7828 type of the reduction variable. Only generate the def if
7829 it is needed.
7830
7831 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7832 make sure to first convert to an integer of the same precision.
7833 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7834 the type of the evolution correctly in computing the new
7835 induction variable base.
7836
7837 2009-04-16 Richard Guenther <rguenther@suse.de>
7838
7839 PR middle-end/39625
7840 * tree-cfg.c (make_blocks): Split statements with to-be
7841 abnormal SSA names on the lhs.
7842
7843 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
7844
7845 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7846 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7847 * c-typeck.c (really_start_incremental_init): Likewise.
7848 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7849 (TARGET_INITIALIZER): Remove it.
7850 * target.h (struct target): Remove vector_opaque_p.
7851 * tree.c (build_opaque_vector_type): New.
7852 * tree.h (TYPE_VECTOR_OPAQUE): New.
7853 (build_opaque_vector_type): Declare.
7854 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7855 * config/rs6000/rs6000.c (build_opaque_vector_type,
7856 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7857 (rs6000_init_builtins): Use build_opaque_vector_type for
7858 opaque_V4SI_type_node.
7859
7860 2009-04-15 Catherine Moore <clm@codesourcery.com>
7861
7862 * debug.h (set_name): Declare.
7863 * dwarf2out.c (dwarf2out_set_name): Declare.
7864 (dwarf2_debug_hooks): Add set_name.
7865 (find_AT_string): New.
7866 (add_AT_string): Call find_AT_string.
7867 (dwarf2out_set_name): New.
7868 * cp/decl.c (grokdeclarator): Call set_name.
7869 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7870 * debug.c (do_nothing_debug_hooks): Likewise.
7871 * dbxout.c (dbx_debug_hooks): Likewise.
7872 * sdbout.c (sdb_debug_hooks): Likewise.
7873
7874 2009-04-15 Michael Eager <eager@eagercon.com>
7875
7876 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7877 reg for single-precision FPU.
7878 * config/rs6000/rs6000.md (movsi_internal1): Only for
7879 !TARGET_SINGLE_FPU.
7880 (movsi_internal1_single): New. Add pattern to move SI values to/from
7881 single-precision FP regs.
7882
7883 2009-04-15 Richard Guenther <rguenther@suse.de>
7884
7885 * omp-low.c (lower_rec_input_clauses): Build correct address
7886 expressions.
7887 (expand_omp_for_generic): Fix multiplication type.
7888 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
7889 (generate_memset_zero): Fix types.
7890 * tree-profile.c (prepare_instrumented_value): Correctly
7891 widen a pointer.
7892
7893 2009-04-15 Ian Lance Taylor <iant@google.com>
7894
7895 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7896 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7897 for -Wall and for -Wc++-compat.
7898 (c_common_post_options): For C++, set warn_enum_compare if not
7899 already set.
7900 * c-tree.h (struct c_expr): Add field original_type.
7901 (build_external_ref): Update declaration.
7902 * c-parser.c (c_parser_braced_init): Set original_type.
7903 (c_parser_initelt): Likewise.
7904 (c_parser_expr_no_commas): Likewise.
7905 (c_parser_conditional_expression): Likewise.
7906 (c_parser_cast_expression): Likewise.
7907 (c_parser_unary_expression): Likewise. Pull setting of
7908 original_code to top of function.
7909 (c_parser_sizeof_expression): Set original_type.
7910 (c_parser_alignof_expression): Likewise.
7911 (c_parser_postfix_expression): Likewise. Pull setting of
7912 original_code to top of function.
7913 (c_parser_postfix_expression_after_paren_type): Set original_type.
7914 (c_parser_postfix_expression_after_primary): Likewise.
7915 (c_parser_expression): Likewise.
7916 * c-typeck.c (build_external_ref): Add type parameter. Change all
7917 callers.
7918 (c_expr_sizeof_expr): Set original_type field.
7919 (parser_build_unary_op): Likewise.
7920 (parser_build_binary_op): Likewise. Optionally warn about
7921 comparisons of enums of different types.
7922 (digest_init): Set original_type field.
7923 (really_start_incremental_init): Likewise.
7924 (push_init_level, pop_init_level): Likewise.
7925 * doc/invoke.texi (Warning Options): -Wenum-compare now
7926 supported in C.
7927
7928 2009-04-15 Richard Guenther <rguenther@suse.de>
7929
7930 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7931 out a necessary conversion.
7932 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7933 names we didn't value number.
7934 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7935
7936 2009-04-15 Richard Guenther <rguenther@suse.de>
7937
7938 PR tree-optimization/39764
7939 * tree-ssa-ccp.c (get_value): Canonicalize value with
7940 canonicalize_float_value.
7941
7942 2009-04-15 Jan Hubicka <jh@suse.cz>
7943
7944 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7945 Wrong version of patch.
7946
7947 2009-04-15 Jan Hubicka <jh@suse.cz>
7948
7949 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7950
7951 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7952
7953 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7954 our distinct integral and vector types.
7955
7956 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
7957
7958 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7959 * init.c (build_vtbl_address): Remove call to assemble_external.
7960
7961 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7962
7963 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7964 output for other floating point modes.
7965
7966 2009-04-14 Diego Novillo <dnovillo@google.com>
7967
7968 * diagnostic.c (diagnostic_report_diagnostic): Do not
7969 warn about loaded plugins for DK_ERROR and DK_WARNING.
7970 * c-decl.c (declspecs_add_type): Move call to
7971 invoke_plugin_callbacks ...
7972 * c-parser.c (c_parser_declspecs): ... here.
7973 * plugin.c (dump_active_plugins): Tidy output.
7974
7975 2009-04-14 Diego Novillo <dnovillo@google.com>
7976 Le-Chun Wu <lcwu@google.com>
7977
7978 * configure.ac: Add --enable-plugin support.
7979 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7980 * Makefile.in (PLUGIN_H): Define.
7981 Export ENABLE_PLUGIN and GMPINC to site.exp.
7982 Add PLUGINLIBS to link command.
7983 Add/modify dependencies for plugin.o and files including plugin.h.
7984 (plugin.o): New.
7985 * config.in: Regenerate.
7986
7987 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7988 OPT_fplugin_arg_.
7989
7990 2009-04-14 Le-Chun Wu <lcwu@google.com>
7991
7992 * tree-pass.h (register_one_dump_file): Add a prototype for
7993 register_one_dump_file.
7994 * toplev.c (compile_file): Call initialize_plugins.
7995 (do_compile): Call invoke_plugin_callbacks.
7996 (toplev_main): Call invoke_plugin_callbacks.
7997 * common.opt: Add -fplugin= and -fplugin-arg-.
7998 * gcc-plugin.h: New public header file for plugins to include.
7999 * plugin.c: New source file.
8000 * plugin.h: New internal header file.
8001 * passes.c (register_one_dump_file): Make it external.
8002
8003 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8004
8005 2009-04-14 Diego Novillo <dnovillo@google.com>
8006
8007 * doc/plugins.texi: New.
8008 * doc/gccint.texi: Add reference to Plugins chapter.
8009 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8010 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8011 loaded plugins, if any.
8012 * timevar.def (TV_PLUGIN_INIT): Define.
8013 (TV_PLUGIN_RUN): Define.
8014 * plugin.c: Include timevar.h
8015 (plugins_active_p): New.
8016 (dump_active_plugins): New.
8017 (debug_active_plugins): New.
8018
8019 2009-04-14 Joseph Myers <joseph@codesourcery.com>
8020
8021 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8022 library paths.
8023 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8024
8025 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
8026
8027 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8028 the same as a minus without a shift.
8029
8030 2009-04-14 Nick Clifton <nickc@redhat.com>
8031
8032 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8033 comparisons with small integers will always produce a short
8034 branch.
8035
8036 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
8037
8038 Merge:
8039 2008-12-19 Diego Novillo <dnovillo@google.com>
8040
8041 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
8042
8043 2009-04-14 Richard Guenther <rguenther@suse.de>
8044
8045 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8046 verification.
8047 (verify_gimple_assign_binary): Likewise. Handle shifts and
8048 rotates correctly.
8049 (verify_gimple_phi): Print the mismatched argument position.
8050 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8051 Fix types.
8052 (vect_update_init_of_dr): Likewise.
8053 * matrix-reorg.c (transform_access_sites): Do what the
8054 comment suggests.
8055 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8056
8057 2009-04-13 Michael Eager <eager@eagercon.com>
8058
8059 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8060 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8061 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
8062 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
8063 remove duplicate config
8064
8065 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8066
8067 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8068 file_name:line_number type locator of the call site.
8069
8070 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8071
8072 * genautomata.c: Put blank after comma.
8073 (automaton_decls): New.
8074 (struct unit_usage): Add comments to member next.
8075 (store_alt_unit_usage): Keep the list ordered.
8076 (unit_present_on_list_p, equal_alternatives_p): New.
8077 (check_regexp_units_distribution): Check units distribution
8078 correctness correctly.
8079 (main): Don't write automata if error is found. Return correct
8080 exit code.
8081
8082 * config/m68k/cf.md (cfv4_ds): Remove.
8083 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8084 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8085
8086 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8087 power4-load-ext, power4-store, power4-store-update,
8088 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8089 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8090 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8091 power4-sqrt, power4-isync): Modify reservation to make correct
8092 unit distribution to automata.
8093
8094 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8095 power5-store-update, power5-two, power5-three, power5-lmul,
8096 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
8097
8098 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8099
8100 * except.c (pass_set_nothrow_function_flags): Set name and add
8101 TODO_dump_func.
8102 (set_nothrow_function_flags): Mention in the dump file when
8103 changing a function to nothrow.
8104
8105 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8106
8107 PR/39066
8108 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8109 instead of unsigned long.
8110
8111 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8112
8113 * config/arm/arm.c (return_used_this_function): Remove.
8114 (arm_output_function_prologue): Remove use of
8115 return_used_this_function.
8116 (output_return_instruction): Replace use of
8117 return_used_this_function
8118 by cfun->machine->return_used_this_function.
8119 (arm_output_epilogue): Likewise.
8120 (arm_output_function_epilogue): Likewise.
8121 (thumb_unexpanded_epilogue): Likewise.
8122 * config/arm/arm.h (struct machine_function):
8123 New member return_used_this_function.
8124
8125 2009-04-12 Mark Mitchell <mark@codesourcery.com>
8126
8127 * doc/install.texi: Correct description of default directory for
8128 --with-gxx-include-dir.
8129
8130 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
8131
8132 * fold-const.c (build_range_check): Properly deal with enumeral and
8133 boolean base types.
8134
8135 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8136
8137 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8138 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8139 * params.h (MAX_GCSE_PASSES): Remove.
8140 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8141 in sequence. Remove ability to run multiple passes.
8142 (bypass_jumps): Report run as third CPROP pass.
8143
8144 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8145
8146 PR middle-end/39651
8147 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8148 when deciding whether the whole SEQUENCE can throw.
8149
8150 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
8151
8152 PR target/39740
8153 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8154 offseted label references.
8155
8156 2009-04-11 Jan Hubicka <jh@suse.cz>
8157
8158 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8159
8160 2009-04-11 Richard Guenther <rguenther@suse.de>
8161
8162 PR middle-end/39732
8163 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8164 return variables as TREE_ADDRESSABLE.
8165
8166 2009-04-11 Richard Guenther <rguenther@suse.de>
8167
8168 PR tree-optimization/39713
8169 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8170 reference trees have SSA_NAME operands.
8171
8172 2009-04-11 Richard Guenther <rguenther@suse.de>
8173
8174 PR c/39712
8175 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8176 address expressions.
8177
8178 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8179
8180 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8181 match changes in Cygwin 1.7
8182 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8183 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8184
8185 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
8186
8187 PR tree-optimization/39701
8188 * doc/invoke.texi (Optimization Options): Document change in
8189 meaning and initialization of -fdelete-null-pointer-checks.
8190
8191 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8192
8193 PR middle-end/39701
8194 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8195
8196 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8197 here.
8198
8199 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8200
8201 2009-04-10 Chao-ying Fu <fu@mips.com>
8202
8203 * doc/tm.texi (Instruction Output): Document
8204 TARGET_ASM_FINAL_POSTSCAN_INSN.
8205 * target.h (final_postscan_insn): New field in asm_out.
8206 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8207 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8208 * final.c (final_scan_insn): Call
8209 targetm.asm_out.final_postscan_insn after outputting
8210 an asm macro and a normal instruction.
8211
8212 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8213 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8214 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8215 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8216 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8217
8218 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
8219
8220 PR middle-end/39701
8221 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8222 variables as non-NULL even with -fdelete-null-pointer-checks.
8223
8224 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8225
8226 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8227
8228 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8229
8230 PR target/39678
8231 * config/i386/i386.c (classify_argument): Handle SCmode with
8232 (bit_offset % 64) != 0.
8233
8234 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8235
8236 * doc/invoke.texi (Optimize Options): Add cross-reference to
8237 -Q --help=optimizers examples.
8238
8239 2009-04-10 Ben Elliston <bje@au.ibm.com>
8240
8241 PR target/36800
8242 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8243 regalign for the reg == fpr and TDmode case.
8244
8245 2009-04-09 David Ayers <ayers@fsfe.org>
8246
8247 PR objc/29200
8248 * objc/objc-act.c (warn_with_method): Remove helper function.
8249 (check_duplicates): Call warning and inform directly.
8250 (really_start_method): Likewise.
8251
8252 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
8253
8254 * expmed.c (expand_divmod): Always use a comparison for a division
8255 by a large unsigned integer.
8256
8257 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8258 for things others than variables or functions as nonzero.
8259
8260 2009-04-09 Nick Clifton <nickc@redhat.com>
8261
8262 * unwind-compat.c: Change copyright header to refer to version
8263 3 of the GNU General Public License with version 3.1 of the
8264 GCC Runtime Library Exception and to point readers at the
8265 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
8266 * config/alpha/crtfastmath.c: Likewise.
8267 * config/alpha/linux-unwind.h: Likewise.
8268 * config/alpha/qrnnd.asm: Likewise.
8269 * config/alpha/vms-crt0-64.c: Likewise.
8270 * config/alpha/vms-crt0.c: Likewise.
8271 * config/alpha/vms-dwarf2.asm: Likewise.
8272 * config/alpha/vms-dwarf2eh.asm: Likewise.
8273 * config/alpha/vms-psxcrt0-64.c: Likewise.
8274 * config/alpha/vms-psxcrt0.c: Likewise.
8275 * config/alpha/vms_tramp.asm: Likewise.
8276 * config/arc/initfini.c: Likewise.
8277 * config/arc/lib1funcs.asm: Likewise.
8278 * config/arm/bpabi-v6m.S: Likewise.
8279 * config/arm/bpabi.S: Likewise.
8280 * config/arm/bpabi.c: Likewise.
8281 * config/arm/crti.asm: Likewise.
8282 * config/arm/crtn.asm: Likewise.
8283 * config/arm/ieee754-df.S: Likewise.
8284 * config/arm/ieee754-sf.S: Likewise.
8285 * config/arm/lib1funcs.asm: Likewise.
8286 * config/arm/libunwind.S: Likewise.
8287 * config/arm/linux-atomic.c: Likewise.
8288 * config/arm/mmintrin.h: Likewise.
8289 * config/arm/pr-support.c: Likewise.
8290 * config/arm/unaligned-funcs.c: Likewise.
8291 * config/arm/unwind-arm.c: Likewise.
8292 * config/arm/unwind-arm.h: Likewise.
8293 * config/avr/libgcc.S: Likewise.
8294 * config/bfin/crti.s: Likewise.
8295 * config/bfin/crtlibid.s: Likewise.
8296 * config/bfin/crtn.s: Likewise.
8297 * config/bfin/lib1funcs.asm: Likewise.
8298 * config/bfin/linux-unwind.h: Likewise.
8299 * config/cris/arit.c: Likewise.
8300 * config/cris/cris_abi_symbol.c: Likewise.
8301 * config/darwin-64.c: Likewise.
8302 * config/darwin-crt2.c: Likewise.
8303 * config/darwin-crt3.c: Likewise.
8304 * config/darwin.h: Likewise.
8305 * config/dbxelf.h: Likewise.
8306 * config/dfp-bit.c: Likewise.
8307 * config/dfp-bit.h: Likewise.
8308 * config/elfos.h: Likewise.
8309 * config/fixed-bit.c: Likewise.
8310 * config/fixed-bit.h: Likewise.
8311 * config/fp-bit.c: Likewise.
8312 * config/fp-bit.h: Likewise.
8313 * config/fr30/crti.asm: Likewise.
8314 * config/fr30/crtn.asm: Likewise.
8315 * config/fr30/lib1funcs.asm: Likewise.
8316 * config/freebsd-spec.h: Likewise.
8317 * config/frv/cmovd.c: Likewise.
8318 * config/frv/cmovh.c: Likewise.
8319 * config/frv/cmovw.c: Likewise.
8320 * config/frv/frvbegin.c: Likewise.
8321 * config/frv/frvend.c: Likewise.
8322 * config/frv/lib1funcs.asm: Likewise.
8323 * config/glibc-stdint.h: Likewise.
8324 * config/h8300/clzhi2.c: Likewise.
8325 * config/h8300/crti.asm: Likewise.
8326 * config/h8300/crtn.asm: Likewise.
8327 * config/h8300/ctzhi2.c: Likewise.
8328 * config/h8300/fixunssfsi.c: Likewise.
8329 * config/h8300/lib1funcs.asm: Likewise.
8330 * config/h8300/parityhi2.c: Likewise.
8331 * config/h8300/popcounthi2.c: Likewise.
8332 * config/i386/ammintrin.h: Likewise.
8333 * config/i386/att.h: Likewise.
8334 * config/i386/avxintrin.h: Likewise.
8335 * config/i386/biarch64.h: Likewise.
8336 * config/i386/bmmintrin.h: Likewise.
8337 * config/i386/cpuid.h: Likewise.
8338 * config/i386/cross-stdarg.h: Likewise.
8339 * config/i386/crtfastmath.c: Likewise.
8340 * config/i386/crtprec.c: Likewise.
8341 * config/i386/cygming-crtbegin.c: Likewise.
8342 * config/i386/cygming-crtend.c: Likewise.
8343 * config/i386/cygwin.asm: Likewise.
8344 * config/i386/emmintrin.h: Likewise.
8345 * config/i386/gmm_malloc.h: Likewise.
8346 * config/i386/gthr-win32.c: Likewise.
8347 * config/i386/i386.h: Likewise.
8348 * config/i386/immintrin.h: Likewise.
8349 * config/i386/linux-unwind.h: Likewise.
8350 * config/i386/linux64.h: Likewise.
8351 * config/i386/mm3dnow.h: Likewise.
8352 * config/i386/mmintrin-common.h: Likewise.
8353 * config/i386/mmintrin.h: Likewise.
8354 * config/i386/nmmintrin.h: Likewise.
8355 * config/i386/pmm_malloc.h: Likewise.
8356 * config/i386/pmmintrin.h: Likewise.
8357 * config/i386/smmintrin.h: Likewise.
8358 * config/i386/sol2-c1.asm: Likewise.
8359 * config/i386/sol2-ci.asm: Likewise.
8360 * config/i386/sol2-cn.asm: Likewise.
8361 * config/i386/sol2-gc1.asm: Likewise.
8362 * config/i386/tmmintrin.h: Likewise.
8363 * config/i386/unix.h: Likewise.
8364 * config/i386/w32-unwind.h: Likewise.
8365 * config/i386/wmmintrin.h: Likewise.
8366 * config/i386/x86-64.h: Likewise.
8367 * config/i386/x86intrin.h: Likewise.
8368 * config/i386/xmmintrin.h: Likewise.
8369 * config/ia64/crtbegin.asm: Likewise.
8370 * config/ia64/crtend.asm: Likewise.
8371 * config/ia64/crtfastmath.c: Likewise.
8372 * config/ia64/crti.asm: Likewise.
8373 * config/ia64/crtn.asm: Likewise.
8374 * config/ia64/fde-glibc.c: Likewise.
8375 * config/ia64/lib1funcs.asm: Likewise.
8376 * config/ia64/linux-unwind.h: Likewise.
8377 * config/ia64/quadlib.c: Likewise.
8378 * config/ia64/unwind-ia64.c: Likewise.
8379 * config/linux.h: Likewise.
8380 * config/m32c/m32c-lib1.S: Likewise.
8381 * config/m32c/m32c-lib2-trapv.c: Likewise.
8382 * config/m32c/m32c-lib2.c: Likewise.
8383 * config/m32r/initfini.c: Likewise.
8384 * config/m68hc11/larith.asm: Likewise.
8385 * config/m68hc11/m68hc11-crt0.S: Likewise.
8386 * config/m68k/cf.md: Likewise.
8387 * config/m68k/crti.s: Likewise.
8388 * config/m68k/crtn.s: Likewise.
8389 * config/m68k/lb1sf68.asm: Likewise.
8390 * config/m68k/linux-unwind.h: Likewise.
8391 * config/mcore/crti.asm: Likewise.
8392 * config/mcore/crtn.asm: Likewise.
8393 * config/mcore/lib1.asm: Likewise.
8394 * config/mips/linux-unwind.h: Likewise.
8395 * config/mips/loongson.h: Likewise.
8396 * config/mips/mips16.S: Likewise.
8397 * config/mmix/crti.asm: Likewise.
8398 * config/mmix/crtn.asm: Likewise.
8399 * config/pa/fptr.c: Likewise.
8400 * config/pa/hpux-unwind.h: Likewise.
8401 * config/pa/lib2funcs.asm: Likewise.
8402 * config/pa/linux-atomic.c: Likewise.
8403 * config/pa/linux-unwind.h: Likewise.
8404 * config/pa/milli64.S: Likewise.
8405 * config/pa/quadlib.c: Likewise.
8406 * config/pa/stublib.c: Likewise.
8407 * config/picochip/libgccExtras/adddi3.asm: Likewise.
8408 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8409 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8410 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8411 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8412 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8413 * config/picochip/libgccExtras/divmod15.asm: Likewise.
8414 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8415 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8416 * config/picochip/libgccExtras/longjmp.asm: Likewise.
8417 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8418 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8419 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8420 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8421 * config/picochip/libgccExtras/setjmp.asm: Likewise.
8422 * config/picochip/libgccExtras/subdi3.asm: Likewise.
8423 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8424 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8425 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8426 * config/rs6000/750cl.h: Likewise.
8427 * config/rs6000/altivec.h: Likewise.
8428 * config/rs6000/biarch64.h: Likewise.
8429 * config/rs6000/crtresfpr.asm: Likewise.
8430 * config/rs6000/crtresgpr.asm: Likewise.
8431 * config/rs6000/crtresxfpr.asm: Likewise.
8432 * config/rs6000/crtresxgpr.asm: Likewise.
8433 * config/rs6000/crtsavfpr.asm: Likewise.
8434 * config/rs6000/crtsavgpr.asm: Likewise.
8435 * config/rs6000/darwin-asm.h: Likewise.
8436 * config/rs6000/darwin-fallback.c: Likewise.
8437 * config/rs6000/darwin-fpsave.asm: Likewise.
8438 * config/rs6000/darwin-ldouble.c: Likewise.
8439 * config/rs6000/darwin-tramp.asm: Likewise.
8440 * config/rs6000/darwin-unwind.h: Likewise.
8441 * config/rs6000/darwin-vecsave.asm: Likewise.
8442 * config/rs6000/darwin-world.asm: Likewise.
8443 * config/rs6000/e500crtres32gpr.asm: Likewise.
8444 * config/rs6000/e500crtres64gpr.asm: Likewise.
8445 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8446 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8447 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8448 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8449 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8450 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8451 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8452 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8453 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8454 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8455 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8456 * config/rs6000/eabi-ci.asm: Likewise.
8457 * config/rs6000/eabi-cn.asm: Likewise.
8458 * config/rs6000/eabi.asm: Likewise.
8459 * config/rs6000/linux-unwind.h: Likewise.
8460 * config/rs6000/linux64.h: Likewise.
8461 * config/rs6000/paired.h: Likewise.
8462 * config/rs6000/paired.md: Likewise.
8463 * config/rs6000/ppc64-fp.c: Likewise.
8464 * config/rs6000/ppu_intrinsics.h: Likewise.
8465 * config/rs6000/rs6000.h: Likewise.
8466 * config/rs6000/si2vmx.h: Likewise.
8467 * config/rs6000/sol-ci.asm: Likewise.
8468 * config/rs6000/sol-cn.asm: Likewise.
8469 * config/rs6000/spe.h: Likewise.
8470 * config/rs6000/spu2vmx.h: Likewise.
8471 * config/rs6000/sysv4.h: Likewise.
8472 * config/rs6000/tramp.asm: Likewise.
8473 * config/rs6000/vec_types.h: Likewise.
8474 * config/s390/linux-unwind.h: Likewise.
8475 * config/s390/tpf-unwind.h: Likewise.
8476 * config/score/crti.asm: Likewise.
8477 * config/score/crtn.asm: Likewise.
8478 * config/sh/crt1.asm: Likewise.
8479 * config/sh/crti.asm: Likewise.
8480 * config/sh/crtn.asm: Likewise.
8481 * config/sh/divtab-sh4-300.c: Likewise.
8482 * config/sh/divtab-sh4.c: Likewise.
8483 * config/sh/divtab.c: Likewise.
8484 * config/sh/lib1funcs-4-300.asm: Likewise.
8485 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8486 * config/sh/lib1funcs.asm: Likewise.
8487 * config/sh/lib1funcs.h: Likewise.
8488 * config/sh/linux-atomic.asm: Likewise.
8489 * config/sh/linux-unwind.h: Likewise.
8490 * config/sh/shmedia.h: Likewise.
8491 * config/sh/sshmedia.h: Likewise.
8492 * config/sh/ushmedia.h: Likewise.
8493 * config/sparc/crtfastmath.c: Likewise.
8494 * config/sparc/linux-unwind.h: Likewise.
8495 * config/sparc/sol2-c1.asm: Likewise.
8496 * config/sparc/sol2-ci.asm: Likewise.
8497 * config/sparc/sol2-cn.asm: Likewise.
8498 * config/spu/divmodti4.c: Likewise.
8499 * config/spu/divv2df3.c: Likewise.
8500 * config/spu/float_disf.c: Likewise.
8501 * config/spu/float_unsdidf.c: Likewise.
8502 * config/spu/float_unsdisf.c: Likewise.
8503 * config/spu/float_unssidf.c: Likewise.
8504 * config/spu/mfc_multi_tag_release.c: Likewise.
8505 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8506 * config/spu/mfc_tag_release.c: Likewise.
8507 * config/spu/mfc_tag_reserve.c: Likewise.
8508 * config/spu/mfc_tag_table.c: Likewise.
8509 * config/spu/multi3.c: Likewise.
8510 * config/spu/spu_internals.h: Likewise.
8511 * config/spu/spu_intrinsics.h: Likewise.
8512 * config/spu/spu_mfcio.h: Likewise.
8513 * config/spu/vec_types.h: Likewise.
8514 * config/spu/vmx2spu.h: Likewise.
8515 * config/stormy16/stormy16-lib2.c: Likewise.
8516 * config/svr4.h: Likewise.
8517 * config/sync.c: Likewise.
8518 * config/v850/lib1funcs.asm: Likewise.
8519 * config/vxlib-tls.c: Likewise.
8520 * config/vxlib.c: Likewise.
8521 * config/vxworks-dummy.h: Likewise.
8522 * config/xtensa/crti.asm: Likewise.
8523 * config/xtensa/crtn.asm: Likewise.
8524 * config/xtensa/ieee754-df.S: Likewise.
8525 * config/xtensa/ieee754-sf.S: Likewise.
8526 * config/xtensa/lib1funcs.asm: Likewise.
8527 * config/xtensa/lib2funcs.S: Likewise.
8528 * config/xtensa/linux-unwind.h: Likewise.
8529 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8530 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8531 * coretypes.h: Likewise.
8532 * crtstuff.c: Likewise.
8533 * defaults.h: Likewise.
8534 * dwarf2.h: Likewise.
8535 * emutls.c: Likewise.
8536 * gbl-ctors.h: Likewise.
8537 * gcov-io.h: Likewise.
8538 * ginclude/float.h: Likewise.
8539 * ginclude/iso646.h: Likewise.
8540 * ginclude/stdarg.h: Likewise.
8541 * ginclude/stdbool.h: Likewise.
8542 * ginclude/stddef.h: Likewise.
8543 * ginclude/stdfix.h: Likewise.
8544 * ginclude/stdint-gcc.h: Likewise.
8545 * ginclude/tgmath.h: Likewise.
8546 * gthr-aix.h: Likewise.
8547 * gthr-dce.h: Likewise.
8548 * gthr-gnat.c: Likewise.
8549 * gthr-gnat.h: Likewise.
8550 * gthr-lynx.h: Likewise.
8551 * gthr-mipssde.h: Likewise.
8552 * gthr-nks.h: Likewise.
8553 * gthr-posix.c: Likewise.
8554 * gthr-posix.h: Likewise.
8555 * gthr-posix95.h: Likewise.
8556 * gthr-rtems.h: Likewise.
8557 * gthr-single.h: Likewise.
8558 * gthr-solaris.h: Likewise.
8559 * gthr-tpf.h: Likewise.
8560 * gthr-vxworks.h: Likewise.
8561 * gthr-win32.h: Likewise.
8562 * gthr.h: Likewise.
8563 * libgcc2.c: Likewise.
8564 * libgcc2.h: Likewise.
8565 * libgcov.c: Likewise.
8566 * tsystem.h: Likewise.
8567 * typeclass.h: Likewise.
8568 * unwind-c.c: Likewise.
8569 * unwind-compat.h: Likewise.
8570 * unwind-dw2-fde-compat.c: Likewise.
8571 * unwind-dw2-fde-darwin.c: Likewise.
8572 * unwind-dw2-fde-glibc.c: Likewise.
8573 * unwind-dw2-fde.c: Likewise.
8574 * unwind-dw2-fde.h: Likewise.
8575 * unwind-dw2.c: Likewise.
8576 * unwind-dw2.h: Likewise.
8577 * unwind-generic.h: Likewise.
8578 * unwind-pe.h: Likewise.
8579 * unwind-sjlj.c: Likewise.
8580 * unwind.inc: Likewise.
8581 * config/arm/neon-gen.ml: Change generated copyright header to
8582 refer to version 3 of the GNU General Public License with
8583 version 3.1 of the GCC Runtime Library Exception and to point
8584 readers at the COPYING3 and COPYING3.RUNTIME files and the
8585 FSF's license web page.
8586 * config/arm/arm_neon.h: Regenerate.
8587
8588 2009-04-09 Jakub Jelinek <jakub@redhat.com>
8589
8590 * config/cris/cris.md: Change copyright header to refer to version
8591 3 of the GNU General Public License.
8592 * doc/install.texi2html: Change copyright header to refer to version
8593 3 of the GNU General Public License and to point readers at the
8594 COPYING3 file and the FSF's license web page.
8595 * config/vax/linux.h: Likewise.
8596
8597 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
8598
8599 * config/i386/i386.md (cmpcc): New.
8600 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8601 (sync_compare_and_swap_cc*): Delete.
8602
8603 * config/s390/s390.c (s390_compare_emitted): Remove.
8604 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8605 s390_compare_emitted used to be handled. Assert that modes match.
8606 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8607 refer to sync_compare_and_swap_ccsi.
8608 * config/s390/s390.h (s390_compare_emitted): Remove.
8609 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8610 instead of s390_compare_emitted.
8611 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8612 instead of s390_compare_emitted.
8613 * config/s390/s390.md (cmpcc): New.
8614 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8615 CC_REGNUM, do not pretend it's set.
8616 (sync_compare_and_swap_cc*): Delete.
8617 * config/s390/predicates.md (cc_reg_operand): New.
8618
8619 * expr.c (sync_compare_and_swap_cc): Delete.
8620 * optabs.h (sync_compare_and_swap_cc): Delete.
8621 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8622 is being used with can_compare_p.
8623 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8624 (find_cc_set): New.
8625 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8626 look for a MODE_CC set instead. Use emit_store_flag.
8627 (expand_compare_and_swap_loop): Likewise, with some additional
8628 complication to avoid a force_reg when useless. Use
8629 emit_cmp_and_jump_insns.
8630 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8631 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8632 sync_compare_and_swap documentation.
8633
8634 2009-04-09 Jan Hubicka <jh@suse.cz>
8635
8636 * except.c (find_prev_try): Break out from ....
8637 (duplicate_eh_regions): ... here; properly update prev_try pointers
8638 when duplication part of tree.
8639 (dump_eh_tree): Improve dumping.
8640 (verify_eh_region): New.
8641 (verify_eh_tree): Use it.
8642
8643 2009-04-06 Richard Guenther <rguenther@suse.de>
8644
8645 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8646 &ARRAY addresses by adjusting their types and prepending
8647 a conversion.
8648 * tree-cfg.c (verify_gimple_assign_single): Verify that
8649 addresses are correct.
8650
8651 2009-04-09 Richard Guenther <rguenther@suse.de>
8652
8653 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8654 indices into an array reference if possible.
8655 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8656 Fold POINTER_PLUS_EXPR statements with invariant address.
8657
8658 2009-04-09 Alan Modra <amodra@bigpond.net.au>
8659
8660 PR target/39634
8661 * config.gcc (powerpc64-*-linux*): Always build biarch.
8662
8663 2009-04-09 Joseph Myers <joseph@codesourcery.com>
8664
8665 PR c/39613
8666 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8667 it and pedwarn if this results in an INTEGER_CST.
8668
8669 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8670
8671 * doc/install.texi: Update minimum GMP version. Remove obsolete
8672 text in MPFR section.
8673
8674 2009-04-08 Jakub Jelinek <jakub@redhat.com>
8675
8676 * dwarf2out.c (class_scope_p): New static inline.
8677 (class_or_namespace_scope_p): Use it.
8678 (gen_variable_die): Use DW_TAG_member tag for static data member
8679 declarations instead of DW_TAG_variable.
8680
8681 PR middle-end/39573
8682 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8683 variables.
8684
8685 2009-04-08 Richard Guenther <rguenther@suse.de>
8686
8687 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8688 valueize random data.
8689
8690 2009-04-08 David Edelsohn <edelsohn@gnu.org>
8691
8692 * config.gcc (aix tm_file): Add aix-stdint.h.
8693 (aix tm clause use_gcc_stdint): Set to wrap.
8694 * config/rs6000/aix-stdint.h: New file.
8695
8696 2009-04-08 Richard Guenther <rguenther@suse.de>
8697
8698 PR middle-end/36291
8699 * tree-dfa.c (add_referenced_var): Do not recurse into
8700 global initializers.
8701 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8702 exposed variables.
8703 (fold_const_aggregate_ref): Likewise.
8704
8705 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
8706
8707 * recog.c (ordered_comparison_operator): New.
8708 * gensupport.c (std_preds): Add it.
8709 * doc/md.texi (Machine-Independent Predicates): Document it.
8710
8711 2009-04-08 Jan Hubicka <jh@suse.cz>
8712
8713 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8714 * function.h (rtl_eh): Remove exception_handler_label_map.
8715 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8716 remove_exception_handler_label, for_each_eh_label_1): Remove.
8717 (rtl_remove_unreachable_regions): Remove.
8718 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8719 (find_exception_handler_labels): Don't build the hashtable.
8720 (maybe_remove_eh_handler): Remove.
8721 (for_each_eh_label): Rewrite to walk the tree.
8722 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8723 * except.h (maybe_remove_eh_handler): Remove.
8724 * passes.c (init_optimization_passes): Schedule second EH cleanup
8725 before out-of-ssa.
8726 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8727 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8728
8729 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
8730
8731 * genoutput.c (validate_optab_operands): New.
8732 (gen_insn, gen_expand): Call it.
8733
8734 * genflags.c (gen_insn): Detect misused iterators.
8735 (main): Pass line_no to gen_insn, exit with status 1 on error.
8736
8737 * genextract.c (line_no): Make global.
8738 (VEC_safe_set_locstr): Change assertion to error message.
8739 (main): Exit with status 1 on error.
8740
8741 2009-04-08 Joseph Myers <joseph@codesourcery.com>
8742
8743 PR c/39614
8744 PR c/39673
8745 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8746 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8747 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8748 * c-convert.c (convert): Do not call fold on results of conversion
8749 functions when the result is a C_MAYBE_CONST_EXPR.
8750 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8751 of __builtin_choose_expr.
8752 * c-typeck.c (remove_c_maybe_const_expr): New.
8753 (build_unary_op, build_conditional_expr, build_compound_expr,
8754 build_binary_op, c_objc_common_truthvalue_conversion): Call
8755 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8756 integer operands.
8757
8758 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
8759
8760 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
8761 CODE to produce a new one. Add a prototype to use fold_convert_const
8762
8763 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8764
8765 PR bootstrap/39660
8766 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8767 mix declarations and code.
8768
8769 2009-04-08 Ben Elliston <bje@au.ibm.com>
8770
8771 * gcc.c: Replace `CC' with `GCC' throughout.
8772
8773 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8774
8775 * doc/invoke.texi: Document Atom support.
8776
8777 2009-04-07 Jason Merrill <jason@redhat.com>
8778
8779 PR c++/25185
8780 * c-common.h, c-common.c: Add flag_pretty_templates.
8781 * c-opts.c (c_common_handle_option): Set it.
8782 * c.opt: Add -fno-pretty-templates.
8783 * doc/invoke.texi (C++ Dialect Options): Likewise.
8784
8785 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
8786
8787 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8788 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8789 (ia64_expand_builtin): Likewise.
8790
8791 2009-04-07 Martin Jambor <mjambor@suse.cz>
8792
8793 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8794 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8795 ADDR_EXPRS are include too.
8796
8797 2009-04-07 Richard Guenther <rguenther@suse.de>
8798
8799 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8800 decls are only used if passes as parameters or if they are
8801 local statics and the call is not to a builtin.
8802 (call_may_clobber_ref_p_1): Likewise.
8803
8804 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8805
8806 * expr.c (do_store_flag): Remove last argument. Simplify code
8807 to avoid duplication of tests already done by can_compare_p.
8808 (expand_expr_real_1): Adjust caller.
8809
8810 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8811
8812 * optabs.c (can_compare_p): Test the predicate of a
8813 cbranch and cstore pattern.
8814
8815 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8816
8817 * expr.c (convert_move): Use emit_store_flag instead of
8818 "emulating" it.
8819
8820 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8821
8822 * config/i386/i386.c (ix86_compare_emitted): Remove.
8823 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8824 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8825 * config/i386/i386.h (ix86_compare_emitted): Remove.
8826 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8827 instead of ix86_compare_emitted.
8828 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
8829
8830 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
8831
8832 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8833 Add t-sysroot-suffix to tmake_file.
8834 * config/print-sysroot-suffix.sh: New file.
8835 * config/t-sysroot-suffix: New file.
8836
8837 2009-04-07 Ben Elliston <bje@au.ibm.com>
8838
8839 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8840 as the latter produces a warning when the target does not support
8841 infinity.
8842
8843 2009-04-07 Ben Elliston <bje@au.ibm.com>
8844
8845 * dfp.c: Replace type punning assignments with memcpy throughout.
8846 * Makefile.in (dfp.o-warn): Remove.
8847
8848 2009-04-07 Alan Modra <amodra@bigpond.net.au>
8849
8850 PR target/39634
8851 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8852 Include soft-fp/t-softfp after rs6000/t-linux64.
8853
8854 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8855
8856 * stor-layout.c (set_sizetype): Use the full precision of their
8857 machine mode for bitsize types.
8858
8859 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8860
8861 * config/i386/i386.md: Revert 2 accidental checkins.
8862
8863 2009-04-06 Joey Ye <joey.ye@intel.com>
8864 Xuepeng Guo <xuepeng.guo@intel.com>
8865 H.J. Lu <hongjiu.lu@intel.com>
8866
8867 Atom pipeline model, tuning and insn selection.
8868 * config.gcc (atom): Add atom config options and target.
8869
8870 * config/i386/atom.md: New.
8871
8872 * config/i386/i386.c (atom_cost): New cost.
8873 (m_ATOM): New macro flag.
8874 (initial_ix86_tune_features): Set m_ATOM.
8875 (x86_accumulate_outgoing_args): Likewise.
8876 (x86_arch_always_fancy_math_387): Likewise.
8877 (processor_target): Add Atom cost.
8878 (cpu_names): Add Atom cpu name.
8879 (override_options): Set Atom ISA.
8880 (ix86_issue_rate): New case PROCESSOR_ATOM.
8881 (ix86_adjust_cost): Likewise.
8882
8883 * config/i386/i386.h (TARGET_ATOM): New target macro.
8884 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8885 (TARGET_OPT_AGU): New target option.
8886 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8887 (processor_type): Add PROCESSOR_ATOM.
8888
8889 * config/i386/i386.md (cpu): Add new value "atom".
8890 (use_carry, movu): New attr.
8891 (atom.md): Include atom.md.
8892 (adddi3_carry_rex64): Set attr "use_carry".
8893 (addqi3_carry): Likewise.
8894 (addhi3_carry): Likewise.
8895 (addsi3_carry): Likewise.
8896 (*addsi3_carry_zext): Likewise.
8897 (subdi3_carry_rex64): Likewise.
8898 (subqi3_carry): Likewise.
8899 (subhi3_carry): Likewise.
8900 (subsi3_carry): Likewise.
8901 (x86_movdicc_0_m1_rex64): Likewise.
8902 (*x86_movdicc_0_m1_se): Likewise.
8903 (x86_movsicc_0_m1): Likewise.
8904 (*x86_movsicc_0_m1_se): Likewise.
8905 (*adddi_1_rex64): Emit add insn as much as possible.
8906 (*addsi_1): Likewise.
8907 (return_internal): Set atom_unit.
8908 (return_internal_long): Likewise.
8909 (return_pop_internal): Likewise.
8910 (*rcpsf2_sse): Set atom_sse_attr attr.
8911 (*qrt<mode>2_sse): Likewise.
8912 (*prefetch_sse): Likewise.
8913
8914 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8915 PROCESSOR_ATOM.
8916 (ix86_target_macros_internal): Likewise.
8917
8918 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8919 (*prefetch_sse_rex): Likewise.
8920 (sse_rcpv4sf2): Likewise.
8921 (sse_vmrcpv4sf2): Likewise.
8922 (sse_sqrtv4sf2): Likewise.
8923 (<sse>_vmsqrt<mode>2): Likewise.
8924 (sse_ldmxcsr): Likewise.
8925 (sse_stmxcsr): Likewise.
8926 (*sse_sfence): Likewise.
8927 (sse2_clflush): Likewise.
8928 (*sse2_mfence): Likewise.
8929 (*sse2_lfence): Likewise.
8930 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8931 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8932 (avx_movdqu<avxmodesuffix>): Likewise.
8933 (avx_lddqu<avxmodesuffix>): Likewise.
8934 (sse2_movntv2di): Change attr "type" to "ssemov".
8935 (sse2_movntsi): Likewise.
8936 (rsqrtv8sf2): Change attr "type" to "sseadd".
8937 (sse3_addsubv2df3): Set attr "atom_unit".
8938 (sse3_h<plusminus_insn>v4sf3): Likewise.
8939 (*sse2_pmaddwd): Likewise.
8940 (*vec_extractv2di_1_rex64): Likewise.
8941 (*vec_extractv2di_1_avx): Likewise.
8942 (sse2_psadbw): Likewise.
8943 (ssse3_phaddwv8hi3): Likewise.
8944 (ssse3_phaddwv4hi3): Likewise.
8945 (ssse3_phadddv4si3): Likewise.
8946 (ssse3_phadddv2si3): Likewise.
8947 (ssse3_phaddswv8hi3): Likewise.
8948 (ssse3_phaddswv4hi3): Likewise.
8949 (ssse3_phsubwv8hi3): Likewise.
8950 (ssse3_phsubwv4hi3): Likewise.
8951 (ssse3_phsubdv4si3): Likewise.
8952 (ssse3_phsubdv2si3): Likewise.
8953 (ssse3_phsubswv8hi3): Likewise.
8954 (ssse3_phsubswv4hi3): Likewise.
8955 (ssse3_pmaddubsw128): Likewise.
8956 (sse3_pmaddubsw: Likewise.
8957 (ssse3_palignrti): Likewise.
8958 (ssse3_palignrdi): Likewise.
8959
8960 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8961
8962 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8963
8964 2009-04-06 Richard Guenther <rguenther@suse.de>
8965
8966 PR tree-optimization/28868
8967 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8968 of which PHI results we inserted.
8969 (insert_into_preds_of_block): Record inserted PHIs.
8970 (eliminate): Eliminate redundant PHI nodes.
8971 (init_pre): Init inserted_phi_names.
8972
8973 2009-04-06 Richard Guenther <rguenther@suse.de>
8974
8975 PR tree-optimization/39643
8976 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8977 IMAGPART_EXPRs of complex constants.
8978 (execute_fold_all_builtins): If we folded a call queue
8979 TODO_update_address_taken.
8980
8981 2009-04-06 Jan Hubicka <jh@suse.cz>
8982
8983 PR middle-end/39659
8984 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8985 flag.
8986
8987 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
8988
8989 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8990 delay slot.
8991 (ic_invalidate_array): Likewise.
8992
8993 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
8994
8995 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8996 alignment for library calls.
8997
8998 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8999
9000 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9001 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9002 * config/i386/mingw-stdint.h: New file.
9003
9004 2009-04-05 Richard Guenther <rguenther@suse.de>
9005
9006 PR tree-optimization/39648
9007 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9008 our &A vs. &A[0] IL deficiencies.
9009
9010 2009-04-04 Jan Hubicka <jh@suse.cz>
9011
9012 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9013 removed toplevel regions.
9014 (sjlj_mark_call_sites): Likewise.
9015
9016 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9017
9018 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9019 (cygwin tm clause use_gcc_stdint): Set to wrap.
9020 * config/i386/cygwin-stdint.h: New file.
9021
9022 2009-04-04 Richard Guenther <rguenther@suse.de>
9023
9024 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9025 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9026 single-argument PHIs if we are in loop-closed SSA form.
9027 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9028 for the pre-condition.
9029 (slpeel_tree_peel_loop_to_edge): Likewise.
9030 (vect_build_loop_niters): Take an optional sequence to append stmts.
9031 (vect_generate_tmps_on_preheader): Likewise.
9032 (vect_do_peeling_for_loop_bound): Take extra guards for the
9033 pre-condition.
9034 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9035 the cost model check.
9036 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
9037 guards if we are going to peel. Do not apply versioning in that case.
9038 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9039 (vect_do_peeling_for_loop_bound): Likewise.
9040 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9041 loop bound only record extra pre-conditions, do not apply loop
9042 versioning.
9043
9044 2009-04-04 Richard Guenther <rguenther@suse.de>
9045
9046 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9047 renaming code.
9048
9049 2009-04-04 Jan Hubicka <jh@suse.cz>
9050
9051 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9052 last_basic_block for size of bb->index indexed array.
9053 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9054 compute_out, link_btr_uses, build_btr_def_use_webs,
9055 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9056
9057 2009-04-04 Jan Hubicka <jh@suse.cz>
9058
9059 * except.c (remove_eh_handler_and_replace): Break out from ...
9060 (remove_eh_handler): ... here.
9061 (bring_to_root): New function.
9062 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9063 handled ones, bring others to root of tree.
9064
9065 2009-04-04 Jan Hubicka <jh@suse.cz>
9066
9067 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9068 (all_phis_safe_to_merge): New function.
9069 (update_info): New structure.
9070 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9071 (cleanup_empty_eh): Update SSA if possible.
9072
9073 2009-04-04 Richard Guenther <rguenther@suse.de>
9074
9075 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9076 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9077 (append_vuse): Likewise.
9078
9079 2009-04-04 Jakub Jelinek <jakub@redhat.com>
9080
9081 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9082 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9083 instead of REG_UNSAVED for DW_CFA_undefined.
9084 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9085 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9086 outermost frame.
9087
9088 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
9089
9090 PR target/39501
9091 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9092 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9093 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9094
9095 2009-04-04 Richard Guenther <rguenther@suse.de>
9096
9097 PR tree-optimization/8781
9098 PR tree-optimization/37892
9099 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9100 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9101 (valueize_refs): Call it for *& valueizations.
9102 (shared_reference_ops_from_ref): Rename to ...
9103 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9104 (shared_reference_ops_from_call): Rename to ...
9105 (valueize_shared_reference_ops_from_call): ... this and valueize.
9106 (vn_reference_lookup): Update.
9107 (visit_reference_op_call): Likewise.
9108 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9109 (eliminate): Value-replace the call address in call statements.
9110
9111 2009-04-04 Richard Guenther <rguenther@suse.de>
9112
9113 PR tree-optimization/39636
9114 * tree-ssa-forwprop.c
9115 (forward_propagate_addr_into_variable_array_index): Check for
9116 GIMPLE_ASSIGN before accessing the rhs code.
9117
9118 2009-04-03 Jason Merrill <jason@redhat.com>
9119
9120 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9121
9122 2009-04-03 Steve Ellcey <sje@cup.hp.com>
9123
9124 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9125 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9126 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9127 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9128 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9129 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9130 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9131 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9132 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9133 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9134 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9135 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9136 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9137 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9138 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9139 Use fr_reg_or_fp01_operand instead of fr_register_operand
9140
9141 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9142 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9143 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9144
9145 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9146
9147 PR rtl-optimization/39607
9148 PR rtl-optimization/39631
9149
9150 Revert:
9151
9152 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9153 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9154 instead of DF_LR_OUT.
9155 * ira-lives.c (process_bb_node_lives): Ditto.
9156 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9157 instead of DF_LR_{OUT,IN}.
9158 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9159 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9160
9161 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9162
9163 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9164 (execute_lower_omp): Always run but take the short way out if -fopenmp
9165 is not given.
9166 (gate_lower_omp): Remove, forcing the pass manager to always run the
9167 pass and always set PROP_gimple_lomp.
9168 (pass_lower_omp): Remove gate function.
9169 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9170 PROP_trees. Instead, require it.
9171 * ipa-cp.c (pass_ipa_cp): Likewise.
9172 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9173 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9174 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9175 and PROP_gimple_leh.
9176
9177 2009-04-03 Richard Guenther <rguenther@suse.de>
9178
9179 PR middle-end/13146
9180 PR tree-optimization/23940
9181 PR tree-optimization/33237
9182 PR middle-end/33974
9183 PR middle-end/34093
9184 PR tree-optimization/36201
9185 PR tree-optimization/36230
9186 PR tree-optimization/38049
9187 PR tree-optimization/38207
9188 PR tree-optimization/38230
9189 PR tree-optimization/38301
9190 PR tree-optimization/38585
9191 PR middle-end/38895
9192 PR tree-optimization/38985
9193 PR tree-optimization/39299
9194 * tree-ssa-structalias.h: Remove.
9195 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9196 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9197 (struct vuse_element_d): Remove.
9198 (struct vuse_vec_d): Likewise.
9199 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9200 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9201 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9202 VUSE_ELEMENT_VAR): Likewise.
9203 (struct voptype_d): Likewise.
9204 (NUM_VOP_FREE_BUCKETS): Likewise.
9205 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9206 (struct stmt_operands_d): Remove.
9207 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9208 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9209 VDEF_NUM, VDEF_VECT): Likewise.
9210 (copy_virtual_operands): Remove.
9211 (operand_build_cmp): Likewise.
9212 (create_ssa_artificial_load_stmt): Likewise.
9213 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9214 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9215 vuse_index and mayuse_index members. Pack and move done and iter_type
9216 members to the front.
9217 (SSA_OP_VMAYUSE): Remove.
9218 (SSA_OP_VIRTUAL_USES): Adjust.
9219 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9220 (unlink_stmt_vdef): Declare.
9221 (add_to_addressable_set): Remove.
9222 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9223 (vrp_visit_stmt): Likewise.
9224 * doc/tree-ssa.texi (Alias analysis): Update.
9225 * doc/invoke.texi (max-aliased-vops): Remove docs.
9226 (avg-aliased-vops): Likewise.
9227 * tree-into-ssa.c (syms_to_rename): Remove.
9228 (need_to_update_vops_p): Likewise.
9229 (need_to_initialize_update_ssa_p): Rename to ...
9230 (update_ssa_initialized_fn): ... this. Track function we are
9231 initialized for.
9232 (symbol_marked_for_renaming): Simplify.
9233 (add_new_name_mapping): Do not set need_to_update_vops_p.
9234 (dump_currdefs): Use SYMS_TO_RENAME.
9235 (rewrite_update_stmt): Always walk all uses/defs.
9236 (dump_update_ssa): Adjust.
9237 (init_update_ssa): Take function argument. Track what we are
9238 initialized for.
9239 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9240 (create_new_def_for): Initialize for cfun, assert we are initialized
9241 for cfun.
9242 (mark_sym_for_renaming): Simplify.
9243 (mark_set_for_renaming): Do not initialize update-ssa.
9244 (need_ssa_update_p): Simplify. Take function argument.
9245 (name_mappings_registered_p): Assert we ask for the correct function.
9246 (name_registered_for_update_p): Likewise.
9247 (ssa_names_to_replace): Likewise.
9248 (release_ssa_name_after_update_ssa): Likewise.
9249 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9250 (dump_decl_set): Do not print a newline.
9251 (debug_decl_set): Do it here.
9252 (dump_update_ssa): And here.
9253 * tree-ssa-loop-im.c (move_computations): Adjust.
9254 (movement_possibility): Likewise.
9255 (determine_max_movement): Likewise.
9256 (gather_mem_refs_stmt): Likewise.
9257 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9258 or NAME_MEMORY_TAG.
9259 * tree-complex.c (update_all_vops): Remove.
9260 (expand_complex_move): Adjust.
9261 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9262 Simplify test for memory referencing statement. Exclude
9263 non-invariant ADDR_EXPRs.
9264 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9265 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9266 (rdg_flag_uses): Likewise.
9267 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9268 related code.
9269 (tree_optimize_tail_calls_1): Also split the
9270 edge from the entry block if we have degenerate PHI nodes in
9271 the first basic block.
9272 * tree.c (init_ttree): Remove memory-tag related code.
9273 (tree_code_size): Likewise.
9274 (tree_node_structure): Likewise.
9275 (build7_stat): Re-write to be build6_stat.
9276 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9277 (SSA_VAR_P): Adjust.
9278 (struct tree_memory_tag): Remove.
9279 (struct tree_memory_partition_tag): Likewise.
9280 (union tree_node): Adjust.
9281 (build7): Re-write to be build6.
9282 * tree-pass.h (pass_reset_cc_flags): Remove.
9283 (TODO_update_address_taken): New flag.
9284 (pass_simple_dse): Remove.
9285 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9286 * params.h (MAX_ALIASED_VOPS): Remove.
9287 (AVG_ALIASED_VOPS): Likewise.
9288 * omp-low.c (expand_omp_taskreg): Update SSA form.
9289 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9290 aliases the lhs in a copy stmt.
9291 * tree-ssa-dse.c (struct address_walk_data): Remove.
9292 (memory_ssa_name_same): Likewise.
9293 (memory_address_same): Likewise.
9294 (get_kill_of_stmt_lhs): Likewise.
9295 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9296 unused stores. Look through PHI nodes into post-dominated regions.
9297 (dse_optimize_stmt): Simplify. Properly remove stores.
9298 (tree_ssa_dse): Compute dominators.
9299 (execute_simple_dse): Remove.
9300 (pass_simple_dse): Likewise.
9301 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9302 gimple_loaded_syms and gimple_stored_syms computation.
9303 * toplev.c (dump_memory_report): Dump alias and pta stats.
9304 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9305 (vn_reference_eq): Likewise.
9306 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9307 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9308 valueize_vuses): Remove.
9309 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9310 (get_def_ref_stmt_vuse): ... this.
9311 (vn_reference_lookup_2): New function.
9312 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9313 walking equivalent vuses. Simplify.
9314 (vn_reference_lookup): Likewise.
9315 (vn_reference_insert): Likewise.
9316 (vn_reference_insert_pieces): Likewise.
9317 (visit_reference_op_call): Simplify.
9318 (visit_reference_op_load): Likewise.
9319 (visit_reference_op_store): Likewise.
9320 (init_scc_vn): Remove shared_lookup_vuses initialization.
9321 (free_scc_vn): Remove shared_lookup_vuses freeing.
9322 (sort_vuses, sort_vuses_heap): Remove.
9323 (get_ref_from_reference_ops): Export.
9324 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9325 vector with single vuse pointer.
9326 (vn_reference_lookup_pieces, vn_reference_lookup,
9327 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9328 (shared_vuses_from_stmt): Remove.
9329 (get_ref_from_reference_ops): Declare.
9330 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9331 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9332 memory-tag related code.
9333 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9334 (likely_value): Add comment, skip static-chain of call statements.
9335 (surely_varying_stmt_p): Adjust.
9336 (gimplify_and_update_call_from_tree): Likewise.
9337 (execute_fold_all_builtins): Do not rebuild alias info.
9338 (gimplify_and_update_call_from_tree): Properly update VOPs.
9339 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9340 (copy_ref_info): Remove memory-tag related code.
9341 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9342 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9343 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9344 computation.
9345 * tree-ssa-dom.c (gimple_p): Remove typedef.
9346 (eliminate_redundant_computations): Adjust.
9347 (record_equivalences_from_stmt): Likewise.
9348 (avail_expr_hash): Likewise.
9349 (avail_expr_eq): Likewise.
9350 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
9351 (stmt_makes_single_load): Likewise.
9352 (stmt_makes_single_store): Likewise.
9353 * tree-ssa-alias.c: Rewrite completely.
9354 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9355 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9356 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9357 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9358 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9359 Remove public functions.
9360 (pass_reset_cc_flags): Remove.
9361 (pass_build_alias): Move ...
9362 * tree-ssa-structalias.c (pass_build_alias): ... here.
9363 * tree-ssa-alias.c (may_be_aliased): Move ...
9364 * tree-flow-inline.h (may_be_aliased): ... here.
9365 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9366 count_uses_and_derefs): Move ...
9367 * gimple.c: ... here.
9368 * gimple.h (count_uses_and_derefs): Declare.
9369 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9370 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9371 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9372 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9373 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9374 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9375 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9376 New functions.
9377 * tree-dfa.c (refs_may_alias_p): Move ...
9378 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9379 * tree-ssa-alias.h: New file.
9380 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9381 (statement_sink_location): Likewise.
9382 * opts.c (decode_options): Do not adjust max-aliased-vops or
9383 avg-aliased-vops values.
9384 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9385 (TV_CALL_CLOBBER): Likewise.
9386 (TV_FLOW_SENSITIVE): Likewise.
9387 (TV_FLOW_INSENSITIVE): Likewise.
9388 (TV_MEMORY_PARTITIONING): Likewise.
9389 (TV_ALIAS_STMT_WALK): New timevar.
9390 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9391 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9392 (get_address_description): Remove memory-tag related code.
9393 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9394 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9395 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9396 and immediate uses in statements. Document.
9397 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9398 (dump_symbols): Remove.
9399 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9400 * alias.c (get_deref_alias_set): New function split out from ...
9401 (get_alias_set): ... here.
9402 * alias.h (get_deref_alias_set): Declare.
9403 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9404 type parameter. Remove restrict pointer handling. Create a
9405 ref-all pointer in case type-based alias sets do not conflict.
9406 (vect_analyze_data_refs): Remove SMT related code.
9407 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9408 (vectorizable_load): Likewise.
9409 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9410 (DR_SYMBOL_TAG, DR_VOPS): Remove.
9411 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9412 Ignore vops and SMTs.
9413 (dr_analyze_alias): Likewise..
9414 (free_data_ref): Likewise.
9415 (create_data_ref): Likewise.
9416 (analyze_all_data_dependences): Likewise.
9417 (get_references_in_stmt): Adjust.
9418 * tree-flow-inline.h (gimple_aliases_computed_p,
9419 gimple_addressable_vars, gimple_call_clobbered_vars,
9420 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9421 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9422 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9423 gimple_mem_ref_stats): Remove.
9424 (gimple_vop): New function.
9425 (op_iter_next_use): Remove vuses and mayuses cases.
9426 (op_iter_next_def): Remove vdefs case.
9427 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9428 (clear_and_done_ssa_iter): Do not set removed fields.
9429 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
9430 Assert we are not iterating over vuses or vdefs if not also
9431 iterating over uses or defs.
9432 (op_iter_init_use): Likewise.
9433 (op_iter_init_def): Likewise.
9434 (op_iter_next_vdef): Remove.
9435 (op_iter_next_mustdef): Likewise.
9436 (op_iter_init_vdef): Likewise.
9437 (compare_ssa_operands_equal): Likewise.
9438 (link_use_stmts_after): Handle vuse operand.
9439 (is_call_used): Use is_call_clobbered.
9440 (is_call_clobbered): Global variables are always call clobbered,
9441 query the call-clobbers bitmap.
9442 (mark_call_clobbered): Ignore global variables.
9443 (clear_call_clobbered): Likewise.
9444 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9445 virtual operands sanity check.
9446 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9447 Remove.
9448 (TARGET_MEM_REF): Remove TMR_TAG operand.
9449 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9450 Remove call-clobber related code.
9451 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9452 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9453 partitions or escape reason.
9454 (get_single_def_stmt, get_single_def_stmt_from_phi,
9455 get_single_def_stmt_with_phi): Remove.
9456 (dump_referenced_vars): Tidy.
9457 (get_ref_base_and_extent): Allow bare decls.
9458 (collect_dfa_stats): Adjust.
9459 * graphite.c (rename_variables_in_stmt): Adjust.
9460 (graphite_copy_stmts_from_block): Likewise.
9461 (translate_clast): Likewise.
9462 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9463 (EXPR_DIES): New.
9464 (translate_vuse_through_block): Use the oracle.
9465 (phi_translate_1): Adjust.
9466 (value_dies_in_block_x): Use the oracle. Cache the outcome
9467 in EXPR_DIES.
9468 (valid_in_sets): Check if the VUSE for
9469 a REFERENCE is available.
9470 (eliminate): Do not remove stmts during elimination,
9471 instead queue and remove them afterwards.
9472 (do_pre): Do not rebuild alias info.
9473 (pass_pre): Run TODO_rebuild_alias before PRE.
9474 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9475 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9476 (mark_all_v_defs_stmt): Remove.
9477 (mark_all_v_defs_seq): Adjust.
9478 (sra_replace): Likewise.
9479 (scalarize_use): Likewise.
9480 (scalarize_copy): Likewise.
9481 (scalarize_init): Likewise.
9482 (scalarize_ldst): Likewise.
9483 (todoflags): Remove.
9484 (tree_sra): Do not rebuild alias info.
9485 (tree_sra_early): Adjust.
9486 (pass_sra): Run TODO_update_address_taken before SRA.
9487 * tree-predcom.c (set_alias_info): Remove.
9488 (prepare_initializers_chain): Do not call it.
9489 (mark_virtual_ops_for_renaming): Adjust.
9490 (mark_virtual_ops_for_renaming_list): Remove.
9491 (initialize_root_vars): Adjust.
9492 (initialize_root_vars_lm): Likewise.
9493 (prepare_initializers_chain): Likewise.
9494 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9495 (may_propagate_copy_into_stmt): Likewise.
9496 (merge_alias_info): Do nothing for now.
9497 (propagate_tree_value_into_stmt): Adjust.
9498 (stmt_may_generate_copy): Likewise.
9499 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9500 not mark symbols for renaming.
9501 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9502 with the same statement, make sure to update the new pointed-to one.
9503 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9504 call statements, do not mark symbols for renaming.
9505 (mark_operand_necessary): Dump something.
9506 (ref_may_be_aliased): New function.
9507 (mark_aliased_reaching_defs_necessary_1): New helper function.
9508 (mark_aliased_reaching_defs_necessary): Likewise.
9509 (mark_all_reaching_defs_necessary_1): Likewise.
9510 (mark_all_reaching_defs_necessary): Likewise.
9511 (propagate_necessity): Do not process virtual PHIs. For
9512 non-aliased loads mark all reaching definitions as necessary.
9513 For aliased loads and stores mark the immediate dominating
9514 aliased clobbers as necessary.
9515 (visited): New global static.
9516 (perform_tree_ssa_dce): Free visited bitmap after propagating
9517 necessity.
9518 (remove_dead_phis): Perform simple dead virtual PHI removal.
9519 (remove_dead_stmt): Properly unlink virtual operands when
9520 removing stores.
9521 (eliminate_unnecessary_stmts): Schedule PHI removal after
9522 stmt removal.
9523 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9524 (process_replaceable): Likewise.
9525 (find_replaceable_in_bb): Likewise.
9526 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9527 based on the single gimple vop.
9528 (verify_flow_insensitive_alias_info): Remove.
9529 (verify_flow_sensitive_alias_info): Likewise.
9530 (verify_call_clobbering): Likewise.
9531 (verify_memory_partitions): Likewise.
9532 (verify_alias_info): Likewise.
9533 (verify_ssa): Adjust..
9534 (execute_update_addresses_taken): Export. Update SSA
9535 manually. Optimize only when optimizing. Use a local bitmap.
9536 (pass_update_address_taken): Remove TODO_update_ssa, add
9537 TODO_dump_func.
9538 (pass_update_address_taken): Just use TODO_update_address_taken.
9539 (init_tree_ssa): Do not initialize addressable_vars.
9540 (verify_ssa): Verify new VUSE / VDEF properties.
9541 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9542 Do not call verify_alias_info.
9543 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9544 Do not free the loaded and stored syms bitmaps. Reset the escaped
9545 and callused solutions. Do not free addressable_vars.
9546 Remove memory-tag related code.
9547 (warn_uninitialized_var): Aliases are always available.
9548 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9549 * lambda-code.c (can_put_in_inner_loop): Adjust.
9550 (can_put_after_inner_loop): Likewise.
9551 (perfect_nestify): Likewise.
9552 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9553 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9554 (vectorizable_conversion): Do not mark symbols for renaming.
9555 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9556 (expand_call_inline): Unlink the calls virtual operands before
9557 replacing it.
9558 (tree_function_versioning): Do not call update_ssa if we are not
9559 updating clones. Simplify.
9560 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9561 (propagate_with_phi): Likewise..
9562 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9563 clobber code. Assert we are not aliased or global.
9564 * tree-flow.h: Include tree-ssa-alias.h
9565 (enum escape_type): Remove.
9566 (struct mem_sym_stats_d): Likewise.
9567 (struct mem_ref_stats_d): Likewise.
9568 (struct gimple_df): Add vop member. Remove global_var,
9569 call_clobbered_vars, call_used_vars, addressable_vars,
9570 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9571 escaped and callused members.
9572 (struct ptr_info_def): Remove all members, add points-to solution
9573 member pt.
9574 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9575 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9576 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9577 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9578 (tree-ssa-alias.o): Likewise.
9579 (toplev.o): Add tree-ssa-alias.h
9580 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9581 * gimple.c (gimple_set_bb): Fix off-by-one error.
9582 (is_gimple_reg): Do not handle memory tags.
9583 (gimple_copy): Also copy virtual operands.
9584 Delay updating the statement. Do not reset loaded and stored syms.
9585 (gimple_set_stored_syms): Remove.
9586 (gimple_set_loaded_syms): Likewise.
9587 (gimple_call_copy_skip_args): Copy the virtual operands
9588 and mark the new statement modified.
9589 * tree-ssa-structalias.c (may_alias_p): Remove.
9590 (set_uids_in_ptset): Take the alias set to prune with as
9591 parameter. Fold in the alias test of may_alias_p.
9592 (compute_points_to_sets): Compute whether a ptr is dereferenced
9593 in a local sbitmap.
9594 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9595 other ADDRESSOF constraints on the lhs.
9596 (get_constraint_for_component_ref): Assert that we don't get
9597 ADDRESSOF constraints from the base of the reference.
9598 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9599 (struct variable_info): Remove collapsed_to member.
9600 (get_varinfo_fc): Remove.
9601 (new_var_info): Do not set collapsed_to.
9602 (dump_constraint): Do not follow cycles.
9603 (dump_constraint_graph): Likewise.
9604 (build_pred_graph): Likewise.
9605 (build_succ_graph): Likewise.
9606 (rewrite_constraints): Likewise.
9607 (do_simple_structure_copy): Remove.
9608 (do_rhs_deref_structure_copy): Remove.
9609 (do_lhs_deref_structure_copy): Remove.
9610 (collapse_rest_of_var): Remove.
9611 (do_structure_copy): Re-implement.
9612 (pta_stats): New global variable.
9613 (dump_pta_stats): New function.
9614 (struct constraint_expr): Make offset signed.
9615 (UNKNOWN_OFFSET): Define special value.
9616 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9617 (solution_set_expand): New helper function split out from ...
9618 (do_sd_constraint): ... here.
9619 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9620 (do_ds_constraint): Likewise.
9621 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9622 and CALLUSED = *CALLUSED.
9623 (set_union_with_increment): Make inc argument signed.
9624 (type_safe): Remove.
9625 (get_constraint_for_ptr_offset): Handle unknown and negative
9626 constant offsets.
9627 (first_vi_for_offset): Handle offsets before start. Bail
9628 out early for offsets beyond the variable extent.
9629 (first_or_preceding_vi_for_offset): New function.
9630 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9631 Together with ESCAPED = *ESCAPED this properly computes reachability.
9632 (find_what_var_points_to): New function.
9633 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9634 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9635 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9636 pt_solutions_intersect): New functions.
9637 (compute_call_used_vars): Remove.
9638 (compute_may_aliases): New main entry into PTA computation.
9639 * gimple.h (gimple_p): New typedef.
9640 (struct gimple_statement_base): Remove references_memory_p.
9641 (struct gimple_statement_with_memory_ops_base): Remove
9642 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9643 members.
9644 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9645 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9646 gimple_set_references_memory): Remove.
9647 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9648 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9649 New functions.
9650 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9651 (verify_expr): Allow RESULT_DECL.
9652 (gimple_duplicate_bb): Do not copy virtual operands.
9653 (gimple_duplicate_sese_region): Adjust.
9654 (gimple_duplicate_sese_tail): Likewise.
9655 (mark_virtual_ops_in_region): Remove.
9656 (move_sese_region_to_fn): Do not call it.
9657 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9658 and pass_simple_dse.
9659 (execute_function_todo): Handle TODO_update_address_taken,
9660 call execute_update_addresses_taken for TODO_rebuild_alias.
9661 (execute_todo): Adjust.
9662 (execute_one_pass): Init dump files early.
9663 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9664 call-clobbered.
9665 (create_general_new_stmt): Clear vops.
9666 * tree-ssa-reassoc.c (get_rank): Adjust.
9667 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9668 symbols for renaming.
9669 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9670 (PARAM_AVG_ALIASED_VOPS): Likewise.
9671 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9672 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
9673 * tree-ssa-operands.c: Simplify for new virtual operand representation.
9674 (operand_build_cmp, copy_virtual_operands,
9675 create_ssa_artificial_load_stmt, add_to_addressable_set,
9676 gimple_add_to_addresses_taken): Remove public functions.
9677 (unlink_stmt_vdef): New function.
9678
9679 2009-04-03 Alan Modra <amodra@bigpond.net.au>
9680
9681 * config.gcc (powerpc-*-linux*): Merge variants.
9682
9683 2009-04-02 Chao-ying Fu <fu@mips.com>
9684 James Grosbach <james.grosbach@microchip.com>
9685
9686 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9687 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9688 cop0_sp_offset.
9689 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9690 keep_interrupts_masked_p, use_debug_exception_return_p.
9691 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9692 keep_interrupts_masked, use_debug_exception_return.
9693 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9694 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9695 New functions.
9696 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9697 (mips_print_operand): Process COP0 registers to print $0 .. $31
9698 correctly for GAS to process.
9699 (mips_interrupt_extra_call_saved_reg_p): New function.
9700 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9701 extra registers.
9702 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9703 (mips_compute_frame_info): Add supports for interrupt context that
9704 includes doubleword accumulators and COP0 registers.
9705 (mips_for_each_saved_acc): New function.
9706 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9707 mips_for_each_saved_reg.
9708 (mips_save_reg): Save accumulators.
9709 (mips_kernel_reg_p): A new for_each_rtx callback.
9710 (mips_expand_prologue): Support interrupt handlers.
9711 (mips_restore_reg): Restore accumulators.
9712 (mips_expand_epilogue): Support interrupt handlers.
9713 (mips_can_use_return_insn): Return false for interrupt handlers.
9714 (mips_epilogue_uses): New function.
9715 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9716 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9717 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9718 cop0_move): New instructions.
9719 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9720 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9721 defines.
9722 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9723 New defines.
9724 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9725 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9726 interrupt handlers, we use K0 as the temporary register.
9727 (EPILOGUE_USES): Change to a function call.
9728 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9729 handlers, we use K0 as the temporary register.
9730
9731 * doc/extend.texi (Function Attributes): Document interrupt,
9732 use_shadow_register_set, keep_interrupts_masked,
9733 use_debug_exception_return for MIPS attributes.
9734
9735 2009-04-03 Alan Modra <amodra@bigpond.net.au>
9736
9737 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9738 Remove a number of t-files from tmake_file.
9739 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9740 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9741 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9742 target_prototype, not TARGET_PROTOTYPE.
9743 (LINK_OS_GNU_SPEC): Define.
9744 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9745 and darwin-ldoubdle.c.
9746
9747 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9748
9749 PR driver/39293
9750 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9751 (cpp_options): Ditto.
9752 (default_compilers): Ditto.
9753 (display_help): Ditto.
9754 (process_command): Ditto.
9755 (do_spec_1): Ditto.
9756 (set_input): Use lbasename instead of duplicate code.
9757 (save_temps_prefix): New static for -save-temps=obj.
9758 (save_temps_length): Ditto.
9759
9760 * doc/invoke.texi (-save-temps=obj): Document new variant to
9761 -save-temps switch.
9762
9763 2009-04-02 Jeff Law <law@redhat.com>
9764
9765 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9766 variable.
9767
9768 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9769
9770 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9771 * configure: Regenerated.
9772
9773 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9774
9775 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9776 share the argument list.
9777
9778 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9779
9780 Merge
9781
9782 2009-02-12 Diego Novillo <dnovillo@google.com>
9783
9784 * varpool.c (debug_varpool): New.
9785 * cgraph.h (debug_varpool): Declare.
9786
9787 2009-04-02 Jan Hubicka <jh@suse.cz>
9788
9789 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9790 pass.
9791
9792 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9793
9794 * config/i386/i386.c (ix86_abi): Move initialization to ...
9795 (override_options): Here.
9796
9797 2009-04-02 Christian Bruel <christian.bruel@st.com>
9798
9799 * config/sh/sh.c (sh_dwarf_register_span): New function.
9800 (TARGET_DWARF_REGISTER_SPAN): Define.
9801 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
9802
9803 2009-04-02 Ira Rosen <irar@il.ibm.com>
9804
9805 PR tree-optimization/39595
9806 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
9807 interleaved loads group is not greater than the SLP group size.
9808
9809 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9810
9811 * builtins.c (is_builtin_name): New.
9812 (called_as_built_in): Use is_builtin_name.
9813 * tree.h (is_builtin_name): New.
9814 * varasm.c (incorporeal_function_p): Use is_builtin_name
9815
9816 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
9817
9818 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9819
9820 2009-04-02 Dodji Seketeli <dodji@redhat.com>
9821
9822 PR c++/26693
9823 * c-decl.c (clone_underlying_type): Move this ...
9824 * c-common.c (set_underlying_type): ... here.
9825 Also, make sure the function properly sets TYPE_STUB_DECL() on
9826 the newly created typedef variant type.
9827 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
9828 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9829 points.
9830
9831 2009-04-02 Richard Guenther <rguenther@suse.de>
9832
9833 PR tree-optimization/37221
9834 * tree-flow.h (degenerate_phi_result): Declare.
9835 * tree-ssa-dom.c (degenerate_phi_result): Export.
9836 * tree-scalar-evolution.c (analyze_initial_condition): If
9837 the initial condition is defined by a degenerate PHI node
9838 use the degenerate value.
9839
9840 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9841
9842 PR rtl-optimization/39588
9843 * combine.c (merge_outer_ops): Do not set the constant when this
9844 is not necessary.
9845 (simplify_shift_const_1): Do not modify it either in this case.
9846
9847 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9848
9849 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9850 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9851
9852 2009-04-01 Janis Johnson <janis187@us.ibm.com>
9853
9854 PR c/29027
9855 * c-lex.c (interpret_float): Default (no suffix) is double.
9856
9857 2009-04-1 Xinliang David Li <davidxl@google.com>
9858
9859 * config/i386/i386.c (legitimate_constant_p): Recognize
9860 all one vector constant.
9861
9862 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9863
9864 * config/vax/vax.c: Add #includes to silence warnings.
9865 Change #include order to silence two warnings.
9866
9867 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9868
9869 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
9870 (ASM_SPEC): Pass -k to the assembler for PIC code.
9871
9872 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9873
9874 * config.gcc: Add vax-*-linux* to the switch.
9875 * config/vax/linux.h: New file. (TARGET_VERSION,
9876 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9877
9878 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9879
9880 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
9881 Use predicate macros instead of GET_CODE() == foo.
9882 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
9883 ashlsi3, rotrsi3, <unnamed>): Likewise.
9884
9885 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9886
9887 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
9888 jbbccihi, jbbccisi): Remova trailing whitespace.
9889 * config/vax/constraints.md: Likewise.
9890 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9891 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9892 * config/vax/predicates.md: Likewise.
9893 * config/vax/vax.c (print_operand_address, vax_output_int_move,
9894 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
9895 * config/vax/vax.h: Likewise.
9896 * config/vax/vax.md (nonlocal_goto): Likewise.
9897
9898 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9899
9900 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
9901 (indirectable_address_p, adjacent_operands_p): Add spaces around
9902 braces.
9903 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
9904
9905 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9906
9907 * config/vax/vax.c (legitimate_constant_address_p,
9908 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9909 index_term_p, reg_plus_index_p, legitimate_address_p,
9910 vax_mode_dependent_address_p): Update comments to match functions
9911 modified by the recent int->bool conversion.
9912
9913 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9914
9915 * config/vax/builtins.md: Update copyright message.
9916 * config/vax/constraints.md: Likewise.
9917 * config/vax/netbsd-elf.h: Likewise.
9918 * config/vax/predicates.md: Likewise.
9919 * config/vax/vax-protos.h: Likewise.
9920 * config/vax/vax.c: Likewise.
9921 * config/vax/vax.h: Likewise.
9922 * config/vax/vax.md: Likewise.
9923 * config/vax/vax.opt: Likewise.
9924
9925 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9926
9927 * config/vax/builtins.md (ffssi2, ffssi2_internal,
9928 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
9929 * config/vax/constraints.md (B, R): Likewise.
9930 * config/vax/predicates.md (external_memory_operand,
9931 nonimmediate_addsub_di_operand): Likewise.
9932 * config/vax/vax.c (vax_output_int_add): Likewise.
9933 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
9934 untyped_call): Likewise.
9935
9936 2009-04-01 Matt Thomas <matt@3am-software.com>
9937
9938 * config/vax/predicates.md: New file.
9939 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
9940 external_const_operand, nonsymbolic_operand, external_memory_operand,
9941 indirect_memory_operand, indexed_memory_operand,
9942 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9943 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9944 predicate.
9945 * config/vax/constraints.md: New file.
9946 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9947 New constraint.
9948 * config/vax/builtins.md: New file.
9949 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9950 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9951 jbbccisi): Define.
9952 * config/vax/vax.opt (mqmath): Add option.
9953 * config/vax/vax.md (isfx): Extend with DI.
9954 (VAXintQH, VAXintQHSD): Define.
9955 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9956 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9957 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9958 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9959 (movdi): Update constraints and use vax_output_int_move().
9960 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9961 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9962 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9963 nonlocal_goto): New.
9964 (mov<mode>): Extend accepted operand types.
9965 (subdi3_old): Rename from subdi3, change update constraints and use
9966 a new implementation.
9967 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
9968 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9969 MOVE_RATIO, CLEAR_RATIO): Define.
9970 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9971 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9972 (PRINT_OPERAND): Redefine using a function instead of inlined code.
9973 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9974 (split_quadword_operands): Make static and really allow variable
9975 splitting.
9976 (print_operand_address): Update for PIC generation.
9977 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9978 indexable_address_p, fixup_mathdi_operand,
9979 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9980 (vax_float_literal, legitimate_constant_p,
9981 indirectable_constant_address_p, index_term_p,
9982 reg_plus_index_p): Return bool instead of int.
9983 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9984 where needed.
9985 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9986 generation.
9987 (vax_output_conditional_branch): Indent.
9988 (legitimate_constant_address_p, indirectable_constant_address_p,
9989 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9990 vax_mode_dependent_address_p): Return bool instead of int, update for
9991 PIC generation.
9992 * config/vax/vax-protos.h (legitimate_constant_address_p,
9993 legitimate_constant_p, legitimate_address_p,
9994 vax_mode_dependent_address_p): Change declaration to bool.
9995 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9996 vax_expand_addsub_di_operands, vax_output_int_subtract,
9997 vax_output_movmemsi): Declare.
9998 (split_quadword_operands, vax_float_literal): Delete declaration.
9999 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10000 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10001 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10002 ASM_OUTPUT_DWARF_PCREL): Define.
10003 (ASM_SPEC): Change definition to allow PIC generation.
10004
10005 2009-04-01 Steve Ellcey <sje@cup.hp.com>
10006
10007 * doc/sourcebuild.texi: Update front-end requirements.
10008
10009 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10010
10011 PR target/39226
10012 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10013 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10014 (booldi3_internal3): Use boolean_or_operator instead of
10015 boolean_operator.
10016
10017 2009-04-01 Joseph Myers <joseph@codesourcery.com>
10018
10019 PR c/39605
10020 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10021 declarator whose size is not an integer constant expression but
10022 folds to an integer constant, then treat it as a constant
10023 subsequently.
10024
10025 2009-04-01 Richard Guenther <rguenther@suse.de>
10026
10027 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10028 i * 4 + 2 to (i * 2 + 1) * 2.
10029
10030 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10031
10032 PR c/37772
10033 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10034 return if c_parser_asm_string_literal returned NULL.
10035
10036 2009-04-01 Nick Clifton <nickc@redhat.com>
10037
10038 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10039 already defined.
10040 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10041 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10042 other typedefs to avoid conflicts with libgcc2.c. Define labels
10043 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10044 include it.
10045 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10046 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10047 then include it.
10048
10049 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
10050
10051 * varasm.c (default_function_rodata_section): Declare DOT as
10052 const char*.
10053
10054 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
10055 Andrey Galkin <agalkin@hypercom.com>
10056
10057 PR/39492
10058 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10059 Make object_name unique for each process.
10060
10061 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10062
10063 PR other/39591
10064 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10065 addressable variables in the parallel that could go out of scope while
10066 running queued tasks.
10067
10068 2009-04-01 Anatoly Sokolov <aesok@post.ru>
10069
10070 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10071 (CASE_VALUES_THRESHOLD): Redefine.
10072 * config/avr/avr.c (avr_override_options): Remove initialization of
10073 avr_case_values_threshold variable.
10074 (avr_case_values_threshold): Remove variable. Add new function.
10075 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10076 * config/avr/avr.opt (mno-tablejump): Remove option.
10077 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10078
10079 2009-04-01 DJ Delorie <dj@redhat.com>
10080
10081 * varasm.c (default_function_rodata_section): Don't assume
10082 anything about where the first '.' in the section name is.
10083
10084 2009-04-01 Alan Modra <amodra@bigpond.net.au>
10085
10086 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10087 rs6000_emit_stack_tie.
10088
10089 2009-03-31 Ian Lance Taylor <iant@google.com>
10090
10091 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10092 gimple_code with GIMPLE_RESX, not RESX.
10093
10094 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10095
10096 * c-common.c (c_get_ident): New.
10097 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
10098
10099 2009-04-01 Ben Elliston <bje@au.ibm.com>
10100
10101 * config/rs6000/sysv4.opt (msdata): Improve option description.
10102
10103 2009-03-31 Steve Ellcey <sje@cup.hp.com>
10104
10105 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10106 (divdf3_internal_lat): Remove.
10107 (divxf3_internal_lat): Remove.
10108 (divxf3_internal_thr): Remove.
10109 (divxf): Use divxf3_internal.
10110 * config/ia64/div.md (divsf3_internal_lat): New.
10111 (divdf3_internal_lat): New.
10112 (divxf3_internal): New.
10113
10114 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10115
10116 PR c/448
10117 * Makefile.in (USE_GCC_STDINT): Define.
10118 (stmp-int-hdrs): Install stdint.h if applicable.
10119 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10120 if known.
10121 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10122 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10123 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10124 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10125 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10126 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10127 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10128 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10129 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10130 (c_common_nodes_and_builtins): Initialize
10131 underlying_wchar_type_node. Do not initialize
10132 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10133 nodes for new types.
10134 (c_stddef_cpp_builtins): Define macros for new types.
10135 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10136 Remove.
10137 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10138 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10139 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10140 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10141 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10142 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10143 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10144 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10145 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10146 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10147 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10148 int16_type_node, int32_type_node, int64_type_node,
10149 uint8_type_node, uint16_type_node, c_uint32_type_node,
10150 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10151 int_least32_type_node, int_least64_type_node,
10152 uint_least8_type_node, uint_least16_type_node,
10153 uint_least32_type_node, uint_least64_type_node,
10154 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10155 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10156 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10157 uintptr_type_node): Define.
10158 * c-cppbuiltin.c (builtin_define_constants,
10159 builtin_define_type_minmax): New.
10160 (builtin_define_stdint_macros): Define more macros.
10161 (c_cpp_builtins): Define more limit macros.
10162 (type_suffix): New.
10163 (builtin_define_type_max): Define in terms of
10164 builtin_define_type_minmax. Remove is_long parameter. All
10165 callers changed.
10166 * config.gcc (use_gcc_stdint): Define.
10167 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10168 Add newlib-stdint.h for generic targets.
10169 * config/glibc-stdint.h, config/newlib-stdint.h,
10170 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10171 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10172 * config/score/score.h (UINTPTR_TYPE): Define.
10173 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10174 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10175 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10176 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10177 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10178 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10179 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10180 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10181 * config/spu/spu.h (STDINT_LONG32): Define.
10182 * configure.ac (use_gcc_stdint): Substitute.
10183 * configure: Regenerate.
10184 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10185 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10186 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10187 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10188 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10189 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10190 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10191 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10192 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10193 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10194 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10195 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10196 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10197 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10198 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10199 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10200 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10201 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10202 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10203 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10204 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10205 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10206 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10207 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10208 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10209 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10210 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10211 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10212 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10213
10214 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10215
10216 * loop-iv.c (suitable_set_for_replacement): Renamed from
10217 simplify_using_assignment; changed to return bool and to accept new
10218 args DEST and SRC. Return true iff we find a source/destination pair
10219 that can be used to make a replacement, and fill SRC and DEST if so.
10220 Remove arg ALTERED. Don't deal with altered regs here. All callers
10221 changed.
10222 (simplify_using_initial_values): Deal with altered regs here and track
10223 more precisely the effect they have on the validity of our expression.
10224
10225 * loop-iv.c (simplify_using_condition): A condition of the form
10226 (EQ REG CONST) can be used to simply make a substitution.
10227 (simplify_using_initial_values): Keep track of conditions we have seen
10228 and keep using them to simplify new expressions, while applying the
10229 same substitutions to them as to the expression.
10230
10231 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10232 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10233 GEU/LTU reversed.
10234
10235 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10236 changed. Use this when trying to improve the upper bound.
10237 Generate the comparison by using simplify_gen_relational.
10238
10239 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10240
10241 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10242 functions.
10243 (simplify_using_assignment, simplify_using_initial_values): Call
10244 replace_in_expr to make replacements. Call replace_single_def_regs
10245 once on the initial version of the expression.
10246
10247 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10248
10249 PR target/27237
10250 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
10251
10252 2009-03-31 Richard Guenther <rguenther@suse.de>
10253
10254 PR middle-end/31029
10255 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10256 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10257
10258 2009-03-31 Richard Guenther <rguenther@suse.de>
10259
10260 * tree.h (div_if_zero_remainder): Declare.
10261 * fold-const.c (div_if_zero_remainder): Export.
10262 * tree-ssa-forwprop.c
10263 (forward_propagate_addr_into_variable_array_index): Handle
10264 constant array index addition outside of the variable index.
10265
10266 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10267
10268 PR target/39592
10269 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10270 define_splits, floatunssi<mode>2): Require x87 conversions from
10271 DImode to be permitted.
10272
10273 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10274
10275 PR preprocessor/15638
10276 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10277
10278 2009-03-31 Richard Guenther <rguenther@suse.de>
10279
10280 PR middle-end/23401
10281 PR middle-end/27810
10282 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10283 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10284 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10285 a separate statement.
10286 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10287 (lookup_tmp_var): Likewise.
10288 (is_gimple_formal_tmp_or_call_rhs): Remove.
10289 (is_gimple_reg_or_call_rhs): Rename to ...
10290 (is_gimple_reg_rhs_or_call): ... this.
10291 (is_gimple_mem_or_call_rhs): Rename to ...
10292 (is_gimple_mem_rhs_or_call): ... this.
10293 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10294 DECL_GIMPLE_REG_P only if is_formal is true.
10295 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10296 for non-proper post-modify expression gimplification.
10297 (gimplify_self_mod_expr): For post-modify expressions gimplify
10298 the lvalue to a minimal lvalue.
10299 (rhs_predicate_for): Remove formal temp case.
10300 (gimplify_modify_expr_rhs): Likewise.
10301 (gimplify_addr_expr): Use is_gimple_reg.
10302 (gimplify_expr): Remove formal temp cases.
10303 (gimple_regimplify_operands): Likewise.
10304 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10305 and FILTER_EXPR like constants.
10306 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10307 is_gimple_reg.
10308 (is_gimple_formal_tmp_rhs): Remove.
10309 (is_gimple_reg_rhs): Remove special casing.
10310 (is_gimple_mem_rhs): Fix.
10311 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10312 (is_gimple_formal_tmp_var): Remove.
10313 (is_gimple_formal_tmp_reg): Likewise.
10314 (is_gimple_min_lval): Allow invariant component ref parts.
10315 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10316 is_gimple_formal_tmp_reg): Remove declarations.
10317 * tree-cfg.c (verify_expr): Verify that variables with address
10318 taken do not have DECL_GIMPLE_REG_P set.
10319 * tree-mudflap.c (mf_build_check_statement_for): Use
10320 force_gimple_operand instead of gimplify_expr.
10321
10322 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
10323
10324 * modulo-sched.c (sms_schedule_by_order): Pass the actual
10325 schedulable rows to compute_split_row.
10326
10327 2009-03-31 Ben Elliston <bje@au.ibm.com>
10328
10329 PR target/31635
10330 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10331 OPT_mvrsave.
10332
10333 2009-03-31 Alan Modra <amodra@bigpond.net.au>
10334
10335 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10336 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10337 * configure: Regenerate.
10338 * config.in: Regenerate.
10339 * config/rs6000/rs6000.opt (mtls-markers): Add.
10340 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10341 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10342 (tls_ld_aix, tls_ld_sysv): Likewise.
10343 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10344 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10345
10346 2009-03-31 Alan Modra <amodra@bigpond.net.au>
10347
10348 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10349
10350 2009-03-30 Jan Hubicka <jh@suse.cz>
10351
10352 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10353 out of RESX.
10354 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10355 detection and label handling.
10356
10357 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10358
10359 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10360 left_conflicts_size.
10361 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10362 ALLOCNO_LEFT_CONFLICTS_SIZE.
10363
10364 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10365 remove_allocno_from_bucket_and_push,
10366 allocno_spill_priority_compare, push_allocnos_to_stack,
10367 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10368 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10369 (setup_allocno_left_conflicts_num): Ditto. Rename to
10370 setup_allocno_left_conflicts_size.
10371 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10372 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10373 setup_allocno_left_conflicts_size instead of
10374 setup_allocno_left_conflicts_num.
10375
10376 * ira-build.c (ira_create_allocno): Use
10377 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10378 ALLOCNO_LEFT_CONFLICTS_NUM.
10379
10380 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10381
10382 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10383 instead of DF_LR_OUT.
10384
10385 * ira-lives.c (process_bb_node_lives): Ditto.
10386
10387 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10388 instead of DF_LR_{OUT,IN}.
10389
10390 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10391
10392 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10393
10394 2009-03-30 Jan Hubicka <jh@suse.cz>
10395
10396 * except.c (label_to_region_map): Fix thinko.
10397
10398 2009-03-30 Steve Ellcey <sje@cup.hp.com>
10399
10400 PR middle-end/38237
10401 * tree.h (tree_find_value): New declaration.
10402 * tree.c (tree_find_value): New function.
10403 * varasm.c (assemble_external): Avoid duplicate entries on lists.
10404
10405 2009-03-30 Jakub Jelinek <jakub@redhat.com>
10406
10407 PR debug/39563
10408 * c-decl.c (struct c_binding): Add locus field.
10409 (bind): Add locus argument, set locus field from it.
10410 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10411 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10412 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10413 implicitly_declare, undeclared_variable, lookup_label,
10414 declare_label, c_make_fname_decl, c_builtin_function,
10415 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10416 bind callers.
10417
10418 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
10419
10420 PR target/38781
10421 * config/i386/i386.c (classify_argument): Check total size of
10422 structure.
10423
10424 2009-03-30 Martin Jambor <mjambor@suse.cz>
10425
10426 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10427 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10428 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10429 respectively.
10430
10431 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10432 seen_variable_array_ref while also traversing a union.
10433
10434 * tree-inline.c (optimize_inline_calls): Do not call
10435 cgraph_node_remove_callees.
10436 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10437 (pass_remove_cgraph_callee_edges): New variable.
10438 * passes.c (init_optimization_passes): Add
10439 pass_remove_cgraph_callee_edges after early inlining and before all
10440 late intraprocedural passes.
10441
10442 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10443
10444 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10445
10446 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10447 Fix typos in names.
10448
10449 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10450
10451 * combine.c (simplify_comparison): Use have_insn_for.
10452 * dojump.c (do_jump): Likewise.
10453
10454 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10455
10456 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10457 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10458 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10459 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10460 instead of sparc_compare_emitted.
10461 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10462 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10463 instead of sparc_compare_emitted.
10464
10465 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10466
10467 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10468 enter/exit cfglayout mode.
10469 (pass_partition_block): Require it.
10470 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10471 (combine_instructions): Track basic blocks instead of labels.
10472 (update_cfg_for_uncondjump): New.
10473 (try_combine): Use it. Update jumps after rescanning.
10474 (pass_combine): Require PROP_cfglayout.
10475 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10476
10477 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10478
10479 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10480 Provide/destroy PROP_cfglayout respectively.
10481 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10482 * tree-pass.h (PROP_cfglayout): New.
10483
10484 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
10485
10486 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10487 fold_convert_const_fixed_from_fixed,
10488 fold_convert_const_fixed_from_int,
10489 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10490 set TREE_CONSTANT_OVERFLOW.
10491 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10492 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10493
10494 2009-03-30 Ira Rosen <irar@il.ibm.com>
10495
10496 * tree-vect-loop-manip.c: New file.
10497 * tree-vectorizer.c: Update documentation and included files.
10498 (vect_loop_location): Make extern.
10499 (rename_use_op): Move to tree-vect-loop-manip.c
10500 (rename_variables_in_bb, rename_variables_in_loop,
10501 slpeel_update_phis_for_duplicate_loop,
10502 slpeel_update_phi_nodes_for_guard1,
10503 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10504 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10505 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
10506 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
10507 find_loop_location): Likewise.
10508 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10509 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10510 get_vectype_for_scalar_type, vect_is_simple_use,
10511 supportable_widening_operation, supportable_narrowing_operation):
10512 Likewise.
10513 (bb_in_loop_p): Move to tree-vect-loop.c.
10514 (new_loop_vec_info, destroy_loop_vec_info,
10515 reduction_code_for_scalar_code, report_vect_op,
10516 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10517 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10518 (vect_supportable_dr_alignment): Likewise.
10519 * tree-vectorizer.h (tree-data-ref.h): Include.
10520 (vect_loop_location): Declare.
10521 Reorganize function declarations according to the new file structure.
10522 * tree-vect-loop.c: New file.
10523 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
10524 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10525 * tree-vect-data-refs.c: New file.
10526 * tree-vect-patterns.c (timevar.h): Don't include.
10527 * tree-vect-stmts.c: New file.
10528 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
10529 tree-vect-slp.c, tree-vect-loop.c.
10530 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10531 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
10532 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10533 (tree-vect-analyze.o): Remove.
10534 (tree-vect-transform.o): Likewise.
10535 (tree-vect-data-refs.o): Add rule.
10536 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
10537 tree-vect-slp.o): Likewise.
10538 (tree-vect-patterns.o): Remove redundant dependencies.
10539 (tree-vectorizer.o): Likewise.
10540 * tree-vect-slp.c: New file.
10541
10542 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10543
10544 * optc-gen.awk: Warn if an option flag has multiple different
10545 help strings.
10546
10547 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10548
10549 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10550 -floop-block): Document dependences on PPL, CLooG and Graphite.
10551
10552 2009-03-30 Joseph Myers <joseph@codesourcery.com>
10553
10554 PR rtl-optimization/323
10555 * c-common.c (c_fully_fold, convert_and_check,
10556 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10557 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10558 * c-common.def (EXCESS_PRECISION_EXPR): New.
10559 * c-cppbuiltin.c (builtin_define_float_constants): Define
10560 constants with enough digits for long double.
10561 * c-lex.c (interpret_float): Interpret constant with excess
10562 precision where appropriate.
10563 * c-opts.c (c_common_post_options): Set
10564 flag_excess_precision_cmdline. Give an error for
10565 -fexcess-precision=standard for C++ for processors where the
10566 option is significant.
10567 * c-parser.c (c_parser_conditional_expression): Handle excess
10568 precision in condition.
10569 * c-typeck.c (convert_arguments): Handle arguments with excess
10570 precision.
10571 (build_unary_op): Move excess precision outside operation.
10572 (build_conditional_expr): Likewise.
10573 (build_compound_expr): Likewise.
10574 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10575 (build_modify_expr): Handle excess precision in RHS.
10576 (convert_for_assignment): Handle excess precision in converted
10577 value.
10578 (digest_init, output_init_element, process_init_element): Handle
10579 excess precision in initializer.
10580 (c_finish_return): Handle excess precision in return value.
10581 (build_binary_op): Handle excess precision in operands and add
10582 excess precision as needed for operation.
10583 * common.opt (-fexcess-precision=): New option.
10584 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10585 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10586 For standard excess precision, output explicit conversion to and
10587 truncation from XFmode.
10588 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10589 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10590 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10591 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10592 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10593 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10594 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10595 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10596 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10597 define_splits, sqrt<mode>2): Disable where appropriate for
10598 standard excess precision.
10599 * convert.c (convert_to_real): Do not shorten arithmetic to type
10600 for which excess precision would be used.
10601 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10602 * doc/invoke.texi (-fexcess-precision=): Document option.
10603 (-mfpmath=): Correct index entry.
10604 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10605 flag_excess_precision): New.
10606 * langhooks.c (lhd_post_options): Set
10607 flag_excess_precision_cmdline.
10608 * opts.c (common_handle_option): Handle -fexcess-precision=.
10609 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10610 init_excess_precision): New.
10611 (lang_dependent_init_target): Call init_excess_precision.
10612 * tree.c (excess_precision_type): New.
10613 * tree.h (excess_precision_type): Declare.
10614
10615 2009-03-30 Joseph Myers <joseph@codesourcery.com>
10616
10617 PR c/35235
10618 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10619 non-lvalue to component.
10620
10621 2009-03-29 Joseph Myers <joseph@codesourcery.com>
10622
10623 PR preprocessor/34695
10624 * Makefile.in (c-opts.o): Depend on c-tree.h.
10625 * c-common.c: Move down include of diagnostic.h.
10626 (done_lexing, c_cpp_error): New.
10627 * c-common.h (done_lexing): Declare.
10628 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10629 (parse_in).
10630 * c-opts.c: Include c-tree.h.
10631 (c_common_init_options): Set preprocessor error callback.
10632 (c_common_handle_option): Do not set preprocessor
10633 inhibit_warnings, warnings_are_errors, warn_system_headers,
10634 pedantic_errors or inhibit_warnings flags.
10635 (c_common_post_options): Do not check cpp_errors (parse_in).
10636 (c_common_finish): Do not output dependencies if there were
10637 errors. Do not check return value of cpp_finish.
10638 * c-ppoutput.c (pp_file_change): Set input_location.
10639 * c-tree.h (c_cpp_error): Declare.
10640 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10641 override_column.
10642 (diagnostic_build_prefix): Check override_column.
10643 * diagnostic.h (diagnostic_info): Add override_column field.
10644 (diagnostic_override_column): Define.
10645
10646 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
10647
10648 * c-common.c (c_expand_expr, c_staticp): Remove.
10649 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10650 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10651 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10652 * c-gimplify.c (gimplify_compound_literal_expr,
10653 optimize_compound_literals_in_ctor): Remove.
10654 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10655 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10656 * c-semantics.c (emit_local_var): Remove.
10657
10658 * langhooks-def.h (lhd_expand_expr): Remove.
10659 * langhooks.c (lhd_expand_expr): Remove.
10660 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10661
10662 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10663 handling from c-semantics.c; don't call into langhook.
10664 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10665 * gimplify.c (gimplify_compound_literal_expr,
10666 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10667 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10668 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10669 as was done in c-gimplify.c.
10670 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10671 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10672 Move from c-common.h.
10673 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
10674
10675 * tree.c (staticp): Do not call langhook.
10676 * langhooks.c (lhd_staticp): Delete.
10677 * langhooks-def.h (lhd_staticp): Delete prototype.
10678 (LANG_HOOKS_STATICP): Delete.
10679 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10680
10681 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10682 instead of DECL_STMTs.
10683
10684 2009-03-29 Joseph Myers <joseph@codesourcery.com>
10685
10686 PR c/456
10687 PR c/5675
10688 PR c/19976
10689 PR c/29116
10690 PR c/31871
10691 PR c/35198
10692 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10693 void_type_node.
10694 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10695 contained expression.
10696 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
10697 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10698 conditional expressions for C.
10699 (decl_constant_value_for_optimization): Move from
10700 decl_constant_value_for_broken_optimization in c-typeck.c. Check
10701 whether optimizing and that the expression is a VAR_DECL not of
10702 array type instead of doing such checks in the caller. Do not
10703 check pedantic. Call gcc_unreachable for C++.
10704 * c-common.def (C_MAYBE_CONST_EXPR): New.
10705 * c-common.h (c_fully_fold, c_save_expr,
10706 decl_constant_value_for_optimization): New prototypes.
10707 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10708 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10709 EXPR_INT_CONST_OPERANDS): Define.
10710 * c-convert.c (convert): Strip nops from expression.
10711 * c-decl.c (groktypename): Take extra parameters expr and
10712 expr_const_operands. Update call to grokdeclarator.
10713 (start_decl): Update call to grokdeclarator. Add statement for
10714 expressions used in type of decl.
10715 (grokparm): Update call to grokdeclarator.
10716 (push_parm_decl): Update call to grokdeclarator.
10717 (build_compound_literal): Add parameter non_const and build a
10718 C_MAYBE_COSNT_EXPR if applicable.
10719 (grokdeclarator): Take extra parameters expr and
10720 expr_const_operands. Track expressions used in declaration
10721 specifiers and declarators. Fold array sizes and track whether
10722 they are constant expressions and whether they are integer
10723 constant expressions.
10724 (parser_xref_tag): Set expr and expr_const_operands fields in
10725 return value.
10726 (grokfield): Update call to grokdeclarator.
10727 (start_function): Update call to grokdeclarator.
10728 (build_null_declspecs): Set expr and expr_const_operands fields in
10729 return value.
10730 (declspecs_add_type): Handle expressions in typeof specifiers.
10731 * c-parser.c (c_parser_declspecs): Set expr and
10732 expr_const_operands fields for declaration specifiers.
10733 (c_parser_enum_specifier): Likewise.
10734 (c_parser_struct_or_union_specifier): Likewise.
10735 (c_parser_typeof_specifier): Likewise. Update call to
10736 groktypename. Fold expression as needed. Return expressions with
10737 type instead of adding statements.
10738 (c_parser_attributes): Update calls to c_parser_expr_list.
10739 (c_parser_statement_after_labels): Fold expression before passing
10740 to objc_build_throw_stmt.
10741 (c_parser_condition): Fold expression.
10742 (c_parser_asm_operands): Fold expression.
10743 (c_parser_conditional_expression): Use c_save_expr. Update call
10744 to build_conditional_expr.
10745 (c_parser_alignof_expression): Update call to groktypename.
10746 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10747 original_code. Fold expression argument of va_arg. Create
10748 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10749 argument to va_arg. Update calls to groktypename. Fold array
10750 index for offsetof. Verify that first argument to
10751 __builtin_choose_expr has integer type.
10752 (c_parser_postfix_expression_after_paren_type): Update calls to
10753 groktypename and build_compound_literal. Handle expressions with
10754 side effects in type name.
10755 (c_parser_postfix_expression_after_primary): Update call to
10756 c_parser_expr_list. Set original_code for calls to
10757 __builtin_constant_p.
10758 (c_parser_expr_list): Take extra parameter fold_p. Fold
10759 expressions if requested.
10760 (c_parser_objc_type_name): Update call to groktypename.
10761 (c_parser_objc_synchronized_statement): Fold expression.
10762 (c_parser_objc_receiver): Fold expression.
10763 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10764 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10765 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10766 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10767 (struct c_typespec): Add elements expr and expr_const_operands.
10768 (struct c_declspecs): Add elements expr and expr_const_operands.
10769 (groktypename, build_conditional_expr, build_compound_literal):
10770 Update prototypes.
10771 (in_late_binary_op): Declare.
10772 * c-typeck.c (note_integer_operands): New function.
10773 (in_late_binary_op): New variable.
10774 (decl_constant_value_for_broken_optimization): Move to c-common.c
10775 and rename to decl_constant_value_for_optimization.
10776 (default_function_array_conversion): Do not strip nops.
10777 (default_conversion): Do not call
10778 decl_constant_value_for_broken_optimization.
10779 (build_array_ref): Do not fold result.
10780 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10781 result when operand is a VLA.
10782 (c_expr_sizeof_type): Update call to groktypename. Handle
10783 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10784 result when operand names a VLA type.
10785 (build_function_call): Update call to build_compound_literal.
10786 Only fold result for calls to __builtin_* functions. Strip
10787 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10788 the function designator.
10789 (convert_arguments): Fold arguments. Update call to
10790 convert_for_assignment.
10791 (build_unary_op): Handle increment and decrement of
10792 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10793 decrement earlier. Fold operand of increment and decrement.
10794 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10795 built for integer operand. Wrap returns that are INTEGER_CSTs
10796 without being integer constant expressions or that have integer
10797 constant operands without being INTEGER_CSTs.
10798 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10799 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10800 result is an integer constant expression or can be used in
10801 unevaluated parts of one and avoid folding and wrap as
10802 appropriate. Fold operands before possibly doing -Wsign-compare
10803 warnings.
10804 (build_compound_expr): Wrap result for C99 if operands can be used
10805 in integer constant expressions.
10806 (build_c_cast): Update call to digest_init. Do not ignore
10807 overflow from casting floating-point constants to integers. Wrap
10808 results that could be confused with integer constant expressions,
10809 null pointer constants or floating-point constants.
10810 (c_cast_expr): Update call to groktypename. Handle expressions
10811 included in type name.
10812 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10813 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10814 Update calls to convert_for_assignment.
10815 (convert_for_assignment): Take new parameter
10816 null_pointer_constant. Do not strip nops or call
10817 decl_constant_value_for_broken_optimization. Set
10818 in_late_binary_op for conversions to boolean.
10819 (store_init_value): Update call to digest_init.
10820 (digest_init): Take new parameter null_pointer_constant. Do not
10821 call decl_constant_value_for_broken_optimization. pedwarn for
10822 initializers not constant expressions. Update calls to
10823 convert_for_assignment.
10824 (constructor_nonconst): New.
10825 (struct constructor_stack): Add nonconst element.
10826 (really_start_incremental_init, push_init_level, pop_init_level):
10827 Handle constructor_nonconst and nonconst element.
10828 (set_init_index): Call constant_expression_warning for array
10829 designators.
10830 (output_init_element): Fold value. Set constructor_nonconst as
10831 applicable. pedwarn for initializers not constant expressions.
10832 Update call to digest_init. Call constant_expression_warning
10833 where constant initializers are required.
10834 (process_init_element): Use c_save_expr.
10835 (c_finish_goto_ptr): Fold expression.
10836 (c_finish_return): Fold return value. Update call to
10837 convert_for_assignment.
10838 (c_start_case): Fold switch expression.
10839 (c_process_expr_stmt): Fold expression.
10840 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
10841 ensure statement expression is not evaluated in constant expression.
10842 (build_binary_op): Track whether results are integer constant
10843 expressions or may occur in such, disable folding and wrap results
10844 as applicable. Fold operands for -Wsign-compare warnings unless
10845 in_late_binary_op.
10846 (c_objc_common_truthvalue_conversion): Handle results folded to
10847 integer constants that are not integer constant expressions.
10848 * doc/extend.texi: Document when typeof operands are evaluated,
10849 that condition of __builtin_choose_expr is an integer constant
10850 expression, and more about use of __builtin_constant_p in
10851 initializers.
10852
10853 2009-03-29 Richard Guenther <rguenther@suse.de>
10854
10855 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10856 propagate addresses of array references.
10857
10858 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10859
10860 * regmove.c (perhaps_ends_bb_p): Remove.
10861 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10862 from INSN and check that the main loop stays within that basic block.
10863 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10864 (regmove_forward_pass): Split out from regmove_optimize. Use
10865 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10866 (regmove_backward_pass): Split out from regmove_optimize. Use
10867 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10868 (regmove_optimize): Simplify.
10869
10870 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10871
10872 PR target/39545
10873 * config/i386/i386.c (classify_argument): Ignore flexible array
10874 member in struct and warn ABI change.
10875
10876 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10877
10878 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10879
10880 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10881 (ix86_adjust_cost): Updated.
10882
10883 2009-03-29 Jan Hubicka <jh@suse.cz>
10884
10885 PR middle-end/28850
10886 * tree-pass.h (pass_cleanup_eh): New function.
10887 (remove_unreachable_regions): Break code handling RTL
10888 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10889 that can not be reached by runtime.
10890 (can_be_reached_by_runtime): New function.
10891 (label_to_region_map): New function.
10892 (num_eh_regions): New function.
10893 (rtl_remove_unreachable_regions): New function.
10894 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10895 (remove_eh_region): New function.
10896 * except.h: Include sbitmap and vecprim.
10897 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10898 num_eh_regions): Declare.
10899 * passes.c (init_optimization_passes): Schedule cleanup_eh.
10900 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
10901 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10902 (tree_empty_eh_handler_p): New function.
10903 (cleanup_empty_eh): New function.
10904 (cleanup_eh): New function.
10905 (pass_cleanup_eh): New function.
10906
10907 2009-03-29 Jan Hubicka <jh@suse.cz>
10908
10909 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10910 for removed regions.
10911
10912 2009-03-29 Jan Hubicka <jh@suse.cz>
10913
10914 * except.c (dump_eh_tree): Dump all datastructures.
10915
10916 2009-03-29 Jan Hubicka <jh@suse.cz>
10917
10918 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10919 (duplicate_eh_regions_1): Likewise.
10920 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10921 vector; call EH verification.
10922 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10923 Be ready for region being removed.
10924
10925 2009-03-29 Jan Hubicka <jh@suse.cz>
10926
10927 * bitmap.c (bitmap_last_set_bit): New function.
10928 * bitmap.h (bitmap_last_set_bit): Declare.
10929
10930 2009-03-29 David Ayers <ayers@fsfe.org>
10931
10932 PR objc/27377
10933 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10934 by calling objc_compare_types and surpress warnings about
10935 incompatible C pointers that are compatible ObjC pointers.
10936
10937 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
10938
10939 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10940 call initialize_inline_failed.
10941 (initialize_inline_failed): Move it from here ...
10942 * cgraph.c (initialize_inline_failed): ... to here.
10943 (cgraph_create_edge): Call initialize_inline_failed rather than
10944 setting inline_failed directly.
10945
10946 2009-03-29 Ben Elliston <bje@au.ibm.com>
10947
10948 PR target/32542
10949 * sysv4.opt (msdata): Improve comment.
10950 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10951 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10952
10953 2009-03-29 Ben Elliston <bje@au.ibm.com>
10954
10955 PR target/30451
10956 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10957 load and store attributes.
10958
10959 2009-03-29 Ben Elliston <bje@au.ibm.com>
10960
10961 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10962 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10963 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10964 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10965 __builtin_infq and __builtin_huge_valq.
10966
10967 2009-03-28 Anatoly Sokolov <aesok@post.ru>
10968
10969 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10970 atmega8m1 devices.
10971 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10972 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10973
10974 2009-03-28 Xinliang David Li <davidxl@google.com>
10975
10976 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
10977 (do_dbg_cnt): New function.
10978
10979 2009-03-28 Jan Hubicka <jh@suse.cz>
10980
10981 Merge from pretty-ipa:
10982
10983 2009-03-27 Jan Hubicka <jh@suse.cz>
10984
10985 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10986 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10987 * passes.c (function_called_by_processed_nodes_p): New.
10988 * ipa-pure-const.c (check_call): Fix handling of operands.
10989 (analyze_function): Dump debug output for skipped bodies.
10990 (local_pure_const): Use function_called_by_processed_nodes_p.
10991 * dwarf2out.c (reference_to_unused): Use output.
10992 * passes.c (do_per_function_toporder): Likewise.
10993
10994 2008-11-12 Jan Hubicka <jh@suse.cz>
10995
10996 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10997 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10998 state_set_in_source enum
10999 (check_decl): Ignore memory tags; do not set fake looping flags;
11000 dump diagnostics.
11001 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11002 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11003 (check_call, analyze_function): Rewrite.
11004 (check_stmt): New.
11005 (add_new_function): Update call of analyze_function.
11006 (generate_summary): Add call of analyze_function.
11007 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11008 (local_pure_const): New function.
11009 (pass_local_pure_const): New pass.
11010 * ipa-inline.c (inline_transform): Set after_inlining.
11011 * tree-eh.c (stmt_can_throw_external): New.
11012 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11013 work with aliasing built.
11014 * tree-flow.h (stmt_can_throw_external): New.
11015 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11016 and local pure/const pass in early and late optimization queue.
11017
11018 2009-03-28 Martin Jambor <mjambor@suse.cz>
11019
11020 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11021 allow_func_align.
11022 (fold_binary): Allow function decl aligment consideration is the
11023 second argument is integer constant one.
11024 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11025 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11026 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11027
11028 2009-03-28 Jan Hubicka <jh@suse.cz>
11029
11030 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11031 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11032 * function.h (rtl_data): Add nothrow flag.
11033 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11034 set DECL_NOTHROW for AVAILABLE functions.
11035
11036 2009-03-28 Jakub Jelinek <jakub@redhat.com>
11037
11038 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11039 following vector keyword has expansion starting with pixel or bool
11040 keyword, expand vector to __vector and pixel or bool to __pixel or
11041 __bool.
11042
11043 PR c++/39554
11044 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11045 warn_if_disallowed_function_p): Removed.
11046 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11047 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11048 warning_if_disallowed_function_p.
11049 * flags.h (warn_if_disallowed_function_p,
11050 warn_disallowed_functions): Removed.
11051 * common.opt (Wdisallowed-function-list=): Removed.
11052 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11053
11054 2009-03-28 Richard Guenther <rguenther@suse.de>
11055
11056 PR tree-optimization/38723
11057 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11058 the entry block.
11059
11060 2009-03-28 Jan Hubicka <jh@suse.cz>
11061
11062 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11063 test introduced by my previous patch.
11064
11065 2009-03-28 Richard Guenther <rguenther@suse.de>
11066
11067 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11068 the PHIs value undefined.
11069
11070 2009-03-28 Jan Hubicka <jh@suse.cz>
11071
11072 * tree-pass.h (pass_fixup_cfg): New pass.
11073 * ipa-inline.c (inline_transform): Set
11074 always_inline_functions_inlined/after_inlining.
11075 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11076 (pass_fixup_cfg): New pass.
11077 * passes.c (init_optimization_passes): Add fixup_cfg.
11078
11079 2009-03-28 Richard Guenther <rguenther@suse.de>
11080
11081 PR tree-optimization/38458
11082 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11083 argument use the arguments copy-of value.
11084
11085 2009-03-28 Richard Guenther <rguenther@suse.de>
11086
11087 PR tree-optimization/38180
11088 * tree-ssa-ccp.c (get_default_value): Simplify.
11089 (likely_value): Likewise.
11090 (surely_varying_stmt_p): Properly handle VOP case.
11091 (ccp_initialize): Likewise.
11092 (ccp_fold): Handle propagating through *&.
11093 (fold_const_aggregate_ref): Also handle decls.
11094
11095 2009-03-28 Jan Hubicka <jh@suse.cz>
11096
11097 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11098 * cgraph.h (cgraph_node): Likewise.
11099 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11100 (cgraph_reset_node): Use process flag.
11101 (cgraph_mark_functions_to_output): Likewise.
11102 (cgraph_expand_function): Likewise.
11103 (cgraph_expand_all_functions): Likewise.
11104 (cgraph_output_in_order): Likewise.
11105 * dwarf2out.c (reference_to_unused): Likewise.
11106 * passes.c do_per_function_toporder): Likewise.
11107
11108 2009-03-28 Jan Hubicka <jh@suse.cz>
11109
11110 Bring from lto-branch:
11111
11112 2008-09-03 Doug Kwan <dougkwan@google.com>
11113
11114 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11115 enums instead of reason strings.
11116 * cgraph.c (cgraph_create_edge): Same.
11117 (cgraph_inline_failed_string): New function.
11118 * cgraph.h (cgraph_inline_failed_t): New enum type.
11119 (cgraph_inline_failed_string): New prototype.
11120 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11121 char pointer to cgraph_inline_failed_t.
11122 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11123 (cgraph_default_inline_p): Ditto.
11124 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
11125 to cgraph_inline_failed_t pointer.
11126 * cif-code.def: New file.
11127 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11128 reason string.
11129 (cgraph_check_inline_limits): Change type of REASON to pointer to
11130 cgraph_inline_failed_t. Replace reason strings with enums.
11131 (cgraph_default_inline_p): Ditto.
11132 (cgraph_recursive_inlining_p): Ditto.
11133 (update_caller_keys): Change type of FAILED_REASON to
11134 cgraph_inline_failed_t.
11135 (cgraph_set_inline_failed): Change type of REASON to pointer to
11136 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11137 convert enums to strings for text output.
11138 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11139 to be of type cgraph_inline_failed_t. Replace reason strings with
11140 enums. Call cgraph_inline_failed_string to covert enums
11141 to strings for text output.
11142 (cgraph_decide_inlining): Replace reason strings with enums.
11143 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11144 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11145 for text output.
11146 * tree-inline.c (expand_call_inline): Change type of REASON
11147 to cgraph_inline_failed_t. Replace reason strings with enums.
11148 Call cgraph_inline_failed_string for text output.
11149 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11150 (cgraph.o): Ditto.
11151
11152 2009-03-28 Jan Hubicka <jh@suse.cz>
11153
11154 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11155 cgraph_clone_node): Remove master clone handling.
11156 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11157 * cgraph.h (master_clone): Remove.
11158 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11159 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11160 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11161
11162 2009-03-28 Jan Hubicka <jh@suse.cz>
11163
11164 * cgraph.c (cgraph_function_body_availability): Functions declared
11165 inline are always safe to assume that it is not going to be replaced.
11166
11167 2009-03-28 Richard Guenther <rguenther@suse.de>
11168
11169 PR tree-optimization/38513
11170 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11171 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11172 EXC_PTR_EXPR and FILTER_EXPR.
11173 (get_ref_from_reference_ops): Likewise.
11174
11175 2009-03-28 Richard Guenther <rguenther@suse.de>
11176
11177 PR tree-optimization/38968
11178 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11179 Use FLOOR_MOD_EXPR to compute misalignment.
11180
11181 2009-03-28 Richard Guenther <rguenther@suse.de>
11182
11183 PR tree-optimization/37795
11184 * tree.h (combine_comparisons): Declare.
11185 * fold-const.c (combine_comparisons): Export.
11186 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11187 comparisons.
11188 (ifcombine_iforif): Use combine_comparisons.
11189
11190 2009-03-28 Jan Hubicka <jh@suse.cz>
11191
11192 * tree-eh.c (inlinable_call_p): New function.
11193 (make_eh_edges): Use it.
11194 (verify_eh_edges): Use it.
11195 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11196 * except.c (reachable_next_level): Add inlinable_function argument
11197 (sjlj_find_directly_reachable_regions): Update.
11198 (add_reachable_handler): Do not set saw_any_handlers.
11199 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11200 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11201 Add new inlinable call parameter.
11202 (can_throw_internal, can_throw_external): Update.
11203 * except.h (can_throw_internal_1, can_throw_external_1,
11204 foreach_reachable_handler): Update declaration.
11205
11206 2009-03-28 Joseph Myers <joseph@codesourcery.com>
11207
11208 * config/arm/t-arm-coff, config/h8300/coff.h,
11209 config/i386/i386-aout.h, config/i386/i386-coff.h,
11210 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11211 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11212 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11213 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11214 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11215 sys-types.h: Remove.
11216 * Makefile.in: Remove protoize and fixproto support and references
11217 in comments.
11218 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11219 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11220 Remove.
11221 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11222 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11223 unprotoize$(exeext).
11224 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11225 (.PHONY): Don't depend on proto.
11226 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11227 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11228 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11229 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11230 build/gen-protos.o, build/scan.o, xsys-protos.h,
11231 build/fix-header$(build_exeext), build/fix-header.o,
11232 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11233 stmp-install-fixproto): Remove.
11234 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11235 SYSCALLS.c or fixproto files.
11236 (install-common): Don't install protoize.
11237 (install-headers-tar, install-headers-cpio, install-headers-cp):
11238 Don't depend on $(STMP_FIXPROTO).
11239 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11240 install fixproto files or write out fixproto settings.
11241 (uninstall): Don't uninstall protoize.
11242 * config.gcc (use_fixproto): Remove.
11243 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11244 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11245 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11246 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11247 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11248 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11249 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11250 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11251 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11252 * config/t-vxworks (STMP_FIXPROTO): Remove.
11253 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11254 STMP_FIXPROTO): Remove.
11255 * config.in, configure: Regenerate.
11256 * crtstuff.c (gid_t, uid_t): Don't undefine.
11257 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11258 (arm-*-coff, arm-*-aout: Remove target entries.
11259 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11260 Remove mention of AIX 4.1.
11261 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11262 * doc/invoke.texi (Running Protoize): Remove.
11263 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11264 (Protoize Caveats): Remove.
11265 * tsystem.h: Update comments on headers assumed to exist.
11266
11267 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11268
11269 * genautomata.c: Add a new year to the copyright. Add a new
11270 reference.
11271 (struct insn_reserv_decl): Add comments for member bypass_list.
11272 (find_bypass): Remove.
11273 (insert_bypass): New.
11274 (process_decls): Use insert_bypass.
11275 (output_internal_insn_latency_func): Output all bypasses with the
11276 same input insn in one switch case.
11277
11278 * rtl.def (define_bypass): Describe bypass choice.
11279 * doc/md.texi (define_bypass): Ditto.
11280
11281 2009-03-27 Richard Guenther <rguenther@suse.de>
11282
11283 * gimplify.c (mark_addressable): Export.
11284 * tree-flow.h (mark_addressable): Declare.
11285 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11286 * tree-ssa.c (verify_phi_args): Verify that address taken
11287 variables have TREE_ADDRESSABLE set.
11288
11289 2009-03-27 Richard Guenther <rguenther@suse.de>
11290
11291 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11292 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11293 Do not mark decls TREE_ADDRESSABLE.
11294 (build_fold_addr_expr): Adjust.
11295 (fold_addr_expr): Remove.
11296 (fold_unary): Use build_fold_addr_expr.
11297 (fold_comparison): Likewise.
11298 (split_address_to_core_and_offset): Likewise.
11299 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11300 TREE_ADDRESSABLE.
11301 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11302 (gimplify_modify_expr_to_memcpy): Mark source and destination
11303 addressable.
11304 * omp-low.c (create_omp_child_function): Mark the object decl
11305 TREE_ADDRESSABLE.
11306 (lower_rec_input_clauses): Mark the var we take the address of
11307 TREE_ADDRESSABLE.
11308 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11309
11310 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11311
11312 PR middle-end/39315
11313 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11314 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11315
11316 2009-03-27 Richard Guenther <rguenther@suse.de>
11317
11318 PR tree-optimization/39120
11319 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11320 constraints.
11321 (handle_lhs_call): Process return constraints. Add escape
11322 constraints if necessary.
11323 (handle_const_call): Fill out return constraints. Make nested
11324 case more precise. Avoid consttmp if possible.
11325 (handle_pure_call): Fill out return constraints. Avoid
11326 callused if possible.
11327 (find_func_aliases): Simplify call handling.
11328
11329 2009-03-27 Richard Guenther <rguenther@suse.de>
11330
11331 PR tree-optimization/39120
11332 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11333 as a representative.
11334 (solve_graph): Do propagate CALLUSED.
11335 (handle_pure_call): Use a scalar constraint from CALLUSED for
11336 the return value.
11337 (find_what_p_points_to): CALLUSED shall not appear in poins-to
11338 solutions.
11339
11340 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11341
11342 PR c/39323
11343 * c-common.c (handle_aligned_attribute): Properly check alignment
11344 overflow. Use (1U << i) instead of (1 << i).
11345
11346 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
11347
11348 * expr.h (get_mem_align_offset): Updated.
11349
11350 * tree.h (tree_decl_common): Change align to "unsigned int" and
11351 move it before pointer_alias_set.
11352
11353 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11354 Jakub Jelinek <jakub@redhat.com>
11355
11356 PR target/38034
11357 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11358 gr_register_operand with gr_reg_or_0_operand.
11359 (cmpxchg_rel_di): Likewise.
11360 (sync_lock_test_and_set<mode>): Likewise.
11361
11362 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11363
11364 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11365 (true_regnum): Likewise.
11366
11367 * rtlanal.c (subreg_info): Moved to ...
11368 * rtl.h (subreg_info): Here. New.
11369 (subreg_get_info): New.
11370
11371 * rtlanal.c (subreg_get_info): Make it extern.
11372
11373 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11374
11375 PR target/39472
11376 * config/i386/i386.c (ix86_abi): New.
11377 (override_options): Handle -mabi=.
11378 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
11379 (ix86_call_abi_override): Likewise.
11380 (init_cumulative_args): Likewise.
11381 (function_arg_advance): Likewise.
11382 (function_arg_64): Likewise.
11383 (function_arg): Likewise.
11384 (ix86_pass_by_reference): Likewise.
11385 (ix86_function_value_regno_p): Likewise.
11386 (ix86_build_builtin_va_list_abi): Likewise.
11387 (setup_incoming_varargs_64): Likewise.
11388 (is_va_list_char_pointer): Likewise.
11389 (ix86_init_machine_status): Likewise.
11390 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
11391 (ix86_function_type_abi): Return enum calling_abi. Rewrite
11392 for 64bit. Replace DEFAULT_ABI with ix86_abi.
11393 (ix86_function_abi): Make it static and return enum calling_abi.
11394 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
11395 with ix86_abi.
11396 (ix86_fn_abi_va_list): Updated.
11397
11398 * config/i386/i386.h (ix86_abi): New.
11399 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11400 (CONDITIONAL_REGISTER_USAGE): Likewise.
11401 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11402 (machine_function): Likewise.
11403
11404 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11405 with ix86_abi.
11406 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11407 (STACK_BOUNDARY): Likewise.
11408 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11409
11410 * config/i386/i386.opt (mabi=): New.
11411
11412 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11413 return enum calling_abi.
11414 (ix86_function_type_abi): Likewise.
11415 (ix86_function_abi): Removed.
11416
11417 * doc/invoke.texi: Document -mabi= option for x86.
11418
11419 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11420
11421 * builtins.c (real_dconstp): Delete.
11422 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11423
11424 2009-03-27 Dodji Seketeli <dodji@redhat.com>
11425 Jakub Jelinek <jakub@redhat.com>
11426
11427 PR debug/37959
11428 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11429 (gen_subprogram_die): When a function is explicit, generate the
11430 DW_AT_explicit attribute.
11431 * langhooks.h (struct lang_hooks_for_decls): Add
11432 function_decl_explicit_p langhook.
11433 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11434 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11435
11436 2009-03-27 Jakub Jelinek <jakub@redhat.com>
11437
11438 * builtins.c (fold_builtin_memory_op): Optimize memmove
11439 into memcpy if we can prove source and destination don't overlap.
11440
11441 * tree-inline.c: Include gt-tree-inline.h.
11442 (clone_fn_id_num): New variable.
11443 (clone_function_name): New function.
11444 (tree_function_versioning): Use it.
11445 * Makefile.in (GTFILES): Add tree-inline.c.
11446
11447 2009-03-27 Mark Mitchell <mark@codesourcery.com>
11448
11449 * BASE-VER: Change to 4.5.0.
11450
11451 2009-03-27 Xinliang David Li <davidxl@google.com>
11452
11453 PR tree-optimization/39557
11454 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11455
11456 2009-03-27 Xinliang David Li <davidxl@google.com>
11457
11458 PR tree-optimization/39548
11459 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
11460 candidate check.
11461
11462 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11463
11464 * c-common.c (pointer_int_sum): Use %wd on return from
11465 tree_low_cst.
11466
11467 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11468
11469 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11470 on return from tree_low_cst.
11471
11472 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11473
11474 PR c++/36799
11475 * ginclude/stdarg.h (va_copy): Define also for
11476 __GXX_EXPERIMENTAL_CXX0X__.
11477
11478 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11479
11480 PR c++/35652
11481 * builtins.h (c_strlen): Do not warn here.
11482 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11483 * c-common.c (pointer_int_sum): Take an explicit location.
11484 Warn about offsets out of bounds.
11485 * c-common.h (pointer_int_sum): Adjust declaration.
11486
11487 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11488
11489 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11490 markup glitch.
11491
11492 2009-03-26 Jakub Jelinek <jakub@redhat.com>
11493
11494 PR c++/39554
11495 * opts.c (warn_if_disallowed_function_p): Don't assume
11496 get_callee_fndecl must return non-NULL.
11497
11498 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11499
11500 PR rtl-optimization/39522
11501 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11502 when reg_reloaded_valid is set.
11503
11504 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11505
11506 * config/spu/divv2df3.c: New file.
11507 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11508 (DPBIT_FUNCS): Filter out _div_df.
11509
11510 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11511
11512 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11513 a jump insn, count that jump in the distance to the loop start.
11514
11515 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11516
11517 PR target/39523
11518 * config/sh/sh.c (calc_live_regs): Fix condition for global
11519 registers except PIC_OFFSET_TABLE_REGNUM.
11520
11521 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
11522
11523 PR/39518
11524 * doc/invoke.texi (-mconsole): New.
11525 (-mcygwin): New.
11526 (-mno-cygwin): New.
11527 (-mdll): New.
11528 (-mnop-fun-dllimport): New.
11529 (-mthread): New.
11530 (-mwin32): New.
11531 (-mwindows): New.
11532 (sub section "i386 and x86-64 Windows Options"): New.
11533
11534 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
11535
11536 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11537 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11538
11539 2009-03-25 Richard Guenther <rguenther@suse.de>
11540
11541 PR middle-end/39497
11542 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11543 of -Wno-error.
11544
11545 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
11546
11547 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11548 neither of haifa/selective schedulers are working.
11549
11550 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11551
11552 * doc/invoke.texi (Debugging Options): Fix description of
11553 -fno-merge-debug-strings.
11554
11555 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
11556
11557 * config/cris/libgcc.ver: New version-script.
11558 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11559
11560 * configure.ac <GAS features, nop mnemonic>: Add pattern
11561 crisv32-*-* for "nop".
11562 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
11563 * configure: Regenerate.
11564
11565 2009-03-24 Ira Rosen <irar@il.ibm.com>
11566
11567 PR tree-optimization/39529
11568 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11569 mark_sym_for_renaming for the tag copied to the new vector
11570 pointer.
11571
11572 2009-03-24 Arthur Loiret <aloiret@debian.org>
11573
11574 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
11575 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11576 EXTRA_SPEC_FUNCTIONS.
11577 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11578 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11579 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11580 -march and -mtune options.
11581
11582 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
11583
11584 * config/m68k/t-rtems: Add m5329 multilib.
11585
11586 2009-03-24 Dodji Seketeli <dodji@redhat.com>
11587 Jakub Jelinek <jakub@redhat.com>
11588
11589 PR debug/39524
11590 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11591 nodes.
11592
11593 2009-03-23 Jakub Jelinek <jakub@redhat.com>
11594
11595 PR c/39495
11596 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11597 instead of c_parser_expression_conv, if original_code isn't one of the
11598 4 allowed comparison codes, fail.
11599
11600 2009-03-23 Richard Guenther <rguenther@suse.de>
11601
11602 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11603 * tree.h (struct tree_type): Likewise.
11604 * reload.h (struct insn_chain): Likewise.
11605 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11606 * function.h (struct function): Likewise.
11607 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11608
11609 2009-03-23 Jakub Jelinek <jakub@redhat.com>
11610
11611 PR tree-optimization/39516
11612 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11613
11614 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
11615
11616 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
11617 should be set true if BITS_PER_WORD of target is bigger than 32
11618
11619 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
11620
11621 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11622 Translate -B-options to -rpath-link. Correct existing
11623 rpath-link and conditionalize on !nostdlib.
11624
11625 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11626
11627 * doc/extend.texi (Function Attributes, Variable Attributes):
11628 Fix typos.
11629 * doc/invoke.texi (Debugging Options, Optimize Options)
11630 (i386 and x86-64 Options, MCore Options): Likewise.
11631
11632 2009-03-20 Jakub Jelinek <jakub@redhat.com>
11633
11634 PR debug/37890
11635 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11636 it for block local namespace aliases.
11637 (gen_decl_die): Pass context_die to gen_namespace_die.
11638
11639 2009-03-19 Jakub Jelinek <jakub@redhat.com>
11640
11641 PR c/39495
11642 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11643 minimum or maximum value.
11644
11645 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
11646
11647 * reginfo.c (globalize_reg): Recompute derived reg sets.
11648
11649 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
11650
11651 PR target/39063
11652 * libgcc2.c (mprotect): Do not use signed arguments for
11653 VirtualProtect, use DWORD arguments. Also fix the 'may
11654 be used uninitialized' warning for the np variable.
11655
11656 2009-03-19 Jakub Jelinek <jakub@redhat.com>
11657
11658 PR target/39496
11659 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11660 functions using regparm calling conventions when not optimizing.
11661 (ix86_function_sseregparm): Similarly for sseregparm calling
11662 conventions.
11663
11664 2009-03-19 Li Feng <nemokingdom@gmail.com>
11665
11666 PR middle-end/39500
11667 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11668 dependence if the first conflict is after niter iterations.
11669
11670 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
11671
11672 PR middle-end/38609
11673 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11674 functions with dynamic stack-pointer adjustments.
11675
11676 2009-03-19 Ben Elliston <bje@au.ibm.com>
11677
11678 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11679 option; change to -msdata=data.
11680
11681 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11682
11683 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11684 and -fopenmp.
11685
11686 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11687
11688 PR target/35180
11689 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11690
11691 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11692
11693 * doc/invoke.texi (Code Gen Options): Expand discussion of
11694 -fno-common.
11695
11696 2009-03-18 Jakub Jelinek <jakub@redhat.com>
11697
11698 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11699 * matrix-reorg.c (struct matrix_info): Likewise.
11700 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11701 * rtl.h (struct mem_attrs): Likewise.
11702 * df.h (struct df): Likewise.
11703 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11704 * ira-int.h (struct ira_allocno): Likewise.
11705 * df-scan.c (struct df_collection_rec): Likewise.
11706 * ira.c (struct equivalence): Likewise.
11707 * function.c (struct temp_slot): Likewise.
11708 * cfgloop.h (struct loop): Likewise.
11709
11710 PR debug/39485
11711 * function.c (use_register_for_decl): When not optimizing, disregard
11712 register keyword for variables with types containing methods.
11713
11714 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11715
11716 PR middle-end/39447
11717 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11718 (is_simple_operand): Call contains_component_ref_p before calling data
11719 reference analysis that would fail on COMPONENT_REFs.
11720
11721 * tree-vrp.c (search_for_addr_array): Fix formatting.
11722
11723 2009-03-18 Richard Guenther <rguenther@suse.de>
11724
11725 * tree-vect-transform.c (vect_loop_versioning): Fold the
11726 generated comparisons.
11727 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11728 (slpeel_tree_peel_loop_to_edge): Likewise.
11729
11730 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11731
11732 PR middle-end/37805
11733 * opts.c (print_specific_help): In addition to `undocumented',
11734 accept `separate' and `joined' flags if passed alone. Describe
11735 output by the first matched one of those.
11736 (common_handle_option): Skip over empty strings.
11737 * gcc.c (display_help): Fix help string for `--help='.
11738 * doc/invoke.texi (Option Summary, Overall Options): With
11739 `--help=', classes and qualifiers can both be repeated, but
11740 only the latter can be negated. One should not pass only
11741 negated qualifiers. Fix markup and examples.
11742
11743 Revert
11744 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11745 PR middle-end/37805
11746 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11747 and -fhelp=separate.
11748
11749 2009-03-17 Jing Yu <jingyu@google.com>
11750
11751 PR middle-end/39378
11752 * function.h (struct rtl_data): Move is_thunk from here...
11753 (struct function): ...to here.
11754 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
11755 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11756 cfun.
11757 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11758 cfun.
11759 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11760 (alpha_output_function_end_prologue): Likewise.
11761 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11762 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11763 (rs6000_output_function_epilogue): Likewise.
11764 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
11765
11766 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
11767
11768 PR target/39482
11769 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11770 from different units in a single alternative.
11771 (*truncdfsf_i387): Ditto.
11772 (*truncxfsf2_mixed): Ditto.
11773 (*truncxfdf2_mixed): Ditto.
11774
11775 2009-03-17 Jakub Jelinek <jakub@redhat.com>
11776
11777 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11778 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11779
11780 PR debug/39474
11781 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11782 unused non-artificial variables when not optimizing.
11783
11784 PR debug/39471
11785 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11786 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11787 NAMESPACE_DECL in its DECL_INITIAL.
11788
11789 PR middle-end/39443
11790 * optabs.c (set_user_assembler_libfunc): New function.
11791 * expr.h (set_user_assembler_libfunc): New prototype.
11792 * c-common.c: Include libfuncs.h.
11793 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11794 for memcmp, memset, memcpy, memmove and abort.
11795 * Makefile.in (c-common.o): Depend on libfuncs.h.
11796
11797 PR debug/39412
11798 * dwarf2out.c (gen_inlined_enumeration_type_die,
11799 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11800 gen_tagged_type_instantiation_die): Removed.
11801 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11802 do nothing.
11803
11804 2009-03-17 Janis Johnson <janis187@us.ibm.com>
11805
11806 PR testsuite/38526
11807 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11808 its use.
11809 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11810 (check-parallel-%): Ditto.
11811 (check-consistency): Ditto.
11812
11813 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
11814
11815 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11816 local variable rhs by NULL_TREE.
11817
11818 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11819
11820 PR target/39477
11821 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
11822
11823 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11824
11825 PR target/39476
11826 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
11827
11828 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11829
11830 PR target/39473
11831 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11832 for ms->sysv ABI calls only in 64bit mode.
11833
11834 * config/i386/i386.md (untyped_call): Support 32bit.
11835
11836 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11837
11838 * doc/extend.texi: Replace x86_65 with x86_64.
11839
11840 2009-03-16 Jakub Jelinek <jakub@redhat.com>
11841
11842 PR tree-optimization/39455
11843 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11844 mismatches for POINTER_TYPE_P (type).
11845 (number_of_iterations_le): Likewise.
11846
11847 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11848
11849 * config/picochip/picochip.c: Removed profiling support.
11850 * config/picochip/picochip.md: Removed profiling instruction.
11851 * config/picochip/picochip.h: Removed profiling builtin.
11852
11853 2009-03-16 Joseph Myers <joseph@codesourcery.com>
11854
11855 * doc/install.texi (--with-host-libstdcxx): Document.
11856
11857 2009-03-14 Anatoly Sokolov <aesok@post.ru>
11858
11859 PR target/34299
11860 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11861 generate a warning if the function name does not begin with
11862 "__vector" and the function has either the 'signal' or 'interrupt'
11863 attribute, from here to ...
11864 (avr_declare_function_name): ...here. New function.
11865 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11866 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11867
11868 2009-03-14 Jakub Jelinek <jakub@redhat.com>
11869
11870 PR bootstrap/39454
11871 * cse.c (fold_rtx): Don't modify original const_arg1 when
11872 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11873 separate variable instead.
11874 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11875 from out of range shift counts.
11876 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11877
11878 2009-03-13 Catherine Moore <clm@codesourcery.com>
11879
11880 * config/i386/x-mingw32 (host-mingw32.o): Replace
11881 diagnostic.h with $(DIAGNOSTIC_H).
11882
11883 2009-03-12 Jakub Jelinek <jakub@redhat.com>
11884
11885 PR target/39431
11886 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11887 predicate.
11888 * config/i386/sync.md (sync_compare_and_swap<mode>,
11889 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11890 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11891 into a register.
11892 (sync_double_compare_and_swapdi_pic,
11893 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11894 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11895
11896 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11897
11898 PR target/39445
11899 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
11900
11901 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11902
11903 PR target/39327
11904 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11905 (avx_addsubv4df3): Likewise.
11906 (*avx_addsubv4sf3): Likewise.
11907 (sse3_addsubv4sf3): Likewise.
11908
11909 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11910
11911 PR target/38824
11912 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
11913
11914 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11915
11916 PR debug/39432
11917 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11918 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11919 registers for allocnos created from user-defined variables.
11920
11921 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11922
11923 PR target/39181
11924 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11925 of non-integer mode as well.
11926
11927 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11928
11929 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11930 for functions for which the parameter types are unknown.
11931
11932 2009-03-11 Jakub Jelinek <jakub@redhat.com>
11933
11934 PR target/39137
11935 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
11936 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11937 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11938 * config/i386/i386.c (ix86_local_alignment): For
11939 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11940 long long variables on the stack to avoid dynamic realignment.
11941 Allow the first argument to be a decl rather than type.
11942 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11943
11944 2009-03-11 Nick Clifton <nickc@redhat.com>
11945
11946 PR target/5362
11947 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11948 options.
11949 Add description to mno-lsim option.
11950 * config/mcore/mcore.h: Remove comment about deprecated m4align
11951 option.
11952 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11953 * doc/invoke.texi: Add description of mno-lsim and
11954 mstack-increment options.
11955
11956 * config/fr30/fr30.opt: Document the -mno-lsim option.
11957 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11958 and -mno-lsim options.
11959
11960 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11961
11962 * fold-const.c (fold_comparison): Only call fold_inf_compare
11963 if the mode supports infinities.
11964
11965 2009-03-11 Jason Merrill <jason@redhat.com>
11966
11967 PR debug/39086
11968 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11969 end already did. Notice GIMPLE_CALL modifications of the result.
11970 Don't copy debug information from an ignored decl or a decl from
11971 another function.
11972
11973 2009-03-10 Richard Guenther <rguenther@suse.de>
11974 Nathan Froyd <froydnj@codesourcery.com>
11975
11976 PR middle-end/37850
11977 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
11978 (__divMODE3): Likewise.
11979
11980 2009-03-09 Jakub Jelinek <jakub@redhat.com>
11981
11982 PR tree-optimization/39394
11983 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11984 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11985
11986 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11987
11988 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11989 inline asms for register asm ("") declarations.
11990
11991 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11992
11993 * fold-const.c (fold_unary): Fix comment.
11994
11995 2009-03-07 Jan Hubicka <jh@suse.cz>
11996
11997 PR target/39361
11998 * tree-inline.c (setup_one_parameter): Do replacement of const
11999 argument by constant in SSA form.
12000
12001 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12002
12003 PR middle-end/38028
12004 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12005 determine alignment passed to assign_stack_local.
12006 (assign_parms_unsplit_complex): Likewise.
12007 * except.c (sjlj_build_landing_pads): Likewise.
12008
12009 2009-03-06 Jakub Jelinek <jakub@redhat.com>
12010
12011 PR middle-end/39360
12012 * tree-flow.h (add_referenced_var): Return bool instead of void.
12013 * tree-dfa.c (add_referenced_var): Return result of
12014 referenced_var_check_and_insert call.
12015 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12016 of referenced_var_check_and_insert.
12017
12018 PR debug/39372
12019 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
12020 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12021 DIE, don't emit it if abstract origin already has it.
12022 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12023 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12024
12025 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12026
12027 * genpreds.c (needs_variable): Fix parentheses at variable name
12028 detection.
12029 (write_tm_constrs_h): Indent generated code.
12030
12031 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12032
12033 * doc/extend.texi (Function Attributes): Add documentation
12034 for isr attributes.
12035
12036 2009-03-06 Jakub Jelinek <jakub@redhat.com>
12037
12038 PR debug/39387
12039 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12040 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12041
12042 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12043
12044 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12045 the loop as bad.
12046
12047 2009-03-05 Jakub Jelinek <jakub@redhat.com>
12048
12049 PR debug/39379
12050 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12051 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12052
12053 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
12054
12055 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12056 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12057 constants instead of magic numbers.
12058 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12059 (QI_REG_P): Ditto.
12060 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12061 (x86_64_ms_abi_int_parameter_registers): Ditto.
12062 (x86_64_int_return_registers): Ditto.
12063 (ix86_maybe_switch_abi): Ditto.
12064 (ix86_expand_call): Ditto for clobbered_registers array.
12065 (ix86_hard_regno_mode_ok): Ditto.
12066 (x86_extended_QIreg_mentioned_p): Ditto.
12067
12068 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12069
12070 PR tree-optimization/39349
12071 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12072
12073 * combine.c (gen_lowpart_for_combine): Use omode when generating
12074 clobber.
12075
12076 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12077
12078 PR rtl-optimization/39235
12079 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12080
12081 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
12082
12083 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12084
12085 2009-03-04 Richard Guenther <rguenther@suse.de>
12086
12087 PR tree-optimization/39362
12088 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12089 that occur in abnormal PHIs should be varying.
12090
12091 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
12092
12093 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12094 Extend comments.
12095 (simple_iv): Take loop as an argument instead of statement.
12096 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12097 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12098 to simple_iv.
12099 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12100 Ditto.
12101 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12102 * matrix-reorg.c (analyze_transpose): Ditto.
12103 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12104 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12105 * tree-predcom.c (ref_at_iteration): Ditto.
12106 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12107
12108 2009-03-04 Richard Guenther <rguenther@suse.de>
12109
12110 PR tree-optimization/39358
12111 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12112 escaped_id and callused_id.
12113 (solve_graph): Likewise.
12114
12115 2009-03-04 Richard Guenther <rguenther@suse.de>
12116
12117 PR tree-optimization/39339
12118 * tree-sra.c (try_instantiate_multiple_fields): Make it
12119 no longer ICE on the above.
12120
12121 2009-03-03 Joseph Myers <joseph@codesourcery.com>
12122
12123 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12124 that fits within Pmode.
12125
12126 2009-03-03 Steve Ellcey <sje@cup.hp.com>
12127
12128 PR middle-end/10109
12129 * tm.texi (LIBCALL_VALUE): Update description.
12130
12131 2009-03-03 Steve Ellcey <sje@cup.hp.com>
12132
12133 PR middle-end/34443
12134 * doc/extend.texi (section): Update description.
12135
12136 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12137
12138 PR middle-end/39345
12139 * tree-inline.c (remapped_type): New.
12140 (can_be_nonlocal): Call remapped_type instead of remap_type.
12141
12142 2009-03-03 Jakub Jelinek <jakub@redhat.com>
12143
12144 PR fortran/39354
12145 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12146 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12147
12148 2009-03-03 Richard Guenther <rguenther@suse.de>
12149
12150 PR middle-end/39272
12151 * tree.c (tree_nonartificial_location): New function.
12152 * tree.h (tree_nonartificial_location): Declare.
12153 * builtins.c (expand_builtin_memory_chk): Provide location
12154 of the call location for artificial function pieces.
12155 (maybe_emit_chk_warning): Likewise.
12156 (maybe_emit_sprintf_chk_warning): Likewise.
12157 (maybe_emit_free_warning): Likewise.
12158 * expr.c (expand_expr_real_1): Likewise.
12159
12160 2009-03-03 Jakub Jelinek <jakub@redhat.com>
12161
12162 PR tree-optimization/39343
12163 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12164 COMPONENT_REF t has ARRAY_TYPE.
12165
12166 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12167
12168 PR middle-end/39335
12169 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12170 when the type precision of the induction variable should be
12171 larger than the type precision of nit.
12172 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12173 * graphite.c (graphite_loop_normal_form): Same.
12174 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12175
12176 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
12177
12178 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12179 (*call_1_rex64_ms_sysv): Use named constants instead of magic
12180 numbers to describe clobbered registers.
12181 (*call_value_0_rex64_ms_sysv): Ditto.
12182 * config/i386/mmx.md (mmx_emms): Ditto.
12183 (mmx_femms): Ditto.
12184
12185 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12186
12187 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12188 of ABI_64.
12189
12190 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12191
12192 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12193 (spu_section_type_flags): New function.
12194
12195 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
12196
12197 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12198 reg_class_contents of FLOAT_REGS into a temporary.
12199
12200 2009-03-02 Richard Guenther <rguenther@suse.de>
12201 Ira Rosen <irar@il.ibm.com>
12202
12203 PR tree-optimization/39318
12204 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12205 information to the vectorized statement.
12206
12207 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
12208
12209 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12210 variable. Use defined names instead of magic constants for REX SSE
12211 registers.
12212
12213 2009-03-01 Richard Guenther <rguenther@suse.de>
12214
12215 PR tree-optimization/39331
12216 * omp-low.c (lower_send_shared_vars): Do not receive new
12217 values for the reference of DECL_BY_REFERENCE parms or results.
12218
12219 2009-03-01 Jan Hubicka <jh@suse.cz>
12220
12221 PR debug/39267
12222 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12223 BLOCK_NONLOCALIZED_VAR): New macros.
12224 (tree_block): Add nonlocalized_vars.
12225 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12226 gen_decl_die): Add origin argument. Allow generation of die with
12227 origin at hand only.
12228 (gen_member_die, gen_type_die_with_usage, force_decl_die,
12229 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12230 of gen_*.
12231 (gen_block_die): Fix checking for unused blocks.
12232 (process_scope_var): Break out from .... ; work with origins only.
12233 (decls_for_scope) ... here; process nonlocalized list.
12234 (dwarf2out_ignore_block): Look for nonlocalized vars.
12235 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12236 vars.
12237 (dump_scope_block): Dump them.
12238 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12239 (remap_block): Likewise.
12240 (can_be_nonlocal): New predicate.
12241 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12242
12243 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12244
12245 * configure: Regenerate.
12246
12247 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12248
12249 * optc-gen.awk: No need to duplicate option flags twice.
12250 Reuse help texts for duplicate options which do not have any.
12251
12252 * gcc.c (display_help): Document --version.
12253
12254 * gcc.c (main): If print_help_list and verbose_flag, ensure
12255 driver output comes before subprocess output.
12256
12257 * optc-gen.awk: Assign all remaining fields to help string,
12258 space-separated, for multi-line help in *.opt.
12259
12260 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12261 -Wno-pedantic-ms-format is for MinGW targets only.
12262
12263 * doc/options.texi (Option file format): Fix bad indentation,
12264 restoring dropped sentence.
12265
12266 2009-02-28 Jan Hubicka <jh@suse.cz>
12267
12268 * tree-inline.c (tree_function_versioning): Output debug info.
12269
12270 2009-02-28 Jan Hubicka <jh@suse.cz>
12271
12272 PR debug/39267
12273 * tree-inline.c (setup_one_parameter): Do not copy propagate
12274 arguments when not optimizing.
12275
12276 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12277
12278 PR target/39327
12279 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12280 (avx_addsubv4df3): Likewise.
12281 (*avx_addsubv4sf3): Likewise.
12282 (sse3_addsubv4sf3): Likewise.
12283 (*avx_addsubv2df3): Likewise.
12284 (sse3_addsubv2df3): Likewise.
12285 (avx_unpckhps256): Correct item selectors.
12286 (avx_unpcklps256): Likewise.
12287 (avx_unpckhpd256): Likewise.
12288 (avx_unpcklpd256): Likewise.
12289
12290 2009-02-28 Jan Hubicka <jh@suse.cz>
12291
12292 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12293 static vars.
12294 (copy_arguments_for_versioning): If var is declared don't declare it.
12295 (tree_function_versioning): First setup substitutions and then copy
12296 args.
12297
12298 2009-02-27 Jan Hubicka <jh@suse.cz>
12299
12300 PR debug/39267
12301 * cgraph.h (varpool_output_debug_info): Remove.
12302 * cgraphunit.c (varpool_output_debug_info): Remove.
12303 * dwarf2out.c (deferred_locations_struct): New struct
12304 (deferred_locations): New type.
12305 (deferred_locations_list): New static var.
12306 (deffer_location): New function.
12307 (gen_variable_die): Use it.
12308 (decls_for_scope): Output info on local static vars.
12309 (dwarf2out_finish): Process deferred locations.
12310 * varpool.c (varpool_output_debug_info): Remove.
12311
12312 2009-02-27 Jan Hubicka <jh@suse.cz>
12313
12314 PR debug/39267
12315 * tree.h (TREE_PROTECTED): Fix comment.
12316 (BLOCK_HANDLER_BLOCK): Remove.
12317 (struct tree_block): Remove handler_block add body_block.
12318 (inlined_function_outer_scope_p): New.
12319 (is_body_block): Remove.
12320 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12321 * dwarf2out.c (is_inlined_entry_point): Remove.
12322 (add_high_low_attributes): Use inlined_function_outer_scope_p.
12323 (gen_block_die): Use is_inlined_entry_point check. Remove body block
12324 code.
12325 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12326 * gimplify.c (gimplify_expr): Gimplify body blocks.
12327 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12328 block with multiple subblocks.
12329 (dump_scope_block): Prettier output; dump more flags and info.
12330 (dump_scope_blocks): New.
12331 (remove_unused_locals): Use dump_scope_blocks.
12332 * tree-flow.h (dump_scope_blocks): Declare.
12333 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12334 * stmt.c (is_body_block): Remove.
12335 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12336 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12337
12338 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
12339
12340 PR middle-end/39308
12341 * graphite.c (graphite_loop_normal_form): Do not call
12342 number_of_iterations_exit from a gcc_assert.
12343
12344 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12345
12346 * config/s390/s390.c (s390_swap_cmp): Look for conditional
12347 jumps if COND is NULL.
12348 (find_cond_jump): New function.
12349 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
12350 * config/s390/s390.md: Remove z10_cobra attribute value.
12351
12352 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
12353
12354 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12355 force_const_mem returns NULL_RTX.
12356
12357 2009-02-26 Jan Hubicka <jh@suse.cz>
12358
12359 PR debug/39267
12360 * cgraph.h (varpool_output_debug_info): Remove.
12361 * cgraphunit.c (varpool_output_debug_info): Remove.
12362 * dwarf2out.c (deferred_locations_struct): New struct
12363 (deferred_locations): New type.
12364 (deferred_locations_list): New static var.
12365 (deffer_location): New function.
12366 (gen_variable_die): Use it.
12367 (decls_for_scope): Output info on local static vars.
12368 (dwarf2out_finish): Process deferred locations.
12369 * varpool.c (varpool_output_debug_info): Remove.
12370
12371 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
12372
12373 PR rtl-optimization/39241
12374 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12375 to subreg_offset_representable_p.
12376
12377 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
12378
12379 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12380 execute function prototype. Get f and nregs from max_reg_num
12381 and get_insns. Remove the first backward pass as it's dead,
12382 guard the forward pass by flag_expensive_optimizations.
12383 (rest_of_handle_regmove): Delete.
12384 (pass_regmove): Replace it with regmove_optimize.
12385
12386 2009-02-25 Martin Jambor <mjambor@suse.cz>
12387
12388 PR tree-optimization/39259
12389 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
12390 calls_alloca function flags.
12391 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12392 calls are detected.
12393
12394 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
12395
12396 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12397 flags_set_1_rtx, flags_set_1_set): Delete.
12398 (regmove_optimize): Do not call mark_flags_life_zones.
12399
12400 2009-02-24 Julian Brown <julian@codesourcery.com>
12401
12402 PR target/35965
12403 * config/arm/arm.c (require_pic_register): Only set
12404 cfun->machine->pic_reg once per function.
12405
12406 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
12407
12408 * doc/invoke.texi (Link Options): Document an easier way to pass
12409 options that take arguments to the GNU linker using -Xlinker and -Wl.
12410
12411 2009-02-24 Steve Ellcey <sje@cup.hp.com>
12412
12413 PR target/33785
12414 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12415
12416 2009-02-24 Richard Guenther <rguenther@suse.de>
12417
12418 PR debug/39285
12419 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12420
12421 2009-02-24 Richard Guenther <rguenther@suse.de>
12422 Zdenek Dvorak <ook@ucw.cz>
12423
12424 PR tree-optimization/39233
12425 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12426 from converting them to a generic type.
12427
12428 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
12429
12430 PR tree-optimization/39260
12431 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12432 contains a condition with a real type.
12433 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12434
12435 2009-02-23 Jason Merrill <jason@redhat.com>
12436
12437 PR c++/38880
12438 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12439 narrowing_initializer_constant_valid_p.
12440 (narrowing_initializer_constant_valid_p): Don't return
12441 null_pointer_node for adding a pointer to itself.
12442
12443 2009-02-23 Jan Hubicka <jh@suse.cz>
12444
12445 PR c/12245
12446 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12447 resizing.
12448
12449 2009-02-23 Jan Hubicka <jh@suse.cz>
12450
12451 PR tree-optimization/37709
12452 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12453 * tree.h (block_ultimate_origin): Declare.
12454 * dwarf2out.c (block_ultimate_origin): Move to tree.c
12455 * tree-ssa-live.c (remove_unused_scope_block_p):
12456 Eliminate blocks containig no instructions nor live variables nor
12457 nested blocks.
12458 (dump_scope_block): New function.
12459 (remove_unused_locals): Enable removal of dead blocks by default;
12460 enable dumping at TDF_DETAILS.
12461
12462 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
12463
12464 * config/i386/i386.c (classify_argument): Don't allow COImode
12465 and OImode.
12466 (function_arg_advance_32): Don't allow OImode.
12467 (function_arg_32): Likewise.
12468 (function_value_32): Likewise.
12469 (return_in_memory_32): Likewise.
12470 (function_arg_64): Remove OImode comment.
12471
12472 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
12473
12474 PR target/39261
12475 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12476 ix86_expand_vector_set for V4DImode in 64bit mode only.
12477 (ix86_expand_vector_init_one_var): Likewise.
12478
12479 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12480
12481 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12482
12483 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12484
12485 PR bootstrap/39257
12486 * loop-iv.c: Revert last change.
12487 * emit-rtl.c: Likewise.
12488
12489 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
12490
12491 PR target/39256
12492 * config/i386/i386.c (type_natural_mode): Remove an extra
12493 space in the warning message.
12494 (function_value_32): Handle 32-byte vector modes.
12495 (return_in_memory_32): Likewise.
12496
12497 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12498
12499 * loop-iv.c (truncate_value): New function.
12500 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12501 of lowpart_subreg.
12502 (lowpart_subreg): Move to...
12503 * emit-rtl.c: ...here.
12504
12505 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
12506
12507 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12508 accidental and undocumented change at revision 140860.
12509
12510 2009-02-21 Joseph Myers <joseph@codesourcery.com>
12511
12512 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12513 take gimple_seq * arguments.
12514 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12515 types_compatible_p langhook.
12516
12517 2009-02-20 Mark Mitchell <mark@codesourcery.com>
12518 Joseph Myers <joseph@codesourcery.com>
12519
12520 * config/arm/arm.c (arm_builtin_va_list): New function.
12521 (arm_expand_builtin_va_start): Likewise.
12522 (arm_gimplify_va_arg_expr): Likewise.
12523 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12524 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12525 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12526 (va_list_type): New variable.
12527 (arm_mangle_type): Mangle va_list_type appropriately.
12528
12529 2009-02-20 Jakub Jelinek <jakub@redhat.com>
12530
12531 PR middle-end/39157
12532 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12533 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12534 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12535 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12536 parameter to 1000 for -O1 by default.
12537 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12538 parameter.
12539 * loop-invariant.c: Include params.h.
12540 (move_loop_invariants): Don't call move_single_loop_invariants on
12541 very large loops.
12542
12543 2009-02-20 Jaka Mocnik <jaka@xlab.si>
12544
12545 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12546 offset when calculating bounds for indexing stack_usage_map. Fixes
12547 a buffer overflow with certain target setups.
12548
12549 2009-02-20 Jakub Jelinek <jakub@redhat.com>
12550
12551 PR target/39240
12552 * calls.c (expand_call): Clear try_tail_call if caller and callee
12553 disagree in promotion of function return value.
12554
12555 2009-02-19 Jakub Jelinek <jakub@redhat.com>
12556
12557 PR target/39175
12558 * c-common.c (c_determine_visibility): If visibility changed and
12559 DECL_RTL has been already set, call make_decl_rtl to update symbol
12560 flags.
12561
12562 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12563
12564 PR c++/39188
12565 * varasm.c (assemble_variable): Don't check DECL_NAME when
12566 globalizing a variable.
12567
12568 2009-02-19 Joseph Myers <joseph@codesourcery.com>
12569
12570 PR c/38483
12571 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12572 expression before any __builtin_trap call.
12573 * c-typeck.c (build_function_call): Convert and check function
12574 arguments before generating a call to a trap. Evaluate the
12575 function arguments before the trap.
12576
12577 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
12578
12579 PR target/39228
12580 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12581 (UNSPEC_FXAM_MEM): New unspec.
12582 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12583 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12584 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12585
12586 2009-02-19 Richard Guenther <rguenther@suse.de>
12587
12588 PR tree-optimization/39207
12589 PR tree-optimization/39074
12590 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12591 storedanything_tree): New.
12592 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
12593 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
12594 (build_succ_graph): Add edges from STOREDANYTHING to all
12595 non-direct nodes.
12596 (init_base_vars): Initialize STOREDANYTHING.
12597 (compute_points_to_sets): Free substitution info after
12598 building the succ graph.
12599 (ipa_pta_execute): Likewise.
12600
12601 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12602 field.
12603 (do_ds_constraint): Do not add to special var or non-pointer
12604 field solutions.
12605 (type_could_have_pointers): Split out from ...
12606 (could_have_pointers): ... here. For arrays use the element type.
12607 (create_variable_info_for): Initialize may_have_pointers.
12608 (new_var_info): Likewise.
12609 (handle_lhs_call): Make the HEAP variable unknown-sized.
12610 (intra_create_variable_infos): Use a type with pointers for
12611 PARM_NOALIAS, make it unknown-sized.
12612
12613 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12614
12615 PR target/39224
12616 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
12617
12618 2009-02-18 Jason Merrill <jason@redhat.com>
12619
12620 PR target/39179
12621 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12622 value if DECL_EXTERNAL.
12623 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12624 * target.h (gcc_target::binds_local_p): Clarify "module".
12625 * tree.h (TREE_PUBLIC): Clarify "module".
12626
12627 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12628
12629 PR target/38891
12630 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12631 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12632
12633 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12634
12635 PR target/39082
12636 * c.opt (Wabi): Support C and ObjC.
12637 (Wpsabi): New.
12638
12639 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12640
12641 * config/i386/i386.c (classify_argument): Warn once about the ABI
12642 change when passing union with long double.
12643
12644 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12645
12646 2009-02-18 Joseph Myers <joseph@codesourcery.com>
12647
12648 PR c/35447
12649 * c-parser.c (c_parser_compound_statement): Always enter and leave
12650 a scope.
12651
12652 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12653
12654 PR target/34587
12655 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12656
12657 2009-02-18 Jakub Jelinek <jakub@redhat.com>
12658
12659 PR tree-optimization/36922
12660 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12661 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12662 Likewise.
12663
12664 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12665
12666 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12667 to 0 for EABI64.
12668
12669 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12670
12671 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12672
12673 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12674
12675 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12676 tree sharing.
12677
12678 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12679 Richard Sandiford <rdsandiford@googlemail.com>
12680
12681 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12682 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12683 (loongson_biadd): ...this.
12684
12685 2009-02-17 Richard Guenther <rguenther@suse.de>
12686
12687 PR tree-optimization/39202
12688 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12689 a var make sure to follow existing collapses.
12690
12691 2009-02-17 Richard Guenther <rguenther@suse.de>
12692
12693 PR middle-end/39214
12694 * langhooks.c (lhd_print_error_function): Check for NULL block.
12695
12696 2009-02-17 Richard Guenther <rguenther@suse.de>
12697
12698 PR tree-optimization/39204
12699 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12700 of the PHI arg.
12701
12702 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
12703
12704 * config/soft-fp/double.h: Update from glibc CVS.
12705
12706 2009-02-17 Richard Guenther <rguenther@suse.de>
12707
12708 PR tree-optimization/39207
12709 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12710 strict-aliasing warnings for pointers pointing to NULL.
12711
12712 2009-02-16 Joseph Myers <joseph@codesourcery.com>
12713
12714 PR c/35446
12715 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12716 skipping until next close brace.
12717
12718 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12719
12720 PR target/37049
12721 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12722 to function argument boundary.
12723
12724 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12725
12726 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12727 in the lea_add. Reload eventually constraints it properly.
12728 * config/picochip/constraints.md: Remove the target constraint
12729 "b", since it is not needed anymore.
12730
12731 2009-02-16 Jakub Jelinek <jakub@redhat.com>
12732
12733 * gthr-dce.h: Uglify function parameter and local variable names.
12734 * gthr-gnat.h: Likewise.
12735 * gthr-mipssde.h: Likewise.
12736 * gthr-nks.h: Likewise.
12737 * gthr-posix95.h: Likewise.
12738 * gthr-posix.h: Likewise.
12739 * gthr-rtems.h: Likewise.
12740 * gthr-single.h: Likewise.
12741 * gthr-solaris.h: Likewise.
12742 * gthr-tpf.h: Likewise.
12743 * gthr-vxworks.h: Likewise.
12744 * gthr-win32.h: Likewise.
12745
12746 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12747
12748 PR target/39196
12749 * config/i386/i386.md: Restrict the new peephole2 to move
12750 between MMX/SSE registers.
12751
12752 2009-02-15 Richard Guenther <rguenther@suse.de>
12753
12754 Revert
12755 2009-02-13 Richard Guenther <rguenther@suse.de>
12756
12757 * configure.ac: Enable LFS.
12758 * configure: Re-generate.
12759 * config.in: Likewise.
12760
12761 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12762
12763 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12764 spu_srqwbyte, spu_srqwbytebc): Define.
12765 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12766 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12767 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12768 "shrqby_<mode>"): New insn-and-split patterns.
12769 * config/spu/spu.c (expand_builtin_args): Determine and return
12770 number of operands using spu_builtin_description data.
12771 (spu_expand_builtin_1): Use it.
12772
12773 2009-02-13 Steve Ellcey <sje@cup.hp.com>
12774
12775 PR target/38056
12776 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12777 TARGET_CONST_GP.
12778
12779 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12780
12781 PR target/39149
12782 * config/i386/i386.c (override_options): Correct warning
12783 messages for -malign-loops, -malign-jumps and -malign-functions.
12784
12785 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12786
12787 PR target/39152
12788 * config/i386/i386.md: Restrict the new peephole2 to move
12789 between the general purpose registers.
12790
12791 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12792
12793 PR target/39162
12794 * config/i386/i386.c (type_natural_mode): Add a new argument.
12795 Return the original mode and warn ABI change if vector size is 32byte.
12796 (function_arg_advance): Updated.
12797 (function_arg): Likewise.
12798 (ix86_function_value): Likewise.
12799 (ix86_return_in_memory): Likewise.
12800 (ix86_sol10_return_in_memory): Likewise.
12801 (ix86_gimplify_va_arg): Likewise.
12802 (function_arg_32): Don't warn ABX ABI change here.
12803 (function_arg_64): Likewise.
12804
12805 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
12806
12807 * loop-iv.c (implies_p): In the final case, test that operands 0
12808 of the two comparisons match.
12809
12810 * config/bfin/bfin.c (find_prev_insn_start): New function.
12811 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12812 (find_next_insn_start): Move.
12813
12814 2009-02-13 Richard Guenther <rguenther@suse.de>
12815
12816 * configure.ac: Enable LFS.
12817 * configure: Re-generate.
12818 * config.in: Likewise.
12819
12820 2009-02-13 Joseph Myers <joseph@codesourcery.com>
12821
12822 PR c/35444
12823 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12824 sizes on syntax error after some arguments have been parsed.
12825
12826 2009-02-12 Jakub Jelinek <jakub@redhat.com>
12827
12828 * doc/invoke.texi (-fira): Remove.
12829
12830 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12831
12832 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12833 * recog.c: Likewise.
12834 * rtl.h: Likewise.
12835
12836 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
12837
12838 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12839 (umul_ppmm): Likewise.
12840 (count_leading_zeros): Likewise.
12841 (count_trailing_zeros): Likewise.
12842 (UMUL_TIME): Likewise.
12843
12844 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12845
12846 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12847 soft-fp/t-softfp to tmake_file.
12848
12849 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
12850 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12851 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12852 IA64_BUILTIN_INFQ]: New.
12853 (ia64_init_builtins): Initialize __builtin_infq,
12854 __builtin_fabsq and __builtin_copysignq if not HPUX.
12855 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12856 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12857
12858 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12859 SHARED is defined.
12860 (__fixtfti): Likewise.
12861 (__fixunstfti): Likewise.
12862 (__floattitf): Likewise.
12863
12864 * config/ia64/libgcc-glibc.ver: New.
12865 * config/ia64/t-fprules-softfp: Likewise.
12866 * config/ia64/sfp-machine.h: Likewise.
12867
12868 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12869 (LIBGCC2_TF_CEXT): Likewise.
12870 (TF_SIZE): Likewise.
12871 (TARGET_INIT_LIBFUNCS): Likewise.
12872
12873 * config/ia64/t-glibc (SHLINB_MAPFILES):
12874 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
12875
12876 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12877
12878 * config/i386/i386.c (construct_container): Rewrite processing
12879 BLKmode with X86_64_SSE_CLASS.
12880
12881 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
12882
12883 PR target/39152
12884 * config/i386/i386.md: Replace simplify_replace_rtx with
12885 replace_rtx in the new peephole2.
12886
12887 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12888
12889 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12890 loop unrolling do not happen at -O2.
12891
12892 2009-02-12 Michael Matz <matz@suse.de>
12893
12894 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12895
12896 2009-02-12 Jakub Jelinek <jakub@redhat.com>
12897
12898 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12899 for -g3.
12900
12901 2009-02-12 Ben Elliston <bje@au.ibm.com>
12902
12903 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12904 patterns when updating the back chain. Missed in the 2009-02-10
12905 change.
12906
12907 2009-02-11 Janis Johnson <janis187@us.ibm.com>
12908
12909 * doc/extend.texi (Decimal Floating Types): Update identifier of
12910 draft TR and list of missing support.
12911
12912 2009-02-11 Jakub Jelinek <jakub@redhat.com>
12913
12914 PR middle-end/39154
12915 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12916 bit to variable length decl's flags, add it also to its
12917 pointer replacement variable.
12918
12919 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
12920 Jakub Jelinek <jakub@redhat.com>
12921
12922 PR target/39118
12923 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12924 (memory_blockage): New expander.
12925 (*memory_blockage): New insn pattern.
12926 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12927 instead of general blockage at the end of function prologue when
12928 frame pointer is used to access red zone area. Do not emit blockage
12929 when profiling, it is emitted in generic code.
12930 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12931 function epilogue when frame pointer is used to access red zone area.
12932
12933 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
12934
12935 PR target/38824
12936 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12937 by arithmetic with memory operands.
12938 * config/i386/predicates.md (commutative_operator): New.
12939
12940 2009-02-10 Janis Johnson <janis187@us.ibm.com>
12941
12942 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12943 bulleted lists.
12944
12945 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12946
12947 * alias.h (record_alias_subset): Declare.
12948 * alias.c (record_alias_subset): Make global.
12949
12950 2009-02-10 Nick Clifton <nickc@redhat.com>
12951
12952 * tree-parloops.c: Change license to GPLv3.
12953 * ipa-struct-reorg.c: Change license to GPLv3.
12954 * ipa-struct-reorg.h: Change license to GPLv3.
12955
12956 2009-02-10 Steve Ellcey <sje@cup.hp.com>
12957
12958 PR c/39084
12959 * c-decl.c (start_struct): Return NULL on error.
12960
12961 2009-02-10 Jakub Jelinek <jakub@redhat.com>
12962
12963 PR middle-end/39124
12964 * cfgloopmanip.c (remove_path): Call remove_bbs after
12965 cancel_loop_tree, not before it.
12966
12967 PR target/39139
12968 * function.h (struct function): Add has_local_explicit_reg_vars bit.
12969 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12970 VAR_DECLs were seen.
12971 * tree-ssa-live.c (remove_unused_locals): Recompute
12972 cfun->has_local_explicit_reg_vars.
12973 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12974 copies or clearings if cfun->has_local_explicit_reg_vars.
12975
12976 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
12977
12978 PR target/39118
12979 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12980 of function prologue when frame pointer is used to access
12981 red zone area.
12982
12983 2009-02-10 Richard Guenther <rguenther@suse.de>
12984
12985 PR middle-end/39127
12986 * gimplify.c (gimple_regimplify_operands): Always look if
12987 we need to create a temporary.
12988
12989 2009-02-10 Richard Guenther <rguenther@suse.de>
12990
12991 PR tree-optimization/39132
12992 * tree-loop-distribution.c (todo): New global var.
12993 (generate_memset_zero): Trigger TODO_rebuild_alias.
12994 (tree_loop_distribution): Return todo.
12995
12996 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12997
12998 PR target/39119
12999 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13000 (x86_64_reg_class_name): Removed.
13001 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13002 first one isn't X86_64_SSE_CLASS or any other ones aren't
13003 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13004 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13005 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13006 and 3 X86_64_SSEUP_CLASS.
13007 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13008 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13009
13010 2009-02-10 Ben Elliston <bje@au.ibm.com>
13011
13012 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13013 form instruction to update the stack back chain word, even if the
13014 user has disabled the generation of update instructions.
13015 (movdi_<mode>_update_stack): New.
13016 (movsi_update_stack): Likewise.
13017 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13018 always use an update form instruction to update the stack back
13019 chain word.
13020
13021 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13022
13023 PR middle-end/38953
13024 * graphite.c (if_region_set_false_region): After moving a region in
13025 the false branch of a condition, remove the empty dummy basic block.
13026 (gloog): Remove wrong fix for PR38953.
13027
13028 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13029
13030 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13031 generation due to implicit sign extension.
13032
13033 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13034
13035 PR middle-end/38981
13036 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13037 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13038
13039 2009-02-09 Richard Guenther <rguenther@suse.de>
13040
13041 PR middle-end/35202
13042 * convert.c (convert_to_real): Disable (float)fn((double)x)
13043 to fnf(x) conversion if errno differences may occur and
13044 -fmath-errno is set.
13045
13046 2009-02-07 Anatoly Sokolov <aesok@post.ru>
13047
13048 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13049 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13050 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13051
13052 2009-02-06 Joseph Myers <joseph@codesourcery.com>
13053
13054 PR c/35434
13055 * c-common.c (handle_alias_attribute): Disallow attribute for
13056 anything not a FUNCTION_DECL or VAR_DECL.
13057
13058 2009-02-06 Janis Johnson <janis187@us.ibm.com>
13059
13060 PR c/39035
13061 * real.c (do_compare): Special-case compare of zero against
13062 decimal float value.
13063
13064 2009-02-06 Joseph Myers <joseph@codesourcery.com>
13065
13066 PR c/36432
13067 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13068 as indicating flexible array members unless the field itself is
13069 being declarared as the incomplete array.
13070
13071 2009-02-06 Jan Hubicka <jh@suse.cz>
13072
13073 PR tree-optimization/38844
13074 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13075 is already inlined.
13076
13077 2009-02-06 Richard Guenther <rguenther@suse.de>
13078
13079 PR middle-end/38977
13080 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13081 fork because we may expand it as __gcov_fork.
13082
13083 2009-02-06 Nick Clifton <nickc@redhat.com>
13084
13085 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
13086
13087 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
13088
13089 PR tree-optimization/35659
13090 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13091 vn_phi_eq): Shortcut if hashcode does not match.
13092 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13093 NULL operands.
13094 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13095 and avoid iterative_hash_expr.
13096 (FOR_EACH_VALUE_ID_IN_SET): New.
13097 (value_id_compare): Remove.
13098 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13099 sort expressions by value id.
13100
13101 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13102
13103 PR target/38991
13104 * config/sh/predicates.md (general_movsrc_operand): Don't check
13105 the subreg of system registers here.
13106
13107 2009-02-05 Jakub Jelinek <jakub@redhat.com>
13108
13109 PR c++/39106
13110 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13111 on the copied decl.
13112
13113 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
13114
13115 PR rtl-optimization/39110
13116 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13117 addresses, not aligned ones.
13118
13119 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
13120 Richard Guenther <rguenther@suse.de>
13121
13122 PR tree-optimization/39100
13123 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13124 comment says and add edges.
13125
13126 2009-02-05 Joseph Myers <joseph@codesourcery.com>
13127
13128 PR c/35435
13129 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13130 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13131
13132 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
13133
13134 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13135 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13136 register_bb_in_sese, new_sese, free_sese): Moved.
13137 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13138 outermost_loop_in_scop, build_scop_iteration_domain,
13139 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13140 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13141 Use loop_in_sese_p instead of loop_in_scop_p.
13142 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13143 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13144 (scopdet_basic_block_info): Fix bug in scop detection.
13145 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13146 eq_loop_to_cloog_loop): Remove.
13147 (nb_loops_around_loop_in_scop, nb_loop
13148 ref_nb_loops): Moved here...
13149 * graphite.h (ref_nb_loops): ... from here.
13150 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13151 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13152 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13153 * testsuite/gcc.dg/graphite/scop-19.c: New
13154
13155 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
13156 Hans-Peter Nilsson <hp@axis.com>
13157
13158 PR rtl-optimization/37889
13159 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13160 Move offset handling from PLUS to before the switch. Use new
13161 arguments when considering SYMBOL_REFs too.
13162 (rtx_addr_can_trap_p): Pass dummy offset and size.
13163 (enum may_trap_p_flags): Remove.
13164 (may_trap_p_1): Pass size from MEM_SIZE.
13165
13166 PR rtl-optimization/38921
13167 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13168 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13169 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13170 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13171
13172 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13173
13174 AVX Programming Reference (January, 2009)
13175 * config/i386/sse.md (*vpclmulqdq): New.
13176
13177 2009-02-04 Jakub Jelinek <jakub@redhat.com>
13178
13179 PR tree-optimization/38977
13180 PR gcov-profile/38292
13181 * calls.c (special_function_p): Disregard __builtin_ prefix.
13182
13183 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13184
13185 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13186 non-indexable addresses even before reload.
13187
13188 2009-02-03 Joseph Myers <joseph@codesourcery.com>
13189
13190 PR c/29129
13191 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13192 as having variable size. Do not give an error for unnamed
13193 parameters with [*] declarators. Give a warning for type names
13194 with [*] declarators and mark them as variable size.
13195 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13196 for sizeof applied to [*] type names.
13197
13198 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13199
13200 PR C++/36607
13201 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13202
13203 2009-02-03 Jakub Jelinek <jakub@redhat.com>
13204
13205 * gcc.c (process_command): Update copyright notice dates.
13206 * gcov.c (print_version): Likewise.
13207 * gcov-dump.c (print_version): Likewise.
13208 * mips-tfile.c (main): Likewise.
13209 * mips-tdump.c (main): Likewise.
13210
13211 2009-02-03 Joseph Myers <joseph@codesourcery.com>
13212
13213 PR c/35433
13214 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13215 for composite type involving a zero-length array type.
13216
13217 2009-02-03 Jakub Jelinek <jakub@redhat.com>
13218
13219 PR target/35318
13220 * function.c (match_asm_constraints_1): Skip over
13221 initial optional % in the constraint.
13222
13223 PR inline-asm/39059
13224 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13225 supported, don't accept FIXED_CSTs.
13226 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13227 and _Sat is used without _Fract/_Accum. Set specs->type to
13228 integer_type_node for cts_fract/cts_accum if fixed point is not
13229 supported.
13230
13231 2009-02-02 Catherine Moore <clm@codesourcery.com>
13232
13233 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
13234
13235 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13236
13237 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13238 (ABI_HAS_64BIT_SYMBOLS): Use it.
13239 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13240
13241 2009-02-02 Paul Brook <paul@codesourcery.com>
13242
13243 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13244
13245 2009-02-02 Jakub Jelinek <jakub@redhat.com>
13246
13247 PR inline-asm/39058
13248 * recog.h (asm_operand_ok): Add constraints argument.
13249 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13250 recurse on matching constraint.
13251 (check_asm_operands): Pass constraints as 3rd argument to
13252 asm_operand_ok. Don't look up matching constraint here.
13253 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13254 to asm_operand_ok.
13255
13256 2009-02-02 Ben Elliston <bje@au.ibm.com>
13257
13258 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13259 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13260
13261 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13262
13263 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13264 information. Remove some obsolete information. Reorganize.
13265
13266 * config/pa/fptr.c: Revert license to GPL 2.
13267 * config/pa/milli64.S: Likewise.
13268
13269 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13270
13271 PR target/38904
13272 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13273 LIBRARY name in, instead of hard-coding it.
13274 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13275 extra target make frag to tmake_files according to EH model.
13276 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13277 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13278 frags that define makefile variable EH_MODEL appropriately.
13279 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13280 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13281 to "-sjlj" according to type of EH configured.
13282 (LIBGCC_SONAME): Concatenate it to shared library base name.
13283 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13284 to "_sjlj" according to type of EH configured.
13285 (LIBGCC_SONAME): Concatenate it to shared library base name.
13286 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13287 (SHLIB_LINK): Add missing semicolon to if-else construct.
13288 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13289 string value of "pe_dll" command-line option.
13290 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13291 (SHLIB_SONAME): Use it when overriding t-cygming default.
13292 (SHLIB_IMPLIB): Override t-cygming default.
13293 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13294 string value of "pe_dll" command-line option.
13295
13296 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13297
13298 PR target/38952
13299 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
13300 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
13301
13302 2009-01-31 Richard Guenther <rguenther@suse.de>
13303
13304 PR tree-optimization/38937
13305 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13306 computing the transitive closure.
13307
13308 2009-01-30 Richard Guenther <rguenther@suse.de>
13309
13310 PR tree-optimization/39041
13311 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13312 Propagate variable indices only if the types match for this stmt.
13313
13314 2009-01-30 Jakub Jelinek <jakub@redhat.com>
13315
13316 PR target/39013
13317 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13318 inline but never defined.
13319
13320 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
13321
13322 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13323 (*insv_h_di_reg_extimm): New insn.
13324 (*insv_l<mode>_reg_extimm): New insn.
13325
13326 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
13327
13328 * config/picochip/picochip.c (flag_conserve_stack): set
13329 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13330 fconserve-stack. Reduce call-overhead used by inliner.
13331
13332 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
13333
13334 PR/38157
13335 * common.opt (flag_conserve_stack): Initialised to zero.
13336
13337 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
13338
13339 PR/39002
13340 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13341 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13342 method.
13343
13344 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
13345
13346 * ira-color.c (allocno_reload_assign): Update comments.
13347 * regmove.c (regmove_optimize): Likewise.
13348
13349 * ra.h: Removed.
13350
13351 2009-01-29 Robert Millan <rmh@aybabtu.com>
13352
13353 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13354 * config/i386/kopensolaris-gnu.h: New file. Undefine
13355 `MD_UNWIND_SUPPORT'.
13356 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
13357
13358 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
13359
13360 PR tree-optimization/39007
13361 * tree-loop-distribution.c (generate_builtin): Use
13362 recompute_dominator to compute the immediate dominator of the
13363 basic block just after the loop.
13364
13365 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13366
13367 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13368 (ASM_OUTPUT_DWARF_PCREL): Define.
13369
13370 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
13371
13372 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13373 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13374 global. Modify entries about regmove and IRA.
13375
13376 * ra-conflict.c: Remove the file.
13377
13378 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13379
13380 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13381 (pass_regclass_init): Rename to pass_reginfo_init.
13382
13383 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13384
13385 * toplev.h (flag_ira): Remove.
13386
13387 * caller-save.c (setup_save_areas): Remove flag_ira.
13388
13389 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
13390
13391 * global.c: Remove the file.
13392
13393 * opts.c (decode_options): Remove flag_ira.
13394
13395 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13396
13397 * regmove.c: Modify file description.
13398 (find_use_as_address, try_auto_increment): Define them only if
13399 AUTO_INC_DEC is defined.
13400 (replacement_quality, replace_in_call_usage, fixup_match_1,
13401 stable_and_no_regs_but_for_p): Remove.
13402 (reg_set_in_bb): Make it static.
13403 (regmove_optimize): Remove flag_ira and code which worked for
13404 !flag_ira.
13405
13406 * local-alloc.c: Remove the file.
13407
13408 * common.opt (fira): Remove.
13409
13410 * ira.c: Include except.h.
13411 (eliminable_regset): Move from global.c.
13412 (mark_elimination): Ditto. Remove flag_ira.
13413 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13414 equiv_mem_modified, validate_equiv_mem_from_store,
13415 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13416 contains_replace_regs, memref_referenced_p, memref_used_between_p,
13417 no_equiv, recorded_label_ref): Move from local-alloc.c.
13418 (update_equiv_regs): Ditto. Make it static.
13419 (print_insn_chain, print_insn_chains): Move it from global.c.
13420 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
13421 (build_insn_chain): Ditto. Make it static.
13422 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
13423 Rename to init_live_subregs.
13424 (gate_ira): Remove flag_ira.
13425
13426 * regclass.c: Rename reginfo.c. Change file description.
13427 (FORBIDDEN_INC_DEC_CLASSES): Remove.
13428 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
13429 (init_reg_sets_1): Remove code for evaluation of
13430 reg_class_superclasses and losing_caller_save_reg_set.
13431 (init_regs): Remove init_reg_autoinc.
13432 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13433 ok_for_base_p_nonstrict): Remove.
13434 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
13435 (pass_regclass_init): Rename to pass_reginfo_init. Modify
13436 corresponding entries.
13437 (dump_regclass, record_operand_costs, scan_one_insn,
13438 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13439 record_address_regs, auto_inc_dec_reg_p): Remove.
13440 (gt-regclass.h): Rename to gt-reginfo.h.
13441
13442 * rtl.h (dump_global_regs, retry_global_alloc,
13443 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
13444
13445 * Makefile.in (RA_H): Remove.
13446 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13447 Rename regclass.o to reginfo.o.
13448 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13449 gt-reginfo.h.
13450 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13451 (GTFILES): Rename regclass.c to reginfo.c.
13452
13453 * passes.c (init_optimization_passes): Remove pass_local_alloc and
13454 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
13455
13456 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13457 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13458 Remove flag_ira.
13459 (finish_spills): Ditto. Remove code for !flag_ira.
13460
13461 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
13462
13463 PR middle-end/35854
13464 * doc/invoke.texi (rtl debug options): Complete rewrite.
13465 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13466 to auto_inc_dec".
13467 * mode-switching.c (pass_mode_switching): Rename pass from
13468 "mode-sw" to "mode_sw".
13469 * except.c (pass_convert_to_eh_ranges): Rename pass from
13470 "eh-ranges" to "eh_ranges".
13471 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13472 to "subreg1".
13473
13474
13475 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
13476 Alexander Monakov <amonakov@ispras.ru>
13477
13478 PR middle-end/38857
13479 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13480 register.
13481 (move_exprs_to_boundary): Change return type and pass through
13482 should_move from move_op. Relax assert. Update usage ...
13483 (schedule_expr_on_boundary): ... here. Use should_move instead of
13484 cant_move.
13485 (move_op_orig_expr_found): Indicate that insn was disconnected from
13486 stream.
13487 (code_motion_process_successors): Do not call after_merge_succs
13488 callback if original expression was not found when traversing any of
13489 the branches.
13490 (code_motion_path_driver): Change return type. Update prototype.
13491 (move_op): Update comment. Add a new parameter (should_move). Update
13492 prototype. Set *should_move based on indication provided by
13493 move_op_orig_expr_found.
13494
13495 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13496
13497 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13498 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13499 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13500 * config/rs6000/rs6000.c (rs6000_override_options): Default
13501 avoid-indexed-addresses on for Power6, off for everything else.
13502 (avoiding_indexed_address_p): New function.
13503 (rs6000_legitimize_address): Use it.
13504 (rs6000_legitimate_address): Likewise.
13505 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13506
13507 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
13508
13509 PR tree-optimization/38997
13510 * tree-loop-distribution.c (generate_memset_zero): Use
13511 POINTER_PLUS_EXPR for a pointer addition.
13512
13513 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13514
13515 * config/s390/s390.md (bswap<mode>2): New pattern added.
13516
13517 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13518
13519 * config/s390/s390.md (*tls_load_31): Added type attribute.
13520
13521 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13522
13523 * config/s390/s390.md: Fix a few comments.
13524
13525 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13526
13527 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13528 (*tm<mode>_full): Fixed z10prop attribute.
13529 (*tst<mode>_extimm): Fixed z10prop attribute.
13530 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13531 (*tstqiCCT_cconly): Fixed z10prop attribute.
13532 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13533 (*movsi_larl): Fixed z10prop attribute.
13534 (*movsi_zarch): Fixed z10prop attribute.
13535 (*movsi_eas): Fixed z10prop attribute.
13536 (*movhi): Fixed z10prop attribute.
13537 (*movqi): Fixed z10prop attribute.
13538 (*movstrictqi): Fixed z10prop attribute.
13539 (*mov<mode>): Fixed z10prop attribute.
13540 (*movcc): Fixed z10prop attribute.
13541 (*sethighpartdi_64): Fixed z10prop attribute.
13542 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13543 (*negdi2_sign_cc): Fixed z10prop attribute.
13544 (*negdi2_sign): Fixed z10prop attribute.
13545 (*absdi2_sign_cc): Fixed z10prop attribute.
13546 (*absdi2_sign): Fixed z10prop attribute.
13547 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13548 (*negabsdi2_sign): Fixed z10prop attribute.
13549 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13550 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13551 (doloop_si64): Fixed z10prop attribute.
13552 (doloop_si31): Fixed z10prop attribute.
13553 (doloop_long): Fixed z10prop attribute.
13554 (indirect_jump): Fixed z10prop attribute.
13555 (nop): Fixed z10prop attribute.
13556 (main_base_64): Fixed z10prop attribute.
13557 (reload_base_64): Fixed z10prop attribute.
13558
13559 2009-01-28 Jakub Jelinek <jakub@redhat.com>
13560
13561 PR rtl-optimization/38740
13562 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13563 if !optimize.
13564 * config/mips/mips.c (mips_reorg): Likewise.
13565
13566 2009-01-28 Richard Guenther <rguenther@suse.de>
13567
13568 PR tree-optimization/38926
13569 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13570 with the correct value id to a value.
13571 (do_regular_insertion): Use the value number of edoubleprime
13572 for the value number of the expr.
13573
13574 Revert
13575 2008-08-21 Richard Guenther <rguenther@suse.de>
13576
13577 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13578 a PHI ask VN if it is already available.
13579 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13580 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
13581
13582 2009-01-28 Jakub Jelinek <jakub@redhat.com>
13583
13584 PR middle-end/38934
13585 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13586 set to varying whenever max has TREE_OVERFLOW set, similarly
13587 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13588
13589 2009-01-28 Richard Guenther <rguenther@suse.de>
13590
13591 PR middle-end/38908
13592 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13593 uninitialized aggregate uses in call arguments.
13594
13595 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
13596
13597 PR tree-optimization/38984
13598 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13599 the nothing_id variable if -fno-delete-null-pointer-checks.
13600
13601 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
13602
13603 PR target/38988
13604 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13605 (set_got_offset_rex64): Ditto.
13606
13607 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13608
13609 PR target/38941
13610 * doc/extend.texi: Improve local variable with asm reg.
13611
13612 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13613
13614 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13615 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13616 was not supplied then set warn_packed_bitfield_compat to the
13617 default value of 1.
13618 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13619 against 1.
13620
13621 2009-01-27 Richard Guenther <rguenther@suse.de>
13622
13623 PR tree-optimization/38503
13624 * cfgexpand.c (expand_gimple_basic_block): Ignore
13625 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13626 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13627 variables that cannot have TBAA applied.
13628 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13629 statements.
13630
13631 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
13632
13633 PR middle-end/38969
13634 * calls.c (initialize_argument_information): Do not wrap complex
13635 arguments in SAVE_EXPR.
13636
13637 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13638
13639 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
13640 (INSTALL_LIBGCC): Revert typo commit.
13641
13642 2009-01-26 Richard Guenther <rguenther@suse.de>
13643
13644 PR tree-optimization/38745
13645 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13646 from special handling.
13647
13648 2009-01-26 Richard Guenther <rguenther@suse.de>
13649
13650 PR tree-optimization/38745
13651 * tree-ssa.c (execute_update_addresses_taken): Do not include
13652 variables that cannot possibly be a register in not_reg_needs.
13653 Do not clear TREE_ADDRESSABLE on vars that may not become
13654 registers.
13655 * tree-ssa.c (update_alias_info_1): Include those in the set
13656 of addressable vars.
13657
13658 2009-01-26 Richard Guenther <rguenther@suse.de>
13659
13660 PR middle-end/38851
13661 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13662 * tree-ssa-dse.c: Include langhooks.h
13663 (execute_simple_dse): Remove stores with zero size.
13664
13665 2009-01-24 Jakub Jelinek <jakub@redhat.com>
13666
13667 PR c/38957
13668 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13669 as PLUS_EXPR.
13670
13671 2009-01-24 Julian Brown <julian@codesourcery.com>
13672
13673 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13674 config/arm/linux-atomic.c.
13675 * config/arm/linux-atomic.c: New.
13676
13677 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13678
13679 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13680 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13681 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13682
13683 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13684
13685 PR c/38938
13686 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
13687 properly.
13688
13689 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13690
13691 PR tree-optimization/38953
13692 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13693 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13694 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13695 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13696 changed the CFG.
13697
13698 2009-01-24 Paul Brook <paul@codesourcery.com>
13699
13700 * config/arm/neon.md (neon_type): Move to arm.md.
13701 (neon_mov<VSTRUCT>): Add neon_type attribute.
13702 * config/arm/arm.md (neon_type): Move to here.
13703 (conds): Add "unconditioal" and use as default for NEON insns.
13704
13705 2009-01-24 Ben Elliston <bje@au.ibm.com>
13706
13707 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13708 void *' warning from -Wc++-compat.
13709 * Makefile.in (dominance.o-warn): Remove.
13710
13711 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
13712
13713 PR tree-optimization/38932
13714 * fold-const.c (fold_unary_ignore_overflow): New.
13715 * tree.h (fold_unary_ignore_overflow): Declare.
13716 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13717 * tree-ssa-sccvn.c (visit_reference_op_load,
13718 simplify_unary_expression): Likewise.
13719
13720 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13721
13722 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13723 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13724 regardless of their type.
13725 * c-common.c (handle_packed_attribute): Don't ignore packed on
13726 bitfields.
13727 * c.opt (Wpacked-bitfield-compat): New warning option.
13728 * stor-layout.c (place_field): Warn if offset of a field changed.
13729 * doc/extend.texi (packed): Mention the ABI change.
13730 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13731 (Warning Options): Add it to the list.
13732
13733 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13734
13735 * c-opts.c (c_common_post_options): Fix a typo in comments.
13736
13737 2009-01-22 Steve Ellcey <sje@cup.hp.com>
13738
13739 PR middle-end/38615
13740 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13741 variables to static.
13742 * doc/invoke.texi (-fmerge-all-constants): Update description.
13743
13744 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
13745
13746 PR target/38931
13747 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13748 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13749
13750 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
13751
13752 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13753 a word boundary.
13754 (LOCAL_ALIGNMENT): Similarly.
13755
13756 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13757 Joseph Myers <joseph@codesourcery.com>
13758
13759 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13760 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13761 * config/arm/arm-tune.md: Regenerate.
13762 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13763 -march=iwmmxt2.
13764
13765 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13766
13767 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13768 version number to five.
13769
13770 2009-01-22 Dodji Seketeli <dodji@redhat.com>
13771
13772 PR c++/38930
13773 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
13774 * c-common.c (set_underlying_type): Likewise.
13775 (is_typedef_decl ): Likewise
13776 * tree.h: Likewise
13777 (set_underlying_type): Likewise.
13778 (is_typedef_type): Likewise.
13779
13780 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13781
13782 PR middle-end/38587
13783 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13784 crossing setjmps.
13785
13786 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13787
13788 PR bootstrap/37660
13789 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13790 (LIBGCC_SPEC): Don't define.
13791 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13792
13793 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
13794
13795 PR rtl-optimization/38879
13796 * alias.c (base_alias_check): Unaligned access via AND address can
13797 alias all surrounding object types except those with sizes equal
13798 or wider than the size of unaligned access.
13799
13800 2009-01-21 Dodji Seketeli <dodji@redhat.com>
13801
13802 PR c++/26693
13803 * c-decl.c (clone_underlying_type): Move this ...
13804 * c-common.c (set_underlying_type): ... here.
13805 Also, make sure the function properly sets TYPE_STUB_DECL() on
13806 the newly created typedef variant type.
13807 (is_typedef_decl ): New entry point.
13808 * tree.h: Added a new member member_types_needing_access_check to
13809 struct tree_decl_non_common.
13810 (set_underlying_type): New entry point.
13811 (is_typedef_type): Likewise.
13812
13813 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
13814
13815 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13816 Check whether two instructions have memory references that
13817 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13818 are helper functions for traversing.
13819 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13820 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13821 not to draw dependency edge for instructions with non-conflicting
13822 alias sets.
13823
13824 2009-01-20 Joseph Myers <joseph@codesourcery.com>
13825
13826 PR other/38758
13827 * longlong.h: Update copyright years. Use soft-fp license notice.
13828 Sync __clz_tab declaration with glibc.
13829
13830 2009-01-20 Steve Ellcey <sje@cup.hp.com>
13831
13832 PR target/30687
13833 * doc/extend.texi (syscall_linkage): New.
13834 (version_id): Modify.
13835
13836 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
13837 Richard Guenther <rguenther@suse.de>
13838
13839 PR tree-optimization/38747
13840 PR tree-optimization/38748
13841 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13842 conversion if the base address is an indirect reference and the
13843 aliasing sets could cause issues.
13844
13845 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13846
13847 * common.opt (fgraphite, fgraphite-identity): Add comment for
13848 explaining why these options are not documented.
13849
13850 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13851
13852 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13853 gimple_call_lhs is NULL.
13854
13855 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
13856
13857 PR target/38868
13858 * emit-rtl.c (adjust_address_1): Make sure memref is never
13859 overwritten.
13860
13861 2009-01-20 Ben Elliston <bje@au.ibm.com>
13862
13863 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13864 const qualifier from arg parameter. Remove unnecessary cast to char *.
13865 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13866 const qualifier from arg 2.
13867
13868 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13869
13870 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
13871
13872 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13873
13874 PR c/38869
13875 * rtl.h (reinit_regs): New prototype.
13876 * regclass.c: Include ira.h.
13877 (reinit_regs): New.
13878 * Makefile.in (regclass.o): Add ira.h.
13879 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13880
13881 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13882
13883 PR target/38736
13884 * c-common.c (handle_aligned_attribute): Use
13885 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13886 default alignment value.
13887
13888 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13889
13890 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13891 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13892
13893 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13894 __BIGGEST_ALIGNMENT__.
13895
13896 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13897
13898 2009-01-18 Richard Guenther <rguenther@suse.de>
13899
13900 PR tree-optimization/38819
13901 * tree-flow.h (operation_could_trap_helper_p): Declare.
13902 * tree-eh.c (operation_could_trap_helper_p): Export.
13903 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13904 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13905 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13906 are about to insert a possibly trapping instruction and fail
13907 in this case.
13908
13909 2009-01-18 Andreas Schwab <schwab@suse.de>
13910
13911 * doc/install.texi (Configuration): Remove obsolete paragraph
13912 about use of --with-gnu-ld with --with-gnu-as.
13913
13914 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
13915
13916 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13917 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13918 Follow spelling conventions.
13919
13920 2009-01-18 Ben Elliston <bje@au.ibm.com>
13921
13922 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13923 C++ warning about implicit conversion from void * to struct
13924 bitmap_head_def *.
13925 (bitmap_obstack_free): Likewise for bitmap_element *.
13926 * Makefile.in (bitmap.o-warn): Remove.
13927
13928 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13929
13930 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13931
13932 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13933 Tobias Grosser <tobi.grosser@amd.com>
13934
13935 * graphite.c (graphite_trans_scop_block): Do not block single
13936 nested loops.
13937
13938 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
13939
13940 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13941 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13942 test with assertion.
13943
13944 2009-01-16 Richard Guenther <rguenther@suse.de>
13945
13946 PR tree-optimization/38835
13947 PR middle-end/36227
13948 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13949 and INT + PTR -> (INT)(PTR p+ INT) folding.
13950 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13951
13952 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13953
13954 PR target/38554
13955 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13956 the subreg from a lowpart subreg if it is also casting the value.
13957
13958 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13959 Tobias Grosser <tobi.grosser@amd.com>
13960
13961 * graphite.c (compare_prefix_loops): New.
13962 (build_scop_canonical_schedules): Rewritten.
13963 (graphite_transform_loops): Move build_scop_canonical_schedules
13964 after build_scop_iteration_domain.
13965
13966 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13967 Tobias Grosser <tobi.grosser@amd.com>
13968
13969 * graphite.c (add_conditions_to_domain): Add the loops to
13970 the dimension of the iteration domain. Do copy the domain
13971 only when it exists.
13972 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13973 (add_conditions_to_constraints): New.
13974 (can_generate_code_stmt, can_generate_code): Removed.
13975 (gloog): Do not call can_generate_code.
13976 (graphite_transform_loops): Call add_conditions_to_constraints
13977 after building the iteration domain.
13978
13979 2009-01-16 Jakub Jelinek <jakub@redhat.com>
13980
13981 PR tree-optimization/38789
13982 * tree-ssa-threadedge.c
13983 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13984 __builtin_constant_p.
13985
13986 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
13987
13988 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13989 examined before deleting them.
13990
13991 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
13992
13993 * function.c (aggregate_value_p): Correctly extract the function
13994 type from CALL_EXPR_FN lookup.
13995
13996 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13997
13998 * config/picochip/picochip.c (picochip_override_options): Revert
13999 CFI asm flag disable commited previously.
14000
14001 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14002 Tobias Grosser <tobi.grosser@amd.com>
14003 Jan Sjodin <jan.sjodin@amd.com>
14004
14005 * graphite.c (scan_tree_for_params): On substractions negate
14006 all the coefficients of the term.
14007 (clast_to_gcc_expression_red): New. Handle reduction expressions
14008 of more than two operands.
14009 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14010 (get_vdef_before_scop): Handle also the case of default definitions.
14011
14012 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14013
14014 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14015 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14016 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14017
14018 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14019 Joey Ye <joey.ye@intel.com>
14020
14021 PR middle-end/37843
14022 * cfgexpand.c (expand_stack_alignment): Don't update stack
14023 boundary nor check incoming stack boundary here.
14024 (gimple_expand_cfg): Update stack boundary and check incoming
14025 stack boundary here.
14026
14027 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
14028
14029 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
14030
14031 2009-01-14 Jakub Jelinek <jakub@redhat.com>
14032
14033 PR rtl-optimization/38245
14034 * calls.c (expand_call): Add stack arguments to
14035 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14036 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14037 in regs and partially in memory or BLKmode arguments.
14038 (emit_library_call_value_1): Add stack arguments to
14039 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14040 ACCUMULATE_OUTGOING_ARGS).
14041 * dce.c: Include tm_p.h.
14042 (find_call_stack_args): New function.
14043 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14044 argument.
14045 (mark_insn): Call find_call_stack_args for CALL_Ps.
14046 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14047 forwards. Allocate and free arg_stores bitmap if needed, pass it
14048 down to deletable_insn_p, don't mark stores set in arg_stores
14049 bitmap, clear the bitmap at the beginning of each bb.
14050 * Makefile.in (dce.o): Depend on $(TM_P_H).
14051
14052 2009-01-14 Michael Meissner <gnu@the-meissners.org>
14053
14054 PR target/22599
14055 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14056 to make sure the insn is a conditional test (bug 22599). Reformat a
14057 few long lines.
14058
14059 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14060
14061 PR middle-end/38431
14062 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14063 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14064 (gloog): Do not call cleanup_tree_cfg.
14065 (graphite_transform_loops): Call cleanup_tree_cfg after all
14066 scops have been code generated.
14067
14068 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14069 * doc/gty.texi (Invoking the garbage collector): Added new node
14070 and section documenting ggc_collect.
14071
14072 2009-01-14 Richard Guenther <rguenther@suse.de>
14073
14074 PR tree-optimization/38826
14075 PR middle-end/38477
14076 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14077 initialization notes only if we actually emitted a warning.
14078 (intra_create_variable_infos): Add constraints for a result decl
14079 that is passed by hidden reference.
14080 (build_pred_graph): Mark all related variables non-direct on
14081 address-taking.
14082
14083 2009-01-14 Nick Clifton <nickc@redhat.com>
14084
14085 * ira-conflicts.c: Include addresses.h for the definition of
14086 base_reg_class.
14087 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14088 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
14089
14090 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14091
14092 PR target/38811
14093 * Makefile.in (ira-lives.o): Add except.h.
14094
14095 * ira-lives.c: Include except.h.
14096 (process_bb_node_lives): Process can_throw_internal.
14097
14098 2009-01-13 Jakub Jelinek <jakub@redhat.com>
14099
14100 PR rtl-optimization/38774
14101 * combine.c (simplify_set): When undoing cc_use change, don't do
14102 PUT_CODE on the newly created comparison, but instead put back the
14103 old comparison.
14104
14105 2009-01-13 Joseph Myers <joseph@codesourcery.com>
14106
14107 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14108 values. Remove duplicate arm8 entry.
14109
14110 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14111
14112 PR tree-optimization/38786
14113 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14114 the SSA_NAME case of expand_scalar_variables_expr.
14115 Set the type of an expression to the type of its assign statement.
14116 (expand_scalar_variables_expr): Also gather the scalar computation
14117 used to index the memory access. Do not pass loop_p.
14118 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14119 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
14120 the gimple_stmt_iterator where it inserts new code.
14121 Do not pass loop_p.
14122 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14123 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14124
14125 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14126
14127 * graphite.h (debug_value): Removed.
14128 * graphite.c (debug_value): Removed.
14129
14130 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
14131
14132 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14133 ldrd/strd with two 32-bit instructions.
14134
14135 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
14136
14137 * config/arm/arm.c (struct processors): Pass for speed down into
14138 cost helper functions.
14139 (const_ok_for_op): Handle COMPARE and inequality nodes.
14140 (arm_rtx_costs_1): Rewrite.
14141 (arm_size_rtx_costs): Update prototype.
14142 (arm_rtx_costs): Pass speed down to helper functions.
14143 (arm_slowmul_rtx_costs): Rework cost calculations.
14144 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14145 (arm_9e_rtx_costs): Likewise.
14146
14147 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
14148
14149 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
14150 relocations of local symbols wider than UNITS_PER_WORD are not valid.
14151 (alpha_legitimize_address): Do not split local symbols wider than
14152 UNITS_PER_WORD into HIGH/LO_SUM parts.
14153
14154 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14155
14156 PR bootstrap/38580
14157 * gcc.c (process_command): Replace call to execvp with calls
14158 to pex_one and exit.
14159
14160 2009-01-03 Anatoly Sokolov <aesok@post.ru>
14161
14162 PR target/29141
14163 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14164 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14165 variant for devices with 3-byte PC.
14166 (__tablejump_elpm__): New.
14167
14168 2009-01-12 Jakub Jelinek <jakub@redhat.com>
14169
14170 PR c/32041
14171 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14172 offsetof member-designator, handle it as `[0].'.
14173
14174 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14175
14176 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14177 function when not using named sections on targets with named sections
14178 if branch distance is less than 262132.
14179
14180 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
14181
14182 * combine.c (combine_instructions): Recompute
14183 optimize_this_for_speed_p for each BB in the main combine loop.
14184
14185 2009-01-12 Tomas Bily <tbily@suse.cz>
14186
14187 PR middlend/38385
14188 * tree-loop-distribution.c (prop_phis): New function.
14189 (generate_builtin): Call prop_phis.
14190 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
14191
14192 2009-01-12 Jakub Jelinek <jakub@redhat.com>
14193
14194 PR tree-optimization/38807
14195 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14196 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14197
14198 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14199
14200 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14201 subreg of op0 to the original op0.
14202
14203 2009-01-11 Laurent GUERBY <laurent@guerby.net>
14204
14205 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
14206
14207 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14208
14209 PR debug/7055
14210 * mips-tfile.c (parse_def): Fix parsing of def strings
14211 starting with digits.
14212
14213 2009-01-10 Jakub Jelinek <jakub@redhat.com>
14214
14215 PR target/38695
14216 * config/arm/arm.c (arm_is_long_call_p): Don't call
14217 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14218
14219 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14220
14221 * regrename.c (regrename_optimize): Fix dumping.
14222 (find_oldest_value_reg): Preserve REG_POINTER.
14223 (copy_hardreg_forward_1): Likewise.
14224
14225 2009-01-09 Diego Novillo <dnovillo@google.com>
14226
14227 * gimple.h (struct gimple_statement_base) <uid>: Document
14228 the restrictions on its use.
14229 (gimple_uid): Tidy.
14230 (gimple_set_uid): Tidy.
14231
14232 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14233
14234 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14235 zero guard even if align_bytes != 0 and count is smaller than
14236 size_needed.
14237
14238 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
14239
14240 PR rtl-optimization/38495
14241 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
14242 (add_range_and_copies_from_move_list): Print all added ranges.
14243 Add ranges to memory optimized destination.
14244
14245 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14246
14247 PR target/38686
14248 PR target/38708
14249 * config/i386/i386.c (override_options): Reject
14250 -mstringop-strategy=rep_8byte with -m32.
14251 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14252 to 1. Do count comparison against epilogue_size_needed at compile
14253 time even when count_exp was constant forced into register. For
14254 size_needed don't jump to epilogue, instead just avoid aligning
14255 and invoke the body algorithm. If need_zero_guard, add zero guard
14256 even if count is non-zero, but smaller than size_needed + number of
14257 bytes that could be stored for alignment.
14258 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14259 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14260 but smaller than size_needed + number of bytes that could be stored
14261 for alignment. Compare size_needed with epilogue_size_needed instead
14262 of desired_align - align, don't adjust size_needed, pass
14263 epilogue_size_needed to the epilogue expanders.
14264
14265 PR c/35742
14266 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
14267
14268 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14269
14270 * pa.c (last_address): Change to unsigned.
14271 (update_total_code_bytes): Change argument to unsigned. Don't
14272 check if insn addresses are set.
14273 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14274 addresses are not set.
14275 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14276
14277 2009-01-09 Nick Clifton <nickc@redhat.com>
14278
14279 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14280 DECL_DECLARED_INLINE_P.
14281
14282 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14283
14284 PR middle-end/38347
14285 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14286 GET_MODE (op0) in operand_subword_force calls.
14287
14288 PR middle-end/38771
14289 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14290 fold_convert arg0 operands to TREE_TYPE (op0) first.
14291
14292 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14293
14294 * params.def (ira-max-conflict-table-size): Decrease default value
14295 to 1000.
14296
14297 2009-01-08 Jakub Jelinek <jakub@redhat.com>
14298
14299 PR tree-optimization/37031
14300 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14301 on parameter_set.
14302 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14303 allocate it using gc instead of heap, use VEC_quick_push instead of
14304 VEC_safe_push.
14305 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14306 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14307 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14308 allocated vector from heap allocated.
14309 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14310 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14311 vector only after perfect_loop_nest_depth call.
14312
14313 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14314 Jan Sjodin <jan.sjodin@amd.com>
14315
14316 PR tree-optimization/38559
14317 * graphite.c (debug_value, copy_constraint,
14318 swap_constraint_variables, scale_constraint_variable, ): New.
14319 (get_lower_bound, get_upper_bound): Removed.
14320 (graphite_trans_bb_strip_mine): Clean up this code that works
14321 only for constant number of iterations. Fully copy upper and
14322 lower bound constraints, not only the constant part of them.
14323 * graphite.h (debug_value): Declared.
14324
14325 2009-01-08 Ira Rosen <irar@il.ibm.com>
14326
14327 PR tree-optimization/37194
14328 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
14329 Don't add the cost of cost model guard in prologue to scalar
14330 outside cost in case of known number of iterations.
14331
14332 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
14333 Alan Modra <amodra@bigpond.net.au>
14334
14335 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14336 non-word-aligned REG+CONST addressing.
14337
14338 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
14339
14340 PR target/38706
14341 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14342 free_after_compilation when outputting a thunk.
14343 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14344 Do not call free_after_compilation here.
14345
14346 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
14347
14348 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
14349 (ix86_valid_target_attribute_inner_p): Ditto.
14350
14351 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14352
14353 PR tree-optimization/38492
14354 PR tree-optimization/38498
14355 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14356 * tree-chrec.h (scev_is_linear_expression): Declared.
14357 * graphite.c (graphite_cannot_represent_loop_niter): New.
14358 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14359 (graphite_loop_normal_form): Use gcc_assert.
14360 (scan_tree_for_params): Use CASE_CONVERT.
14361 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14362 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14363 Use gcc_assert. Discard scops that contain unhandled cases.
14364 (build_scop_conditions): Return a boolean status for unhandled cases.
14365 (strip_mine_profitable_p): Print the loop number, not its depth.
14366 (is_interchange_valid): Pass the depth of the loop nest, don't
14367 recompute it wrongly.
14368 (graphite_trans_bb_block): Same.
14369 (graphite_trans_bb_block): Print tentative of loop blocking.
14370 (graphite_trans_scop_block): Do not print that the loop has been
14371 blocked.
14372 (graphite_transform_loops): Do not handle scops that contain condition
14373 scalar phi nodes.
14374
14375 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14376
14377 AVX Programming Reference (December, 2008)
14378 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14379 (_mm256_stream_pd): Likewise.
14380 (_mm256_stream_ps): Likewise.
14381
14382 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14383 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14384 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14385 (bdesc_special_args): Add __builtin_ia32_movntdq256,
14386 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14387 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14388 (ix86_expand_special_args_builtin): Likewise.
14389
14390 * config/i386/sse.md (AVXMODEDI): New.
14391 (avx_movnt<mode>): Likewise.
14392 (avx_movnt<mode>): Likewise.
14393 (<sse>_movnt<mode>): Remove AVX support.
14394 (sse2_movntv2di): Likewise.
14395
14396 2009-01-07 Richard Guenther <rguenther@suse.de>
14397
14398 PR middle-end/38751
14399 * fold-const.c (extract_muldiv): Remove obsolete comment.
14400 (fold_plusminus_mult_expr): Undo MINUS_EXPR
14401 to PLUS_EXPR canonicalization for the canonicalization.
14402
14403 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
14404
14405 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14406 hosted cross-compilers generating less efficient code.
14407
14408 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14409
14410 * function.h (rtl_data): Add a dbr_scheduled_p field.
14411 * reorg.c (dbr_schedule): Set it.
14412 (gate_handle_delay_slots): Check it.
14413 * config/mips/mips.c (mips_base_delayed_branch): Delete.
14414 (mips_reorg): Check flag_delayed_branch instead of
14415 mips_base_delayed_branch.
14416 (mips_override_options): Don't set mips_base_delayed_branch
14417 or flag_delayed_branch.
14418
14419 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14420
14421 PR rtl-optimization/38426.
14422 * ira.c (ira): Set current_function_is_leaf earlier.
14423
14424 2009-01-06 Jakub Jelinek <jakub@redhat.com>
14425
14426 PR rtl-optimization/38722
14427 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14428 too early, only set a flag and modify after last possible
14429 undo_all point.
14430
14431 2009-01-06 Janis Johnson <janis187@us.ibm.com>
14432
14433 PR c/34252
14434 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14435 * real.c (decimal_single_format): Correct values of emin and emax.
14436 (decimal_double_format): Ditto.
14437 (decimal_quad_format): Ditto.
14438 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14439 computation of DECnn_MIN and DECnn_MAX for corrected values of
14440 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
14441 __DECnn_MIN__, and adjust its computation for the corrected value
14442 of emin.
14443
14444 2009-01-06 Jan Hubicka <jh@suse.cz>
14445
14446 PR target/38744
14447 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
14448
14449 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14450
14451 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14452 Add Robert Clark to the list of testers.
14453
14454 2009-01-06 Jan Hubicka <jh@suse.cz>
14455 Kai Tietz <kai.tietz@onevision.com>
14456
14457 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14458 * config/i386/i386.c (ix86_expand_call): Add clobbers.
14459
14460 2009-01-06 Jan Hubicka <jh@suse.cz>
14461 Kai Tietz <kai.tietz@onevision.com>
14462
14463 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14464 for w64 ABI.
14465 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
14466 (ix86_nsaved_regs): Count only general purpose regs.
14467 (ix86_nsaved_sseregs): New.
14468 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14469 to 16 for w64; compute padding and size of sse reg save area.
14470 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14471 general purpose regs.
14472 (ix86_emit_save_sse_regs_using_mov): New.
14473 (ix86_expand_prologue): Save SSE regs if needed.
14474 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14475 (ix86_emit_restore_sse_regs_using_mov): New.
14476 (ix86_expand_epilogue): Save SSE regs if needed.
14477
14478 2009-01-06 Jan Hubicka <jh@suse.cz>
14479 Kai Tietz <kai.tietz@onevision.com>
14480
14481 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14482 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14483 functions when accumulate outgoing args is off.
14484
14485 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14486
14487 PR bootstrap/38742
14488 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14489 before using pseudos_have_intersected_live_ranges_p.
14490
14491 * ira-int.h (ira_assert): Always define.
14492
14493 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14494
14495 AVX Programming Reference (December, 2008)
14496 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14497 (_mm256_permute2_pd): Likewise.
14498 (_mm_permute2_ps): Likewise.
14499 (_mm256_permute2_ps): Likewise.
14500 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14501 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14502
14503 * config/i386/i386.c (ix86_builtins): Remove
14504 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14505 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14506 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14507 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14508 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14509 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14510 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14511 __builtin_ia32_vpermil2ps256.
14512 (ix86_init_mmx_sse_builtins): Updated.
14513 (ix86_expand_args_builtin): Likewise.
14514
14515 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14516
14517 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14518 long absolute calls when generating PA 2.0 code.
14519
14520 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14521
14522 PR rtl-optimization/38583
14523 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14524
14525 * params.def (ira-max-conflict-table-size): New.
14526
14527 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
14528
14529 * ira.h (ira_conflicts_p): New external definition.
14530
14531 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14532 table. Report this. Return result of building.
14533 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14534 building conflict table.
14535
14536 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
14537 (ira_color): Use ira_conflicts_p.
14538
14539 * global.c: Include ira.h.
14540 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14541 ira_conflicts_p.
14542
14543 * Makefile.in (global.o): Add ira.h.
14544
14545 * ira-build.c (mark_all_loops_for_removal,
14546 propagate_some_info_from_allocno): New.
14547 (remove_unnecessary_allocnos): Call
14548 propagate_some_info_from_allocno.
14549 (remove_low_level_allocnos): New.
14550 (remove_unnecessary_regions): Add parameter. Call
14551 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14552 parameter to remove_unnecessary_regions.
14553 (ira_build): Remove all regions but root if the conflict table was
14554 not built. Update conflict hard regs for allocnos crossing calls.
14555
14556 * ira.c (ira_conflicts_p): New global.
14557 (ira): Define and use ira_conflicts_p.
14558
14559 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14560 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
14561 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
14562
14563 2009-01-06 Ben Elliston <bje@au.ibm.com>
14564
14565 * gengtype-lex.l (YY_NO_INPUT): Define.
14566
14567 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14568
14569 PR c/34911
14570 * c-common.c (handle_vector_size_attribute): Also reject
14571 BOOLEAN_TYPE types.
14572
14573 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14574
14575 PR tree-optimization/38492
14576 * graphite.c (rename_map_elt, debug_rename_elt,
14577 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14578 rename_map_elt_info, eq_rename_map_elts,
14579 get_new_name_from_old_name, bb_in_sese_p): Moved around.
14580 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14581 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14582 (sese_build_livein_liveouts): New.
14583 (new_sese, free_sese): New.
14584 (new_scop): Call new_sese.
14585 (free_scop): Call free_sese.
14586 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14587 (register_old_new_names): Renamed register_old_and_new_names.
14588 (register_scop_liveout_renames, add_loop_exit_phis,
14589 insert_loop_close_phis, struct igp,
14590 default_liveout_before_guard, add_guard_exit_phis,
14591 insert_guard_phis, copy_renames): New.
14592 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14593 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14594 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14595 (scop_adjust_phis_for_liveouts): New.
14596 (gloog): Call scop_adjust_phis_for_liveouts.
14597
14598 * graphite.h (struct sese): Documented. Added fields liveout,
14599 num_ver and livein.
14600 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14601 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14602 (struct scop): Added field liveout_renames.
14603 (SCOP_LIVEOUT_RENAMES): New.
14604
14605 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14606
14607 PR tree-optimization/38510
14608 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14609 (translate_clast): Call recompute_all_dominators before
14610 graphite_verify.
14611 (gloog): Call recompute_all_dominators before graphite_verify.
14612
14613 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14614 Jan Sjodin <jan.sjodin@amd.com>
14615
14616 PR tree-optimization/38500
14617 * graphite.c (create_sese_edges): Call fix_loop_structure after
14618 splitting blocks.
14619
14620 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
14621
14622 * config.gcc: Add m32r*-*-rtems*.
14623 * config/m32r/rtems.h: New file.
14624
14625 2009-01-05 Ben Elliston <bje@au.ibm.com>
14626
14627 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14628 (.po.pox): Likewise.
14629 (po/gcc.pot): Likewise.
14630
14631 2009-01-04 David S. Miller <davem@davemloft.net>
14632
14633 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14634 (STARTING_FRAME_OFFSET): Always set to zero.
14635
14636 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14637
14638 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14639 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14640 fixed-point types, and vectors of the same.
14641
14642 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14643
14644 * config/mips/sync.md (*mb_barrier): Rename to...
14645 (*memory_barrier): ...this.
14646
14647 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14648
14649 * doc/extend.texi (Function Attributes): Move @cindex after @item
14650 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
14651 and put in alphabetical order. Fix 'target' name and put in order.
14652 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14653 typos.
14654
14655 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
14656
14657 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14658 (memory_barrier): Expand as unspec instead of unspec_volatile.
14659 Remove mem:BLK from insn operands. Use Pmode scratch register.
14660 (*memory_barrier): Define as unspec instead of unspec_volatile.
14661 Use (match_dup 0) as input operand.
14662
14663 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14664 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14665 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14666 scratch register. Remove operand 1.
14667 (*stbar): Define as unspec instead of unspec_volatile.
14668 Use (match_dup 0) as input operand, remove (const_int 8).
14669 (*membar): Define as unspec instead of unspec_volatile.
14670 Use (match_dup 0) as input operand, remove input operand 2.
14671
14672 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14673 (memory_barrier): Expand as unspec instead of unspec_volatile.
14674 Remove mem:BLK from insn operands. Use Pmode scratch register.
14675 (*memory_barrier): Define as unspec instead of unspec_volatile.
14676 Use (match_dup 0) as input operand.
14677
14678 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14679 Remove mem:BLK from insn operands. Use Pmode scratch register.
14680 Set volatile flag on operand 0.
14681 (*memory_barrier): New insn pattern.
14682
14683 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14684 insn operands.
14685 (*memory_barrier): Use (match_dup 0) as input operand.
14686
14687 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14688 Remove mem:BLK from insn operands. Use Pmode scratch register.
14689 Set volatile flag on operand 0.
14690 (*mb_internal): New insn pattern.
14691
14692 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14693
14694 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14695
14696 PR middle-end/38586
14697 * function.c (struct temp_slot): Move to the section of the file
14698 that deals with temp slots. Remove field 'address'.
14699 (temp_slot_address_table): New hash table of address -> temp slot.
14700 (struct temp_slot_address_entry): New struct, items for the table.
14701 (temp_slot_address_compute_hash, temp_slot_address_hash,
14702 temp_slot_address_eq, insert_temp_slot_address): Support functions
14703 for the new table.
14704 (find_temp_slot_from_address): Rewrite to use the new hash table.
14705 (remove_unused_temp_slot_addresses): Remove addresses of temp
14706 slots that have been made available.
14707 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14708 worker function for remove_unused_temp_slot_addresses.
14709 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14710 Add the temp slot address to the address -> temp slot map.
14711 (update_temp_slot_address): Update via insert_temp_slot_address.
14712 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14713 (pop_temp_slots): Likewise.
14714 (init_temp_slots): Allocate the address -> temp slot map, or empty
14715 the map if it is already allocated.
14716 (prepare_function_start): Initialize temp slot processing.
14717
14718 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14719
14720 PR middle-end/38584
14721 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14722 Calculate the size of all stack vars assuming no packing of stack
14723 vars will happen, replacing a quadratic algorithm with a linear one.
14724
14725 2009-01-03 Jakub Jelinek <jakub@redhat.com>
14726
14727 PR target/38707
14728 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14729 can't be used.
14730
14731 2009-01-03 Diego Novillo <dnovillo@google.com>
14732
14733 * doc/contrib.texi: Update contributions.
14734
14735 2009-01-03 Jakub Jelinek <jakub@redhat.com>
14736
14737 PR c++/38705
14738 * builtins.c (fold_builtin_memory_op): Give up if either operand
14739 is volatile. Set srctype or desttype to non-qualified version
14740 of the other type.
14741
14742 PR c/38700
14743 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14744 and FUNCTION_DECLs.
14745
14746 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
14747
14748 PR rtl-optimization/35805
14749 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14750 problem if fast dce is able to remove any instructions.
14751 * dce.c (dce_process_block): Fix dump message.
14752
14753 2009-01-02 Mark Mitchell <mark@codesourcery.com>
14754
14755 PR 33649
14756 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14757
14758 2009-01-02 Jakub Jelinek <jakub@redhat.com>
14759
14760 PR middle-end/38690
14761 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14762 * tree-pretty-print.c (op_code_prio): New function.
14763 (op_prio): No longer static. Use op_code_prio.
14764 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14765 Use op_prio and op_code_prio to determine if () should be
14766 printed around operand(s) or not.
14767
14768 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14769 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14770 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14771 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14772 pp_character instead of pp_string for single letter printing.
14773
14774 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14775
14776 * doc/extend.texi: Fix '#pragma GCC option' typo.
14777
14778 2009-01-02 Richard Guenther <rguenther@suse.de>
14779
14780 * doc/install.texi (--enable-checking): Mention different
14781 default for stage1.
14782 (--enable-stage1-checking): Document.
14783
14784 2009-01-01 Andrew Pinski <pinskia@gmail.com>
14785
14786 PR middle-end/30142
14787 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14788 case to be an error.
14789
14790 2009-01-02 Ben Elliston <bje@au.ibm.com>
14791
14792 * config/fp-bit.h (pack_d): Constify argument.
14793 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14794 (isnan): Constify argument.
14795 (isinf): Likewise.
14796 (iszero): Likewise.
14797 (pack_d): Likewise.
14798 (_fpadd_parts): Constify return type.
14799 (_fpmul_parts): Likewise.
14800 (_fpdiv_parts): Likewise.
14801
14802 2009-01-01 Jakub Jelinek <jakub@redhat.com>
14803
14804 PR c/36489
14805 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14806 warn about overwriting initializer with side-effects or
14807 -Woverride-init if !IMPLICIT.
14808 (output_init_element): Likewise. Pass IMPLICIT down to
14809 add_pending_init.
14810 (process_init_element): Add IMPLICIT argument. Pass it down
14811 to output_init_element.
14812 (push_init_element, pop_init_level, set_designator): Adjust
14813 process_init_element callers.
14814 (set_nonincremental_init, set_nonincremental_init_from_string):
14815 Adjust add_pending_init callers.
14816 (output_pending_init_elements): Adjust output_init_element callers.
14817 * c-tree.h (process_init_element): Adjust prototype.
14818 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14819 process_init_element callers.
14820
14821 \f
14822 Copyright (C) 2009 Free Software Foundation, Inc.
14823
14824 Copying and distribution of this file, with or without modification,
14825 are permitted in any medium without royalty provided the copyright
14826 notice and this notice are preserved.