Cleanups after the update to Autoconf 2.64, Automake 1.11.
[gcc.git] / gcc / ChangeLog
1 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2
3 * configure.ac: Remove --with-datarootdir, --with-docdir,
4 --with-htmldir switches. No need to call AC_SUBST for
5 datarootdir, docdir, htmldir any more.
6 * configure: Regenerate.
7 * doc/install.texi (Configuration): Document --datarootdir,
8 --docdir, --htmldir, --pdfdir; update documentation for
9 --infodir, --mandir.
10 (Prerequisites): Bump Autoconf version to 2.64, Automake to
11 1.11, M4 to 1.4.6.
12
13 * aclocal.m4: Regenerate.
14 * config.in: Regenerate.
15 * configure: Regenerate.
16
17 2009-08-21 Douglas B Rupp <rupp@gnat.com>
18 Olivier Hainque <hainque@adacore.com>
19
20 * config/ia64/ia64.c: Include libfuncs.h.
21 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
22 (ia64_expand_call): Use reg 25 on VMS.
23 (ia64_initialize_trampoline): Fix for VMS ABI.
24 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
25 (ia64_function_arg): Initialize reg 25 on VMS.
26 Fix OpenVMS ABI issues for varargs.
27 For OpenVMS, emit the Argument Information register set in the
28 incoming/sibcall case as well.
29 (ia64_arg_type): New function.
30 (ia64_function_arg_advance): Keep track of cum->words.
31 Fix OpenVMS ABI issues for varargs.
32 (ia64_function_value): On VMS, promote mode of non-aggregate types.
33 (ia64_override_options): Set flag_no_common on VMS.
34 (ia64_init_builtins): Disable FWRITE builtin.
35 (ia64_asm_output_external): Call DO_CRTL_NAMES.
36 (ia64_vms_init_libfuncs): Add decc$ routines.
37 (ia64_vms_valid_pointer_mode): New function.
38 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
39 (ia64_promote_function_mode): New function
40 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
41 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
42 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
43 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
44 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
45 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
46 Suppress trailing '#' if VALUE is numeric.
47 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
48 ia64_promote_function_mode.
49 (TARGET_VALID_POINTER_MODE): Define.
50
51 2009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
52
53 PR target/40671
54 * config/rs6000/rs6000.c (rs6000_override_options): Use
55 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of
56 pointers.
57
58 PR target/41145
59 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
60 reporting of vector + decimal/boolean/complex error.
61
62 2009-08-21 Jakub Jelinek <jakub@redhat.com>
63
64 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
65 __vector double TYPE_DECL.
66
67 2009-08-21 Richard Earnshaw <rearnsha@arm.com>
68
69 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
70 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
71 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
72 to pointer to enum machine_mode. Update all callers as needed.
73
74 2009-08-21 Uros Bizjak <ubizjak@gmail.com>
75
76 * config/alpha/alpha.md (exception_receiver): Emit alternative
77 GP load sequence if flag_reorder_blocks_and_partition is set.
78 (*exception_receiver_2): Also enable when
79 flag_reorder_blocks_and_partition is set.
80
81 2009-08-20 Matt Rice <ratmice@gmail.com>
82 Diego Novillo <dnovillo@google.com>
83
84 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
85 tree-ssa-sccvn.h.
86
87 2009-08-20 Richard Guenther <rguenther@suse.de>
88
89 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not
90 define.
91 * c-tree.h (c_dup_lang_specific_decl): Remove.
92 (struct lang_decl, struct lang_type): Move definitions ...
93 * c-lang.h: ... here. New file.
94 * c-decl.c: Include c-lang.h.
95 (c_dup_lang_specific_decl): Remove.
96 * c-typeck.c: Include c-lang.h.
97 * Makefile.in (c-decl.o): Add c-lang.h dependency.
98 (c-typeck.o): Likewise.
99 * c-config-lang.in (gtfiles): Add c-lang.h.
100 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
101 like c-tree.h.
102
103 2009-08-20 Uros Bizjak <ubizjak@gmail.com>
104
105 * config/alpha/alpha.c (alpha_end_function): Do not clear
106 crtl->emit structure and free insn locators if cfun->is_thunk is true,
107 this is now handled in generic code.
108
109 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
110
111 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
112 (s390_z10_fix_long_loop_prediction): New function.
113 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
114 (s390_reorg): Walk over the INSNs and invoke
115 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
116
117 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
118
119 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
120 "*brx_64bit", "*brx_31bit"): New patterns.
121 * config/s390/s390.c ('E'): New output modifier.
122
123 2009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
124 Richard Earnshaw <richard.earnshaw@arm.com>
125
126 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
127 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
128
129 2009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
130
131 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
132 patterns.
133 * pa.c (emit_move_sequence): Check if address of operand1 is valid
134 for mode mode of operand0 when doing secondary reload for SAR.
135
136 2009-08-19 Jakub Jelinek <jakub@redhat.com>
137
138 PR middle-end/41123
139 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
140 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
141
142 2009-08-19 Jason Merrill <jason@redhat.com>
143
144 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
145 supported template depth in C++0x.
146
147 2009-08-19 Jakub Jelinek <jakub@redhat.com>
148
149 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
150 free_after_compilation.
151 * config/score/score7.c (score7_output_mi_thunk): Likewise.
152 * config/score/score3.c (score3_output_mi_thunk): Likewise.
153 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
154 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
155 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
156 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
157 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
158
159 2009-08-19 Ian Lance Taylor <iant@google.com>
160
161 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
162 of (plus (mult (neg B) C) A).
163
164 2009-08-18 Michael Matz <matz@suse.de>
165
166 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
167 instead of comparing TYPE_MAIN_VARIANT for equality.
168 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
169 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
170 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
171 * gimplify.c (goa_lhs_expr_p): Ditto and use
172 STRIP_USELESS_TYPE_CONVERSION.
173
174 2009-08-18 Michael Matz <matz@suse.de>
175
176 * tree-ssa-structalias.c (create_variable_info_for): Also mark
177 first field in a struct.
178 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
179
180 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
181
182 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
183 locators before emit_insn is called. Remove assert that
184 cfun->is_thunk.
185 (alpha_end_function): Clear crtl->emit structure and free insn
186 locators if cfun->is_thunk is true.
187
188 2009-08-18 Jason Merrill <jason@redhat.com>
189
190 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
191 type if available.
192 * configure.ac: Test for it.
193 * configure, config.in: Regenerate.
194 * doc/install.texi: Document --enable-gnu-unique-object.
195
196 2009-08-18 Richard Guenther <rguenther@suse.de>
197
198 PR middle-end/41094
199 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
200 pow(x,y*z) only if x is nonnegative.
201
202 2009-08-18 Jakub Jelinek <jakub@redhat.com>
203
204 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
205 on jumps.
206
207 PR target/40971
208 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
209 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
210
211 2009-08-17 DJ Delorie <dj@redhat.com>
212
213 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
214 * config/m32c/prologue.md (epilogue_freit): New.
215 (fset_b): New.
216 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
217 (bank_switch_p): Likewise.
218 (fast_interrupt_p): Likewise.
219 (interrupt_p): Likewise.
220 (m32c_conditional_register_usage): Round memregs size up.
221 (need_to_save): We only need to save $a0 when we use ENTER.
222 (interrupt_p): Check for fast_interrupt too.
223 (bank_switch_p): New.
224 (fast_interrupt_p): New.
225 (m32c_attribute_table): Add bank_switch and fast_interrupt.
226 (m32c_emit_prolog): Support bank switching and fast interrupts.
227 * doc/extend.texi (Function Attributes): Add bank_switch and
228 fast_interrupt.
229
230 2009-08-17 Douglas B Rupp <rupp@gnat.com>
231
232 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
233 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
234
235 2009-08-16 Douglas B Rupp <rupp@gnat.com>
236
237 * doc/invoke.texi (Target options):
238 Add new option list for IA-64/VMS.
239 (menu): Add IA-64/VMS Options.
240 (IA-64/VMS Options): Likewise.
241
242 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
243
244 PR target/38599
245 * config/mips/mips.md (*lwxs): Use :P for pointer values.
246
247 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
248
249 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
250 (mips_pop_asm_switch): Likewise.
251 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
252 with...
253 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
254 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
255 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
256 (mips_print_operand_punctuation): Use them. Check mips_noreorder
257 instead of set_noreorder.
258 (mips_output_function_prologue): Use the new functions.
259 (mips_output_function_epilogue): Likewise.
260 (mips_need_noat_wrapper_p): New function, split out from...
261 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
262 Use mips_push_asm_switch and mips_pop_asm_switch.
263 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
264 and mips_pop_asm_switch.
265 (ASM_OUTPUT_REG_POP): Likewise.
266 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
267 Use mips_pop_asm_switch.
268 (mips_asm_switch): New structure.
269 (set_noreorder, set_nomacro): Replace with...
270 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
271 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
272 instead of set_nomacro.
273 (fix_truncsfsi2_macro): Likewise.
274 (cprestore): Likewise.
275 (hazard): Use mips_noreorder instead of set_noreorder.
276 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
277
278 2009-08-16 Uros Bizjak <ubizjak@gmail.com>
279
280 * config/alpha/alpha.c (alpha_and_function): Handle NULL_RTX returned
281 from prev_active_insn.
282
283 2009-08-16 Anatoly Sokolov <aesok@post.ru>
284
285 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
286 * config/avr/avr.c (avr_override_options): Initialize
287 avr_current_arch variable.
288 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
289 __AVR_HAVE_16BIT_SP__ according to the device type.
290 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
291 TARGET_TINY_STACK.
292 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
293 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
294
295 2009-08-16 Dodji Seketeli <dodji@redhat.com>
296
297 PR debug/37801
298 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
299 generating inlined subroutine die only. We shouldn't be
300 called for anything else.
301 (gen_block_die): Don't generate inline subroutine debug info for
302 abstract blocks.
303
304 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
305
306 * graphite-poly.c (print_pbb): Print PBB index.
307
308 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
309
310 PR middle-end/40981
311 * graphite-interchange.c (ppl_max_for_le): Moved...
312 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
313 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
314 ppl_Pointset_Powerset_C_Polyhedron_maximize.
315 * graphite-ppl.h (ppl_max_for_le): Declared.
316
317 2009-08-14 Olatunji Ruwase <tjruwase@google.com>
318
319 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
320 supported on all platforms.
321 * target.h (struct gcc_target): Remove
322 handle_pragma_redefine_extname.
323 * c-cppbuiltin.c: Remove use of
324 targetm.handle_pragma_redefine_extname.
325 * c-pragma.c: Likewise.
326 * target-def.h (TARGET_INITIALIZER): Remove
327 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
328 * config/sol2.h: Remove use of
329 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
330
331 2009-08-14 Douglas B Rupp <rupp@gnat.com>
332
333 * config/ia64/fde-vms.c: New file.
334 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
335 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
336 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
337 (uw_frame_state_for): Only register a personality routine if it is
338 known to be compatible with our expectations.
339 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
340 Declare unw_table_entry stack variable and
341 mod all calls to _Unwind_FindTableEntry to add arg.
342 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
343 (_Unwind_FindTableEntry): Add arg to prototype.
344
345 2009-08-14 Eric Botcazou <ebotcazou@adacore.com>
346
347 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
348 field 'signal_pfs_loc'.
349 (uw_frame_state_for): Remove duplicate code dealing with leaf
350 procedures without unwind info.
351 If in the frame after unwinding through a signal handler, restore
352 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
353 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
354 'pfs_loc' to the AR.PFS location in the signal context; instead
355 set 'signal_pfs_loc'.
356 Manually generate the unwind info for the AR.PFS register.
357 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
358 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
359 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
360 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
361 instead set 'signal_pfs_loc'.
362 Remove code preventing the AR.PFS register from being restored
363 from the signal context.
364
365 2009-08-14 Douglas B Rupp <rupp@gnat.com>
366 Tristan Gingold <gingold@adacore.com>
367
368 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
369 * config/ia64/t-vms: New file.
370 * config/ia64/vms64.h: New file.
371 * config/ia64/vms.h: New file.
372 * config/ia64/vms-crtinit.asm: New file.
373 * config/ia64/vms_symvec_libgcc_s.opt: New file.
374 * config/ia64/vms-unwind.h: New file.
375
376 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
377
378 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
379 TFmode compares.
380
381 2009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
382
383 PR middle-end/30789
384 * builtins.c (do_mpc_arg2): Make extern, define for any MPC
385 version. Move declaration...
386 * real.h (do_mpc_arg2): ... here.
387 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
388 and RDIV_EXPR.
389
390 2009-08-14 Rafael Avila de Espindola <espindola@google.com>
391
392 * final.c (add_debug_prefix_map): Don't use GC memory for
393 old_prefix and new_prefix.
394
395 2009-08-14 Richard Guenther <rguenther@suse.de>
396
397 * ipa-prop.c (compute_complex_pass_through): If we cannot
398 compute a non-varying offset for IPA_JF_ANCESTOR punt.
399
400 2009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
401
402 * c-lex.c (c_lex_with_flags): Increase size of local variable
403 to avoid memory clobber.
404
405 2009-08-14 Paolo Bonzini <bonzini@gnu.org>
406
407 PR target/40934
408 * config/i386/i386.c (ix86_fp_comparison_strategy):
409 Only enable/disable sahf at function granularity.
410
411 2009-08-14 Hans-Peter Nilsson <hp@axis.com>
412
413 PR rtl-optimization/41064
414 * reload1.c (reload_as_needed): Don't call extract_insn
415 for known invalid replacements after calling
416 validate_replace_rtx_group and verify_changes.
417
418 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
419
420 PR target/41019
421 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
422 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
423 ix86_expand_fp_vcond.
424 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
425 Assert that operation is supported by ix86_expand_int_vcond.
426 (vcondu<SSEMODE124C8:mode>): Ditto.
427
428 2009-08-13 DJ Delorie <dj@redhat.com>
429
430 * config/i386/djgpp-stdint.h: New.
431 * config.gcc (djgpp): Use it.
432
433 2009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
434
435 * config/sh/sh.c (sh_override_options): When flag_exceptions or
436 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
437
438 2009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
439
440 * tree-ssa-loop-prefetch.c
441 (prune_ref_by_group_reuse): Enhance probabilistic analysis
442 for long-stride pruning.
443 (compute_miss_rate): New function to compute the probability
444 that two memory references access different cache lines.
445
446 2009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
447
448 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
449
450 2009-08-13 Richard Guenther <rguenther@suse.de>
451
452 PR middle-end/41047
453 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
454 use the constant pointer type.
455 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
456 of CV qualifiers on the target pointer type.
457 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
458 conversion check before restrict check.
459
460 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
461
462 PR target/41029
463 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
464
465 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
466
467 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
468
469 2009-08-12 Richard Guenther <rguenther@suse.de>
470
471 PR tree-optimization/41011
472 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
473 and reference constructing.
474
475 2009-08-12 Xinliang David Li <davidxl@google.com>
476
477 PR tree-optimization/41012
478 * tree-flow.h : New external interface.
479 * gimple-low.c (check_call_arg): Change to public function.
480 Remove argument mismatch check in lowering.
481 * tree-inline.h (tree_can_inline_p): Interface change.
482 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
483 into this function.
484 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
485 Call change to tree_can_inline_p function.
486 (cgraph_decide_inlining_incrementally): Ditto.
487
488 2009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
489
490 PR tree-optimization/41031
491 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
492 on the partition variable rather than promote_mode on the source
493 type. Assert that the partition variable's type has the same
494 mode as the source value's.
495
496 2009-08-12 Paolo Bonzini <bonzini@gnu.org>
497
498 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
499 for for_return == 2.
500 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
501 comments.
502 * calls.c (expand_call): Fix typo.
503 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
504 and PARM_DECL.
505 * stmt.c (expand_value_return): Use promote_function_mode to copy out
506 of pseudo.
507 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
508 * config/cris/cris.c (cris_promote_function_mode): Likewise.
509 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
510 * config/pa/pa.c (pa_promote_function_mode): Likewise.
511
512 2009-08-12 Andrew Haley <aph@redhat.com>
513
514 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
515
516 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
517
518 PR bootstrap/40103
519 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
520
521 2009-08-12 Richard Guenther <rguenther@suse.de>
522
523 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
524 * gimplify.c (gimplify_modify_expr): Do not use
525 lang_hooks.types_compatible_p.
526 * tree-ssa.c (useless_type_conversion_p): For aggregates
527 just return false if the canonical types differ.
528
529 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
530
531 PR middle-end/40980
532 * sese.c (convert_for_phi_arg): New.
533 (add_guard_exit_phis): Use convert_for_phi_arg.
534
535 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
536
537 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
538 unknown subscript upper bounds.
539
540 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
541 Pranav Garg <pranav.garg2107@gmail.com>
542
543 * graphite-interchange.c (gather_access_strides): Removed.
544 (ppl_max_for_le): New.
545 (build_linearized_memory_access): New.
546 (memory_stride_in_loop): New.
547 (pbb_interchange_profitable_p): Reimplemented.
548 * graphite-ppl.h (ppl_new_id_map): New.
549 (ppl_interchange): New.
550
551 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
552
553 * graphite-interchange.c (compute_subscript): Removed.
554 (compute_array_size_cstr): Removed.
555 (compute_array_size_poly): Removed.
556 (compute_array_size): Removed.
557 (gather_access_strides_poly): Removed.
558 (gather_access_strides): Empty.
559
560 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
561
562 * graphite-dependences.c (dependence_polyhedron_1): Replace
563 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
564 (graphite_legal_transform_dr): Same.
565 (graphite_carried_dependence_level_k): Same.
566 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
567 Initialize PDR_NB_SUBSCRIPTS.
568 (print_pdr_access_layout): Replace pdr_nb_subscripts with
569 PDR_NB_SUBSCRIPTS.
570 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
571 (PDR_NB_SUBSCRIPTS): New.
572 (pdr_nb_subscripts): Removed.
573 (pdr_dim): Simplified.
574 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
575 with PDR_NB_SUBSCRIPTS.
576
577 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
578
579 * graphite-interchange.c (compute_array_size): Remove use of
580 PDR_DATA_CONTAINER.
581 * graphite-poly.c (new_poly_dr): Remove argument data_container.
582 Do not initialize PDR_DATA_CONTAINER.
583 (print_pdr): Do not print PDR_DATA_CONTAINER.
584 * graphite-poly.h (struct poly_dr): Remove data_container field.
585 (PDR_DATA_CONTAINER): Removed.
586 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
587 PDR_DATA_CONTAINER.
588 (build_poly_dr): Same.
589
590 2009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
591 Sebastian Pop <sebastian.pop@amd.com>
592
593 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
594 copy of the dependence polyhedron. Free the temporary objects.
595 (graphite_carried_dependence_level_k): Free unused objects before
596 returning.
597
598 * testsuite/gcc.dg/graphite/interchange-1.c: XFAILed.
599 * testsuite/gcc.dg/graphite/interchange-2.c: XFAILed.
600 * testsuite/gcc.dg/graphite/interchange-3.c: XFAILed.
601 * testsuite/gcc.dg/graphite/interchange-4.c: XFAILed.
602 * testsuite/gcc.dg/graphite/interchange-7.c: XFAILed.
603
604 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
605
606 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
607 Early return without analyzing the data dependences if no
608 transform has been done. Call restore_scattering if the transform
609 is not legal.
610 (graphite-interchange.c): Same.
611 * graphite-poly.c (print_scattering_function): Test for
612 PBB_TRANSFORMED.
613 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
614 (apply_poly_transforms): Do not gcc_assert that
615 the transform is legal.
616 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
617 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
618 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
619 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
620 * graphite-poly.h (struct poly_scattering): New.
621 (struct poly_bb): Add original, transformed, and saved fields.
622 Remove transformed_scattering, original_scattering,
623 nb_local_variables and nb_scattering_transform fields.
624 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
625 (poly_scattering_new): New.
626 (poly_scattering_free): New.
627 (poly_scattering_copy): New.
628 (store_scattering_pbb): New.
629 (store_scattering): New.
630 (restore_scattering_pbb): New.
631 (restore_scattering): New.
632 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
633 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
634
635 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
636
637 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
638 (print_scop): Same.
639
640 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
641
642 * Makefile.in (graphite.o): Depends on PREDICT_H.
643 * graphite.c: Include predict.h.
644 (graphite_finalize): Call tree_estimate_probability.
645 * predict.c (predict_loops): Do not call scev_initialize and
646 scev_finalize.
647 (tree_estimate_probability_bb): New.
648 (tree_estimate_probability): Do not initialize loops: move that
649 code to the driver. Call tree_estimate_probability_bb.
650 (tree_estimate_probability_driver): New.
651 (pass_profile): Use tree_estimate_probability_driver.
652 * predict.h (tree_estimate_probability): Declared.
653
654 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
655
656 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
657 * graphite-dependences.c (graphite_legal_transform): Add time to
658 TV_GRAPHITE_DATA_DEPS.
659 (dependency_between_pbbs_p): Same.
660 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
661
662 2009-08-12 Andrey Belevantsev <abel@ispras.ru>
663
664 PR rtl-optimization/41033
665 * alias.c (nonoverlapping_component_refs_p): Punt when strict
666 aliasing is disabled.
667
668 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
669
670 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
671 si_mask_operand, and_load_operand, low_bitmask_operand,
672 and_reg_operand, and_operand): New predicates.
673 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
674 * config/mips/mips.c (and_operands_ok): New function.
675 * config/mips/mips-protos.h (and_operands_ok): Declare it.
676 * config/mips/mips.md (move_type): Add ext_ins and logical.
677 (type): Handle them.
678 (and<mode>3): Use and_reg_operand as the second operand's predicate.
679 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
680 shift_shift. Remove commutative constraint modifier.
681 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
682 shift_shift.
683 (*clear_upper32_dext): Remove define_insn_and_split.
684 (*clear_upper32): Turn this define_insn_and_split ...
685 (splitter for ANDing register with 0xffff_ffff): .. into this.
686
687 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
688
689 * combine.c (try_widen_shift_mode): Factor out code to check if an
690 integer constant is a low-order bitmask from here ...
691 * rtlanal.c (low_bitmask_len): ... to here.
692 * rtl.h (low_bitmask_len): Declare.
693
694 2009-08-11 Uros Bizjak <ubizjak@gmail.com>
695
696 PR target/8603
697 * config/alpha/alpha.md (addsi3): Remove expander.
698 (addsi3): Rename from *addsi3_internal insn pattern.
699 (subsi3): Remove expander.
700 (subsi3): Rename from *subsi3_internal insn pattern.
701
702 2009-08-11 Douglas B Rupp <rupp@gnat.com>
703
704 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
705 FWRITE_UNLOCKED.
706
707 2009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
708 Eric Botcazou <botcazou@adacore.com>
709 Douglas B Rupp <rupp@gnat.com>
710
711 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
712 that records that fit in 64 bits are returned by immediate value,
713 as required by OpenVMS Calling Standard.
714 (function_value): Adjust for above modification.
715 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
716 virtual_incoming_args_rtx as base object, not next_arg.
717 * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
718
719 2009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
720
721 * reload.c (find_reloads_subreg_address): Check the original
722 req_equiv_mem address to detect the case where an address is
723 not valid in the outer mode.
724
725 2009-08-11 Richard Guenther <rguenther@suse.de>
726
727 PR bootstrap/40788
728 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
729
730 2009-08-10 Douglas B Rupp <rupp@gnat.com>
731
732 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
733 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
734
735 2009-08-10 Olivier Hainque <hainqueu@adacore.com>
736 Douglas B Rupp <rupp@gnat.com>
737
738 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
739 PT_STACK when frame_pointer_needed on OpenVMS.
740 (alpha_pv_save_size, alpha_using_fp): Remove.
741 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
742 with proper processing for PT_NULL.
743 (alpha_vms_initial_elimination_offset): New function. Support for
744 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
745 (alpha_sa_size): Force procedure type to PT_STACK when
746 frame_pointer_needed on OpenVMS.
747 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
748 (alpha_using_fp): Likewise.
749 (alpha_vms_can_eliminate): Add prototype.
750 (alpha_vms_initial_elimination_offset): Likewise.
751 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
752 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
753
754 2009-08-10 Eric Botcazou <botcazou@adacore.com>
755 Douglas B Rupp <rupp@gnat.com>
756
757 * config/alpha/alpha.c (common_object_handler): New function.
758 (vms_attribute_table): Declare a single attribute "common_object".
759 (vms_output_aligned_decl_common): New global function.
760 (SECTION_VMS_OVERLAY): Delete.
761 (SECTION_VMS_GLOBAL): Likewise.
762 (SECTION_VMS_INITIALIZE): Likewise.
763 (vms_asm_named_section): Remove support for above flags.
764 (vms_section_type_flags): Delete.
765 (TARGET_SECTION_TYPE_FLAGS): Likewise.
766 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
767 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
768 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
769
770 2009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
771
772 PR target/41015
773 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
774 (sub_ddmmss): Likewise.
775
776 2009-08-10 Andreas Tobler <a.tobler@schweiz.org>
777
778 PR bootstrap/41018
779 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
780 year.
781
782 2009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
783
784 PR target/37053
785 * reload1.c (reload_as_needed): Use cancel_changes to completely
786 undo a failed replacement attempt.
787
788 2009-08-10 Richard Guenther <rguenther@suse.de>
789
790 PR middle-end/41006
791 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
792 (useless_type_conversion_p): ... here. Require pointer targets
793 to be compatible.
794
795 2009-08-10 Dodji Seketeli <dodji@redhat.com>
796
797 PR c++/40866
798 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
799 loose the original type of the statement list.
800
801 2009-08-09 Douglas B Rupp <rupp@gnat.com>
802
803 * config/alpha/alpha.c: Include libfuncs.h
804 (avms_asm_output_extern): New function.
805 (alpha_init_libfuncs): Init some decc libfuncs.
806 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
807 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
808 (DO_CRTL_NAMES): Define.
809 (LIB_SPEC): Remove.
810 * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
811 (LONG_TYPE_SIZE): Define.
812 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
813 (SUBTARGET_SWITCHES): Define malloc64 switch.
814 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
815 (MASK_RETURN_ADDR): Define.
816 doc/invoke.texi (mmalloc64): Document switch.
817
818 2009-08-09 Olivier Hainque <hainque@adacore.com>
819 Douglas B Rupp <rupp@gnat.com>
820
821 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
822 uses_condition_handler.
823 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
824 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
825 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
826 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
827 (code_for_builtin): New insn codes for the new alpha_builtins.
828 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
829 (alpha_sa_size): Account for uses_condition_handler.
830 (alpha_expand_prologue): Likewise.
831 (alpha_start_function): Likewise.
832 (alpha_expand_epilogue): Likewise.
833 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
834 establish/revert expanders.
835 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
836 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
837 New expander, resorting to the alpha.c associated function.
838 (builtin_revert_vms_condition_handler): Likewise.
839 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
840 __gcc_shell_handler, the static VMS condition handler used as
841 an indirection wrapper to the current dynamically established
842 handler.
843 * config/alpha/vms-unwind.h: Complete rewrite.
844 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
845 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
846
847 2009-08-09 Eric Botcazou <botcazou@adacore.com>
848 Douglas B Rupp <rupp@gnat.com>
849
850 * config/alpha/alpha.c (alpha_links): Add 'target' field.
851 (alpha_need_linkage): Handle aliases. Return function symbol.
852 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
853 Use ultimate alias target for the linkage name.
854 * config/alpha/alpha.md (movmemdi): Use the symbol returned
855 by alpha_need_linkage for the function symbol.
856 (setmemdi): Likewise.
857
858 2009-08-09 Douglas B Rupp <rupp@gnat.com>
859
860 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
861 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
862 (ASM_WEAKEN_LABEL): Define.
863 (CRT_CALL_STATIC_FUNCTION): Define.
864 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
865 (ENDFILE_SPEC): Define.
866 (INIT_SECTION_ASM_OP): Define.
867 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
868 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
869 crtend.o crtendS.o.
870 (MULTILIB_OSDIRNAMES): Define.
871 (shlib_version): Define.
872 (SHLIB_EXT): Define.
873 (SHLIB_OBJS): Define.
874 (SHLIB_NAME): Define.
875 (SHLIB_MULTILIB): Define.
876 (SHLIB_INSTALL): Define.
877 (SHLIB_SYMVEC): Define.
878 (SHLIB_SYMVECX2): Define.
879 (SHLIB_LINK): Define.
880
881 2009-08-09 Douglas B Rupp <rupp@gnat.com>
882
883 * config/alpha/alpha.c (alpha_initialize_trampoline):
884 Initialize VMS trampoline IAW ABI for bounded procedure calls.
885 (alpha_start_function): Emit transfer address on nested functions
886 for VMS trampoline call.
887 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
888 since no longer used.
889 * config/alpha/vms-tramp.asm: Remove.
890 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
891 since now only data initialized at runtime.
892
893 2009-08-09 Douglas B Rupp <rupp@gnat.com>
894
895 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
896 (LINK_GCC_C_SEQUENCE_SPEC): Define.
897 (MD_EXEC_PREFIX): Remove, no longer used.
898 (MD_STARTFILE_PREFIX): Likewise.
899 (INCLUDE_DEFAULTS): Likewise.
900 * config/alpha/t-vms:
901 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
902
903 2009-08-09 Richard Guenther <rguenther@suse.de>
904
905 PR tree-optimization/41016
906 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
907 (operand_precision): Remove.
908 (integral_operand_p): Likewise.
909 (recognize_single_bit_test): Adjust.
910
911 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
912
913 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
914 operation overflows. Likewise non-cast unary arithmetic.
915 If one arm of a conditional expression is always taken,
916 inhibit evaluation warnings for the other arm. Likewise inhibit
917 evaluation warnings for the second && or || operand if the first
918 operand is enough to determine the result.
919 * c-typeck.c (build_conditional_expr): Apply the same inhibition
920 rules here.
921 (build_binary_op): Prevent duplicate evaluation warnings.
922
923 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
924
925 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
926 and destination have different modes, Use promote_mode to
927 determine the signedness of the conversion. Assert that the
928 promoted source mode matches the destination mode. Don't pass
929 the destination and destination mode to expand_expr if the source
930 mode is different. Simplify conversion logic.
931
932 2009-08-09 Ira Rosen <irar@il.ibm.com>
933
934 PR tree-optimization/41008
935 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
936 from condition only in case it's a comparison. Adjust checks.
937
938 2009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
939
940 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
941 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
942 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
943 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
944 (dump_cand): Handle them.
945 (struct iv_cand): New members COST_STEP and AINC_USE.
946 (stmt_after_increment): Likewise.
947 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
948 callers changed. Use gimple_uid comparison instead of scanning.
949 (add_candidate_1): When looking for identical candidates, take
950 AINC_USE into account. Set it for new candidates.
951 (force_expr_to_var_cost): Cast target_spill_cost to int.
952 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
953 All callers changed. Check for availability of autoinc addressing
954 modes, both in general for a given mode, and in the specific use case.
955 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
956 changed.
957 (get_computation_cost): Likewise.
958 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
959 add_autoinc_candidates): New static functions.
960 (add_candidate): Call add_autoinc_candidates for candidates based on
961 a USE_ADDRESS use.
962 (find_iv_candidates): Call set_autoinc_for_original_candidates.
963 (determine_use_iv_cost_address): If we have an autoinc candidate at
964 the matching use, verify autoinc is possible and subtract the cost
965 of the candidate's step from the cost.
966 (determine_iv_cost): Record the cost of the increment in the COST_STEP
967 member of the candidate.
968 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
969 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
970
971 2009-08-09 Douglas B Rupp <rupp@gnat.com>
972
973 * config.build (ia64-hp-*vms*): New target.
974 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
975 with ia64-hp-*vms*.
976 * config.gcc (ia64-hp-*vms*): New target.
977 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
978 with ia64-hp-*vms*.
979 * config.host (ia64-hp-*vms*): New target.
980 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
981 with ia64-hp-*vms*.
982
983 2009-08-08 Richard Guenther <rguenther@suse.de>
984
985 PR tree-optimization/40991
986 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
987
988 2009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
989
990 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
991 mode check. Do truncations in an integer mode.
992 (force_to_mode): Handle subregs for all mode types. Only do
993 arithmetic simplifications on integer modes.
994
995 2009-08-07 Richard Guenther <rguenther@suse.de>
996
997 PR tree-optimization/40999
998 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
999 (maybe_fold_reference): Lookup constant initializers.
1000 (fold_gimple_assign): Likewise.
1001
1002 2009-08-07 Richard Guenther <rguenther@suse.de>
1003
1004 * tree-ssa.c (useless_type_conversion_p_1): Only for types
1005 that require structural equality defer to the langhook.
1006
1007 2009-08-07 Martin Jambor <mjambor@suse.cz>
1008
1009 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
1010 comments.
1011 (struct ipa_pass_through_data): New type.
1012 (struct ipa_ancestor_jf_data): New type.
1013 (union jump_func_value): Removed field formal_id, added fields
1014 pass_through and ancestor.
1015 (struct ipa_param_call_note): Changed type of formal_id to int from
1016 unsigned.
1017 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
1018 operations jump functions and ancestor jump functions.
1019 (compute_complex_pass_through): New function.
1020 (compute_scalar_jump_functions): Call compute_complex_pass_through,
1021 reflect changes in the jump function strucutre.
1022 (update_jump_functions_after_inlining): Ignore complex pass-through
1023 and ancestor jump functions.
1024 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
1025 polynomial pass-through with operation jump functions.
1026
1027 2009-08-07 Jakub Jelinek <jakub@redhat.com>
1028
1029 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
1030 fde->dw_fde_begin as begin label instead of hot/cold label.
1031 Use LLSDAC label instead of LLSDA for second section lsda.
1032 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
1033 label instead of LLSDA if it is true.
1034 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
1035 callers.
1036 * except.c (add_call_site, dw2_size_of_call_site_table): Add
1037 SECTION argument. Use it as index into crtl->eh.call_site_record
1038 array.
1039 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
1040 use it to determine how to print table entries instead of using
1041 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
1042 label instead of normal begin label as base.
1043 (sjlj_assign_call_site_values): Adjust add_call_site caller.
1044 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
1045 ensure no EH range spans between sections and that landing pads
1046 are always in the corresponding section.
1047 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
1048 for crtl->eh.call_site_record being an array rather than scalar.
1049 (output_one_function_exception_table): New function, copied
1050 from output_function_exception_table. Adjust
1051 dw2_size_of_call_site_table, dw2_output_call_site_table
1052 callers. For SECOND section use *C suffixed labels.
1053 (output_function_exception_table): Call
1054 output_one_function_exception_table and, when doing hot/cold
1055 partitioning, also another time for the second section.
1056 * opts.c: Include except.h.
1057 (decode_options): Allow -freorder-blocks-and-partition with
1058 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
1059 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
1060 * function.h (struct rtl_eh): Change call_site_record from
1061 scalar into array of 2 elements.
1062
1063 2009-08-07 Martin Jambor <mjambor@suse.cz>
1064
1065 * ipa-prop.c (count_formal_params_1): New function.
1066 (ipa_get_vector_of_formal_parms): New function.
1067 (get_vector_of_formal_parm_types): New function.
1068 (ipa_modify_formal_parameters): New function.
1069 (ipa_modify_call_arguments): New function.
1070 (index_in_adjustments_multiple_times_p): New function.
1071 (ipa_combine_adjustments): New function.
1072 (ipa_dump_param_adjustments): New function.
1073 * ipa-prop.h (struct ipa_parm_adjustment): New type.
1074 (ipa_get_vector_of_formal_parms): Declare.
1075 (ipa_modify_formal_parameters): Declare.
1076 (ipa_modify_call_arguments): Declare.
1077 (ipa_combine_adjustments): Declare.
1078 (ipa_dump_param_adjustments): Declare.
1079 (build_ref_for_offset): Declare.
1080 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
1081 * tree-sra.c: Include ipa-prop.c.
1082 (build_ref_for_offset): Make public.
1083
1084 2009-08-06 Neil Vachharajani <nvachhar@gmail.com>
1085
1086 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
1087
1088 2009-08-06 Thomas Schwinge <tschwinge@gnu.org>
1089
1090 * gcc/doc/extend.texi (__builtin_extract_return_address)
1091 (__builtin_frob_return_address): Document.
1092
1093 2009-08-06 Paul Brook <paul@codesourcery.com>
1094
1095 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
1096 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
1097 implementation on ARMv6-M.
1098
1099 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
1100
1101 * doc/extend.texi (pcs): Document new attribute for ARM.
1102
1103 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
1104
1105 * arm.c (pcs_attribute_args): Comment out unsupported attribute
1106 variants.
1107
1108 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
1109
1110 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
1111 warning ().
1112
1113 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
1114
1115 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
1116
1117 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
1118
1119 Merge ARM/hard_vfp_branch to trunk.
1120
1121 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
1122
1123 * arm.c (libcall_eq): New function.
1124 (libcall_hash): New function.
1125 (add_libcall): New function.
1126 (arm_libcall_uses_aapcs_base): New function.
1127 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
1128 libcalls using the base PCS.
1129 (arm_init_cumulative_args): Likewise.
1130
1131 2009-07-20 Joseph Myers <joseph@codesourcery.com>
1132
1133 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
1134 Use base ABI for conversion libfuncs between HFmode and SFmode.
1135
1136 2009-05-12 Joseph Myers <joseph@codesourcery.com>
1137
1138 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
1139 V4SImode as representatives of all 64-bit and 128-bit vector
1140 types. Allow vector types without vector modes.
1141 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
1142 without vector modes like BLKmode.
1143 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
1144 BLKmode. Avoid unsupported vector modes or TImode moves for
1145 non-TARGET_NEON.
1146 (aapcs_vfp_allocate_return_reg): Likewise.
1147 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
1148 V8QImode if TARGET_NEON || TARGET_IWMMXT.
1149
1150 2009-05-12 Joseph Myers <joseph@codesourcery.com>
1151
1152 * config/arm/arm.c (arm_handle_pcs_attribute): New.
1153 (arm_get_pcs_model): Pass attribute arguments to
1154 arm_pcs_from_attribute.
1155 (arm_init_cumulative_args): Use base AAPCS for conversions from
1156 floating-point types to DImode.
1157 (arm_attribute_table): Add pcs attribute.
1158 (arm_handle_pcs_attribute): New.
1159 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
1160 conversions from floating-point types to DImode, also declare them
1161 to use base AAPCS and declare functions they call to use base
1162 AAPCS and their RTABI names.
1163
1164 2009-05-12 Joseph Myers <joseph@codesourcery.com>
1165
1166 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
1167 -mfloat-abi=hard not being supported for VFP.
1168
1169 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
1170
1171 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
1172 SYMBOL_REF to hard_libcall_value.
1173
1174 2009-03-05 Joseph Myers <joseph@codesourcery.com>
1175 Richard Earnshaw <rearnsha@arm.com>
1176
1177 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
1178 has been put on the stack, all remaining co-processory arguments for
1179 that co-processor also go on the stack.
1180
1181 2009-03-05 Joseph Myers <joseph@codesourcery.com>
1182
1183 * config/arm/arm.c (arm_return_in_memory): Handle returning
1184 vectors of suitable size in registers also for AAPCS case.
1185
1186 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
1187
1188 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
1189
1190 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
1191
1192 ARM Hard-VFP calling convention
1193 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
1194 * target.h (gcc_target): Add libcall_value to table of call hooks.
1195 * targhooks.h (default_libcall_value): Default implementation.
1196 * targhooks.c (default_libcall_value): Likewise.
1197 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
1198 * optabs.c (expand_unop): Use it.
1199 * expr.h (hard_libcall_value): Pass the function RTX through.
1200 * calls.c (emit_library_call_value_1): Update call to
1201 hard_libcall_value.
1202 * explow.c (hard_libcall_value): Use new target hook.
1203 * testsuite/lib/target-supports.exp
1204 (check_effective_target_arm_hard_vfp_ok): New hook.
1205 (check_effective_target_arm_neon_ok): Improve test for neon
1206 availability.
1207 * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
1208 * config/arm/arm.c: Include cgraph.h
1209 (TARGET_FUNCTION_VALUE): Override default hook.
1210 (arm_pcs_default): New variable.
1211 (arm_override_options): Don't fault hard calling convention with VFP.
1212 Add support for AAPCS variants.
1213 (arm_function_value): Make static. Handle AAPCS variants.
1214 (arm_libcall_value): New function.
1215 (arm_apply_result_size): Handle VFP registers in results.
1216 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
1217 conventions.
1218 (pcs_attribute_args): New variable.
1219 (arm_pcs_from_attribute): New function.
1220 (arm_get_pcs_model): New function.
1221 (aapcs_vfp_cum_init): New function.
1222 (aapcs_vfp_sub_candidate): New function.
1223 (aapcs_vfp_is_return_candidate): New function.
1224 (aapcs_vfp_is_call_candidate): New function.
1225 (aapcs_vfp_allocate): New function.
1226 (aapcs_vfp_allocate_return_reg): New function.
1227 (aapcs_vfp_advance): New function.
1228 (aapcs_cp_arg_layout): New variable.
1229 (aapcs_select_call_coproc): New function.
1230 (aapcs_select_return_coproc): New function.
1231 (aapcs_allocate_return_reg): New function.
1232 (aapcs_libcall_value): New function.
1233 (aapcs_layout_arg): New function.
1234 (arm_init_cumulative_args): Initialize AAPCS args data.
1235 (arm_function_arg): Handle AAPCS variants using new interface.
1236 (arm_arg_parital_bytes): Likewise.
1237 (arm_function_arg_advance): New function.
1238 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
1239 calling conventions.
1240 (arm_setup_incoming_varargs): Handle new AAPCS args data.
1241 * arm.h (NUM_VFP_ARG_REGS): Define.
1242 (LIBCALL_VALUE): Update.
1243 (FUNCTION_VALUE): Delete.
1244 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
1245 (arm_pcs): New enum.
1246 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
1247 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
1248 (FUNCTION_ARG_REGNO_P): Add VFP regs.
1249 * arm-protos.h (arm_function_arg_advance): Add.
1250 (aapcs_libcall_value): Add.
1251 (arm_function_value): Delete.
1252
1253 2009-08-06 Uros Bizjak <ubizjak@gmail.com>
1254 H.J. Lu <hongjiu.lu@intel.com>
1255
1256 PR target/40957
1257 * config/i386/i386.c (standard_sse_mode_p): Remove.
1258 (standard_sse_constant_p): Return 2 for integer mode
1259 vector_all_ones_operand when SSE2 is enabled.
1260 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
1261 (ix86_expand_vector_move): Do not check for negative values from
1262 standard_sse_constant_p.
1263
1264 2009-08-06 Richard Guenther <rguenther@suse.de>
1265
1266 * tree-ssa.c (useless_type_conversion_p_1): Make function and
1267 array type comparisons frontend independent.
1268 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
1269 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
1270 out array reference lower bound and element size operands.
1271 (ao_ref_init_from_vn_reference): Properly compute the offset
1272 for ARRAY_RANGE_REF.
1273 (vn_reference_fold_indirect): Fill out array reference lower
1274 bound and element size operands.
1275 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
1276 a non gimple valued reference operand which can happen for
1277 array reference lower bound or element size.
1278 (create_component_ref_by_pieces_1): Properly generate the
1279 element size operand for array references.
1280
1281 2009-08-06 Richard Guenther <rguenther@suse.de>
1282
1283 PR tree-optimization/40964
1284 * tree.c (iterative_hash_host_wide_int): Export.
1285 * tree.h (iterative_hash_host_wide_int): Declare.
1286 * tree-ssa-structalias.c (heapvar_map): New struct.
1287 (heapvar_map_eq): New function.
1288 (heapvar_map_hash): Likewise.
1289 (heapvar_lookup): Adjust.
1290 (heapvar_insert): Likewise.
1291 (make_constraint_from_heapvar): Allow multiple heap variables
1292 per decl at different offsets.
1293 (init_alias_heapvars): Adjust.
1294
1295 2009-08-04 David Daney <ddaney@caviumnetworks.com>
1296
1297 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
1298 * mips_output_sync_loop (mips_output_sync_loop): Only emit
1299 trailing sync if TARGET_SYNC_AFTER_SC.
1300
1301 2009-08-05 David Daney <ddaney@caviumnetworks.com>
1302
1303 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
1304 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
1305 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
1306 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
1307 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1308 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1309 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1310 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
1311 test_and_set_12): Rewrite calls to mips_output_sync_loop.
1312 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
1313 the prototype declaration match the definition.
1314 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
1315 instructions explicitly. Add barrier_before and operands
1316 parameters.
1317 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
1318 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
1319 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
1320 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1321 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
1322 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
1323
1324 2009-08-05 Andrew Pinski <pinskia@gmail.com>
1325
1326 * tree-ssa-alias.c: Fix intervals to use [) syntax.
1327
1328 2009-08-05 Uros Bizjak <ubizjak@gmail.com>
1329 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
1330
1331 PR target/40906
1332 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
1333 source operand.
1334
1335 2009-08-05 Jakub Jelinek <jakub@redhat.com>
1336
1337 PR rtl-optimization/40924
1338 * dse.c (canon_address): Before calling cselib_expand_value_rtx
1339 make sure canon_rtx (mem_address) isn't simpler than
1340 canon_rtx (expanded_mem_address).
1341
1342 2009-08-05 Li Feng <nemokingdom@gmail.com>
1343
1344 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
1345 for each poly_bb_p.
1346 (build_scop_drs): Build alias set for each SCoP.
1347
1348 2009-08-04 Sandra Loosemore <sandra@codesourcery.com>
1349
1350 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
1351 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
1352 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
1353 (MIPS_ARCH_FLOAT_SPEC): Likewise.
1354 (BASE_DRIVER_SELF_SPECS): Likewise.
1355
1356 2009-08-04 Andrew Pinski <pinskia@gmail.com>
1357
1358 * tree-ssa-alias.c: Fix some comment typos.
1359
1360 2009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
1361
1362 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
1363 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
1364
1365 2009-08-03 Janis Johnson <janis187@us.ibm.com>
1366
1367 PR c/39902
1368 * simplify-rtx.c (simplify_binary_operation_1): Disable
1369 simplifications for decimal float operations.
1370
1371 2009-08-03 Jakub Jelinek <jakub@redhat.com>
1372
1373 PR middle-end/40943
1374 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
1375 operand of INDIRECT_REF.
1376
1377 2009-08-03 Uros Bizjak <ubizjak@gmail.com>
1378
1379 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
1380 constants referencing TLS symbols.
1381
1382 2009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1383
1384 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
1385 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
1386
1387 2009-08-03 Richard Guenther <rguenther@suse.de>
1388
1389 * tree.c (make_vector_type): Build a main variant first,
1390 get the canonical one and then build the variant.
1391 * tree-ssa.c (useless_type_conversion_p_1): Handle
1392 fixed-point types.
1393 (useless_type_conversion_p): Conversions to pointers to
1394 incomplete record types are useless.
1395
1396 2009-08-03 Richard Guenther <rguenther@suse.de>
1397
1398 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
1399 file will be created.
1400 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
1401 * toplev.c (compile_file): Adjust comment.
1402
1403 2009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
1404
1405 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
1406 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
1407 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1408 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1409 (sh_promote_function_mode): Fix typo.
1410
1411 2009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
1412
1413 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
1414
1415 2009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1416
1417 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
1418 declaration arguments.
1419
1420 2009-08-02 Uros Bizjak <ubizjak@gmail.com>
1421
1422 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
1423 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
1424 (ix86_split_ashl): Ditto.
1425 (ix86_expand_vector_init_one_nonzero): Ditto.
1426 (ix86_expand_vector_set): Ditto.
1427 (ix86_expand_reduc_v4sf): Ditto.
1428
1429 2009-08-02 Paolo Bonzini <bonzini@gnu.org>
1430
1431 * explow.c (promote_function_mode): Remove assert.
1432 * config/sh/sh.c (sh_promote_function_mode): Declare.
1433
1434 2009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1435
1436 * config/pa/pa.c (pa_promote_function_mode): Declare.
1437 Change to static. Fix promote_mode call.
1438
1439 * gthr-dce.h (CONST_CAST2): Define if not defined.
1440 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
1441
1442 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
1443
1444 2009-08-01 Paolo Bonzini <bonzini@gnu.org>
1445
1446 * expr.c (store_constructor): Use promote_decl_mode. Remove
1447 now write-only variable unsignedp.
1448 (expand_expr_real_1): Use promote_decl_mode.
1449 * expr.h (promote_function_mode, promote_decl_mode): New.
1450 (promote_mode): Remove last argument.
1451 * function.c (assign_temp): Drop last argument of promote_mode.
1452 (assign_parm_find_data_types): Use promote_function_mode.
1453 (assign_parm_setup_reg): Likewise.
1454 (expand_function_end): Use promote_function_mode.
1455 * calls.c (initialize_argument_information): Use promote_function_mode.
1456 (precompute_arguments): Use promote_mode instead of checking if
1457 only PROMOTE_FUNCTION_MODE is defined.
1458 (expand_call): When making sibcall decisions, use promote_function_mode.
1459 Below, remove an if for targetm.calls.promote_function_return and
1460 and use promote_function_mode.
1461 (emit_library_call_value_1): Use promote_function_mode, fix bug
1462 where promote_mode was passed FOR_CALL == 0 for a return value in an
1463 assertion.
1464 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
1465 * explow.c (promote_function_mode, promote_decl_mode): New.
1466 (promote_mode): Keep only the FOR_CALL == 0 case.
1467 * combine.c (setup_incoming_promotion): Remove test of
1468 promote_function_args. Use promote_function_mode.
1469 * stmt.c (expand_value_return): Use promote_decl_mode.
1470 (expand_decl): Use promote_decl_mode.
1471
1472 * expr.c (store_constructor): Use promote_decl_mode. Remove
1473 now write-only variable unsignedp.
1474 (expand_expr_real_1): Use promote_decl_mode.
1475 * expr.h (promote_function_mode, promote_decl_mode): New.
1476 (promote_mode): Remove last argument.
1477 * function.c (assign_temp): Drop last argument of promote_mode.
1478 (assign_parm_find_data_types): Use promote_function_mode.
1479 (assign_parm_setup_reg): Likewise.
1480 (expand_function_end): Use promote_function_mode.
1481 * calls.c (initialize_argument_information): Use promote_function_mode.
1482 (precompute_arguments): Use promote_mode instead of checking if
1483 only PROMOTE_FUNCTION_MODE is defined.
1484 (expand_call): When making sibcall decisions, use promote_function_mode.
1485 Below, remove an if for targetm.calls.promote_function_return and
1486 and use promote_function_mode.
1487 (emit_library_call_value_1): Use promote_function_mode, fix bug
1488 where promote_mode was passed FOR_CALL == 0 for a return value in an
1489 assertion.
1490 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
1491 * explow.c (promote_function_mode, promote_decl_mode): New.
1492 (promote_mode): Keep only the FOR_CALL == 0 case.
1493 * combine.c (setup_incoming_promotion): Remove test of
1494 promote_function_args. Use promote_function_mode.
1495 * stmt.c (expand_value_return): Use promote_decl_mode.
1496 (expand_decl): Use promote_decl_mode.
1497
1498 * explow.c (promote_function_mode): Just call the target hook.
1499 * targhooks.c (default_promote_function_mode,
1500 default_promote_function_mode_always_promote): New.
1501 * targhooks.h (default_promote_function_mode,
1502 default_promote_function_mode_always_promote): Declare.
1503 * target.h (promote_function_args, promote_function_return): Remove.
1504 (promote_function_mode): New.
1505 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
1506 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1507 (TARGET_PROMOTE_FUNCTION_MODE): New.
1508 (TARGET_CALLS): Adjust.
1509 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
1510 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
1511
1512 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
1513 * config/s390/s390.c (s390_promote_function_mode): ... here,
1514 with pointer handling.
1515 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1516 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1517
1518 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
1519 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
1520 with pointer handling.
1521 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1522 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1523
1524 * config/sh/sh-protos.h (sh_promote_function_mode): New.
1525 * config/sh/sh.c (sh_promote_function_mode): New.
1526 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1527 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1528
1529 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
1530 * config/cris/cris.c (cris_promote_function_mode): ... here.
1531 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1532 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1533
1534 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
1535 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
1536 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1537 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1538
1539 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
1540 * config/arm/arm.c (arm_promote_function_mode): ... here, without
1541 complex type handling.
1542 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1543 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1544
1545 * config/pa/pa.c (pa_promote_function_mode): New.
1546 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1547 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1548
1549 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
1550 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1551 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
1552 * config/xtensa/xtensa.c: Likewise.
1553 * config/stormy16/stormy16.c: Likewise.
1554 * config/iq2000/iq2000.c: Likewise.
1555 * config/rs6000/rs6000.c: Likewise.
1556 * config/picochip/picochip.c: Likewise.
1557 * config/arc/arc.c: Likewise.
1558 * config/mcore/mcore.c: Likewise.
1559 * config/score/score.c: Likewise.
1560 * config/mips/mips.c: Likewise.
1561 * config/bfin/bfin.c: Likewise.
1562 * config/ia64/ia64.c: Likewise (disabled though).
1563
1564 * config/frv/frv.h: Remove pointless remark.
1565
1566 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
1567 TARGET_PROMOTE_FUNCTION_ARGS,
1568 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
1569 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
1570
1571 2009-08-01 Sebastian Pop <sebastian.pop@amd.com>
1572
1573 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
1574 -floop-parallelize-all.
1575 * toplev.c (process_options): Rename flag_graphite_force_parallel to
1576 flag_loop_parallelize_all.
1577 * tree-ssa-loop.c (gate_graphite_transforms): Same.
1578 * graphite.c (graphite_transform_loops): Same.
1579 * common.opt: Same.
1580 * graphite-poly.c (apply_poly_transforms): Same.
1581
1582 2009-07-31 Richard Earnshaw <rearnsha@arm.com>
1583
1584 PR tree-optimization/40914
1585 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
1586 if set, then check the delta field of the PMF record.
1587 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
1588 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
1589 call is stored in the delta.
1590
1591 2009-07-31 Adam Nemet <anemet@caviumnetworks.com>
1592
1593 * config/mips/mips.md (*clear_upper32_dext): New pattern.
1594
1595 2009-07-31 Uros Bizjak <ubizjak@gmail.com>
1596
1597 * config/i386/bsd.h (ASM_BYTE): New define.
1598 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
1599 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
1600 .byte. Use fputs or putc instead of fprintf where appropriate.
1601 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
1602 fputs or putc instead of fprintf where appropriate.
1603 * config/i386/i386elf.h: Ditto.
1604 * config/i386/sysv4.h: Ditto.
1605
1606 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
1607 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
1608 (*tls_global_dynamic_64): Ditto.
1609
1610 2009-07-31 Christian Bruel <christian.bruel@st.com>
1611
1612 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
1613
1614 2009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1615
1616 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
1617 Remove dead code for MINUS.
1618
1619 2009-07-31 Anthony Green <green@moxielogic.com>
1620
1621 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
1622 $r12 in prologue.
1623 (moxie_expand_epilogue): Ditto for epilogue.
1624 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
1625 incoming arguments.
1626 (moxie_function_arg): Ditto.
1627 (moxie_pass_by_reference): Ditto.
1628 (moxie_arg_partial_bytes): Ditto.
1629 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
1630 (FUNCTION_ARG_ADVANCE) Ditto.
1631 (REG_PARM_STACK_SPACE) Ditto.
1632 (FUNCTION_ARG_REGNO_P) Dito.
1633
1634 * config.gcc: Add moxie linux config support.
1635 * gcc/config/moxie/uclinux.h: New file.
1636
1637 2009-07-31 DJ Delorie <dj@redhat.com>
1638
1639 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
1640 (UNSPECV_SP_SWITCH_E): New.
1641 (sp_switch_1): Change to an unspec.
1642 (sp_switch_2): Change to an unspec. Don't use post-inc when we
1643 replace $r15.
1644 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
1645 reference the new stack's address
1646
1647 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1648
1649 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
1650 graphite-clast-to-gimple.o, graphite-dependences.o,
1651 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1652 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
1653 (graphite-blocking.o,
1654 graphite-clast-to-gimple.o, graphite-dependences.o,
1655 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1656 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
1657 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
1658 * cfgloop.h (struct loop): Add can_be_parallel field.
1659 * common.opt (fgraphite-identity): Moved up.
1660 (fgraphite-force-parallel): New flag.
1661 * graphite.c: Rewrite.
1662 * graphite.h: Rewrite.
1663 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
1664 after Graphite.
1665 * toplev.c (graphite_out_file): New file descriptor.
1666 (graphite_in_file): New.
1667 (process_options): flag_graphite_force_parallel cannot be used without
1668 Graphite.
1669 * tree-ssa-loop.c: Include toplev.h.
1670 (gate_graphite_transforms): Enable flag_graphite for
1671 flag_graphite_force_parallel.
1672
1673 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1674
1675 * ChangeLog.graphite: New.
1676 * graphite-blocking.c: New.
1677 * graphite-clast-to-gimple.c: New.
1678 * graphite-clast-to-gimple.h: New.
1679 * graphite-dependences.c: New.
1680 * graphite-dependences.h: New.
1681 * graphite-interchange.c: New.
1682 * graphite-poly.c: New.
1683 * graphite-poly.h: New.
1684 * graphite-ppl.c: New.
1685 * graphite-ppl.h: New.
1686 * graphite-scop-detection.c: New.
1687 * graphite-scop-detection.h: New.
1688 * graphite-sese-to-poly.c: New.
1689 * graphite-sese-to-poly.h: New.
1690 * sese.c: New.
1691 * sese.h: New.
1692
1693 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1694
1695 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
1696 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
1697
1698 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1699
1700 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
1701 (scev_is_linear_expression): Return false if the evolution is not
1702 affine multivariate.
1703
1704 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1705
1706 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
1707 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
1708
1709 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1710
1711 * tree-data-ref.c (debug_data_references): New.
1712 (debug_data_reference): New.
1713 * tree-data-ref.h (debug_data_references): Declared.
1714 (debug_data_reference): Declared.
1715
1716 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1717
1718 * tree-data-ref.c (stmt_simple_memref_p: Removed.
1719 * tree-data-ref.h (scop_p): Removed.
1720 (struct data_reference): Remove field scop.
1721 (DR_SCOP): Removed.
1722 (stmt_simple_memref_p): Removed.
1723
1724 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1725
1726 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
1727 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
1728 basic block empty.
1729
1730 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1731
1732 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
1733
1734 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1735
1736 * doc/invoke.texi (-fgraphite-identity): Documented.
1737
1738 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1739
1740 * tree-scalar-evolution.c: Fix comment.
1741 (instantiate_scev_1): Return unknow from scev instantiation if the
1742 result is not above instantiate_below.
1743
1744 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1745
1746 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
1747 static anymore. Instantiate the symbols that may have been introduced
1748 by chrec_apply.
1749 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
1750 Declared.
1751
1752 2009-07-30 DJ Delorie <dj@redhat.com>
1753
1754 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
1755 .vliw directive to VLIW sections.
1756
1757 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1758
1759 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
1760 New variables.
1761 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
1762 (AUTOHEADER): New variable.
1763 ($(srcdir)/cstamp-h.in): Use it.
1764
1765 2009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
1766 Pat Haugen <pthaugen@us.ibm.com>
1767 Revital Eres <ERES@il.ibm.com>
1768
1769 * config/rs6000/vector.md (VEC_F): Add VSX support.
1770 (VEC_A): Ditto.
1771 (VEC_N): Ditto.
1772 (mov<mode>): Ditto.
1773 (vector_load_<mode>): Ditto.
1774 (vector_store_<mode>): Ditto.
1775 (vector GPR move split): Ditto.
1776 (vec_reload_and_plus_<mptrsize>): Ditto.
1777 (vec_reload_and_reg_<mptrsize>): Ditto.
1778 (add<mode>3): Ditto.
1779 (sub<mode>3): Ditto.
1780 (mul<mode>3): Ditto.
1781 (neg<mode>2): Ditto.
1782 (abs<mode>2): Ditto.
1783 (smin<mode>3): Ditto.
1784 (smax<mode>3): Ditto.
1785 (vector_eq<mode>): Ditto.
1786 (vector_gt<mode>): Ditto.
1787 (vector_ge<mode>): Ditto.
1788 (vector_gtu<mode>): Ditto.
1789 (vector_select_<mode>_uns): Ditto.
1790 (vector_eq_<mode>_p): Ditto.
1791 (vector_gt_<mode>_p): Ditto.
1792 (vector_ge_<mode>_p): Ditto.
1793 (vector_gtu_<mode>_p): Ditto.
1794 (cr6_test_for_zero): Ditto.
1795 (cr6_test_for_zero_reverse): Ditto.
1796 (cr6_test_for_lt): Ditto.
1797 (cr6_test_for_lt_reverse): Ditto.
1798 (xor<mode>3): Ditto.
1799 (ior<mode>3): Ditto.
1800 (and<mode>3): Ditto.
1801 (one_cmpl<mode>2): Ditto.
1802 (nor<mode>2): Ditto.
1803 (andc<mode>2): Ditto.
1804 (float<VEC_int<mode>2): Ditto.
1805 (unsigned_float<VEC_int><mode>2): Ditto.
1806 (fix_trunc<mode><VEC_int>2): Ditto.
1807 (fixuns_trunc<mode><VEC_int>2): Ditto.
1808 (vec_init<mode>):
1809 (vec_set<mode>): Ditto.
1810 (vec_extract<mode>): Ditto.
1811 (vec_interleave_highv4sf): Ditto.
1812 (vec_interleave_lowv4sf): Ditto.
1813 (vec_realign_load_<mode>): Ditto.
1814 (vec_shl_<mode>): Ditto.
1815 (vec_shr_<mode>): Ditto.
1816 (div<mode>3): New patterns for VSX.
1817 (vec_interleave_highv2df): Ditto.
1818 (vec_interleave_lowv2df): Ditto.
1819 (vec_pack_trunc_v2df): Ditto.
1820 (vec_pack_sfix_trunc_v2df): Ditto.
1821 (vec_pack_ufix_trunc_v2df): Ditto.
1822 (vec_unpacks_hi_v4sf): Ditto.
1823 (vec_unpacks_lo_v4sf): Ditto.
1824 (vec_unpacks_float_hi_v4si): Ditto.
1825 (vec_unpacks_float_lo_v4si): Ditto.
1826 (vec_unpacku_float_hi_v4si): Ditto.
1827 (vec_unpacku_float_lo_v4si): Ditto.
1828 (movmisalign<mode>): Ditto.
1829 (vector_ceil<mode>2): New patterns for vectorizing math library.
1830 (vector_floor<mode>2): Ditto.
1831 (vector_btrunc<mode>2): Ditto.
1832 (vector_copysign<mode>3): Ditto.
1833
1834 * config/rs6000/predicates.md (easy_vector_constant_msb): New
1835 predicate for setting the high bit in each word, used for copysign.
1836
1837 * config/rs6000/ppc-asm.h (f19): Whitespace.
1838 (f32-f63): Define if VSX.
1839 (v0-v31): Define if Altivec.
1840 (vs0-vs63): Define if VSX.
1841
1842 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
1843
1844 * config/rs6000/power7.md: New file, provide tuning parameters for
1845 -mcpu=power7.
1846
1847 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
1848 (rs6000_cpu_cpp_builtins): Ditto.
1849 (altivec_overloaded_builtins): Ditto.
1850 (altivec_resolve_overloaded_builtin): Ditto.
1851
1852 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
1853 debug switch to disable vectorizing simple math builtin
1854 functions.
1855
1856 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1857 Vectorize simple math builtin functions.
1858 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1859 hook to vectorize math builtins.
1860 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
1861 (rs6000_builtin_conversion): Add VSX/power7 support.
1862 (rs6000_builtin_vec_perm): Ditto.
1863 (vsplits_constant): Add support for loading up a vector constant
1864 with just the high bit set in each part.
1865 (rs6000_expand_vector_init): Add VSX/power7 support.
1866 (rs6000_expand_vector_set): Ditto.
1867 (rs6000_expand_vector_extract): Ditto.
1868 (rs6000_emit_move): Ditto.
1869 (bdesc_3arg): Ditto.
1870 (bdesc_2arg): Ditto.
1871 (bdesc_1arg): Ditto.
1872 (rs6000_expand_ternop_builtin): Ditto.
1873 (altivec_expand_builtin): Ditto.
1874 (rs6000_expand_unop_builtin): Ditto.
1875 (rs6000_init_builtins): Ditto.
1876 (altivec_init_builtins): Ditto.
1877 (builtin_function_type): Ditto.
1878 (rs6000_common_init_builtins): Ditto.
1879 (rs6000_handle_altivec_attribute); Ditto.
1880 (rs6000_mangle_type): Ditto.
1881 (rs6000_vector_mode_supported_p): Ditto.
1882 (rs6000_mode_dependent_address): Altivec addresses with AND -16
1883 are mode dependent.
1884
1885 * config/rs6000/vsx.md: New file for VSX support.
1886
1887 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
1888 identifing values with just the most significant bit set.
1889 (enum rs6000_builtins): Add builtins for VSX. Add simple math
1890 vectorized builtins.
1891
1892 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
1893 (UNSPEC_VRFIM): Delete.
1894 (splitter for loading up vector with most significant bit): New
1895 splitter for vectorizing copysign.
1896 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
1897 vectorizing simple math functions.
1898 (altivec_vrfip): Add support for vectorizing simple math functions.
1899 (altivec_vrfim): Ditto.
1900 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
1901
1902 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
1903 (power7.md, vsx.md): Include for power7 support.
1904 (copysigndf3): Use VSX instructions if -mvsx.
1905 (negdf2_fpr): Ditto.
1906 (absdf2_fpr): Ditto.
1907 (nabsdf2_fpr): Ditto.
1908 (adddf3_fpr): Ditto.
1909 (subdf3_fpr): Ditto.
1910 (muldf3_fpr): Ditto.
1911 (divdf3_fpr): Ditto.
1912 (fix_truncdfdi2_fpr): Ditto.
1913 (cmpdf_internal1): Ditto.
1914 (fred, fred_fpr): Convert into expander/insn to add VSX support.
1915 (btruncdf2, btruncdf2_fpr): Ditto.
1916 (ceildf2, ceildf2_fpr): Ditto.
1917 (floordf2, floordf2_fpr): Ditto.
1918 (floatdidf2, floatdidf2_fpr): Ditto.
1919 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
1920 (fmsubdf4_fpr): Ditto.
1921 (fnmadddf4_fpr_1): Ditto.
1922 (fnmadddf4_fpr_2): Ditto.
1923 (fnmsubdf4_fpr_1): Ditto.
1924 (fnmsubdf4_fpr_2): Ditto.
1925 (fixuns_truncdfdi2): Add expander for VSX support.
1926 (fix_truncdfdi2): Ditto.
1927 (fix_truncdfsi2): Ditto.
1928 (ftruncdf2): Ditto.
1929 (btruncsf2): Whitespace.
1930 (movdf_hardfloat32): Add support for VSX registers.
1931 (movdf_softfloat32): Ditto.
1932 (movdf_hardfloat64): Ditto.
1933 (movdf_hardfloat64_mfpgpr): Ditto.
1934 (movdf_softfloat64): Ditto.
1935 (movti splitters): Add check for vector registers supporting
1936 TImode in the future.
1937 (bpermd): Add power7 bpermd instruction.
1938
1939 * config/rs6000/altivec.h (vec_div): Define if VSX.
1940 (vec_mul): Ditto.
1941 (vec_msub): Ditto.
1942 (vec_nmadd): Ditto.
1943 (vec_nearbyint): Ditto.
1944 (vec_rint): Ditto.
1945 (vec_sqrt): Ditto.
1946 (all predicates): Use the generic builtin function, and not the V4SF
1947 specific function so that the predicates will work with VSX's V2DF.
1948 (vec_all_*): Ditto.
1949 (vec_any_*): Ditto.
1950
1951 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
1952 Document new VSX functions and types.
1953
1954 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
1955 switches.
1956
1957 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
1958 "wa", and "j" constraints. Modify "v" to talk about Altivec
1959 instead of just vector.
1960
1961 2009-07-30 Andrew MacLeod <amacleod@redhat.com>
1962
1963 PR debug/26475
1964 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
1965 location for phi arguments.
1966 (rewrite_update_phi_arguments): Find locations for reaching defs.
1967 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1968 Add location to add_phi_arg calls.
1969 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
1970 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
1971 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
1972 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
1973 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
1974 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
1975 * tree-phinodes.c (make_phi_node): Initialize location.
1976 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
1977 (add_phi_arg): Add location parameter.
1978 (remove_phi_arg_num): Move location when moving phi argument.
1979 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
1980 location.
1981 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
1982 slpeel_update_phi_nodes_for_guard1,
1983 slpeel_update_phi_nodes_for_guard2,
1984 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
1985 vect_loop_versioning): Set locations.
1986 * tree-parloops.c (create_phi_for_local_result,
1987 transform_to_exit_first_loop, create_parallel_loop): Add locations.
1988 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
1989 * tree-vect-loop.c (get_initial_def_for_induction,
1990 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
1991 locations.
1992 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
1993 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
1994 (gimple_phi_arg_set_location): New. Set locus.
1995 (gimple_phi_arg_has_location): New. Check for locus.
1996 (redirect_edge_var_map_location): New. Return locus from var_map.
1997 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
1998 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
1999 combining PHI arguments.
2000 (cond_store_replacement): Set location.
2001 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
2002 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
2003 scop_add_exit_phis_edge): Add locations.
2004 * tree-cfgcleanup.c (remove_forwarder_block,
2005 remove_forwarder_block_with_phi): Add locations.
2006 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
2007 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
2008 locations.
2009 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
2010 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
2011 flush_pending_stmts): Add source location.
2012 * lambda-code.c (perfect_nestify): Maintain location stack with argument
2013 stack to preserve locations.
2014 * tree-vect-stmts.c (vectorizable_load): Add location.
2015 * tree-inline.c (copy_phis_for_bb): Copy locus.
2016 (setup_one_parameter): Add call locus to inlined parameter stmts.
2017 (initialize_inlined_parameters): Pass in call location as parameter
2018 assignment locus.
2019 (tree_function_versioning): Pass location to setup_one_parameter.
2020 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
2021 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
2022 copy and edge lists.
2023 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
2024 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
2025 locus parameter and override the stmt default if provided.
2026 (new_elim_graph, clear_elim_graph, delete_elim_graph,
2027 elim_graph_add_edge, elim_graph_remove_succ_edge,
2028 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
2029 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
2030 eliminate_phi): Add locus info in elimination graph for each edge and
2031 value copy.
2032 (insert_backedge_copies): Copy locus if present.
2033 * tree-flow.h (struct _edge_var_map): Add locus field.
2034 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
2035 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
2036 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
2037 locations.
2038 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
2039
2040 2009-07-30 Martin Jambor <mjambor@suse.cz>
2041
2042 PR tree-optimization/40570
2043 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
2044 use inlining loops.
2045
2046 2009-07-30 Razya Ladelsky <razya@il.ibm.com>
2047
2048 * ssa-loop-manip.c: Include langhooks.h.
2049 (rewrite_phi_with_iv): New.
2050 (rewrite_all_phi_nodes_with_iv): New.
2051 (canonicalize_loop_ivs): Move here from tree-parloops.c.
2052 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
2053 * tree-parloops.c (loop_parallel_p): Move out all conditions
2054 except dependency check.
2055 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
2056 (gen_parallel_loop): Call canonicalize_loop_ivs without
2057 reduction_list argument.
2058 (build_new_reduction): New.
2059 (gather_scalar_reductions): New.
2060 (try_get_loop_niter): New.
2061 (try_create_reduction_list): New.
2062 (parallleize_loops): Change the parallel conditions check.
2063 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
2064 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
2065
2066 2009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
2067
2068 * opt-functions.awk (opt_args): Allow argument to be enclosed in
2069 curly braces.
2070 * doc/options.texi (Option properties): Mention new quoting syntax.
2071
2072 2009-07-29 Douglas B Rupp <rupp@gnat.com>
2073
2074 * config/alpha/alpha.c (alpha_start_function):
2075 Handle VMS_DEBUG_MAIN_POINTER
2076 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
2077 * doc/invoke.texi: Document -mdebug-main switch.
2078
2079 2009-07-29 Richard Henderson <rth@redhat.com>
2080
2081 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
2082 (cgraph_create_edge_including_clones): Likewise.
2083 * tree-inline.c (copy_bb): Operate on the correct edges
2084 when updating the callgraph.
2085
2086 2009-07-29 Douglas B Rupp <rupp@gnat.com>
2087
2088 * config/alpha/vms-cc.c: Deleted.
2089 * config/alpha/vms-ld.c: Deleted.
2090 * config/alpha/t-vms64: Moved to config/vms
2091 * config/alpha/vms-crt0-64.c: Moved to config/vms
2092 * config/alpha/vms-crt0.c: Moved to config/vms
2093 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
2094 * config/alpha/vms-psxcrt0.c: Moved to config/vms
2095 * config/alpha/xm-vms.h: Moved to config/vms
2096 * config/alpha/x-vms: Moved to config/vms
2097 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
2098 config/vms/t-vms.
2099 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
2100 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
2101 (version): Set.
2102 * config/vms/t-vms64: Moved here from config/alpha
2103 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
2104 (argc,argv,envp): Enforce 32bit malloc'ing.
2105 * config/vms/vms-psxcrt0-64.c: Likewise.
2106 * config/vms/vms-crt0.c: Moved here from config/alpha.
2107 * config/vms/vms-psxcrt0.c: Likewise.
2108 * config/vms/vms-crtl-64.h: New file.
2109 * config/vms/vms-crtl.h: New file.
2110 * config/vms/vms.opt: New file.
2111 * config/vms/xm-vms64.h: New file.
2112 * config/vms/xm-vms.h: Moved here from config/alpha.
2113 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
2114 Set.
2115 * config/vms/x-vms: Moved here from config/alpha.
2116 (version, VMS_EXTRA_PARTS): Moved to t-vms.
2117 (vms-ld.o, vms-cc.o): Removed.
2118 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
2119
2120 2009-07-29 Douglas B Rupp <rupp@gnat.com>
2121
2122 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
2123 correct stack (obvious VMS fix).
2124
2125 2009-07-29 Douglas B Rupp <rupp@gnat.com>
2126
2127 * dwarf2out.c (output_file_names): Output VMS style file name, size,
2128 date, version info if VMS_DEBUGGING_INFO defined.
2129 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
2130 size, date calculating code moved here.
2131
2132 2009-07-29 Paul Brook <paul@codesourcery.com>
2133
2134 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
2135 do_push/do_pop.
2136
2137 2009-07-29 Uros Bizjak <ubizjak@gmail.com>
2138
2139 PR target/40577
2140 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
2141 to DImode when generating insq_le insn.
2142
2143 2009-07-28 Douglas B Rupp <rupp@gnat.com>
2144
2145 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
2146 New macro set for VMS_DEBUGGGING_INFO.
2147 (AT_string_form): Use it.
2148
2149 2009-07-28 DJ Delorie <dj@redhat.com>
2150
2151 * config/mep/mep.c (vtext_section): New.
2152 (vftext_section): New.
2153 (ftext_section): New.
2154 (mep_select_section): Add support for functions.
2155 (mep_unique_section): Likewise.
2156 (mep_asm_init_sections): Likewise.
2157 (mep_encode_section_info): Remove it from here.
2158
2159 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
2160
2161 2009-07-28 Paolo Bonzini <bonzinI@gnu.org>
2162
2163 * tree.h (TREE_DEPRECATED): Document it is used for types too.
2164 (TYPE_VECTOR_OPAQUE): Use default_def_flag
2165
2166 2009-07-28 Douglas B Rupp <rupp@gnat.com>
2167
2168 * dwarf2out.c (output_file_names): Test new macro
2169 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
2170 (add_comp_dir_attribute): Likewise.
2171
2172 2009-07-28 Kai Tietz <kai.tietz@onevision.com>
2173
2174 * config/i386/mingw-w64.h (LINK_SPEC): Add
2175 separating space between commands.
2176
2177 2009-07-28 Jan Hubicka <jh@suse.cz>
2178
2179 PR tree-optimization/40759
2180 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
2181 for renaming.
2182
2183 2009-07-27 DJ Delorie <dj@redhat.com>
2184
2185 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
2186 types are dword-aligned.
2187 (mep_expand_va_start): Likewise.
2188
2189 2009-07-27 Olivier Hainque <hainque@adacore.com>
2190 Douglas B Rupp <rupp@gnat.com>
2191
2192 * convert.c (convert_to_pointer): Don't assume the target
2193 pointer type is POINTER_SIZE long. Fetch its precision instead.
2194
2195 2009-07-27 Douglas B Rupp <rupp@gnat.com>
2196
2197 * system.h (fopen): Undefine if macro.
2198
2199 2009-07-27 Jakub Jelinek <jakub@redhat.com>
2200
2201 * dwarf2out.c (output_cfi_p): Removed.
2202 (output_cfis): New function.
2203 (output_fde): New function, split from output_call_frame_info.
2204 (output_call_frame_info): Use it.
2205 (dwarf2out_switch_text_section): Use output_cfis.
2206
2207 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
2208
2209 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
2210 TARGET_BI_ARCH is specified without enabling SJLJ.
2211 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
2212 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
2213
2214 2009-07-26 Mikael Pettersson <mikpe@it.uu.se>
2215
2216 * arm.md (negdi2): Use DImode if forcing a value into a register.
2217
2218 2009-07-26 Ira Rosen <irar@il.ibm.com>
2219
2220 PR tree-optimization/40801
2221 * tree-vect-stmts.c (vectorizable_call): Get previous copy
2222 of vector operand from the previous copy of vector statement.
2223 Pass the correct definition type value to
2224 vect_get_vec_def_for_stmt_copy().
2225
2226 2009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2227
2228 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
2229 const char ** conversion.
2230
2231 2009-07-25 David Daney <ddaney@caviumnetworks.com>
2232
2233 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
2234 fancy_abort() if !ENABLE_ASSERT_CHECKING.
2235 (gcc_unreachable): Invoke __builtin_unreachable() if
2236 !ENABLE_ASSERT_CHECKING.
2237
2238 2009-07-25 David Daney <ddaney@caviumnetworks.com>
2239
2240 PR rtl-optimization/40445
2241 * emit-rtl.c (next_nonnote_insn_bb): New function.
2242 * rtl.h (next_nonnote_insn_bb): Declare new function.
2243 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
2244 with no successors that is the successor of the ENTRY_BLOCK.
2245 Continue from the top after removing an empty fallthrough block.
2246 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
2247 of next_nonnote_insn.
2248
2249 2009-07-25 David Daney <ddaney@caviumnetworks.com>
2250
2251 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
2252
2253 2009-07-25 Martin Jambor <mjambor@suse.cz>
2254
2255 * c-common.c (c_common_attribute_table): New element for noclone.
2256 (handle_noclone_attribute): New function. Forward-declare.
2257 * tree-inline.c (tree_versionable_function_p): Check for noclone
2258 attribute.
2259 * doc/extend.texi (Labels as Values): Document need for noclone.
2260 (Function Attributes): Document noclone attribute.
2261
2262 2009-07-25 Jakub Jelinek <jakub@redhat.com>
2263
2264 PR rtl-optimization/34999
2265 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
2266 and dw_fde_switched_cold_to_hot fields.
2267 (output_cfi_p): New function.
2268 (output_call_frame_info): If fde->dw_fde_switched_sections,
2269 output 2 FDEs instead of one with corrupted header.
2270 (dwarf2out_do_cfi_startproc): New function.
2271 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
2272 and fde->dw_fde_switched_cold_to_hot.
2273 (dwarf2out_switch_text_section): Compute
2274 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
2275 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
2276 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
2277 Otherwise, compute fde->dw_fde_switch_cfi.
2278
2279 2009-07-24 Cary Coutant <ccoutant@google.com>
2280
2281 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
2282
2283 2009-07-24 Cary Coutant <ccoutant@google.com>
2284
2285 * cfghooks.c (split_block): Copy discriminator to new block.
2286 * tree-cfg.c (assign_discriminator): Check location of last
2287 instruction in block as well as first.
2288
2289 2009-07-24 Uros Bizjak <ubizjak@gmail.com>
2290
2291 * config/i386/linux.c: Use fputs or putc instead of fprintf
2292 where appropriate.
2293 * config/i386/gas.h: Ditto.
2294 * config/i386/x86-64.h: Ditto.
2295 * config/i386/att.h: Ditto.
2296
2297 2009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2298
2299 * expmed.c (emit_store_flag): Use a recursive call to optimize the
2300 xor case.
2301
2302 2009-07-24 Martin Jambor <mjambor@suse.cz>
2303
2304 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
2305 (ipa_push_func_to_list_1): Declare.
2306 (ipa_push_func_to_list): New function.
2307
2308 * ipa-prop.c (ipa_push_func_to_list_1): New function.
2309 (ipa_init_func_list): Call ipa_push_func_to_list_1.
2310 (ipa_push_func_to_list): Removed.
2311 (ipa_pop_func_from_list): Clear node_enqueued flag.
2312
2313 2009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
2314
2315 * config/s390/s390.c (override_options): Default
2316 max-unrolled-insns to 100 for z10 tuning.
2317
2318 2009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
2319
2320 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
2321 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
2322 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
2323 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
2324 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
2325 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
2326 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
2327
2328 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
2329
2330 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
2331 use default set in mingw32.h header.
2332 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
2333 64-bit /mingw/include path.
2334 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
2335 path.
2336
2337 2009-07-23 Neil Vachharajani <nvachhar@google.com>
2338
2339 PR rtl-optimization/40209
2340 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
2341
2342 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
2343
2344 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
2345 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
2346 with the rest of string where appropriate. Use fputs or putc
2347 instead of fprintf where appropriate.
2348
2349 2009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2350 Pat Haugen <pthaugen@us.ibm.com>
2351 Revital Eres <ERES@il.ibm.com>
2352
2353 * config/rs6000/vector.md: New file. Move most of the vector
2354 expander support here from altivec.md to allow for the VSX vector
2355 unit in the future. Add support for secondary_reload patterns.
2356 Rewrite the patterns for vector comparison, and vector comparison
2357 predicate instructions so that the RTL expresses the desired
2358 behavior, instead of using unspec.
2359
2360 * config/rs6000/constraints.md ("f" constraint): Use
2361 rs6000_constraints to hold the precalculated register class.
2362 ("d" constraint): Ditto.
2363 ("wd" constraint): New constraint for VSX.
2364 ("wf" constraint): Ditto.
2365 ("ws" constraint): Ditto.
2366 ("wa" constraint): Ditto.
2367 ("wZ" constraint): Ditto.
2368 ("j" constraint): Ditto.
2369
2370 * config/rs6000/predicates.md (vsx_register_operand): New
2371 predicate for VSX.
2372 (vfloat_operand): New predicate for vector.md.
2373 (vint_operand): Ditto.
2374 (vlogical_operand): Ditto.
2375 (easy_fp_constant): If VSX, 0.0 is an easy constant.
2376 (easy_vector_constant): Add VSX support.
2377 (altivec_indexed_or_indirect_operand): New predicate for
2378 recognizing Altivec style memory references with AND -16.
2379
2380 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
2381 for vector secondary reload support.
2382 (rs6000_vector_reg_class): Delete, replacing it with
2383 rs6000_constraints.
2384 (rs6000_vsx_reg_class): Ditto.
2385 (rs6000_constraints): New array to hold the register classes of
2386 each of the register constraints that can vary at runtime.
2387 (builtin_mode_to_type): New static array for builtin function type
2388 creation.
2389 (builtin_hash_table): New static hash table for builtin function
2390 type creation.
2391 (TARGET_SECONDARY_RELOAD): Define target hook.
2392 (TARGET_IRA_COVER_CLASSES): Ditto.
2393 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
2394 registers are 128 bits if VSX memory reference instructions are used.
2395 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
2396 unit is being used.
2397 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
2398 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
2399 Print several of the scheduling related parameters.
2400 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
2401 rs6000_constraints instead of rs6000_vector_reg_class. Move
2402 -mdebug=reg code to rs6000_debug_reg_global. Add support for
2403 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
2404 Altivec. Add VSX support. Setup for secondary reload support on
2405 Altivec/VSX registers.
2406 (rs6000_override_options): Make power7 set the scheduling groups
2407 like the power5. Add support for new debug switches to override
2408 the scheduling defaults. Temporarily disable -mcpu=power7 from
2409 setting -mvsx. Add support for debug switches -malways-hint,
2410 -msched-groups, and -malign-branch-targets.
2411 (rs6000_buitlin_conversion): Add support for returning unsigned
2412 vector conversion functions to fix regressions due to stricter
2413 type checking.
2414 (rs6000_builtin_mul_widen_even): Ditto.
2415 (rs6000_builtin_mul_widen_odd): Ditto.
2416 (rs6000_builtin_vec_perm): Ditto.
2417 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
2418 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
2419 to zero a register.
2420 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
2421 generated upstream.
2422 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
2423 VSX types for bit operations. Changes to accomidate vector.md.
2424 (bdesc_2arg): Ditto.
2425 (bdesc_1arg): Ditto.
2426 (struct builtin_description_predicates): Rewrite predicate
2427 handling so that RTL describes the operation, instead of passing
2428 the instruction to be used as a string argument.
2429 (bdesc_altivec_preds): Ditto.
2430 (altivec_expand_predicate_builtin): Ditto.
2431 (altivec_expand_builtin): Ditto.
2432 (rs6000_expand_ternop_builtin): Use a switch instead of an if
2433 statement for vsldoi support.
2434 (altivec_expand_ld_builtin): Change to use new names from vector.md.
2435 (altivec_expand_st_builtin): Ditto.
2436 (paired_expand_builtin): Whitespace changes.
2437 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
2438 builtin_mode_to_type table for secondary reload. Call
2439 builtin_function_type to build random builtin functions.
2440 (altivec_init_builtins): Change to use builtin_function_type to
2441 create builtin function types dynamically as we need them.
2442 (builtin_hash_function): New support for hashing the tree types
2443 for builtin function as we need it, rather than trying to build
2444 all of the trees that we need. Add initial preliminary VSX support.
2445 (builtin_function_type): Ditto.
2446 (builtin_function_eq): Ditto.
2447 (builtin_hash_struct): Ditto.
2448 (rs6000_init_builtins): Ditto.
2449 (rs6000_common_init_builtins): Ditto.
2450 (altivec_init_builtins): Ditto.
2451 (rs6000_common_init_builtins): Ditto.
2452 (enum reload_reg_type): New enum for simplifing reg classes.
2453 (rs6000_reload_register_type): Simplify register classes into GPR,
2454 Vector, and other registers. Altivec and VSX addresses in reload.
2455 (rs6000_secondary_reload_inner): Ditto.
2456 (rs6000_ira_cover_classes): New target hook, that returns the
2457 appropriate cover classes, based on -mvsx being used or not.
2458 (rs6000_secondary_reload_class): Add VSX support.
2459 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
2460 (get_vsel_insn): Ditto.
2461 (rs6000_emit_vector_compare): Rewrite vector conditional support
2462 so that where we can, we use RTL operators, instead of blindly use
2463 UNSPEC.
2464 (rs6000_emit_vector_select): Ditto.
2465 (rs6000_emit_vector_cond_expr): Ditto.
2466 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
2467 (create_TOC_reference): Add -mdebug=addr support.
2468 (emit_frame_save): VSX loads/stores need register indexed addressing.
2469
2470 * config/rs6000/rs6000.md: Include vector.md.
2471
2472 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
2473
2474 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2475 support for V2DI, V2DF in logical, permute, select operations.
2476
2477 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
2478 switch for vsx/power7.
2479 (-mvsx-scalar-memory): Ditto.
2480 (-mvsx-align-128): Ditto.
2481 (-mallow-movmisalign): Ditto.
2482 (-mallow-df-permute): Ditto.
2483 (-msched-groups): Ditto.
2484 (-malways-hint): Ditto.
2485 (-malign-branch-targets): Ditto.
2486
2487 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
2488 hook instead.
2489 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
2490 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
2491 (rs6000_vector_reg_class): Delete.
2492 (rs6000_vsx_reg_class): Ditto.
2493 (enum rs6000_reg_class_enum): New enum for the constraints that
2494 vary based on target switches.
2495 (rs6000_constraints): New array to hold the register class for all
2496 of the register constraints that vary based on the switches used.
2497 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
2498 (enum rs6000_builtins): Add unsigned varients for the builtin
2499 declarations returned by target hooks for expanding multiplies,
2500 select, and permute operations. Add VSX builtins.
2501 (enum rs6000_builtin_type_index): Add entries for VSX.
2502 (V2DI_type_node): Ditto.
2503 (V2DF_type_node): Ditto.
2504 (unsigned_V2DI_type_node): Ditto.
2505 (bool_long_type_node): Ditto.
2506 (intDI_type_internal_node): Ditto.
2507 (uintDI_type_internal_node): Ditto.
2508 (double_type_internal_node): Ditto.
2509
2510 * config/rs6000/altivec.md (whole file): Move all expanders to
2511 vector.md from altivec.md. Rename insn matching functions to be
2512 altivec_foo.
2513 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
2514 (altivec_vcmp*): Ditto.
2515 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
2516 (VM): New iterator for moves that includes the VSX types.
2517 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
2518 (altivec_vperm_<mode>_uns): New, for unsigned types.
2519 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
2520 (altivec_eq<mode>): Ditto.
2521 (altivec_gt<mode>): Ditto.
2522 (altivec_gtu<mode>): Ditto.
2523 (altivec_eqv4sf): Ditto.
2524 (altivec_gev4sf): Ditto.
2525 (altivec_gtv4sf): Ditto.
2526 (altivec_vcmpbfp_p): Ditto.
2527
2528 2009-07-23 Richard Earnshaw <rearnsha@arm.com>
2529
2530 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
2531 unsigned HWI.
2532
2533 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
2534
2535 PR target/40832
2536 * config/i386/i386.c (output_387_ffreep): Rewrite to use
2537 ASM_SHORT instead of .word.
2538 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
2539 instead of .word in asm template.
2540
2541 2009-07-22 Vladimir Makarov <vmakarov@redhat.com>
2542
2543 PR target/37488
2544 * ira-lives.c (bb_has_abnormal_call_pred): New function.
2545 (process_bb_node_lives): Use it.
2546
2547 * ira.c (setup_cover_and_important_classes): Don't setup
2548 ira_important_class_nums. Add cover classes to the end of
2549 important classes.
2550 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
2551 New.
2552 (find_reg_class_closure): Use reorder_important_classes.
2553
2554 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
2555
2556 * config/i386/i386.c (i386_ira_cover_classes): New function.
2557 (TARGET_IRA_COVER_CLASSES): Redefine.
2558
2559 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
2560 importance of order of cover classes in the array.
2561
2562 2009-07-22 Diego Novillo <dnovillo@google.com>
2563
2564 * tree-pass.h (TDF_EH): Define.
2565 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
2566 contains TDF_EH, print the EH region number holding GS.
2567 * tree-dump.c (dump_options): Add "eh".
2568 * doc/invoke.texi: Document it.
2569
2570 2009-07-22 Doug Kwan <dougkwan@google.com>
2571
2572 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
2573
2574 2009-07-22 Michael Matz <matz@suse.de>
2575
2576 PR tree-optimization/35229
2577 PR tree-optimization/39300
2578
2579 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
2580 (inhibit_phi_insertion): New function.
2581 (insert_into_preds_of_block): Call it for REFERENCEs.
2582 (init_pre): Initialize and finalize scalar evolutions.
2583 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
2584
2585 2009-07-22 Uros Bizjak <ubizjak@gmail.com>
2586
2587 * config/i386/predicates.md (zero_extended_scalar_load_operand):
2588 Use CONST_VECTOR_NUNITS to determine number of elements.
2589
2590 2009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
2591
2592 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
2593 (U, W): Constraints are now deprecated and will be removed if we
2594 run out of letters.
2595 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
2596 the file.
2597 ("prefetch"): Add the stcmh instruction for prefetching.
2598 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
2599 changes.
2600 (s390_short_displacement): Return always true if compiling for
2601 machines not providing the long displacement facility.
2602 (s390_mem_constraint): Support the new constraint letter Z.
2603 (s390_check_qrst_address): New function.
2604
2605 2009-07-21 DJ Delorie <dj@redhat.com>
2606
2607 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
2608 alone too.
2609
2610 2009-07-21 Jason Merrill <jason@redhat.com>
2611
2612 * c-common.c (max_tinst_depth): Increase default to 1024.
2613
2614 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
2615
2616 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
2617 (vec_unpacku_float_lo_v4si): Ditto.
2618
2619 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
2620
2621 PR target/40811
2622 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
2623 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
2624 (builtin_description): Add __builtin_ia32_cvtudq2ps.
2625 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
2626
2627 2009-07-21 Jakub Jelinek <jakub@redhat.com>
2628
2629 PR tree-optimization/40813
2630 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
2631 it.
2632
2633 2009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
2634
2635 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
2636 with a NOP_EXPR if needed.
2637
2638 2009-07-21 Paul Brook <paul@codesourcery.com>
2639
2640 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
2641 Terminate debug dump with newline.
2642
2643 2009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2644
2645 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
2646 Cast "1" to unsigned HOST_WIDE_INT.
2647 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
2648 deposit length to the maximum length - lsb. Extend length if
2649 HOST_BITS_PER_WIDE_INT is 32.
2650
2651 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
2652
2653 * cgraph.h (constant_pool_htab): New function.
2654 (constant_descriptor_tree): Move from varasm.c.
2655 * varasm.c (constant_pool_htab): New function.
2656 (constant_descriptor_tree): Move to cgraph.h.
2657
2658 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
2659
2660 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
2661
2662 2009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
2663
2664 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
2665 $(VARRAY_H).
2666
2667 2009-07-20 Xinliang David Li <davidxl@google.com>
2668
2669 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
2670
2671 2009-07-20 Adam Nemet <anemet@caviumnetworks.com>
2672
2673 * config/mips/mips.md (move_type): Add arith.
2674 (type): Handle arith.
2675 (zero_extendsidi2): Rename this into ...
2676 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
2677 (zero_extendsidi2): New expander.
2678 (*zero_extendsidi2_dext): New pattern.
2679
2680 2009-07-20 Nick Clifton <nickc@redhat.com>
2681
2682 * config.gcc (mips64-*-*): Add definition of tm_defines in order
2683 to set MIPS_ABI_DEFAULT.
2684 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
2685
2686 2009-07-20 Jakub Jelinek <jakub@redhat.com>
2687
2688 * tree-object-size.c (addr_object_size): Handle unions with
2689 array in it as last field of structs in __bos (, 1) as __bos (, 0).
2690
2691 PR tree-optimization/40792
2692 * tree.c (build_function_type_skip_args): Remove bogus assert.
2693
2694 2009-07-20 Jan Hubicka <jh@suse.cz>
2695 Martin Jambor <mjambor@suse.cz>
2696
2697 * cgraph.h (combined_args_to_skip): New field.
2698 * cgraph.c (cgraph_create_virtual_clone): Properly handle
2699 combined_args_to_skip and args_to_skip.
2700 * tree-inline.c (update_clone_info): New function.
2701 (tree_function_versioning): Call update_clone_info.
2702 * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
2703 functions.
2704 (cgraph_materialize_all_clones): More extensive dumping, working
2705 with combined_args_to_skip rather than args_to_skip.
2706
2707 2009-07-20 Ira Rosen <irar@il.ibm.com>
2708
2709 * tree-vectorizer.h (vectorizable_condition): Add parameters.
2710 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
2711 (get_initial_def_for_reduction): Likewise.
2712 (vectorizable_reduction): Skip the check of first operand in case
2713 of COND_EXPR. Add check that it is outer loop vectorization if
2714 nested cycle was detected. Call vectorizable_condition() for
2715 COND_EXPR. If reduction epilogue cannot be created do not fail for
2716 nested cycles (if it is not double reduction). Assert that there
2717 is only one type in the loop in case of COND_EXPR. Call
2718 vectorizable_condition() to vectorize COND_EXPR.
2719 * tree-vect-stmts.c (vectorizable_condition): Update comment.
2720 Add parameters. Allow nested cycles if called from
2721 vectorizable_reduction(). Use reduction vector variable if provided.
2722 (vect_analyze_stmt): Call vectorizable_reduction() before
2723 vectorizable_condition().
2724 (vect_transform_stmt): Update call to vectorizable_condition().
2725
2726 2009-07-20 Christian Bruel <christian.bruel@st.com>
2727
2728 * config/sh/sh.opt (-mfmovd): Resurrect and document.
2729 * doc/invoke.texi (-mfmovd): Likewise.
2730 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
2731
2732 2009-07-20 Jan Hubicka <jh@suse.cz>
2733
2734 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
2735 when handling SSA name.
2736
2737 2009-07-19 Jan Hubicka <jh@suse.cz>
2738
2739 PR tree-optimization/40676
2740 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
2741 virtual PHIs in empty BBs.
2742
2743 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2744
2745 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
2746 re-expanded the compound use gen_lowpart instead to convert to the
2747 desired mode.
2748
2749 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2750
2751 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
2752 OUTER_CONST arguments.
2753 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
2754 the new wider mode will be masked off.
2755 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
2756
2757 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2758
2759 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
2760 high-order bits are zero.
2761
2762 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2763
2764 * combine.c (simplify_shift_const_1): Split code to determine
2765 shift_mode into ...
2766 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
2767 new bits shifted in are identical to the old sign bit.
2768
2769 2009-07-18 Richard Guenther <rguenther@suse.de>
2770
2771 PR c/40787
2772 * gimplify.c (gimplify_call_expr): Reject code using results from
2773 functions returning void.
2774
2775 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
2776
2777 * doc/md.texi: Document the new PowerPC "es" constraint.
2778 Document that "m" can include automodified addresses on this target,
2779 and explain how %U must be used. Extend the "Q" and "Z" documentation
2780 to suggest "es" as well as "m".
2781 * config/rs6000/constraints.md (es): New memory constraint.
2782 (Q, Z): Update strings to match new documentation.
2783
2784 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
2785
2786 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
2787 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
2788 * config/rs6000/predicates.md (volatile_mem_operand): Use
2789 offsettable_nonstrict_memref_p.
2790 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
2791 (*floatunssidf2_internal): Likewise.
2792 (*fix_truncdfsi2_internal): Likewise.
2793 (*fix_trunctfsi2_internal): Likewise.
2794
2795 2009-07-17 Anatoly Sokolov <aesok@post.ru>
2796
2797 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
2798 atmega32u2 devices.
2799 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2800
2801 2009-07-17 Richard Guenther <rguenther@suse.de>
2802
2803 PR c/40401
2804 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
2805 (pass_warn_unused_result): Likewise.
2806 (TODO_set_props): Remove.
2807 * omp-low.c (diagnose_omp_structured_block_errors): Change to
2808 run as a pass.
2809 (pass_diagnose_omp_blocks): Define.
2810 * c-decl.c (pop_file_scope): Do not finalize the CU here.
2811 (c_gimple_diagnostics_recursively): Remove.
2812 (finish_function): Do not call it.
2813 (c_write_global_declarations): Continue after errors.
2814 Finalize the CU here.
2815 * c-gimplify.c (c_genericize): Do not gimplify here.
2816 * c-common.c (c_warn_unused_result): Move ...
2817 * tree-cfg.c (do_warn_unused_result): ... here.
2818 (run_warn_unused_result): New function.
2819 (gate_warn_unused_result): New function.
2820 (pass_warn_unused_result): New pass.
2821 * c-common.h (c_warn_unused_result): Remove.
2822 * flags.h (flag_warn_unused_result): Declare.
2823 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
2824 * opts.c (flag_warn_unused_result): Initialize to false.
2825 * toplev.c (compile_file): Add comment.
2826 * omp-low.c (create_omp_child_function): Do not register
2827 the function with the frontend.
2828 (diagnose_omp_structured_block_errors): Prepare to be
2829 called as optimization pass.
2830 (gate_diagnose_omp_blocks): New function.
2831 (pass_diagnose_omp_blocks): New pass.
2832 * cgraph.h (cgraph_optimize): Remove.
2833 (cgraph_analyze_function): Likewise.
2834 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
2835 * cgraphunit.c (cgraph_lower_function): Lower nested functions
2836 before their parents here.
2837 (cgraph_finalize_function): Not here.
2838 (cgraph_analyze_function): Gimplify functions here.
2839 (cgraph_finalize_compilation_unit): Continue after errors.
2840 Optimize the callgraph from here.
2841 (cgraph_optimize): Make static.
2842 * langhooks.c (write_global_declarations): Finalize the CU.
2843 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
2844 (gimplify_function_tree): Assert we gimplify only once.
2845 Set PROP_gimple_any property.
2846 * tree-nested.c (gimplify_all_functions): New function.
2847 (lower_nested_functions): Gimplify all nested functions.
2848 * gimple.h (diagnose_omp_structured_block_errors): Remove.
2849 * passes.c (init_optimization_passes): Add pass_warn_unused_result
2850 and pass_diagnose_omp_blocks after gimplification. Do not
2851 set TODO_set_props on all_lowering_passes.
2852 (execute_one_pass): Do not handle TODO_set_props.
2853 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
2854 (gimplify.o): Add tree-pass.h dependency.
2855 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
2856 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
2857 (unsave_r): Likewise.
2858 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
2859 temporary variable.
2860
2861 2009-07-17 Sandra Loosemore <sandra@codesourcery.com>
2862
2863 * doc/service.texi (Service): Restore previously removed link,
2864 which isn't broken after all.
2865
2866 2009-07-17 Richard Guenther <rguenther@suse.de>
2867
2868 PR tree-optimization/40321
2869 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
2870 PHI nodes to the maximal set.
2871 (make_values_for_phi): Add PHI arguments to the maximal set.
2872 (execute_pre): Dump PHI_GEN and the maximal set.
2873
2874 2009-07-17 Jakub Jelinek <jakub@redhat.com>
2875
2876 PR c++/40780
2877 * gimplify.c (gimplify_conversion): Don't change non-conversions into
2878 VIEW_CONVERT_EXPR.
2879
2880 2009-07-16 Sandra Loosemore <sandra@codesourcery.com>
2881
2882 * doc/extend.texi (Nested Functions): Replace broken link with
2883 textual reference.
2884 * doc/service.texi (Service): Remove broken link.
2885
2886 2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
2887
2888 PR bootstrap/40781
2889 * builtins.c (expand_builtin_memcmp): Use loc instead of
2890 EXPR_LOCATION (exp).
2891 (expand_builtin_strncmp): Likewise.
2892
2893 2009-07-17 Aldy Hernandez <aldyh@redhat.com>
2894 Manuel López-Ibáñez <manu@gcc.gnu.org>
2895
2896 PR 40435
2897 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
2898 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
2899 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
2900 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
2901 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
2902 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
2903 tree-inline.c, c-common.c, c-common.h, gimple.c,
2904 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
2905 convert.c: Add location argument to fold_{unary,binary,ternary},
2906 fold_build[123], build_call_expr, build_size_arg,
2907 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
2908 fold_build1_initializer, fold_build2_initializer,
2909 fold_build3_initializer, fold_build_call_array,
2910 fold_build_call_array_initializer, fold_single_bit_test,
2911 omit_one_operand, omit_two_operands, invert_truthvalue,
2912 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
2913 combine_comparisons, fold_builtin_*, fold_call_expr,
2914 build_range_check, maybe_fold_offset_to_address, round_up,
2915 round_down.
2916
2917 2009-07-16 Jason Merrill <jason@redhat.com>
2918
2919 PR libstdc++/37907
2920 * c-common.c (c_common_reswords): Add __is_standard_layout
2921 and __is_trivial.
2922 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
2923 * doc/implement-cxx.texi: New.
2924 * doc/gcc.texi: Include it.
2925
2926 2009-07-16 DJ Delorie <dj@redhat.com>
2927
2928 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
2929 compares that may be indirectly affected by previous instructions.
2930
2931 2009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2932
2933 * builtins.c (do_mpc_arg2): New.
2934 (fold_builtin_2): Fold builtin cpow.
2935 * real.h (HAVE_mpc_pow): New.
2936
2937 2009-07-16 Bingfeng Mei <bmei@broadcom.com>
2938
2939 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
2940 comparison to skip unprofitable schedule
2941
2942 2009-07-16 Simon Baldwin <simonb@google.com>
2943
2944 * gcc.c (option_map): New flag -no-canonical-prefixes.
2945 * (display_help): Print help text for new flag.
2946 * (process_command): Move options translation and language specifics
2947 and handle new flag early. Use it to set a function pointer to a
2948 prefix builder. Replace make_relative_prefix calls with calls to
2949 the function pointed to. Ignore new flag in regular options handling.
2950 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
2951
2952 2009-07-15 DJ Delorie <dj@redhat.com>
2953
2954 * config/mep/mep.md (sibcall_internal): Change register to avoid
2955 argument registers.
2956 (sibcall_value_internal): Likewise.
2957
2958 2009-07-15 Eric Botcazou <ebotcazou@adacore.com>
2959
2960 PR rtl-optimization/40710
2961 * resource.c (mark_target_live_regs): Reset DF problem to LR.
2962
2963 2009-07-15 Adam Nemet <anemet@caviumnetworks.com>
2964
2965 * config/mips/mips.md (*extenddi_truncate<mode>,
2966 *extendsi_truncate<mode>): Change type attribute to move_type
2967 with shift_shift. Split out code handling exts from here ...
2968 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
2969 pattern.
2970 (*extendhi_truncateqi): Change type attribute to move_type with
2971 shift_shift. Split out code handling exts from here ...
2972 (*extendhi_truncateqi_exts): ... to this new pattern.
2973
2974 2009-07-15 Uros Bizjak <ubizjak@gmail.com>
2975
2976 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
2977 instead of "and" with inverted sign bit mask value. Use
2978 "nonimmediate_operand" for operand 1 and operand 2 predicate.
2979 Allocate registers only for operand 4 and operand 5.
2980
2981 2009-07-15 Jakub Jelinek <jakub@redhat.com>
2982
2983 PR middle-end/40747
2984 * fold-const.c (fold_cond_expr_with_comparison): When folding
2985 < and <= to MIN, make sure the MIN uses the same type as the
2986 comparison's operands.
2987
2988 2009-07-15 Richard Earnshaw <rearnsha@arm.com>
2989
2990 * arm.md (ior_xor): New code iterator.
2991 (split for ior/xor with shift and zero-extend): New split pattern.
2992 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
2993
2994 2009-07-15 Richard Guenther <rguenther@suse.de>
2995
2996 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
2997 offset member.
2998
2999 2009-07-15 Richard Guenther <rguenther@suse.de>
3000
3001 PR middle-end/40753
3002 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
3003
3004 2009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3005
3006 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
3007 handle 2.6.30 kernel.
3008
3009 2009-07-15 DJ Delorie <dj@redhat.com>
3010
3011 * config/mep/mep.md (sibcall_internal): Change register to allow
3012 for 24-bit addresses.
3013 (sibcall_value_internal): Likewise.
3014
3015 2009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
3016
3017 * doc/invoke.texi: Added descriptions of the scheduling heuristics
3018 that are enabled/disabled by the flags introduced by a previous patch.
3019
3020 2009-07-14 DJ Delorie <dj@redhat.com>
3021
3022 * config/mep/mep.md (sibcall_internal): Include non-toggling
3023 non-jmp case.
3024 (sibcall_value_internal): Likewise.
3025
3026 2009-07-14 Taras Glek <tglek@mozilla.com>
3027 Rafael Espindola <espindola@google.com>
3028
3029 * doc/sourcebuild.texi: Document install-plugin target.
3030 * configure.ac: Added install-plugin target to language makefiles.
3031 * configure: Regenerate.
3032 * Makefile.in: (install-plugin): Install more headers,
3033 depend on lang.install-plugin.
3034
3035 2009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3036
3037 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
3038 translation.
3039
3040 2009-07-14 DJ Delorie <dj@redhat.com>
3041
3042 * config/mep/mep.c (mep_vliw_jmp_match): New function.
3043 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
3044 * config/mep/mep.md (sibcall_internal): Change test from
3045 mep_vliw_mode_match to mep_vliw_jmp_match.
3046 (sibcall_value_internal): Likewise.
3047
3048 2009-07-14 Uros Bizjak <ubizjak@gmail.com>
3049
3050 * config/i386/sse.md (copysign<mode>3): New expander.
3051 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
3052 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
3053 Use ix86_build_const_vector.
3054 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
3055 IX86_BUILTIN_CPYSGNPD.
3056 (builtin_description): Add __builtin_ia32_copysignps and
3057 __builtin_ia32_copysignpd.
3058 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
3059 and BUILT_IN_COPYSIGNF.
3060
3061 2009-07-13 Jason Merrill <jason@redhat.com>
3062
3063 * builtins.c (can_trust_pointer_alignment): New fn.
3064 (get_pointer_alignment): Factor it out from here.
3065 * tree.h: Declare it.
3066
3067 2009-07-14 David Edelsohn <edelsohn@gnu.org>
3068
3069 * config/rs6000/predicates.md (offsettable_mem_operand): Test
3070 RTX_AUTOINC class.
3071
3072 2009-07-14 Dodji Seketeli <dodji@redhat.com>
3073
3074 PR debug/40705
3075 PR c++/403057
3076 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
3077
3078 2009-07-14 Richard Guenther <rguenther@suse.de>
3079 Andrey Belevantsev <abel@ispras.ru>
3080
3081 PR middle-end/40745
3082 * cfgexpand.c (partition_stack_vars): Do not bother to update
3083 alias information when not optimizing.
3084
3085 2009-07-14 Richard Guenther <rguenther@suse.de>
3086 Andrey Belevantsev <abel@ispras.ru>
3087
3088 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
3089 (pt_solution_set): Likewise.
3090 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
3091 * tree-ssa-structalias.c (pt_solution_set): New function.
3092 * final.c (rest_of_clean_state): Free SSA data structures.
3093 * print-rtl.c (print_decl_name): Remove.
3094 (print_mem_expr): Implement in terms of print_generic_expr.
3095 * alias.c (ao_ref_from_mem): New function.
3096 (rtx_refs_may_alias_p): Likewise.
3097 (true_dependence): Query alias-export info.
3098 (canon_true_dependence): Likewise.
3099 (write_dependence_p): Likewise.
3100 * tree-dfa.c (get_ref_base_and_extent): For void types leave
3101 size unknown.
3102 * emit-rtl.c (component_ref_for_mem_expr): Remove.
3103 (mem_expr_equal_p): Use operand_equal_p.
3104 (set_mem_attributes_minus_bitpos): Do not use
3105 component_ref_for_mem_expr.
3106 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
3107 (update_alias_info_with_stack_vars): Likewise.
3108 (partition_stack_vars): Call update_alias_info_with_stack_vars.
3109 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
3110 explicitly nor clear stmt operands.
3111 Free the decl-to-pointer map.
3112 * tree-optimize.c (execute_free_datastructures): Do not free
3113 SSA data structures here.
3114 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
3115 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
3116 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
3117 dependencies.
3118 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
3119
3120 2009-07-13 DJ Delorie <dj@redhat.com>
3121
3122 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
3123 unrolling at the right iteration count.
3124
3125 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
3126 calculations.
3127
3128 2009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
3129
3130 * haifa-sched.c (rank_for_schedule): Introduced flags to
3131 enable/disable individual scheduling heuristics.
3132 * common.opt: Introduced flags to enable/disable individual
3133 heuristics in the scheduler.
3134 * doc/invoke.texi: Introduced flags to enable/disable individual
3135 heuristics in the scheduler.
3136
3137 2009-07-13 Kai Tietz <kai.tietz@onevision.com>
3138
3139 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
3140 config/i386/mingw-tls.c.
3141 * config/i386/mingw-tls.c: Removed.
3142
3143 2009-07-13 Ira Rosen <irar@il.ibm.com>
3144
3145 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
3146 checks access only relevant statements.
3147 (vectorizable_reduction): Likewise.
3148
3149 2009-07-12 Kai Tietz <kai.tietz@onevision.com>
3150
3151 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
3152 just for 32-bit case.
3153
3154 2009-07-12 Jan Hubicka <jh@suse.cz>
3155
3156 PR tree-optimization/40585
3157 * except.c (expand_resx_expr): When there already is resume
3158 instruction, produce linked list.
3159 (build_post_landing_pads): Assert that resume is empty.
3160 (connect_post_landing_pads): Handle resume lists.
3161 (dump_eh_tree): Dump resume list.
3162
3163 2009-07-12 Ira Rosen <irar@il.ibm.com>
3164
3165 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3166 with additional argument.
3167 * tree-vectorizer.h (enum vect_def_type): Add
3168 vect_double_reduction_def.
3169 (vect_is_simple_reduction): Add argument.
3170 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
3171 indentation.
3172 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
3173 vect_is_simple_reduction with additional argument.
3174 (vect_analyze_loop_operations): Handle exit phi nodes in case of
3175 double reduction.
3176 (reduction_code_for_scalar_code): Handle additional codes by
3177 returning ERROR_MARK for them. Fix comment and indentation.
3178 (vect_is_simple_reduction): Fix comment, add argument to specify
3179 double reduction. Detect double reduction.
3180 (get_initial_def_for_induction): Fix indentation.
3181 (get_initial_def_for_reduction): Fix comment and indentation.
3182 Handle double reduction. Create initial definitions that do not
3183 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
3184 (vect_create_epilog_for_reduction): Fix comment, add argument to
3185 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
3186 epilogue result extraction. Create double reduction phi node and
3187 replace relevant uses.
3188 (vectorizable_reduction): Call vect_is_simple_reduction with
3189 additional argument. Fix indentation. Update epilogue code treatment
3190 according to the changes in reduction_code_for_scalar_code. Check
3191 for double reduction. Call vect_create_epilog_for_reduction with
3192 additional argument.
3193 * tree-vect-stmts.c (process_use): Handle double reduction, update
3194 documentation.
3195 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
3196 (vect_get_vec_def_for_operand): Likewise.
3197
3198 2009-07-12 Danny Smith <dansmister@gmail.com>
3199
3200 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
3201 dllexport if !TREE_PUBLIC.
3202 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
3203
3204 2009-07-11 Anatoly Sokolov <aesok@post.ru>
3205
3206 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
3207 (avr_extra_arch_macro) Remove declatation.
3208 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
3209 (avr_extra_arch_macro) Declare as static.
3210 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
3211
3212 2009-07-11 Jan Hubicka <jh@suse.cz>
3213
3214 PR middle-end/48388
3215 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
3216
3217 2009-07-11 Jakub Jelinek <jakub@redhat.com>
3218
3219 PR debug/40713
3220 * dwarf2out.c (dw_fde_struct): Add in_std_section and
3221 cold_in_std_section bits.
3222 (dwarf2out_begin_prologue): Initialize them.
3223 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
3224 if already covered by text_section or cold_text_section range.
3225
3226 PR rtl-optimization/40667
3227 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
3228 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
3229 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
3230 * config/i386/i386.c (ix86_minimum_alignment): New function.
3231 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
3232 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
3233 * emit-rtl.c (gen_reg_rtx): Likewise.
3234 * function.c (assign_parms): Likewise. If nominal_type needs
3235 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
3236 rather than passed_type's alignment.
3237
3238 PR target/40668
3239 * function.c (assign_parm_setup_stack): Adjust
3240 MEM_OFFSET (data->stack_parm) if promoted_mode is different
3241 from nominal_mode on big endian.
3242
3243 2009-07-11 Paolo Bonzini <bonzini@gnu.org>
3244
3245 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
3246
3247 2009-07-10 DJ Delorie <dj@redhat.com>
3248
3249 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
3250
3251 2009-07-10 Mark Mitchell <mark@codesourcery.com>
3252
3253 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
3254 attribute.
3255 (thumb2_cbnz): Likewise.
3256
3257 2009-07-10 David Daney <ddaney@caviumnetworks.com>
3258
3259 PR target/39079
3260 * config.gcc (supported_defaults): Add synci.
3261 (with_synci): Add validation.
3262 (all_defaults): Add synci.
3263 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
3264 ISA_HAS_SYNCI.
3265 (synci): Same.
3266 * config/mips/mips.opt (msynci): New option.
3267 * config/mips/mips.c (mips_override_options): Warn on use of
3268 -msynci for targets that do now support it.
3269 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
3270 msynci.
3271 * gcc/doc/invoke.texi (-msynci): Document the new option.
3272 * doc/install.texi (--with-synci): Document the new option.
3273
3274 2009-07-10 Richard Guenther <rguenther@suse.de>
3275
3276 PR tree-optimization/40496
3277 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
3278 the PHI result with a compatible type.
3279
3280 2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
3281
3282 PR 25509
3283 PR 40614
3284 * c.opt (Wunused-result): New.
3285 * doc/invoke.texi: Document it.
3286 * c-common.c (c_warn_unused_result): Use it.
3287
3288 2009-07-09 DJ Delorie <dj@redhat.com>
3289
3290 * targhooks.c (default_target_can_inline_p): Rename from
3291 default_target_option_can_inline_p.
3292 * targhooks.h (default_target_can_inline_p): Likewise.
3293 * target-def.h (TARGET_CAN_INLINE_P): Rename from
3294 TARGET_OPTION_CAN_INLINE_P.
3295 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
3296 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
3297 (mep_target_can_inline_p): Rename from
3298 mep_target_option_can_inline_p.
3299
3300 PR target/40626
3301 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
3302 registers used to pass vectors.
3303
3304 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
3305
3306 2009-07-09 Tom Tromey <tromey@redhat.com>
3307
3308 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
3309 * config/mmix/mmix.c: Include dwarf2.h.
3310 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
3311 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
3312 * config/sh/sh.c: Include dwarf2.h.
3313 * config/i386/i386.c: Include dwarf2.h.
3314 * Makefile.in (DWARF2_H): Remove 'elf'.
3315 * except.c: Include dwarf2.h.
3316 * unwind-dw2.c: Include dwarf2.h.
3317 * dwarf2out.c: Include dwarf2.h.
3318 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
3319 * unwind-dw2-fde.c: Include dwarf2.h.
3320 * dwarf2asm.c: Include dwarf2.h.
3321
3322 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
3323
3324 * haifa-sched.c (insn_finishes_cycle_p): New static function.
3325 (max_issue): Use it.
3326 * sched-int.h (struct sched_info: insn_finishes_block_p): New
3327 scheduler hook.
3328 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
3329 (region_sched_info): Update.
3330 * sched-ebb.c (ebb_sched_info): Update.
3331 * modulo-sched.c (sms_sched_info): Update.
3332 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
3333
3334 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
3335
3336 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
3337
3338 2009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
3339
3340 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
3341
3342 2009-07-09 Jakub Jelinek <jakub@redhat.com>
3343
3344 PR middle-end/40692
3345 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
3346 arg1 with arg01 if arg1 is already INTEGER_CST.
3347
3348 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
3349
3350 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
3351 Transform (and (truncate)) into (truncate (and)).
3352
3353 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
3354
3355 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
3356 creating LHS paradoxical subregs. Fix surrounding returns to
3357 use NULL_RTX rather than 0.
3358
3359 2009-07-08 DJ Delorie <dj@redhat.com>
3360
3361 * config/mep/mep.c: (mep_option_can_inline_p): New.
3362 (TARGET_OPTION_CAN_INLINE_P): Define.
3363
3364 2009-07-08 Mark Wielaard <mjw@redhat.com>
3365
3366 PR debug/40659
3367 * dwarf2out.c (add_data_member_location_attribute): When we have
3368 only a constant offset don't emit a new location description using
3369 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
3370 dwarf_version > 2.
3371
3372 2009-07-08 Richard Henderson <rth@redhat.com>
3373
3374 PR target/38900
3375 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
3376 (enum reg_class): Add CLOBBERED_REGS.
3377 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
3378 * config/i386/i386.c (ix86_conditional_register_usage): Moved
3379 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
3380 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
3381 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
3382 force 64-bit sibcalls into R11.
3383 * config/i386/constraints.md (U): New constraint.
3384 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
3385 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
3386 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
3387
3388 2009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
3389
3390 * basic-block.h (dump_regset, debug_regset): Remove duplicate
3391 prototypes.
3392 * c-objc-common.h (c_initialize_diagnostics): Ditto.
3393 * ebitmap.h (dump_ebitmap): Ditto.
3394 * optabs.h (optab_libfunc): Ditto.
3395 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
3396 * tree-flow.h (vect_can_force_dr_alignment_p,
3397 get_vectype_for_scalar_type): Ditto.
3398 (vectorize_loops): Move prototype to ...
3399 * tree-vectorizer.h: ... here. Also, adjust comment.
3400 (vect_set_verbosity_level): Remove duplicate prototype.
3401 * tree-ssa-loop.c: Include tree-vectorizer.h.
3402 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
3403
3404 2009-07-08 Nick Clifton <nickc@redhat.com>
3405
3406 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
3407 forward slash.
3408
3409 2009-07-08 DJ Delorie <dj@redhat.com>
3410
3411 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
3412 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
3413 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
3414 written to.
3415 * config/mep/intrinsics.md: Regenerated.
3416 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
3417 registers when asm() or calls are detected.
3418
3419 2009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
3420
3421 PR c++/31246
3422 * gimplify.c (gimplify_expr): Propagate no_warning flag when
3423 gimplifying.
3424 * gimple (gimple_build_call_from_tree): Likewise.
3425 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
3426 no_warning flag before warning.
3427
3428 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
3429
3430 * tree.c (set_expr_locus): Remove.
3431 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
3432 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
3433 EXPR_LOCATION.
3434 * gimplify.c (internal_get_tmp_var): Likewise.
3435 (gimplify_call_expr): Likewise.
3436 (gimplify_one_sizepos): Likewise.
3437
3438 2009-07-07 Eric Botcazou <ebotcazou@adacore.com>
3439
3440 PR debug/40666
3441 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
3442 to variables for debugging purposes.
3443
3444 2009-06-23 Mark Loeser <mark@halcy0n.com>
3445
3446 PR build/40010
3447 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
3448
3449 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
3450
3451 * pretty-print.c (pp_base_format): Remove %J.
3452 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
3453 gcc_cxxdiag_char_table): Likewise.
3454 (init_dynamic_diag_info): Likewise.
3455
3456 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
3457
3458 * pretty-print.c (pp_base_format): Remove %H.
3459 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
3460 gcc_cxxdiag_char_table): Likewise.
3461 (init_dynamic_diag_info): Likewise.
3462 * config/mep/mep.c (mep_select_section): Likewise.
3463
3464 2009-07-07 Duncan Sands <baldrick@free.fr>
3465
3466 * final.c (pass_clean_state): Give the pass a name.
3467 * passes.c (pass_rest_of_compilation): Likewise.
3468 * tree-optimize.c (pass_all_optimizations): Likewise.
3469
3470 2009-07-07 H.J. Lu <hongjiu.lu@intel.com>
3471
3472 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
3473 an extra 'decl' for error_at.
3474
3475 2009-07-07 Jakub Jelinek <jakub@redhat.com>
3476
3477 PR middle-end/40669
3478 * tree-tailcall.c (adjust_return_value_with_ops,
3479 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
3480 if it has complex or vector type.
3481
3482 2009-07-07 Olivier Hainque <hainque@adacore.com>
3483
3484 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
3485 pthread symbols.
3486
3487 2009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
3488
3489 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
3490
3491 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
3492
3493 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
3494 * c-decl.c: Likewise.
3495 * function.c: Likewise.
3496 * varasm.c: Likewise.
3497 * tree-ssa.c: Likewise.
3498 * c-common.c: Likewise.
3499 * tree-cfg.c: Likewise.
3500 * config/spu/spu.c: Likewise.
3501 * config/ia64/ia64.c: Likewise.
3502 * config/v850/v850.c: Likewise.
3503
3504 2009-07-06 DJ Delorie <dj@redhat.com>
3505
3506 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
3507 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
3508 unspecified accesses to control registers.
3509 * config/mep/intrinsics.md: Regenerate.
3510 * config/mep/intrinsics.h: Regenerate.
3511 * config/mep/mep-intrin.h: Regenerate.
3512
3513 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
3514
3515 * c-lex.c: Replace %H by an explicit location. Update all calls.
3516 * c-common.c: Likewise.
3517 * c-decl.c: Likewise.
3518 * c-typeck.c: Likewise.
3519 * fold-const.c: Likewise.
3520 * gimplify.c: Likewise.
3521 * stmt.c: Likewise.
3522 * tree-cfg.c: Likewise.
3523 * tree-ssa-loop-niter.c: Likewise.
3524 * tree-vrp.c: Likewise.
3525 * value-prof.c: Likewise.
3526
3527 2009-07-06 Diego Novillo <dnovillo@google.com>
3528
3529 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
3530 if it has one. Handle cases where VAR does not have an
3531 annotation or cfun is NULL.
3532
3533 2009-07-06 Diego Novillo <dnovillo@google.com>
3534
3535 * tree.c: Include debug.h.
3536 (initialize_tree_contains_struct): New.
3537 (init_ttree): Call it.
3538 (tree_node_structure_for_code): Factor out of ...
3539 (tree_node_structure): ... here.
3540 * treestruct.def (TS_PHI_NODE): Remove.
3541 (TS_GIMPLE_STATEMENT): Remove.
3542
3543 2009-07-06 Diego Novillo <dnovillo@google.com>
3544
3545 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
3546 (debug_tree_chain): Handle cycles.
3547
3548 2009-07-06 Nick Clifton <nickc@redhat.com>
3549 DJ Delorie <dj@redhat.com>
3550
3551 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3552 __FMOVD_ENABLED__ is defined.
3553 * config/sh/sh.h
3554 (TARGET_FMOVD): Provide a default definition.
3555 (MASK_FMOVD): Likewise.
3556 (TARGET_CPU_CPP_BUILTINS): Define
3557 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3558 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3559 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
3560 (split for DF load from memory into register): Also handle
3561 MEMs which consist of REG+DISP addressing.
3562 (split for DF store from register to memory): Likewise.
3563 (movsf_ie): Always use single fp_mode.
3564 * config/sh/sh.c (sh_override_options): Do not automatically
3565 enable TARGET_MOVD for the SH2A when supporting doubles - leave
3566 that to the -mfmovd command line switch.
3567 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
3568 (fldi_ok): Always allow.
3569 * config/sh/sh.opt (mfmovd): Remove this switch.
3570 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3571
3572 2009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
3573 Kaz Kojima <kkojima@gcc.gnu.org>
3574
3575 PR rtl-optimization/30807
3576 * postreload.c (reload_combine): For every new use of REG_SUM,
3577 record the use of BASE.
3578
3579 2009-07-06 Jan Hubicka <jh@suse.cz>
3580
3581 * params.def: Revert my accidental commit at 2009-06-30.
3582
3583 2009-07-04 Ian Lance Taylor <iant@google.com>
3584
3585 PR target/40636
3586 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
3587 EXPORTED_CONST.
3588 (mingw_format_attribute_overrides): Likewise.
3589
3590 2009-07-04 Jakub Jelinek <jakub@redhat.com>
3591
3592 PR debug/40596
3593 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
3594 don't check cfa.reg. Instead of cfa.indirect use
3595 fde && fde->drap_reg != INVALID_REGNUM test.
3596
3597 2009-07-04 Eric Botcazou <ebotcazou@adacore.com>
3598
3599 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
3600
3601 2009-07-03 Vladimir Makarov <vmakarov@redhat.com>
3602
3603 PR target/40587
3604 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3605
3606 2009-07-03 Richard Guenther <rguenther@suse.de>
3607
3608 PR tree-optimization/40640
3609 * tree-switch-conversion.c (build_arrays): Perform arithmetic
3610 in original type.
3611
3612 2009-07-03 Jan Hubicka <jh@suse.cz>
3613
3614 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
3615 for size, reduce amount of inlining.
3616
3617 2009-07-03 Richard Guenther <rguenther@suse.de>
3618
3619 PR middle-end/34163
3620 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
3621 if t +- x is known to not overflow and the conversion widens the
3622 operation.
3623 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
3624
3625 2009-07-03 Jan Hubicka <jh@suse.cz>
3626
3627 * ipa-pure-const.c (analyze): Update loop optimizer init.
3628 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
3629 try_remove_empty_loop, remove_empty_loops): Remove.
3630 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
3631 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
3632 to mark regular loops as neccesary.
3633 (degenerate_phi_p): New function.
3634 (propagate_necessity, remove_dead_phis): Use it.
3635 (forward_edge_to_pdom): Likewise.
3636 (eliminate_unnecessary_stmts): Take care to remove uses of results of
3637 virtual PHI nodes that became unreachable.
3638 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
3639 * tree-flow.h (remove_empty_loops): Remove.
3640 * passes.c (init_optimization_passes): Remove.
3641
3642 2009-07-03 Uros Bizjak <ubizjak@gmail.com>
3643
3644 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
3645 can_create_pseudo_p.
3646 (*fix_trunc<mode>_i387_1): Ditto.
3647 (*floathi<mode>2_1): Ditto.
3648 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
3649 (*fistdi2_1): Ditto.
3650 (*fist<mode>2_1): Ditto.
3651 (frndintxf2_floor): Ditto.
3652 (*fist<mode>2_floor_1): Ditto.
3653 (frndintxf2_ceil): Ditto.
3654 (*fist<mode>2_ceil_1): Ditto.
3655 (frndintxf2_trunc): Ditto.
3656 (frndintxf2_mask_pm): Ditto.
3657 (fxam<mode>2_i387_with_temp): Ditto.
3658 * config/i386/sse.md (mulv16qi3): Ditto.
3659 (*sse2_mulv4si3): Ditto.
3660 (mulv2di3): Ditto.
3661 (sse4_2_pcmpestr): Ditto.
3662 (sse4_2_pcmpistr): Ditto.
3663
3664 2009-07-03 Jan Hubicka <jh@suse.cz>
3665
3666 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
3667 (mark_stmt_necessary): Set it.
3668 (mark_operand_necessary): Set it.
3669 (mark_control_dependent_edges_necessary): Set it.
3670 (mark_virtual_phi_result_for_renaming): New function.
3671 (get_live_post_dom): New function.
3672 (forward_edge_to_pdom): New function.
3673 (remove_dead_stmt): Fix handling of control dependences.
3674 (tree_dce_init): Init new bitmap.
3675 (tree_dce_done): Free it.
3676
3677 2009-07-02 Richard Guenther <rguenther@suse.de>
3678
3679 PR bootstrap/40617
3680 * tree-ssa-structalias.c (new_var_info): Initialize
3681 is_restrict_var.
3682
3683 2009-07-02 Jan Hubicka <jh@suse.cz>
3684
3685 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
3686 local.
3687
3688 2009-07-02 Paolo Bonzini <bonzini@gnu.org>
3689
3690 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
3691 instead of recomputing it. Adjust calls.
3692 (emit_store_flag): Adjust recursive calls.
3693
3694 2009-07-02 Richard Guenther <rguenther@suse.de>
3695
3696 * tree-ssa-live.c (remove_unused_locals): Do not remove
3697 heap variables.
3698 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
3699 of DECL_EXTERNAL for HEAP variables.
3700 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
3701 HEAP variables. Do not adjust RESTRICT vars.
3702 (find_what_var_points_to): Nobody cares if something
3703 points to READONLY.
3704
3705 2009-07-02 Ben Elliston <bje@au.ibm.com>
3706
3707 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
3708 pc_low and pc_high declarations to the top of the function.
3709
3710 2009-07-01 DJ Delorie <dj@redhat.com>
3711
3712 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
3713 registers as fixed.
3714 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
3715 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
3716 unspecified accesses to control registers.
3717 * config/mep/intrinsics.md: Regenerate.
3718 * config/mep/intrinsics.h: Regenerate.
3719 * config/mep/mep-intrin.h: Regenerate.
3720
3721 2009-07-01 Anthony Green <green@moxielogic.com>
3722
3723 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
3724 instruction when possible.
3725 (moxie_expand_prologue): Ditto. Also, save an instruction and
3726 some complexity by popping off of $r12 instead of $sp.
3727 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
3728 operands.
3729
3730 2009-07-01 Richard Henderson <rth@redhat.com>
3731
3732 PR bootstrap/40347
3733 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
3734 contained no insns, reposition note before last insn.
3735
3736 2009-07-01 Richard Henderson <rth@redhat.com>
3737
3738 PR debug/40431
3739 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
3740 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
3741
3742 2009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
3743
3744 PR bootstrap/40558
3745 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
3746 darwin9 for printing reg addresses with %y.
3747
3748 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
3749
3750 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
3751 truncation from operands in binary operations.
3752
3753 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
3754
3755 Revert:
3756 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
3757 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
3758 subreg of op0 to the original op0.
3759
3760 * expmed.c (store_bit_field_1): Use a temporary as the destination
3761 instead of a paradoxical subreg when we need to truncate the result.
3762
3763 2009-07-01 DJ Delorie <dj@redhat.com>
3764
3765 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
3766 names to VLIW variants.
3767 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
3768 * config/mep/intrinsics.md: Regenerate.
3769 * config/mep/intrinsics.h: Regenerate.
3770 * config/mep/mep-intrin.h: Regenerate.
3771
3772 2009-07-01 Jakub Jelinek <jakub@redhat.com>
3773
3774 PR debug/40462
3775 * jump.c (returnjump_p): Revert last patch.
3776 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
3777
3778 2009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3779
3780 PR target/40575
3781 * pa.md (casesi32p): Use jump table label to determine the offset
3782 of the jump table.
3783 (casesi64p): Likewise.
3784
3785 * pa.c (forward_branch_p): Return bool type. Use instruction
3786 addresses when available. Assert that INSN has a jump label.
3787 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
3788 have a jump label.
3789
3790 2009-07-01 Richard Guenther <rguenther@suse.de>
3791
3792 PR tree-optimization/19831
3793 * tree-ssa-dce.c (propagate_necessity): Calls to functions
3794 that only act as barriers do not make any previous stores necessary.
3795 * tree-ssa-structalias.c (handle_lhs_call): Delay making
3796 HEAP variables global, do not add a constraint from nonlocal.
3797 (find_func_aliases): Handle escapes through return statements.
3798 (compute_points_to_sets): Make escaped HEAP variables global.
3799
3800 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
3801
3802 PR bootstrap/40597
3803 * expmed.c (emit_store_flag): Perform a conversion if necessary,
3804 after reducing a DImode cstore to SImode.
3805
3806 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
3807
3808 * expr.c (expand_expr_real_1): Reinstate fallthrough to
3809 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
3810
3811 2009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
3812
3813 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
3814 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
3815 to 0.
3816 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
3817 and umod_optab if TARGET_BSD_DIVMOD.
3818 * config/vax/lib1funcs.asm: New file.
3819 * config/vax/t-linux: New file.
3820 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
3821
3822 2009-06-30 Jakub Jelinek <jakub@redhat.com>
3823
3824 PR c++/40566
3825 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
3826 to type arguments that have void type.
3827
3828 PR debug/40573
3829 * dwarf2out.c (gen_formal_parameter_die): Call
3830 equate_decl_number_to_die if node is different from origin.
3831
3832 2009-06-30 Anthony Green <green@moxielogic.com>
3833
3834 Clean up moxie port for --enable-build-with-cxx.
3835 * config/moxie/moxie.c (moxie_function_value): First two
3836 parameters are const_tree, not tree.
3837 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
3838 (REG_CLASS_NAMES): Ditto.
3839 (REGNO_REG_CLASS): Ditto.
3840 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
3841 (moxie_function_value): Fix constyness of arguments.
3842
3843 2009-06-30 Eric Botcazou <ebotcazou@adacore.com>
3844
3845 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3846 finalize_size_functions before further processing.
3847 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
3848 (variable_size): Call self_referential_size on size expressions
3849 that contain a PLACEHOLDER_EXPR.
3850 (size_functions): New static variable.
3851 (copy_self_referential_tree_r): New static function.
3852 (self_referential_size): Likewise.
3853 (finalize_size_functions): New global function.
3854 * tree.c: Include tree-inline.h.
3855 (push_without_duplicates): New static function.
3856 (find_placeholder_in_expr): New global function.
3857 (substitute_in_expr) <tcc_declaration>: Return the replacement object
3858 on equality.
3859 <tcc_expression>: Likewise.
3860 <tcc_vl_exp>: If the replacement object is a constant, try to inline
3861 the call in the expression.
3862 * tree.h (finalize_size_functions): Declare.
3863 (find_placeholder_in_expr): Likewise.
3864 (FIND_PLACEHOLDER_IN_EXPR): New macro.
3865 (substitute_placeholder_in_expr): Update comment.
3866 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
3867 is true.
3868 (copy_tree_body_r): Likewise.
3869 (copy_tree_body): New static function.
3870 (maybe_inline_call_in_expr): New global function.
3871 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
3872 (maybe_inline_call_in_expr): Declare.
3873 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
3874 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
3875 GIMPLE_H.
3876
3877 2009-06-30 Richard Guenther <rguenther@suse.de>
3878
3879 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
3880 continue walking.
3881 (propagate_necessity): Do not mark reaching defs of stores
3882 as necessary.
3883
3884 2009-06-30 Jan Hubicka <jh@suse.cz>
3885
3886 * cfgloopanal.c (check_irred): Move into ...
3887 (mark_irreducible_loops): ... here; return true if ireducible
3888 loops was found.
3889 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
3890 (analyze_function): Try to prove loop finiteness.
3891 * cfgloop.h (mark_irreducible_loops): Update prototype.
3892 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
3893
3894 2009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
3895
3896 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
3897
3898 2009-06-30 Ira Rosen <irar@il.ibm.com>
3899
3900 PR tree-optimization/40542
3901 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
3902 types.
3903
3904 2009-06-30 Martin Jambor <mjambor@suse.cz>
3905
3906 PR tree-optimization/40582
3907 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
3908 than useless_type_conversion_p.
3909 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
3910 proper place.
3911
3912 2009-06-30 Martin Jambor <mjambor@suse.cz>
3913
3914 PR middle-end/40554
3915 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
3916
3917 2009-06-30 Richard Guenther <rguenther@suse.de>
3918
3919 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
3920 use ao_ref references.
3921 (walk_aliased_vdefs): Likewise.
3922 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
3923 * tree-ssa-dce.c (struct ref_data): Remove.
3924 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
3925 (mark_aliased_reaching_defs_necessary): Adjust.
3926 (mark_all_reaching_defs_necessary_1): Likewise.
3927
3928 2009-06-30 Paolo Bonzini <bonzini@gnu.org>
3929
3930 PR boostrap/40597
3931 * expmed.c (emit_cstore): New name of emit_store_flag_1.
3932 (emit_store_flag_1): Extract from emit_store_flag, adjust
3933 calls to (what now is) emit_cstore.
3934 (emit_store_flag): Call emit_store_flag_1 and also use it
3935 for what used to be recursive calls.
3936
3937 2009-06-30 Wei Guozhi <carrot@google.com>
3938
3939 PR/40416
3940 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
3941 if the target bb post dominates from bb.
3942 * config/i386/i386.c (memory_address_length): Check existence of base
3943 register before using it.
3944
3945 2009-06-30 Nick Clifton <nickc@redhat.com>
3946 DJ Delorie <dj@redhat.com>
3947
3948 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3949 __FMOVD_ENABLED__ is defined.
3950 * config/sh/sh.h
3951 (TARGET_FMOVD): Provide a default definition.
3952 (MASK_FMOVD): Likewise.
3953 (TARGET_CPU_CPP_BUILTINS): Define
3954 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3955 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3956 two fmov instructions depending upon whether TARGET_FMOVD is
3957 enabled.
3958 (split for DF load from memory into register): Also handle
3959 MEMs which consist of REG+DISP addressing.
3960 (split for DF store from register to memory): Likewise.
3961 * config/sh/sh.opt (mfmovd): Remove this switch.
3962 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3963 * config/sh/sh.c (sh_override_options): Do not automatically
3964 enable TARGET_MOVD for the SH2A when supporting doubles - leave
3965 that to the -mfmovd command line switch.
3966
3967 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
3968 the SH4 and SH4A.
3969 (fldi_ok): Always allow.
3970 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
3971
3972 2009-06-29 DJ Delorie <dj@redhat.com>
3973
3974 * doc/install.texi (mep-x-elf): Correct chip's full name.
3975
3976 2009-06-29 H.J. Lu <hongjiu.lu@intel.com>
3977
3978 * doc/extend.texi: Fix typo.
3979
3980 2009-06-29 Tom Tromey <tromey@redhat.com>
3981
3982 * dwarf2.h: Remove.
3983 * Makefile.in (DWARF2_H): New variable.
3984 (except.o): Use it.
3985 (dwarf2out.o): Likewise.
3986 (dwarf2asm.o): Likewise.
3987 * config/i386/t-i386: Use DWARF2_H.
3988 * except.c: Include elf/dwarf2.h.
3989 * unwind-dw2.c: Include elf/dwarf2.h.
3990 * dwarf2out.c: Include elf/dwarf2.h.
3991 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
3992 <dtprel>: New field.
3993 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
3994 (size_of_loc_descr): Likewise.
3995 (output_loc_operands_raw): Likewise.
3996 (output_loc_operands): Handle new dtprel field.
3997 (loc_checksum): Update.
3998 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
3999 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
4000 * unwind-dw2-fde.c: Include elf/dwarf2.h.
4001 * dwarf2asm.c: Include elf/dwarf2.h.
4002 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
4003 * config/mmix/mmix.c: Include elf/dwarf2.h.
4004 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
4005 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
4006 * config/sh/sh.c: Include elf/dwarf2.h.
4007 * config/i386/i386.c: Include elf/dwarf2.h.
4008
4009 2009-06-29 DJ Delorie <dj@redhat.com>
4010
4011 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
4012
4013 * doc/extend.texi: Add MeP attributes and pragmas.
4014 * doc/invoke.text: Add MeP Options.
4015 * doc/contrib.texi: Add MeP contribution.
4016 * doc/md.texi: Add MeP constraints.
4017 * doc/install.texi: Add MeP target.
4018
4019 2009-06-30 Anatoly Sokolov <aesok@post.ru>
4020
4021 * target.h (struct gcc_target): Add frame_pointer_required field.
4022 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
4023 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
4024 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
4025 hook.
4026 * reload1.c (update_eliminables): (Ditto.).
4027 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
4028 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4029 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
4030
4031 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
4032
4033 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
4034 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4035 (arm_frame_pointer_required): New function.
4036
4037 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
4038 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4039 (avr_frame_pointer_required_p): Declare as static.
4040 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
4041
4042 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
4043 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4044 (bfin_frame_pointer_required): Make as static, change return type
4045 to bool.
4046 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
4047
4048 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
4049 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4050 (cris_frame_pointer_required): New function.
4051
4052 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
4053
4054 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
4055 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4056 (fr30_frame_pointer_required): New function.
4057
4058 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
4059 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4060 (frv_frame_pointer_required): Make as static, change return type
4061 to bool.
4062 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
4063
4064 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
4065 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4066 (ix86_frame_pointer_required): Make as static, change return type to
4067 bool.
4068 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
4069
4070 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
4071 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4072
4073 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
4074
4075 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
4076
4077 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
4078
4079 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
4080 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4081 (mips_frame_pointer_required): Make as static.
4082 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
4083
4084 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
4085 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4086 (mmix_frame_pointer_required): Mew function.
4087
4088 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
4089 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4090
4091 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
4092
4093 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
4094
4095 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
4096
4097 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
4098 (CAN_ELIMINATE): Redefine.
4099 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
4100 (sparc_frame_pointer_required): New function.
4101 (sparc_can_eliminate): New function.
4102 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
4103
4104 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
4105 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4106
4107 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
4108 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
4109 (xtensa_frame_pointer_required): Make as static, change return type
4110 to bool.
4111 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
4112 Remove.
4113
4114 2009-06-29 Olatunji Ruwase <tjruwase@google.com>
4115
4116 * doc/plugins.texi: Document PLUGIN_START_UNIT.
4117 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
4118 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
4119 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
4120 (register_callback): Handle PLUGIN_START_UNIT.
4121 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
4122
4123 2009-06-29 Eric Botcazou <ebotcazou@adacore.com>
4124
4125 * tree.c (process_call_operands): Propagate TREE_READONLY from the
4126 operands.
4127 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
4128 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
4129
4130 2009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
4131
4132 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
4133 move cost.
4134
4135 2009-06-29 Uros Bizjak <ubizjak@gmail.com>
4136
4137 * doc/extend.texi (Additional Floating Types): __float128 is also
4138 supported on i386 targets.
4139
4140 2009-06-29 Richard Guenther <rguenther@suse.de>
4141
4142 PR middle-end/14187
4143 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
4144 flag.
4145 (pt_solutions_same_restrict_base): Declare.
4146 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
4147 flag.
4148 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
4149 (make_constraint_from, make_copy_constraint): Move earlier.
4150 (make_constraint_from_heapvar): New function.
4151 (make_constraint_from_restrict): Likewise.
4152 (handle_lhs_call): Use it.
4153 (find_func_aliases): Use it to track conversions to restrict
4154 qualified pointers.
4155 (struct fieldoff): Add only_restrict_pointers flag.
4156 (push_fields_onto_fieldstack): Initialize it.
4157 (create_variable_info_for): Track global restrict qualified pointers.
4158 (intra_create_variable_infos): Use make_constraint_from_heapvar.
4159 Track restrict qualified pointer arguments.
4160 (set_uids_in_ptset): Use varinfo is_global_var flag.
4161 (find_what_var_points_to): Set the vars_contains_restrict flag.
4162 Always create the points-to solution for sets including restrict tags.
4163 (pt_solutions_same_restrict_base): New function.
4164 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
4165 qualified pointers use pt_solutions_same_restrict_base as
4166 additional source for disambiguation.
4167
4168 2009-06-29 Richard Guenther <rguenther@suse.de>
4169
4170 PR middle-end/38212
4171 * alias.c (find_base_decl): Remove.
4172 (get_deref_alias_set_1): Remove restrict handling.
4173 * c-common.c (c_apply_type_quals_to_decl): Do not set
4174 DECL_POINTER_ALIAS_SET.
4175 * gimplify.c (find_single_pointer_decl_1): Remove.
4176 (find_single_pointer_decl): Likewise.
4177 (internal_get_tmp_var): Remove restrict handling.
4178 (gimple_regimplify_operands): Likewise.
4179 * omp-low.c (expand_omp_atomic_pipeline): Do not set
4180 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
4181 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
4182 * tree.c (restrict_base_for_decl): Remove.
4183 (init_ttree): Do not allocate it.
4184 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
4185 LABEL_DECL_UID for label decls.
4186 (copy_node_stat): Do not copy restrict information.
4187 (decl_restrict_base_lookup): Remove.
4188 (decl_restrict_base_insert): Likewise.
4189 (print_restrict_base_statistics): Likewise.
4190 (dump_tree_statistics): Do not call print_restrict_base_statistics.
4191 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
4192 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
4193 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
4194 (LABEL_DECL_UID): Adjust.
4195 (DECL_BASED_ON_RESTRICT_P): Remove.
4196 (DECL_GET_RESTRICT_BASE): Likewise.
4197 (SET_DECL_RESTRICT_BASE): Likewise.
4198 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
4199
4200 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
4201 instead of DECL_POINTER_ALIAS_SET.
4202 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
4203 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
4204 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
4205
4206 2009-06-29 Richard Guenther <rguenther@suse.de>
4207
4208 PR tree-optimization/40579
4209 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
4210 the IL to simplify has constants that overflowed.
4211
4212 2009-06-28 Uros Bizjak <ubizjak@gmail.com>
4213
4214 PR tree-optimization/40550
4215 * tree-vect-generic.c (expand_vector_operations_1): Compute in
4216 vector_compute_type only when the size of vector_compute_type is
4217 less than the size of type.
4218
4219 2009-06-28 Eric Botcazou <ebotcazou@adacore.com>
4220
4221 * fold-const.c (contains_label_1): Fix comments.
4222 (contains_label_p): Do not walk trees multiple time.
4223
4224 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
4225
4226 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
4227 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
4228 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
4229 ix86_fp_comparison_operator.
4230 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
4231 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
4232 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
4233 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
4234 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
4235 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
4236 (related splits): Change predicate to ix86_fp_comparison_operator.
4237 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
4238 instead of ix86_fp_comparison_codes.
4239 (ix86_trivial_fp_comparison_operator,
4240 ix86_fp_comparison_operator): New.
4241 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
4242 (ix86_expand_compare): Eliminate last two parameters.
4243 (ix86_fp_jump_nontrivial_p): Kill.
4244 * config/i386/i386.c (put_condition_code): Eliminate call to
4245 ix86_fp_comparison_codes and subsequent assertion.
4246 (ix86_fp_comparison_codes): Eliminate.
4247 (ix86_fp_swap_condition): New.
4248 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
4249 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
4250 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
4251 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
4252 and ix86_fp_swap_condition.
4253 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
4254 Use ix86_fp_comparison_strategy.
4255 (ix86_expand_compare): Likewise. Eliminate last two arguments.
4256 (ix86_fp_jump_nontrivial_p): Eliminate.
4257 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
4258 call to ix86_expand_compare.
4259 (ix86_split_fp_branch, ix86_expand_setcc,
4260 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
4261 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
4262
4263 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
4264
4265 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
4266 related to jump_clobbers.
4267 * config/arm/arm.md (conds): Remove jump_clob case.
4268 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
4269 splits): Change comparison_operator to arm_comparison_operator.
4270 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
4271 Eliminate.
4272
4273 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
4274
4275 * dojump.c (do_compare_rtx_and_jump): Try swapping the
4276 condition for floating point modes.
4277 * expmed.c (emit_store_flag_1): Move here a bigger part
4278 of emit_store_flag.
4279 (emit_store_flag): Try swapping the condition for floating point
4280 modes.
4281 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
4282
4283 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
4284
4285 * expr.c (expand_expr_real_1): Just use do_store_flag.
4286 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
4287 emit_store_flag_force.
4288 * expmed.c (emit_store_flag_force): Copy here trick
4289 previously in expand_expr_real_1. Try reversing the comparison.
4290 (emit_store_flag_1): Work if target is NULL.
4291 (emit_store_flag): Work if target is NULL, using the result mode
4292 from the comparison. Use split_comparison, restructure final part
4293 to simplify conditionals.
4294
4295 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
4296
4297 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
4298 * dojump.c (do_jump): Change handling of floating-point
4299 ops to use just do_compare_and_jump.
4300 (split_comparison): New.
4301 (do_compare_rtx_and_jump): Add here logic coming previously
4302 in do_jump, using split_comparison.
4303
4304 2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
4305
4306 PR target/40489
4307 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
4308
4309 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4310
4311 * tree-ssa-alias.c: Fix unintentional commit.
4312
4313 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4314
4315 * passes.c (execute_one_pass): Fix unintentional commit.
4316
4317 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4318
4319 * df-problems.c (df_set_seen, df_unset_seen): Delete.
4320 (df_rd_local_compute, df_md_local_compute): Inline them.
4321
4322 (df_md_scratch): New.
4323 (df_md_alloc, df_md_free): Allocate/free it.
4324 (df_md_local_compute): Only include live registers in init.
4325 (df_md_transfer_function): Prune the in-set computed by
4326 the confluence function, and the gen-set too.
4327
4328 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4329
4330 PR rtl-optimization/26854
4331 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
4332 * df-problems.c (df_rd_add_problem): Fix comment.
4333 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
4334 df_md_simulate_artificial_defs_at_top,
4335 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
4336 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
4337 df_md_transfer_function, df_md_init, df_md_confluence_0,
4338 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
4339 problem_MD, df_md_add_problem): New.
4340 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
4341 df_md_get_bb_info): New.
4342 (DF_LAST_PROBLEM_PLUS1): Adjust.
4343
4344 * Makefile.in (fwprop.o): Include domwalk.h.
4345 * fwprop.c: Include domwalk.h.
4346 (reg_defs, reg_defs_stack): New.
4347 (bitmap_only_bit_between): Remove.
4348 (process_defs): New.
4349 (process_uses): Use reg_defs and local_md instead of
4350 bitmap_only_bit_between and local_rd.
4351 (single_def_use_enter_block): New, from build_single_def_use_links.
4352 (single_def_use_leave_block): New.
4353 (build_single_def_use_links): Remove code moved to
4354 single_def_use_enter_block, invoke domwalk.
4355 (use_killed_between): Adjust comment.
4356
4357 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4358
4359 * bitmap.h (bitmap_ior_and_into): New.
4360 * bitmap.c (bitmap_ior_and_into): New.
4361
4362 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
4363
4364 * domwalk.h (struct dom_walk_data): Remove all callbacks except
4365 before_dom_children_before_stmts and after_dom_children_after_stmts.
4366 Rename the two remaining callbacks to just before_dom_children and
4367 after_dom_children. Remove other GIMPLE statement walking bits.
4368 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
4369 * graphite.c: Do not include domwalk.h.
4370 * tree-into-ssa.c (interesting_blocks): New global.
4371 (struct mark_def_sites_global_data): Remove it and names_to_rename.
4372 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
4373 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
4374 now that they're not domwalk callbacks.
4375 (rewrite_initialize_block): Rename to...
4376 (rewrite_enter_block): ... this, place after called functions. Test
4377 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
4378 (rewrite_finalize_block): Rename to...
4379 (rewrite_leave_block): ... this, place after called functions.
4380 (rewrite_update_init_block): Rename to...
4381 (rewrite_update_enter_block): ... this, place after called functions.
4382 Test interesting_blocks, call rewrite_update_stmt and
4383 rewrite_update_phi_arguments.
4384 (rewrite_update_fini_block): Rename to...
4385 (rewrite_leave_block): ... this, place after called functions.
4386 (rewrite_blocks): Remove last argument, simplify initialization of
4387 walk_data.
4388 (mark_def_sites_initialize_block): Rename to...
4389 (mark_def_sites_block): ... this, call mark_def_sites.
4390 (mark_def_sites_blocks): Remove argument, simplify initialization of
4391 walk_data.
4392 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
4393 (update_ssa): Likewise.
4394 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
4395 callback.
4396 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
4397 (dom_opt_initialize_block): Rename to...
4398 (dom_opt_enter_block): ... this, place after called functions. Walk
4399 statements here, inline propagate_to_outgoing_edges.
4400 (dom_opt_finalize_block): Rename to...
4401 (dom_opt_leave_block): ... this, place after called functions.
4402 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
4403 domwalk callback.
4404 (dse_enter_block, dse_record_phi): New.
4405 (dse_record_phis): Delete.
4406 (dse_finalize_block): Rename to...
4407 (dse_leave_block): ... this.
4408 (tree_ssa_dse): Simplify initialization of walk_data.
4409 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
4410 Adjust initialization of walk_data.
4411 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
4412 * tree-ssa-loop-phiopt.c (get_non_trapping):
4413 Adjust initialization of walk_data.
4414 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
4415 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
4416 it's not a domwalk callback.
4417 (uncprop_initialize_block): Rename to...
4418 (dse_enter_block): ... this, call uncprop_into_successor_phis.
4419 (dse_finalize_block): Rename to...
4420 (dse_leave_block): ... this.
4421 (tree_ssa_uncprop): Simplify initialization of walk_data.
4422 * Makefile.in: Adjust dependencies.
4423
4424 2009-06-27 Richard Earnshaw <rearnsha@arm.com>
4425
4426 * arm.md (casesi): Fix test for Thumb1.
4427 (thumb1_casesi_internal_pic): Likewise.
4428 (thumb1_casesi_dispatch): Likewise.
4429
4430 2009-06-26 Daniel Gutson <dgutson@codesourcery.com>
4431
4432 * config/arm/arm-cores.def: Added core cortex-m0.
4433 * config/arm/arm-tune.md: Regenerated.
4434 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
4435
4436 2009-06-26 DJ Delorie <dj@redhat.com>
4437
4438 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
4439
4440 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
4441 the scheduler doesn't tag jump insns.
4442
4443 2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
4444
4445 * c-decl.c (merge_decls): Re-indent.
4446
4447 2009-06-26 Janis Johnson <janis187@us.ibm.com>
4448
4449 PR c/39902
4450 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
4451 Special-case decimal float constants.
4452
4453 2009-06-26 Richard Henderson <rth@redhat.com>
4454
4455 * function.h (struct function): Add cannot_be_copied_reason,
4456 and cannot_be_copied_set.
4457 * tree-inline.c (has_label_address_in_static_1): Rename from
4458 inline_forbidden_p_2; don't set inline_forbidden_reason here.
4459 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
4460 don't set inline_forbidden_reason.
4461 (copy_forbidden): New function, split out of inline_forbidden_p.
4462 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
4463 (inline_forbidden_p): Use copy_forbidden.
4464 (tree_versionable_function_p): Likewise.
4465 (inlinable_function_p): Merge into tree_inlinable_function_p.
4466 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
4467 * ipa-cp.c (ipcp_versionable_function_p): New function.
4468 (ipcp_cloning_candidate_p): Use it.
4469 (ipcp_node_modifiable_p): Likewise.
4470
4471 2009-06-26 Olatunji Ruwase <tjruwase@google.com>
4472
4473 * builtins.c (expand_builtin_alloca): Handle builtin alloca
4474 that is marked not to be inlined. Remove flag_mudflap use.
4475 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
4476 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
4477
4478 2009-06-26 Steve Ellcey <sje@cup.hp.com>
4479
4480 PR bootstrap/40338
4481 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
4482 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
4483
4484 2009-06-26 Kai Tietz <kai.tietz@onevision.com>
4485
4486 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
4487 shared libgcc.
4488 (__mingwthr_remove_key_dtor): Likewise.
4489
4490 2009-06-26 Richard Guenther <rguenther@suse.de>
4491
4492 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
4493
4494 2009-06-26 Steven Bosscher <steven@gcc.gnu.org>
4495
4496 PR middle-end/40525
4497 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
4498 try the non-cond_exec path also.
4499
4500 2009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4501
4502 PR target/40468
4503 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
4504 (output_cbranch): Use new functions.
4505 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
4506 Likewise.
4507
4508 2009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
4509 Pat Haugen <pthaugen@us.ibm.com>
4510 Revital Eres <ERES@il.ibm.com>
4511
4512 * config/rs6000/rs6000.c (print_operand): Correct lossage message
4513 for %c error. Add %x support to print VSX registers as a unified
4514 register set, instead of separate float and altivec registers.
4515 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
4516 %y case, and add support for VSX pre-modify addresses.
4517 (output_toc): Add assert for CONST containing an integer constant
4518 in the PLUS case.
4519 (rs6000_adjust_cost): Add POWER7 support.
4520 (insn_must_be_first_in_group): Ditto.
4521 (insn_must_be_last_in_group): Ditto.
4522 (rs6000_emit_popcount): Ditto.
4523 (rs6000_vector_mode_supported_p): Ditto.
4524
4525 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
4526 Change some of the functions called by macros to being called
4527 through a pointer, so debug functions can be inserted if
4528 -mdebug=addr or -mdebug=cost.
4529 (rs6000_preferred_reload_class_ptr): Ditto.
4530 (rs6000_secondary_reload_class_ptr): Ditto.
4531 (rs6000_secondary_memory_needed_ptr): Ditto.
4532 (rs6000_cannot_change_mode_class_ptr): Ditto.
4533 (rs6000_secondary_reload_inner): Ditto.
4534 (rs6000_legitimize_reload_address): Ditto.
4535 (rs6000_legitimize_reload_address_ptr): Ditto.
4536 (rs6000_mode_dependent_address): Ditto.
4537 (rs6000_mode_dependent_address_ptr): Ditto.
4538
4539 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
4540 function to return true if the mode allows reg + integer
4541 addresses.
4542 (virtual_stack_registers_memory_p): New function to return true if
4543 the address refers to a virtual stack register.
4544 (rs6000_legitimate_offset_address_p): Move code to say whether a
4545 mode supports reg+int addressing to reg_offset_addressing_ok_p and
4546 call it.
4547 (rs6000_legitimate_address_p): Add checks for modes that only can
4548 do reg+reg addressing. Start adding VSX support.
4549 (rs6000_legitimize_reload_address): Ditto.
4550 (rs6000_legitimize_address): Ditto.
4551 (rs6000_debug_legitimate_address_p): New debug functions for
4552 -mdebug=addr and -mdebug=cost.
4553 (rs6000_debug_rtx_costs): Ditto.
4554 (rs6000_debug_address_costs): Ditto.
4555 (rs6000_debug_adjust_cost): Ditto.
4556 (rs6000_debug_legitimize_address): Ditto.
4557 (rs6000_legitimize_reload_address_ptr): Point to call normal
4558 function or debug function. Make functions called via pointer
4559 static.
4560 (rs6000_mode_dependent_address_ptr): Ditto.
4561 (rs6000_secondary_reload_class_ptr): Ditto.
4562 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
4563 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
4564 into a friendlier error.
4565 (rs6000_init_builtins): Add initial VSX support.
4566 (rs6000_adjust_cost): Fix some spacing issues.
4567
4568 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
4569 (REG_CLASS_NAMES): Ditto.
4570 (REG_CLASS_CONTENTS): Ditto.
4571 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
4572 pointer, to add -mdebug=addr support.
4573 (CANNOT_CHANGE_MODE_CLASS): Ditto.
4574 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
4575 -mdebug=addr support.
4576 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
4577 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
4578 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
4579
4580 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
4581 16-bit values.
4582 (bswapsi*): Set attribute types for load/store. Add combiner
4583 patterns to eliminate zero extend on 64-bit.
4584 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
4585 stdbrx if the hardware supports those instructions.
4586
4587 2009-06-25 Ian Lance Taylor <iant@google.com>
4588
4589 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
4590 (Link Options): Document -static-libstdc++.
4591
4592 2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
4593
4594 PR target/38731
4595 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
4596 DATA_ALIGNMENT instead.
4597
4598 2009-06-25 Richard Guenther <rguenther@suse.de>
4599
4600 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
4601 indirect references against the callused/escaped solutions.
4602 (call_may_clobber_ref_p_1): Likewise.
4603
4604 2009-06-25 Martin Jambor <mjambor@suse.cz>
4605
4606 PR tree-optimization/40493
4607 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
4608 (enum unscalarized_data_handling): New type.
4609 (handle_unscalarized_data_in_subtree): Return what has been done.
4610 (load_assign_lhs_subreplacements): Handle left flushes differently.
4611 (sra_modify_assign): Use unscalarized_data_handling, simplified
4612 condition determining whether to remove the statement.
4613
4614 2009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
4615
4616 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
4617 excerpt - @ should be doubled for texinfo.
4618
4619 2009-06-24 Ian Lance Taylor <iant@google.com>
4620
4621 * config/arc/arc.c: Include "df.h".
4622 (arc_attribute_table): Make static. Move higher in file.
4623 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
4624 (output_shift): Initialize n later to avoid warning.
4625 * config/arm/arm.c (arm_attribute_table): Make static. Move
4626 higher in file.
4627 * config/avr/avr.c (avr_attribute_table): Make static. Move
4628 higher in file.
4629 (reg_class_tab): Change array type from int to enum reg_class.
4630 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
4631 LABEL_REF.
4632 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
4633 (lshrhi3_out): Likewise.
4634 (class_likely_spilled_p): Change return type to bool.
4635 (avr_rtx_costs): Use local code variable with enum type.
4636 * config/avr/avr.md (movmemhi): Use add_reg_note.
4637 (andhi3, andsi3): Don't use AS2 with "and".
4638 (iorhi3, iorsi3): Don't use AS2 with "or".
4639 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
4640 * config/crx/crx.c: Include "df.h".
4641 (crx_attribute_table): Make static.
4642 * config/m32r/m32r.c: Include "df.h".
4643 (m32r_attribute_table): Make static. Move higher in file.
4644 (pop): Use add_reg_note.
4645 (block_move_call): Change 0 to LCT_NORMAL in function call.
4646 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
4647 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
4648 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
4649 declare, not just when TREE_CODE is defined.
4650 * config/m68hc11/m68hc11.c: Include "expr.h".
4651 (m68hc11_attribute_table): Make static. Move higher in file.
4652 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
4653 function call.
4654 (m68hc11_register_indirect_p): Likewise.
4655 (m68hc11_function_arg_padding): Change return type to enum
4656 direction.
4657 (emit_move_after_reload): Use add_reg_note.
4658 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
4659 (m68hc11_split_logical): Likewise.
4660 (m68hc11_rtx_costs): Add local code_and outer_code variables with
4661 enum type.
4662 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
4663 to VOIDmode in function call.
4664 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
4665 tree is defined.
4666 (m68hc11_split_logical): Update declaration.
4667 (m68hc11_function_arg_padding): Update declaration.
4668 * config/mcore/mcore.c (regno_reg_class): Change form array of int
4669 to array of enum reg_class.
4670 (mcore_attribute_table): Make static. Move higher in file.
4671 (mcore_rtx_costs): Add cast to enum type.
4672 * config/mcore/mcore.h (regno_reg_class): Update declaration.
4673 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
4674 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
4675 in file.
4676 * config/sh/predicates.md (trapping_target_operand): Rename and to
4677 and_expr.
4678 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
4679 higher in file.
4680 * config/spu/spu.c (spu_attribute_table): Make static. Move
4681 higher in file.
4682 * config/v850/v850.c (v850_attribute_table): Make static. Move
4683 higher in file.
4684 (v850_rtx_costs): Use local code with enum type.
4685 (expand_epilogue): Add cast.
4686 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
4687
4688 2009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
4689
4690 PR target/40515
4691 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
4692 -m2a-single-only and -m2a-nofpu.
4693 * config/sh/sh.opt: Document m2a generates FPU code.
4694
4695 2009-06-24 Anatoly Sokolov <aesok@post.ru>
4696
4697 * defaults.h (CAN_ELIMINATE): Provide default.
4698 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
4699 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
4700 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
4701 * config/spu/spu.h (CAN_ELIMINATE): Delete.
4702 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
4703 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
4704 * config/cris/cris.h (CAN_ELIMINATE): Delete.
4705 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
4706 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
4707 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
4708
4709 2009-06-24 DJ Delorie <dj@redhat.com>
4710
4711 * mep-ext-cop.cpu: Fix copyright notice.
4712 * mep-default: Fix copyright notice.
4713 * mep-core: Fix copyright notice.
4714 * mep: Fix copyright notice.
4715 * mep-ivc2: Fix copyright notice.
4716 * mep-c5: Fix copyright notice.
4717
4718 2009-06-24 Denis Chertykov <chertykov@gmail.com>
4719
4720 * doc/contrib.texi (Contributors):
4721
4722 2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
4723
4724 PR middle-end/40501
4725 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
4726 src and dst operands if necessary.
4727
4728 2009-06-23 DJ Delorie <dj@redhat.com>
4729
4730 Add MeP port.
4731 * config.gcc: Add mep support.
4732 * recog.c: Resurrect validate_replace_rtx_subexp().
4733 * recog.h: Likewise.
4734 * config/mep/: Add new port:
4735 * config/mep/constraints.md: New file.
4736 * config/mep/default.h: New file.
4737 * config/mep/intrinsics.h: New file.
4738 * config/mep/intrinsics.md: New file.
4739 * config/mep/ivc2-template.h: New file.
4740 * config/mep/mep-c5.cpu: New file.
4741 * config/mep/mep-core.cpu: New file.
4742 * config/mep/mep-default.cpu: New file.
4743 * config/mep/mep-ext-cop.cpu: New file.
4744 * config/mep/mep-intrin.h: New file.
4745 * config/mep/mep-ivc2.cpu: New file.
4746 * config/mep/mep-lib1.asm: New file.
4747 * config/mep/mep-lib2.c: New file.
4748 * config/mep/mep-pragma.c: New file.
4749 * config/mep/mep-protos.h: New file.
4750 * config/mep/mep-tramp.c: New file.
4751 * config/mep/mep.c: New file.
4752 * config/mep/mep.cpu: New file.
4753 * config/mep/mep.h: New file.
4754 * config/mep/mep.md: New file.
4755 * config/mep/mep.opt: New file.
4756 * config/mep/predicates.md: New file.
4757 * config/mep/t-mep: New file.
4758
4759 2009-06-23 Ian Lance Taylor <iant@google.com>
4760
4761 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
4762 from loose_warn into c_loose_warn and from strict_warn into
4763 c_strict_warn. Set and substitute warn_cxxflags. Check for
4764 --enable-build-with-cxx. Set and substitute
4765 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
4766 * Makefile.in (CXXFLAGS): New variable.
4767 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
4768 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
4769 the default is the same as $(STRICT_WARN).
4770 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
4771 (CXX): New variable.
4772 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
4773 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
4774 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
4775 (HOST_LIBS): New variable.
4776 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
4777 (ALL_CXXFLAGS): New variable.
4778 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
4779 * doc/install.texi (Configuration): Document
4780 --enable-build-with-cxx, --with-stage1-ldflags,
4781 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
4782 * configure: Rebuild.
4783
4784 2009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4785
4786 * config/arm/arm.c (arm_override_options): Fix braces and formatting
4787 from previous commit.
4788
4789 2009-06-23 Ian Lance Taylor <iant@google.com>
4790
4791 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
4792
4793 2009-06-23 Ian Lance Taylor <iant@google.com>
4794
4795 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
4796 with ATTRIBUTE_UNUSED.
4797
4798 2009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4799 Pat Haugen <pthaugen@us.ibm.com>
4800 Revital Eres <eres@il.ibm.com>
4801
4802 * config.in (HAVE_AS_POPCNTD): Add default definition.
4803 (HAVE_AS_LWSYNC): Ditto.
4804
4805 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
4806 release number.
4807 (gcc_cv_as_powerpc_cmpb): Ditto.
4808 (gcc_cv_as_powerpc_dfp): Ditto.
4809 (gcc_cv_as_powerpc_vsx): Ditto.
4810 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
4811 supporting the popcntd/lwsync instructions.
4812 (gcc_cv_as_powerpc_lwsync): Ditto.
4813 * configure: Regenerate.
4814
4815 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
4816 -mcpu=native and -mcpu=power7.
4817 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
4818
4819 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
4820 a variable instead of a mask to reduce the number of mask bits.
4821 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
4822 (-mbit-word): Ditto.
4823 (-mregnames): Ditto.
4824 * config/rs6000/rs6000.opt (-mupdate): Ditto.
4825 (-mfused-madd): Ditto.
4826
4827 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
4828 2.06 instructions.
4829 (-mvsx): New switch for VSX instructions.
4830 (-misel): Move from a variable to a mask to allow it to be set by
4831 -mcpu=.
4832
4833 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
4834 function declaration to an array declaration.
4835 (rs6000_hard_regno_nregs): New external array declaration.
4836
4837 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
4838 files included by rs6000.md.
4839
4840 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4841 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
4842
4843 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
4844 a target mask.
4845 (rs6000_debug_reg): New -mdebug= variables.
4846 (rs6000_debug_addr): Ditto.
4847 (rs6000_debug_cost): Ditto.
4848 (rs6000_pmode): New variable to hold Pmode.
4849 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
4850 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
4851 calculated at compiler start.
4852 (rs6000_hard_regno_nregs): Change function to an array which holds
4853 HARD_REGNO_NREGS calculated at compiler start.
4854 (rs6000_explicit_options): Delete isel field.
4855 (rs6000_vector_unit): New array to hold which vector unit
4856 supports arithmetic options for a given type.
4857 (rs6000_vector_mem): New array to hold which vector unit supports
4858 memory reference operations for a given type.
4859 (rs6000_vector_align): New array to given the alignment of each
4860 vector type.
4861 (power7_cost): New basic costs for power7.
4862 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
4863 (rs6000_hard_regno_nregs_internal): New function, moved from
4864 HARD_REGNO_NREGS, to calculate the number of registers each hard
4865 register takes for each type.
4866 (rs6000_debug_reg_print): New function for -mdebug=reg support.
4867 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
4868 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
4869 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
4870 unit information here so it is calculated once at compiler startup
4871 time.
4872 (rs6000_override_options): Make -misel a target mask. Add more
4873 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
4874 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
4875 -mdebug=cost.
4876 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
4877 (rs6000_handle_option): Move -misel from variable to target mask.
4878 (rs6000_builtin_mask_for_load): Add VSX support.
4879 (rs6000_conditional_register_usage): Ditto.
4880 (USE_ALTIVEC_FOR_ARG_P): Ditto.
4881 (function_arg_boundary): Ditto.
4882 (rs6000_expand_builtin): Ditto.
4883 (def_builtin): Make abort message a little friendlier.
4884 (rs6000_emit_int_cmove): Add support for 64-bit isel.
4885
4886 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
4887 assembler support the popcntd instruction instead of a vsx
4888 instruction to enable power7 support.
4889 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
4890 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
4891 option to the assembler if -mcpu=native.
4892 (ASM_CPU_NATIVE_SPEC): Ditto.
4893 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
4894 ISA 2.06 features.
4895 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
4896 the lwsync instruction.
4897 (enum processor_type): Add PROCESSOR_POWER7.
4898 (rs6000_debug_reg): New -mdebug= options.
4899 (rs6000_debug_addr): Ditto.
4900 (rs6000_debug_cost): Ditto.
4901 (rs6000_isel): Delete.
4902 (enum rs6000_vector): New enum to say what vector unit we have.
4903 (VECTOR_UNIT_*): New macros to say which vector unit has
4904 arithmetic operations for a given type.
4905 (VECTOR_MEM_*): New macros to say which vector unit has memory
4906 operations for a given type.
4907 (TARGET_LDBRX): Whether the machine supports the ldbrx
4908 instruction.
4909 (TARGET_ISEL): Delete, -misel moved to be a mask.
4910 (TARGET_ISEL64): New macro for 64-bit isel support.
4911 (UNITS_PER_VSX_WORD): New macro.
4912 (POINTER_SIZE): Move to be an external variable, rather than
4913 calculating whether we are generating 32 ot 64-bit code.
4914 (Pmode): Ditto.
4915 (STACK_BOUNDARY): Add VSX support.
4916 (LOCAL_ALIGNMENT): Ditto.
4917 (SLOW_UNALIGNED_ACCESS): Ditto.
4918 (VSX_REGNO_P): New macro for VSX support.
4919 (VFLOAT_REGNO_P): Ditto.
4920 (VINT_REGNO_P): Ditto.
4921 (VLOGICAL_REGNO_P): Ditto.
4922 (VSX_VECTOR_MODE): Ditto.
4923 (VSX_SCALAR_MODE): Ditto.
4924 (VSX_MODE): Ditto.
4925 (VSX_MOVE_MODE): Ditto.
4926 (VSX_REG_CLASS_P): Ditto.
4927 (HARD_REGNO_NREGS): Instead of calling a function, use an array
4928 lookup.
4929 (UNITS_PER_SIMD_WORD): Add VSX support.
4930 (MODES_TIEABLE_P): Ditto.
4931 (STARTING_FRAME_OFFSET): Ditto.
4932 (STACK_DYNAMIC_OFFSET): Ditto.
4933 (EPILOGUE_USES): Ditto.
4934 (REGNO_REG_CLASS): Move to array lookup.
4935 (CLASS_MAX_NREGS): Ditto.
4936 (rs6000_vector_reg_class): Add declaration.
4937 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
4938 overlap with the floating point and Altivec registers.
4939
4940 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
4941
4942 * config/rs6000/driver-rs6000.c (asm_names): New static array to
4943 give the appropriate asm switches if -mcpu=native.
4944 (host_detect_local_cpu): Add support for "asm".
4945 (host_detect_local_cpu): Follow GNU code guidelines for name.
4946
4947 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
4948 -mbit-word to a variable instead of being a target mask.
4949
4950 * config/rs6000/sync.md (lwsync): If the assembler supports it,
4951 emit the lwsync instruction instead of emitting the instruction as
4952 an integer constant.
4953
4954 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
4955 fixuns_trundfsi2, move expander into rs6000.md.
4956
4957 * config/rs6000/rs6000.md (cpu): Add power7.
4958 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
4959 (logical predicate patterns): Change the single instruction
4960 primitives that set CR0 to be fast_compare instead of compare.
4961 (norsi*): Ditto.
4962 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
4963 (popcntddi2): Ditto.
4964 (popcount<mode>): Ditto.
4965 (floating multiply/add insns): Name the floating point
4966 multiply/add insns.
4967 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
4968 (isel_unsigned_<mode>): Ditto.
4969 (fixuns_trundfsi2): Move expander here from spe.md.
4970 (smindi3): Define if we have -misel on 64-bit systems.
4971 (smaxdi3): Ditto.
4972 (umindi3): Ditto.
4973 (umaxdi3): Ditto.
4974
4975 2009-06-23 Anatoly Sokolov <aesok@post.ru>
4976
4977 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
4978 extra_objs.
4979 * config/avr/avr.c (avr_current_device): New variable.
4980 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
4981 (avr_arch, mcu_type_s): Move to avr.h.
4982 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
4983 default_data_section_start fields.
4984 (avr_arch): Moved from avr.c.
4985 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
4986 library_name fields.
4987 (avr_current_device, avr_mcu_types, avr_arch_types,
4988 avr_device_to_arch, avr_device_to_data_start,
4989 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
4990 (EXTRA_SPEC_FUNCTIONS): Define.
4991 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
4992 options mapping. Use device_to_arch and device_to_data_start insted.
4993 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
4994 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
4995 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
4996 * config/avr/driver-avr.c: New file.
4997 * config/avr/avr-devices.c: New file.
4998
4999 2009-06-23 Jakub Jelinek <jakub@redhat.com>
5000
5001 * var-tracking.c (unshare_variable): Force initialized to
5002 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
5003 (set_variable_part): Likewise.
5004 (struct variable_union_info): Remove pos_src field.
5005 (vui_vec, vui_allocated): New variables.
5006 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
5007 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
5008 == 1 use a simpler sorting algorithm. Compute pos field right
5009 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
5010 Avoid quadratic comparison if !flag_var_tracking_uninit.
5011 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
5012 unshare_variable unconditionally.
5013 (dataflow_set_different_2): Removed.
5014 (dataflow_set_different): Don't traverse second hash table.
5015 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
5016 unconditionally to var_reg_set or var_mem_set.
5017 (emit_notes_in_bb): Likewise.
5018 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
5019 unshare_variable.
5020 (emit_note_insn_var_location): Don't set initialized to
5021 VAR_INIT_STATUS_INITIALIZED early.
5022 (vt_finalize): Free vui_vec if needed, clear vui_vec and
5023 vui_allocated.
5024 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
5025
5026 * tree-object-size.c (addr_object_size): Instead of checking
5027 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
5028 are no FIELD_DECLs following it.
5029
5030 2009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
5031
5032 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
5033 order to match bswaps with signed source operands.
5034
5035 2009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5036
5037 * sdbout.c (sdbout_one_type): Fix braces in switch.
5038
5039 2009-06-23 Richard Guenther <rguenther@suse.de>
5040
5041 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
5042 member.
5043 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
5044 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
5045 var_callused, callused_tree, var_storedanything, storedanything_tree,
5046 var_integer, integer_tree): Remove global variables.
5047 (new_var_info): Do not pass new id, append the new var to the
5048 global variable vector.
5049 (do_ds_constraint): Use is_global_var member of the variable-info.
5050 (new_scalar_tmp_constraint_exp): Adjust.
5051 (create_function_info_for): Likewise.
5052 (create_variable_info_for): Likewise.
5053 (find_what_var_points_to): Remove dead code.
5054 (init_base_vars): Simplify.
5055 (compute_points_to_sets): Adjust.
5056
5057 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
5058
5059 * combine.c (try_combine): Dump information about the insns we're
5060 combining.
5061
5062 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
5063
5064 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
5065 check when calling force_to_mode on TRUNCATE's operand.
5066
5067 2009-06-22 Ian Lance Taylor <iant@google.com>
5068
5069 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
5070
5071 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
5072
5073 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
5074
5075 2009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5076
5077 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
5078 override library linkage flags such as -static-libgcc or
5079 -shared-libgcc.
5080
5081 2009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5082
5083 * config/m68k/m68k-devices.def: Add line for MCF5221x.
5084
5085 2009-06-22 Ian Lance Taylor <iant@google.com>
5086
5087 * config/linux.opt: Put mglibc ahead of muclibc.
5088
5089 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
5090 for duplicate decls.
5091
5092 2009-06-22 Matthias Klose <doko@ubuntu.com>
5093
5094 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
5095
5096 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
5097
5098 PR objc/28050
5099 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
5100 instead of NULL if a parser error occurs.
5101
5102 2009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5103
5104 * dwarf2out.c (dwarf2_debug_hooks): Initialize
5105 non-DWARF2_DEBUGGING_INFO version.
5106
5107 2009-06-22 Kai Tietz <kai.tietz@onevision.com>
5108
5109 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
5110 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
5111
5112 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
5113 (LIBGCC2_TF_CEXT): Define.
5114 (TF_SIZE): Define.
5115
5116 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5117
5118 PR target/40463
5119 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
5120
5121 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5122
5123 * config/arm/arm.c (arm_override_options): Disable
5124 -mcaller-super-interworking and -mcallee-super-interworking.
5125 * doc/invoke.texi (ARM Options): Document this.
5126
5127 2009-06-22 Nathan Sidwell <nathan@codesourcery.com>
5128
5129 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
5130 * config/arm/constraints.md (j): New constraint for movw operands.
5131 (N): Remove thumb2 meaning.
5132 * config/arm/arm.md (*arm_movw): Delete.
5133 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
5134 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
5135 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
5136
5137 2009-06-22 Martin Jambor <mjambor@suse.cz>
5138
5139 PR tree-optimization/40492
5140 * tree-sra.c (sra_modify_assign): Pass zero offsets to
5141 build_ref_for_offset.
5142
5143 2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
5144
5145 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
5146 JUMP_TABLE_DATA_P predicates where applicable.
5147 * auto-inc-dec.c: Ditto.
5148 * builtins.c: Ditto.
5149 * caller-save.c: Ditto.
5150 * calls.c: Ditto.
5151 * cfgcleanup.c: Ditto.
5152 * cfglayout.c: Ditto.
5153 * cfgrtl.c: Ditto.
5154 * combine.c: Ditto.
5155 * combine-stack-adj.c: Ditto.
5156 * cse.c: Ditto.
5157 * cselib.c: Ditto.
5158 * dbxout.c: Ditto.
5159 * df-scan.c: Ditto.
5160 * dse.c: Ditto.
5161 * dwarf2asm.c: Ditto.
5162 * dwarf2out.c: Ditto.
5163 * emit-rtl.c: Ditto.
5164 * except.c: Ditto.
5165 * explow.c: Ditto.
5166 * expmed.c: Ditto.
5167 * expr.c: Ditto.
5168 * final.c: Ditto.
5169 * function.c: Ditto.
5170 * fwprop.c: Ditto.
5171 * gcse.c: Ditto.
5172 * genpreds.c: Ditto.
5173 * genrecog.c: Ditto.
5174 * ifcvt.c: Ditto.
5175 * ira-costs.c: Ditto.
5176 * ira-lives.c: Ditto.
5177 * jump.c: Ditto.
5178 * loop-iv.c: Ditto.
5179 * lower-subreg.c: Ditto.
5180 * modulo-sched.c: Ditto.
5181 * optabs.c: Ditto.
5182 * postreload.c: Ditto.
5183 * print-rtl.c: Ditto.
5184 * recog.c: Ditto.
5185 * reginfo.c: Ditto.
5186 * regmove.c: Ditto.
5187 * reload1.c: Ditto.
5188 * reload.c: Ditto.
5189 * reorg.c: Ditto.
5190 * rtlanal.c: Ditto.
5191 * rtl.c: Ditto.
5192 * sched-vis.c: Ditto.
5193 * sdbout.c: Ditto.
5194 * sel-sched-ir.c: Ditto.
5195 * simplify-rtx.c: Ditto.
5196 * targhooks.c: Ditto.
5197 * var-tracking.c: Ditto.
5198 * vmsdbgout.c: Ditto.
5199
5200 2009-06-22 Matthias Klose <doko@ubuntu.com>
5201
5202 * Makefile.in (install-plugin): Always use DESTDIR.
5203
5204 2009-06-22 Olivier Hainque <hainque@adacore.com>
5205
5206 * config/pa/pa.c (output_call): Don't optimize post call jumps
5207 into return address adjustments if the call may throw.
5208
5209 2009-06-21 Richard Earnshaw <rearnsha@arm.com>
5210
5211 * arm.c (thumb1_output_casesi): New function.
5212 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
5213 optimizing for size or PIC.
5214 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
5215 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
5216 (casesi): Handle Thumb-1 when optimizing for size or PIC.
5217 (thumb1_casesi_internal_pic): New expand rule.
5218 (thumb1_casesi_dispatch): New pattern.
5219 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
5220 thumb-1 mode.
5221 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
5222 in the text seciton when PIC or optimizing for size.
5223 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
5224 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
5225 preservation properties of code.
5226 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
5227 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
5228 (__gnu_thumb1_case_si): New function.
5229 * t-arm (LIB1ASMSRC): Define here.
5230 (LIB1ASMFUNCS): Add some common functions.
5231 * t-arm-elf (LIB1ASMSRC): Delete.
5232 (LIB1ASMFUNCS): Append to existing set.
5233 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
5234 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
5235 * t-symbian (LIB1ASMFUNCS): Likewise.
5236 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
5237 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
5238
5239 2009-06-21 Richard Guenther <rguenther@suse.de>
5240
5241 PR tree-optimization/38729
5242 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
5243 to loops with a single exit if -fno-expensive-optimizations.
5244
5245 2009-06-21 Jakub Jelinek <jakub@redhat.com>
5246
5247 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
5248 (dataflow_set): Change vars type from htab_t to shared_hash.
5249 (shared_hash_pool, empty_shared_hash): New variables.
5250 (vars_clear): Removed.
5251 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
5252 shared_hash_find_slot_unshare, shared_hash_find_slot,
5253 shared_hash_find_slot_noinsert, shared_hash_find): New
5254 static inlines.
5255 (shared_hash_unshare, shared_hash_destroy): New functions.
5256 (unshare_variable): Unshare set->vars if shared, use
5257 shared_hash_htab.
5258 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
5259 (get_init_value, find_src_set_src, dump_dataflow_set,
5260 clobber_variable_part, emit_notes_for_differences): Use
5261 shared_hash_htab.
5262 (dataflow_set_init): Remove second argument, set vars to
5263 empty_shared_hash instead of creating a new htab.
5264 (dataflow_set_clear): Call shared_hash_destroy and set vars
5265 to empty_shared_hash instead of calling vars_clear.
5266 (dataflow_set_copy): Don't call vars_copy, instead just share
5267 the src htab with dst.
5268 (variable_union): Use shared_hash_*, use initially NO_INSERT
5269 lookup if set->vars is shared. Don't keep slot cleared before
5270 calling unshare_variable. Unshare set->vars if needed.
5271 Even ->refcount == 1 vars must be unshared if set->vars is shared
5272 and var needs to be modified.
5273 (variable_canonicalize): New function.
5274 (dataflow_set_union): If dst->vars is empty, just share src->vars
5275 with dst->vars and traverse with variable_canonicalize to canonicalize
5276 and unshare what is needed.
5277 (dataflow_set_different): If old_set and new_set use the same shared
5278 htab, they aren't different. If number of htab elements is different,
5279 htabs are different. Use shared_hash_*.
5280 (dataflow_set_destroy): Call shared_hash_destroy instead of
5281 htab_delete.
5282 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
5283 second argument to dataflow_set_init.
5284 (vt_initialize): Likewise. Initialize shared_hash_pool and
5285 empty_shared_hash, move bb in/out initialization afterwards.
5286 Use variable_htab_free instead of NULL as changed_variables del hook.
5287 (variable_was_changed): Change type of second argument to pointer to
5288 dataflow_set. When inserting var into changed_variables, bump
5289 refcount. Unshare set->vars if set is shared htab and slot needs to
5290 be cleared.
5291 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
5292 lookup if set->vars is shared. Unshare set->vars if needed.
5293 Even ->refcount == 1 vars must be unshared if set->vars is shared
5294 and var needs to be modified. Adjust variable_was_changed caller.
5295 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
5296 vars must be unshared if set->vars is shared and var needs to be
5297 modified. Adjust variable_was_changed caller.
5298 (emit_note_insn_var_location): Don't pool_free var.
5299 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
5300 instead of 1.
5301 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
5302 free_alloc_pool on shared_hash_pool.
5303
5304 2009-06-20 Anthony Green <green@moxielogic.com>
5305
5306 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
5307 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
5308
5309 2009-06-20 Richard Guenther <rguenther@suse.de>
5310
5311 * tree-ssa-structalias.c (find_func_aliases): For memset use
5312 a constraint from NULL if we memset to zero.
5313 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
5314 we explicitly handle that do not read from memory.
5315 (call_may_clobber_ref_p_1): Properly handle builtins that may
5316 set errno.
5317
5318 2009-06-20 Richard Guenther <rguenther@suse.de>
5319
5320 PR tree-optimization/40495
5321 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
5322 (new_scalar_tmp_constraint_exp): New function.
5323 (process_constraint): Do not create temporary decls.
5324 (process_all_all_constraints): Likewise.
5325 (handle_const_call): Likewise.
5326 (create_function_info_for): Do not set decl.
5327
5328 2009-06-19 Ian Lance Taylor <iant@google.com>
5329
5330 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
5331 (rs6000_attribute_table): Make static; move before use.
5332
5333 2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
5334
5335 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
5336 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
5337 Propagate the TREE_READONLY flag without overwriting it.
5338 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
5339 Propagate the TREE_READONLY flag onto the result.
5340 (process_call_operands): Move around. Use correct constant value.
5341
5342 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5343
5344 PR target/40482
5345 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
5346 * config/arm/arm.md: Likewise.
5347
5348 2009-06-19 Ian Lance Taylor <iant@google.com>
5349
5350 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
5351 to GIMPLE_ERROR_MARK.
5352
5353 * c-typeck.c (build_conditional_expr): Add op1_original_type and
5354 op2_original_type parameters. Warn about using different enum types.
5355 * c-parser.c (c_parser_conditional_expression): Pass original
5356 types to build_conditional_expr.
5357 * c-tree.h (build_conditional_expr): Update declaration.
5358
5359 2009-06-19 Ian Lance Taylor <iant@google.com>
5360
5361 * config/i386/i386.c (ix86_function_specific_save): Test that
5362 fields match values, rather than testing the values are in a
5363 certain range.
5364
5365 2009-06-19 Richard Guenther <rguenther@suse.de>
5366
5367 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5368 ADDR_EXPR pointers.
5369 (ptr_derefs_may_alias_p): Likewise.
5370 (ptr_deref_may_alias_ref_p_1): New function.
5371 (ptr_deref_may_alias_ref_p): Likewise.
5372 (ref_maybe_used_by_call_p_1): Handle builtins that are not
5373 covered by looking at the ESCAPED solution.
5374 (call_may_clobber_ref_p_1): Likewise.
5375 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
5376 Handle NULL_TREE offset. Do not produce redundant constraints.
5377 (process_all_all_constraints): New helper function.
5378 (do_structure_copy): Use it.
5379 (handle_lhs_call): Likewise.
5380 (find_func_aliases): Handle some builtins with pointer arguments
5381 and/or return values explicitly.
5382
5383 2009-06-19 Ian Lance Taylor <iant@google.com>
5384
5385 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
5386
5387 2009-06-19 Ian Lance Taylor <iant@google.com>
5388
5389 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
5390
5391 2009-06-19 Ian Lance Taylor <iant@google.com>
5392
5393 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
5394 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
5395 version.
5396
5397 * c-decl.c (finish_decl): If -Wc++-compat, warn about
5398 uninitialized const.
5399
5400 2009-06-19 Ian Lance Taylor <iant@google.com>
5401
5402 * dse.c (struct store_info): Rename bitmap field to bmap. Change
5403 all uses.
5404
5405 * c-decl.c (in_struct, struct_types): Remove.
5406 (struct c_binding): Add in_struct field.
5407 (c_binding_ptr): Define type, along with VEC.
5408 (struct c_struct_parse_info): Define.
5409 (struct_parse_info): New static variable.
5410 (bind): Initialize in_struct field.
5411 (start_struct): Remove enclosing_in_struct and
5412 enclosing_struct_types parameters. Add
5413 enclosing_struct_parse_info parameter. Change all callers. Set
5414 struct_parse_info rather than in_struct and struct_types.
5415 (grokfield): If -Wc++-compat and there is a symbol binding for the
5416 field name, set the in_struct flag and push it on the
5417 struct_parse_info->fields vector.
5418 (warn_cxx_compat_finish_struct): New static function.
5419 (finish_struct): Remove enclosing_in_struct and
5420 enclosing_struct_types parameters. Add
5421 enclosing_struct_parse_info parameter. Change all callers. Don't
5422 set C_TYPE_DEFINED_IN_STRUCT here. Call
5423 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
5424 parameter. Only push on struct_types if warn_cxx_compat.
5425 (finish_enum): Only push on struct_types if warn_cxx_compat.
5426 (declspecs_add_type): Add loc parameter. Change all callers.
5427 Change all error calls to error_at. Pass loc, not input_location,
5428 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
5429 defined in a struct. If -Wc++-compat and parsing a struct, record
5430 that a typedef name was used.
5431 * c-parser.c (c_parser_declspecs): Get location to pass to
5432 declspecs_add_type.
5433 (c_parser_struct_or_union_specifier): Update calls to start_struct
5434 and finish_struct.
5435 * c-tree.h (struct c_struct_parse_info): Declare.
5436 (finish_struct, start_struct): Update declarations.
5437 (declspecs_add_type): Update declaration.
5438
5439 2009-06-19 Ian Lance Taylor <iant@google.com>
5440
5441 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
5442 variable with an anonymous type.
5443
5444 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
5445
5446 * see.c: Remove for real.
5447
5448 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
5449
5450 * optabs.h (enum optab_index): Add new OTI_significand.
5451 (significand_optab): Define corresponding macro.
5452 * optabs.c (init_optabs): Initialize significand_optab.
5453 * genopinit.c (optabs): Implement significand_optab using
5454 significand?f2 patterns.
5455 * builtins.c (expand_builtin_mathfn): Handle
5456 BUILT_IN_SIGNIFICAND{,F,L}.
5457 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
5458 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5459
5460 * config/i386/i386.md (significandxf2, significand<mode>2): New
5461 expanders to implement significandf, significand and significandl
5462 built-ins as inline x87 intrinsics.
5463
5464 2009-06-18 Anatoly Sokolov <aesok@post.ru>
5465
5466 * config/avr/avr.c (avr_override_options): Remove setting value of
5467 PARAM_INLINE_CALL_COST.
5468
5469 2009-06-18 Richard Henderson <rth@redhat.com>
5470
5471 PR 40488
5472 * tree-pass.h (TDF_ASMNAME): New.
5473 * tree-dump.c (dump_options): Add asmname.
5474 * doc/invoke.texi: Document it.
5475
5476 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
5477 (dump_decl_name): ...here.
5478 (dump_function_name): New flags arg; mind TDF_ASMNAME.
5479 (dump_generic_node): Update dump_function_name calls.
5480 (print_call_name): New flags arg; update all dump calls.
5481 * diagnostic.h (print_call_name): Update.
5482 * gimple-pretty-print.c (dump_gimple_call): Update.
5483
5484 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
5485
5486 PR target/40470
5487 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
5488
5489 2009-06-18 Diego Novillo <dnovillo@google.com>
5490
5491 * doc/plugins.texi: Document plugin_is_GPL_compatible.
5492 * plugin.c (str_license): Declare.
5493 (try_init_one_plugin): Assert that the symbol
5494 'plugin_is_GPL_compatible' exists.
5495
5496 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
5497
5498 * see.c: Remove.
5499 * Makefile.in (OBJS-common): Remove see.o.
5500 (see.o): Remove.
5501 * common.opt (fsee): Mark as preserved for backward compatibility.
5502 * opts.c (common_handle_option): Add OPT_fsee to the backward
5503 compatibility section.
5504 * passes.c (init_optimization_passes, pass_see): Remove pass.
5505 * timevar.def (TV_SEE): Remove.
5506 * tree-pass.h (pass_see): Remove declaration.
5507 * doc/invoke.texi (-fsee): Remove documentation.
5508
5509 2009-06-18 Martin Jambor <mjambor@suse.cz>
5510
5511 * tree-sra.c: Include statistics.h
5512 (sra_stats): New variable.
5513 (sra_initialize): Clear sra_stats.
5514 (create_access_replacement): Increment sra_stats.replacements.
5515 (get_access_replacement): Do not return twice.
5516 (analyze_all_variable_accesses): Increment statistics counter by the
5517 number of scalarized aggregates.
5518 (generate_subtree_copies): Increment sra_stats.subtree_copies.
5519 (sra_modify_expr): Increment sra_stats.exprs.
5520 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
5521 (sra_modify_assign): Increment sra_stats.exprs,
5522 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
5523 (perform_intra_sra): Update statistics counters.
5524 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
5525
5526 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
5527
5528 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
5529 (arm_scalar_mode_supported_p): New function.
5530
5531 2009-06-18 Paul Brook <paul@codesourcery.com>
5532 Sandra Loosemore <sandra@codesourcery.com>
5533
5534 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
5535 (__extendhfsf2, __truncsfhf2): Define.
5536 * config/arm/fp16.c: New file.
5537 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
5538 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
5539
5540 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
5541
5542 * doc/extend.texi (Half-Precision): New section.
5543 * doc/invoke.texi (Option Summary): List -mfp16-format.
5544 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
5545 * config/arm/arm.opt (mfp16-format=): New.
5546 * config/arm/arm.c: Include intl.h.
5547 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
5548 (TARGET_INVALID_RETURN_TYPE): Redefine.
5549 (TARGET_PROMOTED_TYPE): Redefine.
5550 (TARGET_CONVERT_TO_TYPE): Redefine.
5551 (arm_fp16_format): Define.
5552 (all_fpus): Add entry for neon-fp16.
5553 (fp_model_for_fpu): Likewise.
5554 (struct fp16_format): Declare.
5555 (all_fp16_formats): Define.
5556 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
5557 functions.
5558 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
5559 and no ldrh.
5560 (arm_legitimate_index_p): Treat HFmode like HImode.
5561 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
5562 (coproc_secondary_reload_class): Special-case HFmode.
5563 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
5564 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
5565 (arm_init_fp16_builtins): New.
5566 (arm_init_builtins): Call it.
5567 (arm_invalid_parameter_type): New.
5568 (arm_invalid_return_type): New.
5569 (arm_promoted_type): New.
5570 (arm_convert_to_type).
5571 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
5572 format.
5573 (arm_emit_fp16_const): New function.
5574 (arm_mangle_type): Mangle __fp16 as "Dh".
5575 * config/arm/arm.h (TARGET_VFPD32): Make it know about
5576 FPUTYPE_NEON_FP16.
5577 (TARGET_NEON_FP16): New.
5578 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
5579 (enum fputype): Add FPUTYPE_NEON_FP16.
5580 (enum arm_fp16_format_type): Declare.
5581 (arm_fp16_format): Declare.
5582 (LARGEST_EXPONENT_IS_NORMAL): Define.
5583 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
5584 * config/arm/arm-modes.def (HFmode): Define.
5585 * config/arm/vfp.md: (*movhf_vfp): New.
5586 (extendhfsf2): New.
5587 (truncsfhf2): New.
5588 * config/arm/arm.md: (fpu): Add neon_fp16.
5589 (floatsihf2, floatdihf2): New.
5590 (fix_trunchfsi2, fix_trunchfdi2): New.
5591 (truncdfhf2): New.
5592 (extendhfdf2): New.
5593 (movhf): New.
5594 (*arm32_movhf): New.
5595 (*thumb1_movhf): New.
5596 (consttable_2): Add check for HFmode constants.
5597 (consttable_4): Handle HFmode constants.
5598
5599 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
5600
5601 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
5602
5603 2009-06-17 Olivier Hainque <hainque@adacore.com>
5604
5605 * collect2.c (main): Use CONST_CAST2 to perform char ** to
5606 const char ** conversion in AIX specific section.
5607
5608 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
5609
5610 * config/i386/i386.c (ix86_special_builtin_type): Remove
5611 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
5612 (bdesc_special_args): Updated.
5613 (ix86_init_mmx_sse_builtins): Likewise.
5614 (ix86_expand_special_args_builtin): Likewise.
5615
5616 2009-06-17 Richard Henderson <rth@redhat.com>
5617
5618 * tree-pretty-print.c (maybe_dump_asm_name): New.
5619 (dump_decl_name): Use it.
5620 (PRINT_FUNCTION_NAME): Merge into...
5621 (dump_function_name): ... here. Use maybe_dump_asm_name.
5622
5623 2009-06-17 Cary Coutant <ccoutant@google.com>
5624
5625 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
5626 Change caller.
5627 * debug.c (struct gcc_debug_hooks): Change placeholder for
5628 source_line hook.
5629 (debug_nothing_int_charstar_int): Replaced by...
5630 (debug_nothing_int_charstar_int_bool): ...this.
5631 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
5632 source_line prototype.
5633 (debug_nothing_int_charstar_int): Replaced by...
5634 (debug_nothing_int_charstar_int_bool): ...this.
5635 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
5636 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
5637 Output is_stmt operand when necessary.
5638 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
5639 (notice_source_line): Add is_stmt parameter.
5640 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
5641 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
5642 Change callers.
5643 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
5644 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
5645
5646 2009-06-17 Ian Lance Taylor <iant@google.com>
5647
5648 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
5649 Change all uses.
5650 (struct store_by_pieces_d): Rename from store_by_pieces. Change
5651 call uses.
5652
5653 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
5654
5655 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
5656 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
5657 tree_strip_sign_nop_conversions and
5658 tree_ssa_strip_useless_type_conversions rather than stripping
5659 the operations here.
5660 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
5661 Declare them.
5662 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
5663 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
5664 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
5665 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
5666 functions.
5667
5668 2009-06-17 Michael Eager <eager@eagercon.com>
5669
5670 * config/rs6000/constraints.md (register_constraint "d"): New.
5671 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
5672 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
5673 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
5674 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
5675 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
5676 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
5677 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
5678 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
5679 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
5680 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
5681 __fctiwz): Same.
5682 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
5683 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
5684 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
5685 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
5686 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
5687 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
5688 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
5689 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
5690 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
5691 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
5692 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
5693 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
5694 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
5695 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
5696
5697 2009-06-16 Ian Lance Taylor <iant@google.com>
5698
5699 * profile.c (total_num_never_executed): Don't define.
5700 (compute_branch_probabilities): Don't count or print
5701 num_never_executed.
5702 (init_branch_prob): Don't set total_num_never_executed.
5703 (end_branch_prob): Don't print total_num_never_executed.
5704
5705 2009-06-17 David Daney <ddaney@caviumnetworks.com>
5706
5707 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
5708
5709 2009-06-17 David Edelsohn <edelsohn@gnu.org>
5710
5711 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
5712 (nabstd2_fpr): Same.
5713
5714 2009-06-17 Steve Ellcey <sje@cup.hp.com>
5715
5716 * expr.c (expand_assignment): Change complex type check.
5717
5718 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
5719
5720 * doc/plugins.texi (Building GCC plugins): Added new section.
5721
5722 2009-06-17 Ian Lance Taylor <iant@google.com>
5723
5724 * c-pch.c (get_ident): Don't set size of templ array.
5725 (pch_init): Don't set size of partial_pch array.
5726
5727 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
5728 string constant to intialize an array whose size is the length of
5729 the string.
5730
5731 2009-06-17 Richard Guenther <rguenther@suse.de>
5732
5733 PR tree-optimization/40389
5734 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
5735 to addressable types.
5736 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
5737
5738 2009-06-17 Richard Guenther <rguenther@suse.de>
5739
5740 PR middle-end/40460
5741 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
5742 if there is no evolution of left in the loop bail out.
5743 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
5744 chrec_fold_multiply.
5745
5746 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
5747 Janis Johnson <janis187@us.ibm.com>
5748
5749 PR target/39254
5750 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
5751 for the symbol ref of a constant that is the source of a move
5752 - nor for any other not-obvious-label-ref constants.
5753
5754 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
5755
5756 * plugin.c (position_pass): Skip newly inserted pass during list
5757 traversal to avoid repeated insertion.
5758
5759 2009-06-16 Ian Lance Taylor <iant@google.com>
5760
5761 * vec.h (VEC_stack_alloc): Define different version if
5762 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
5763 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
5764 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
5765 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
5766
5767 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
5768
5769 * config.gcc (extra_headers): Add ia32intrin.h for x86.
5770
5771 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
5772 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
5773 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
5774 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
5775 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
5776 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
5777 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
5778 (bdesc_special_args): Add __builtin_ia32_rdtsc and
5779 __builtin_ia32_rdtscp.
5780 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
5781 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
5782 and __builtin_ia32_rorhi.
5783 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
5784 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
5785 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
5786 (ix86_expand_args_builtin): Likewise.
5787 (ix86_expand_special_args_builtin): Likewise.
5788
5789 * config/i386/i386.md (UNSPECV_RDTSCP): New.
5790 (UNSPECV_RDTSC): Likewise.
5791 (UNSPECV_RDPMC): Likewise.
5792 (*bsr): Renamed to ...
5793 (bsr): This
5794 (*bsr_rex64): Renamed to ...
5795 (bsr_rex64): This.
5796 (rdpmc): New.
5797 (*rdpmc): Likewise.
5798 (*rdpmc_rex64): Likewise.
5799 (rdtsc): Likewise.
5800 (*rdtsc): Likewise.
5801 (*rdtsc_rex64): Likewise.
5802 (rdtscp): Likewise.
5803 (*rdtscp): Likewise.
5804 (*rdtscp_rex64): Likewise.
5805
5806 * config/i386/ia32intrin.h: New.
5807
5808 * config/i386/x86intrin.h: Include <ia32intrin.h>.
5809
5810 2009-06-16 Ian Lance Taylor <iant@google.com>
5811
5812 * ira-build.c (copy_info_to_removed_store_destinations):
5813 Initialize parent_a.
5814
5815 2009-06-16 Ian Lance Taylor <iant@google.com>
5816
5817 * c-decl.c (grokdeclarator): Change size_varies to bool.
5818
5819 2009-06-16 Ian Lance Taylor <iant@google.com>
5820
5821 * sel-sched.c: Make forward declarations of move_op_hooks and
5822 fur_hooks explicitly extern.
5823
5824 2009-06-16 Ian Lance Taylor <iant@google.com>
5825
5826 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
5827 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
5828
5829 2009-06-16 Ian Lance Taylor <iant@google.com>
5830
5831 * resource.c (mark_referenced_resources): Change
5832 include_delayed_effects parameter to bool. Change all callers.
5833 (mark_end_of_function_resources): Likewise.
5834 * reorg.c (insn_references_resource_p): Likewise.
5835 (insn_sets_resource_p): Likewise.
5836 * resource.h (mark_referenced_resources): Update declaration.
5837 (mark_end_of_function_resources): Update declaration.
5838
5839 2009-06-16 David Edelsohn <edelsohn@gnu.org>
5840
5841 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
5842
5843 2009-06-16 David Edelsohn <edelsohn@gnu.org>
5844
5845 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
5846 GCC can bootstrap on AIX with GNU Binutils 2.20.
5847
5848 2009-06-16 Ian Lance Taylor <iant@google.com>
5849
5850 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
5851
5852 2009-06-16 Ian Lance Taylor <iant@google.com>
5853
5854 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
5855 inline, not extern inline.
5856 (exact_log2): Likewise.
5857 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
5858 test CLZ_HWI.
5859 (exact_log2): Likewise, but don't test CTZ_HWI.
5860
5861 2009-06-16 Ian Lance Taylor <iant@google.com>
5862
5863 * bitmap.c (bitmap_clear): Don't declare as inline.
5864 * gimple.c (gimplify_assign): Likewise.
5865 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5866 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
5867 (sched_scan_info): Remove duplicate definition.
5868
5869 2009-06-16 Ian Lance Taylor <iant@google.com>
5870
5871 * c-common.c (skip_evaluation): Don't define.
5872 (c_inhibit_evaluation_warnings): Define global variable.
5873 (overflow_warning): Check c_inhibit_evaluation_warnings rather
5874 than skip_evaluation.
5875 (convert_and_check, warn_for_div_by_zero): Likewise.
5876 * c-common.h (skip_evaluation): Don't declare.
5877 (c_inhibit_evaluation_warnings): Declare.
5878 * c-parser.c (c_parser_typeof_specifier): Set
5879 c_inhibit_evaluation_warnings rather than skip_evaluation.
5880 (c_parser_conditional_expression): Likewise.
5881 (c_parser_binary_expression): Likewise.
5882 (c_parser_sizeof_expression): Likewise.
5883 (c_parser_alignof_expression): Likewise.
5884 * c-typeck.c (build_indirect_ref): Check
5885 c_inhibit_evaluation_warnings rather than skip_evaluation.
5886 (build_conditional_expr, build_binary_op): Likewise.
5887
5888 2009-06-16 Richard Guenther <rguenther@suse.de>
5889
5890 * tree-ssa-alias.c (is_escape_site): Remove.
5891 * tree-ssa-alias.h (enum escape_type): Remove.
5892 (is_escape_site): Likewise.
5893 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
5894 via casts and asms without deferring to is_escape_site.
5895
5896 2009-06-16 Jakub Jelinek <jakub@redhat.com>
5897
5898 PR middle-end/40446
5899 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
5900 use gen_lowpart if op0 has complex mode.
5901
5902 2009-06-16 Richard Guenther <rguenther@suse.de>
5903
5904 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
5905 variables add them to ESCAPED.
5906 (find_func_aliases): Do not make all indirectly stored values escaped.
5907
5908 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
5909
5910 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
5911 make_decl_one_only.
5912
5913 2009-06-16 Martin Jambor <mjambor@suse.cz>
5914
5915 PR tree-optimization/40432
5916 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
5917 check whether we need to force gimple register operand.
5918
5919 2009-06-16 Martin Jambor <mjambor@suse.cz>
5920
5921 PR tree-optimization/40413
5922 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
5923 build_ref_for_offset.
5924 (propagate_subacesses_accross_link): Fix a typo in a comment.
5925
5926 2009-06-16 Ira Rosen <irar@il.ibm.com>
5927
5928 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
5929 with additional parameter.
5930 * tree-vectorizer.h (enum vect_def_type): Add new value
5931 vect_nested_cycle.
5932 (enum vect_relevant): Add comments.
5933 (vect_is_simple_reduction): Add new argument.
5934 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
5935 Detect nested cycles.
5936 (vect_is_simple_reduction): Update documentation, add an argument to
5937 distinguish inner-loop reduction from nested cycle, detect nested
5938 cycles, fix printings and indentation, don't swap operands in case
5939 of nested cycle.
5940 (get_initial_def_for_reduction): Handle subtraction.
5941 (vect_create_epilog_for_reduction): Add new argument to specify
5942 reduction variable.
5943 (vect_finalize_reduction): Handle subtraction, fix comments.
5944 (vectorizable_reduction): Handle nested cycles. In case of nested
5945 cycle keep track of the reduction variable position. Call
5946 vect_is_simple_reduction with additional parameter. Use original
5947 statement code in reduction epilogue for nested cycle. Call
5948 vect_create_epilog_for_reduction with additional parameter.
5949 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
5950 inner-loop vectorization.
5951 (vect_recog_widen_sum_pattern): Likewise.
5952 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
5953 and reductions.
5954 (vect_mark_stmts_to_be_vectorized): Likewise.
5955 (vect_get_vec_def_for_operand): Handle nested cycles.
5956
5957 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5958
5959 * doc/invoke.texi (Debugging Options): Fix option index entries
5960 for -fdump-statistics, -frandom-seed add entries for
5961 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
5962 (FRV Options): Fix entries for -mTLS, -mtls.
5963 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
5964 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
5965 (M68hc1x Options): Fix @itemx for -mnominmax.
5966 (MCore Options): Fix entry for -mno-lsim.
5967 (MMIX Options): Fix entry for -mabi=mmixware.
5968 (PDP-11 Options): Fix entry for -mbcopy-builtin.
5969
5970 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
5971
5972 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
5973 Mention the plugin mode of gengtype.
5974 * doc/gty.texi (Source Files Containing Type Information): Likewise.
5975 * gengtype.c: Updated copyright.
5976 (plugin_files, nb_plugin_files) Added new static variables.
5977 (measure_input_list) Care about plugin_files.
5978 (write_rtx_next): Added early return in plugin mode.
5979 (create_file): Updated copyright year in generated file. Added
5980 asserts.
5981 (oprintf): Added early return if NULL outf.
5982 (get_output_file_with_visibility): Care of plugin_files.
5983 (get_output_file_name): May return null.
5984 (write_local): Added early return.
5985 (put_mangled_filename): Ditto.
5986 (finish_root_table): Added check for base_files.
5987 (write_roots): Care about null when plugins.
5988 (main): Added plugin mode.
5989
5990 2009-06-15 Ian Lance Taylor <iant@google.com>
5991
5992 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
5993 * gcov.c (read_count_file): Add braces around variables declared
5994 before label.
5995
5996 * c.opt (Wjump-misses-init): New warning.
5997 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
5998 -Wall and -Wc++-compat if not already set.
5999 (c_common_post_options): Clear warn_jump_misses_init if it was not
6000 set.
6001 * c-decl.c (struct c_binding): Change type field to a union with
6002 new label field. Make it the first field in the struct. Update
6003 references to type to use u.type instead.
6004 (struct c_spot_bindings): Define.
6005 (struct c_goto_bindings): Define.
6006 (c_goto_bindings_p): Define, along with VECs.
6007 (struct c_label_vars): Define.
6008 (struct c_scope): Add has_label_bindings field.
6009 (bind_label, set_spot_bindings): New static functions.
6010 (decl_jump_unsafe, update_spot_bindings): New static functions.
6011 (update_label_decls): New static function.
6012 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
6013 Update binding u.label field to shadowed field.
6014 (c_binding_start_stmt_expr): New function.
6015 (c_binding_end_stmt_expr): New function.
6016 (pushdecl): Don't call c_begin_vm_scope.
6017 (make_label): Add defining and p_label_vars parameters. Change
6018 all callers.
6019 (lookup_label): Correct test for whether a label has not yet been
6020 defined. Call bind_label rather than bind.
6021 (warn_about_goto): New static function.
6022 (lookup_label_for_goto): New function.
6023 (declare_label): Call bind_label rather than bind.
6024 (check_earlier_gotos): New static function.
6025 (define_label): Don't give errors about jumping into statement
6026 expressions or scopes of variably modified types. Call
6027 set_spot_bindings and check_earlier_gotos. Call bind_label
6028 instead of bind. Don't set label_context_stack_se or
6029 label_context_stack_vm.
6030 (c_get_switch_bindings): New function.
6031 (c_release_switch_bindings): New function.
6032 (c_check_switch_jump_warnings): New function.
6033 (start_function): Don't set label_context_stack_se or
6034 label_context_stack_vm.
6035 (finish_function): Likewise.
6036 * c-typeck.c (label_context_stack_se): Don't define.
6037 (label_context_stack_vm): Don't define.
6038 (c_finish_goto_label): Call lookup_label_for_goto rather than
6039 lookup_label. Don't give errors about jumping into a statement
6040 expression or the scope of a variably modified type. Don't set
6041 label_context_stack_se or label_context_stack_vm.
6042 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
6043 fields. Add bindings field.
6044 (c_start_case): Don't set deleted fields. Set bindings field.
6045 (do_case): Rework order of tests. Don't check blocked_stmt_expr
6046 or blocked_vm. Call c_check_switch_jump_warnings.
6047 (c_finish_case): Don't test blocked_stmt_expr field. Call
6048 c_release_switch_bindings.
6049 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
6050 c_switch_stack. Don't walk label_context_stack_se labels. Don't
6051 set label_context_stack_se. Call c_bindings_start_stmt_expr.
6052 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
6053 c_switch_stack. Don't walk label_context_stack_se labels. Don't
6054 set label_context_stack_se. Call c_bindings_end_stmt_expr.
6055 (c_begin_vm_scope, c_end_vm_scope): Don't define.
6056 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
6057 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
6058 (C_DECL_UNJUMPABLE_VM): Don't define.
6059 (C_DECL_UNDEFINABLE_VM): Don't define.
6060 (struct c_label_list): Don't define.
6061 (struct c_label_context_se): Don't define.
6062 (struct c_label_context_vm): Don't define.
6063 (struct c_spot_bindings): Declare.
6064 (c_bindings_start_stmt_expr): Declare.
6065 (c_bindings_end_stmt_expr): Declare.
6066 (lookup_label_for_goto): Declare.
6067 (c_get_switch_bindings, c_release_switch_bindings): Declare.
6068 (c_check_switch_jump_warnings): Declare.
6069 (label_context_stack_se, label_context_stack_vm): Don't declare.
6070 (c_finish_goto_label): Update declaration.
6071 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
6072 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
6073 (Warning Options): Document -Wjump-misses-init.
6074
6075 2009-06-15 Jakub Jelinek <jakub@redhat.com>
6076
6077 * tree-object-size.c (addr_object_size): Fix a pasto in the last
6078 change.
6079
6080 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
6081
6082 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
6083
6084 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
6085
6086 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
6087
6088 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
6089
6090 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
6091
6092 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
6093
6094 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
6095 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
6096 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
6097 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
6098 * dwarf2asm.c (dw2_force_const_mem): Update call to
6099 make_decl_one_only.
6100 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
6101 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
6102 * langhooks.c (lhd_comdat_group): Remove.
6103 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
6104 * tree.h (DECL_COMDAT_GROUP): New.
6105 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
6106 (tree_decl_with_vis): Add comdat_group. Remove one_only.
6107 (make_decl_one_only): Change signature.
6108 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
6109 make_decl_one_only.
6110 (make_decl_one_only): Change signature.
6111 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
6112
6113 2009-06-15 Richard Guenther <rguenther@suse.de>
6114
6115 PR middle-end/40439
6116 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
6117
6118 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6119
6120 * tree-ssa-math-opts.c: Remove extra divide.
6121
6122 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6123
6124 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
6125
6126 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6127
6128 * passes.c: Add bswap pass.
6129 * tree-pass.h: Add pass_optimize_bswap declaration.
6130 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
6131 Include rtl.h, expr.h and optabs.h for optab_handler check.
6132 (struct symbolic_number, pass_optimize_bswap): New definition.
6133 (do_shift_rotate, verify_symbolic_number_p): New functions.
6134 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
6135 (gate_optimize_bswap): New function.
6136 * tree.c (widest_int_cst_value): New function.
6137 * tree.h (widest_int_cst_value): Prototype added.
6138
6139 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
6140
6141 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
6142 REG_EQUAL/REG_EQUIV notes.
6143
6144 2009-06-14 Richard Guenther <rguenther@suse.de>
6145
6146 PR middle-end/40389
6147 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
6148 has its address taken if NRV was applied and it is addressable.
6149 * tree-ssa-structalias.c (get_constraint_for_address_of): New
6150 function split out from ...
6151 (get_constraint_for_1): ... here.
6152 (handle_rhs_call): Use it to mark the return slot escaped if
6153 it is addressable and NRV was applied.
6154
6155 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
6156
6157 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
6158 Change first argument type to location_t.
6159 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
6160 Do not set input_location.
6161 Use loc instead of input_location throughout.
6162
6163 2009-06-13 Richard Guenther <rguenther@suse.de>
6164
6165 PR tree-optimization/40421
6166 * tree-predcom.c (should_unroll_loop_p): Remove.
6167 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
6168
6169 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
6170
6171 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6172 Add location argument.
6173
6174 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
6175
6176 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
6177 build_decl.
6178 * config/s390/s390.c (s390_build_builtin_va_list): Same.
6179 (s390_gimplify_va_arg): Pass location to create_artificial_label.
6180 * config/spu/spu-protos.h: Add location to
6181 spu_resolve_overloaded_builtin.
6182 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
6183 spu_build_builtin_va_list.
6184 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
6185 argument. Pass location to build_function_call_vec.
6186 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
6187 build_decl.
6188 (emit_fpu_switch): Same.
6189 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
6190 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
6191 to build_decl and create_artificial_label.
6192 (xtensa_gimplify_va_arg_expr): Same.
6193 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
6194 (xstormy16_gimplify_va_arg_expr): Same.
6195 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
6196 * config/arm/arm.c (arm_build_builtin_va_list): Same.
6197 * config/mips/mips.c (mips_build_builtin_va_list): Same.
6198 (mips16_build_function_stub): Same.
6199 (mips16_build_call_stub): Same.
6200
6201 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
6202
6203 PR target/40327
6204 * arm/constraints.md (Pa, Pb): New constraints.
6205 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
6206 split pattern to deal with them.
6207
6208 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
6209
6210 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
6211 fix index entry for -Xpreprocessor.
6212
6213 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
6214
6215 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6216 Add location argument to build_decl call.
6217 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
6218 (rs6000_init_builtins): Same.
6219 (spe_init_builtins): Same.
6220 (rs6000_gimplify_va_arg): Add location argument to
6221 create_artificial_label call.
6222
6223 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
6224
6225 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
6226 * combine-stack-adj.c (pass_stack_adjustments): Use it.
6227 * Makefile.in: Fix GGC dependency for gcse.o.
6228
6229 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
6230
6231 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
6232 * gimple-pretty-print.c (dump_gimple_stmt): Same.
6233 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
6234 created.
6235 * c-parser.c (c_parser_binary_expression): Use current column while
6236 building binary operations.
6237 * common.opt (fshow-column): Enable by default.
6238 * tree-vrp.c (check_array_ref): Use warning_at.
6239 (check_array_bounds): Use location from call back if expr has no
6240 location.
6241 * tree.h: Add location argument to maybe_fold_*.
6242 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
6243 (maybe_fold_offset_to_array_ref): Add location argument and use it.
6244 (maybe_fold_offset_to_component_ref): Same.
6245 (maybe_fold_offset_to_reference): Same.
6246 (maybe_fold_offset_to_address): Same.
6247 (maybe_fold_stmt_indirect): Same.
6248 (maybe_fold_stmt_addition): Same.
6249 (fold_stmt_r): Pass location to maybe_fold_*.
6250 (fold_gimple_assign): Same.
6251 * c-tree.h: Add location argument to finish_decl,
6252 default_function_array_conversion, store_init_value.
6253 * c-decl.c (define_label): Use error_at.
6254 (c_make_fname_decl): Pass location to finish_decl.
6255 (finish_decl): New location argument.
6256 (build_compound_literal): Pass location to store_init_value.
6257 (grokdeclarator): Pass location to finish_decl.
6258 (grokfield): Same.
6259 * c-typeck.c (array_to_pointer_conversion): New location argument.
6260 (function_to_pointer_conversion): Same.
6261 (default_function_array_conversion): Same.
6262 (parser_build_unary_op): Pass location to overflow_warning.
6263 (parser_build_binary_op): Same. Use warning_at.
6264 (build_unary_op): Pass location to array_to_pointer_conversion.
6265 (build_c_cast): Pass location to digest_init.
6266 (build_modify_expr): New location argument.
6267 (convert_for_assignment): Same.
6268 (store_init_value): Same.
6269 (digest_init): Same.
6270 (output_init_element): Pass location to digest_init and
6271 array_to_pointer_conversion.
6272 (c_finish_return): Pass location to convert_for_assignment.
6273 * gimplify.c (gimplify_conversion): Pass location to
6274 maybe_fold_offset_to_address.
6275 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
6276 to maybe_fold_stmt_addition.
6277 * c-omp.c (c_finish_omp_atomic): Pass new location to
6278 build_modify_expr.
6279 (c_finish_omp_for): Same.
6280 * c-common.c (overflow_warning): New argument.
6281 * c-common.h: New argument to build_modify_expr, overflow_warning.
6282 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
6283 finish_decl.
6284 (c_parser_initializer): Pass location to
6285 default_function_array_conversion.
6286 (c_parser_initelt): Same.
6287 (c_parser_initval): Same.
6288 (c_parser_asm_operands): Same.
6289 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
6290 (c_parser_conditional_expression): Same.
6291 (c_parser_binary_expression): Add location info to stack. Use it.
6292 (c_parser_unary_expression): Pass location to
6293 default_function_array_conversion, parser_build_unary_op,
6294 build_indirect_ref, c_parser_postfix_expression_after_primary.
6295 (c_parser_postfix_expression_after_primary): New location argument.
6296 Use it.
6297 (c_parser_expression_conv): Pass location to
6298 default_function_array_conversion.
6299 (c_parser_expr_list): Same.
6300 (c_parser_omp_atomic): Same.
6301 (c_parser_omp_for_loop): Same.
6302 * c-tree.h: (struct c_declarator): Add comment to id_loc.
6303 (build_array_declarator): New argument.
6304 * c-decl.c (build_array_declarator): Add location argument.
6305 (grokdeclarator): Set id_loc for cdk_array.
6306 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
6307 build_array_declarator.
6308 * tree.c (build_omp_clause): Add location argument.
6309 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
6310 (OMP_CLAUSE_LOCATION): New macro.
6311 (struct tree_omp_clause): Add location field.
6312 (build_omp_clause): Add argument.
6313 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
6314 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
6315 build_omp_clause.
6316 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
6317 (cp_parser_omp_clause_collapse): Same.
6318 (cp_parser_omp_clause_default): Same.
6319 (cp_parser_omp_clause_if): Same.
6320 (cp_parser_omp_clause_nowait): Same.
6321 (cp_parser_omp_clause_num_threads): Same.
6322 (cp_parser_omp_clause_ordered): Same.
6323 (cp_parser_omp_clause_schedule): Same.
6324 (cp_parser_omp_clause_untied): Same.
6325 (cp_parser_omp_for_loop): Same.
6326 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
6327 * c-tree.h (c_start_case): Add location argument.
6328 (c_process_expr_stmt): Same.
6329 (c_finish_goto_*): Same.
6330 * tree-parloops.c (initialize_reductions): Pass location to
6331 build_omp_clause.
6332 (create_parallel_loop): Same.
6333 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
6334 (gfc_trans_omp_reduction_list): Same.
6335 (gfc_trans_omp_clauses): Same.
6336 (gfc_trans_omp_do): Same.
6337 * c-typeck.c (c_finish_goto_label): Same.
6338 (c_finish_goto_ptr): New location argument.
6339 (c_start_case): Same.
6340 (emit_side_effect_warnings): Same.
6341 (c_process_expr_stmt): Same.
6342 (c_finish_stmt_expr): Same.
6343 (c_finish_omp_clauses): Use error_at instead of error.
6344 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
6345 build_omp_clause.
6346 * c-omp.c (c_split_parallel_clauses): New location argument.
6347 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
6348 to build_omp_clause.
6349 (convert_local_reference_stmt): Same.
6350 (convert_gimple_call): Same.
6351 * c-common.h (c_split_parallel_clauses): New argument.
6352 * c-parser.c (c_parser_statement_after_labels): Pass location to
6353 c_finish_goto_label.
6354 (c_parser_switch_statement): Pass location to c_start_case.
6355 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
6356 and c_process_expr_stmt.
6357 (c_parser_omp_variable_list): Add location argument.
6358 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
6359 (c_parser_omp_clause_default): Same.
6360 (c_parser_omp_clause_if): Same.
6361 (c_parser_omp_clause_num_threads): Same.
6362 (-c_parser_omp_clause_ordered): Same.
6363 (c_parser_omp_clause_reduction): Pass location to
6364 c_parser_omp_variable_list.
6365 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
6366 (c_parser_omp_clause_untied): Same.
6367 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
6368 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
6369
6370 * c-tree.h (check_for_loop_decls, undeclared_variable,
6371 build_component_ref, build_array_ref, build_external_ref,
6372 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
6373 build_conditional_expr, build_compound_expr, c_cast_expr,
6374 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
6375 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
6376 argument.
6377 * c-semantics.c (build_stmt): Same.
6378 (build_case_label): Same.
6379 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
6380 (undeclared_variable): New argument.
6381 (make_label): Same.
6382 (lookup_label): Pass location on down.
6383 (define_label): Same.
6384 (finish_decl): Same.
6385 (build_compound_literal): Same.
6386 (finish_struct): Same.
6387 (finish_function): Do not set location here.
6388 (check_for_loop_decls): New argument.
6389 * tree.c (save_expr): Set location.
6390 (build_empty_stmt): New argument.
6391 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
6392 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
6393 * builtins.c (gimplify_va_arg_expr): Use locations.
6394 (expand_builtin_sync_operation): Same.
6395 * c-typeck.c (build_component_ref): New argument.
6396 (build_array_ref): Same.
6397 (build_external_ref): Same.
6398 (c_expr_sizeof_expr): Same.
6399 (c_expr_sizeof_type): Same.
6400 (parser_build_unary_op): Same.
6401 (build_conditional_expr): Same.
6402 (build_compound_expr): Pass location on down.
6403 (build_compound_expr): New argument.
6404 (build_c_cast): Same.
6405 (c_cast_expr): Same.
6406 (build_asm_expr): Same.
6407 (c_finish_return): Same.
6408 (c_process_expr_stmt): Pass location on down.
6409 (c_finish_stmt_expr): New argument.
6410 (push_clenaup): Same.
6411 (c_finish_omp_parallel): Same.
6412 (c_finish_omp_task): Same.
6413 * gimplify.c (gimplify_call_expr): Pass location on down.
6414 * c-omp.c (c_finish_omp_master): New argument.
6415 (c_finish_omp_critical): Same.
6416 (c_finish_omp_ordered): Same.
6417 (c_finish_omp_barrier): Same.
6418 (-c_finish_omp_taskwait): Same.
6419 (c_finish_omp_atomic): Same.
6420 (c_finish_omp_flush): Same.
6421 * tree-inline.c (copy_tree_body_r): Pass location on down.
6422 (inline_forbidden_p): Remove use of input_location.
6423 * c-gimplify.c (c_build_bind_expr): New argument.
6424 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
6425 (c_sizeof_or_alignof_type): New argument.
6426 (c_alignof_expr): Same.
6427 (build_va_arg): Same.
6428 (c_add_case_label): Same.
6429 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
6430 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
6431 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
6432 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
6433 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
6434 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
6435 New argument.
6436 * stub-objc.c (objc_build_selector_expr): Same.
6437 (objc_build_throw_stmt): Same.
6438 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
6439 (c_parser_initelt): Same.
6440 (c_parser_compound_statement): Same.
6441 (c_parser_compound_statement_nostart): Same.
6442 (c_parser_label): Same.
6443 (c_parser_statement_after_labels): Same.
6444 (c_parser_if_body): Same.
6445 (c_parser_else_body): Same.
6446 (c_parser_if_statement): Same.
6447 (c_parser_switch_statement): Same.
6448 (c_parser_while_statement): Same.
6449 (c_parser_do_statement): Same.
6450 (c_parser_for_statement): Same.
6451 (c_parser_asm_statement): Same.
6452 (c_parser_conditional_expression): Same.
6453 (c_parser_binary_expression): Same.
6454 (c_parser_cast_expression): Same.
6455 (c_parser_unary_expression): Same.
6456 (c_parser_sizeof_expression): Same.
6457 (c_parser_alignof_expression): Same.
6458 (c_parser_postfix_expression): Same.
6459 (c_parser_expression): Same.
6460 (c_parser_objc_receiver): Same.
6461 (c_parser_omp_variable_list): Same.
6462 (c_parser_omp_structured_block): Same.
6463 (c_parser_omp_atomic): New argument.
6464 (c_parser_omp_barrier): Same.
6465 (c_parser_omp_critical): Same.
6466 (c_parser_omp_flush): Pass location on down.
6467 (c_parser_omp_for_loop): New argument.
6468 (c_parser_omp_for): Same.
6469 (c_parser_omp_master): Same.
6470 (c_parser_omp_ordered): Same.
6471 (c_parser_omp_sections_scope): Same.
6472 (c_parser_omp_sections): Same.
6473 (c_parser_omp_parallel): Same.
6474 (c_parser_omp_single): Same.
6475 (c_parser_omp_task): Same.
6476 (c_parser_omp_taskwait): Pass location on down.
6477 (c_parser_omp_construct): Same.
6478 (c_parser_omp_threadprivate): Same.
6479 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
6480 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
6481 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
6482 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
6483 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
6484 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
6485 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
6486 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
6487 config/i386/i386.c, stmt.c:
6488 Add location argument to the following function definitions and/or
6489 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
6490 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
6491 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
6492 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
6493 do_case, c_finish_bc_stmt, build_compound_literal,
6494 build_function_call.
6495 * c-decl.c (build_compound_literal): Add location argument.
6496 Make all diagnostic calls use location.
6497 (start_struct): Same.
6498 (finish_struct): Same.
6499 (start_enum): Same.
6500 (build_enumerator): Same.
6501 (start_function): Same.
6502 (grokdeclarator): Make all diagnostic calls use location.
6503 (store_parm_decls_oldstyle): Same.
6504 * c-typeck.c (build_function_call): Add location argument.
6505 Make all diagnostic calls use location.
6506 (do_case): Same.
6507 (c_finish_bc_stmt): Same.
6508 * tree-nested.c (get_trampoline_type): Add argument.
6509 Pass location to build_decl.
6510 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
6511 * rtl.h (RTL_LOCATION): New.
6512 * c-common.c (c_add_case_label): Add location argument.
6513 Make all diagnostic calls use location.
6514 * c-common.h: Add location argument to make_fname_decl, do_case,
6515 c_add_case_label, build_function_call, resolve_overloaded_builtin.
6516 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
6517 Set it appropriately for every case. Pass enum_loc to start_enum
6518 call. Pass value_loc first to build_enumerator. Pass enum_loc to
6519 parser_xref_tag.
6520 (c_parser_struct_or_union_specifier): Save location. Use it for
6521 start_struct, finish_struct, and parser_xref_tag.
6522
6523 2009-06-12 Ian Lance Taylor <iant@google.com>
6524
6525 * fold-const.c (fold_unary): Rename local variable and to and_expr.
6526
6527 * c-opts.c (c_common_handle_option): For -Wc++-compat set
6528 cpp_opts->warn_cxx_operator_names.
6529
6530 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
6531
6532 PR tree-opt/38865
6533 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
6534 is returns NULL and OP is a VCE, look through the VCE.
6535
6536 2009-06-12 Ian Lance Taylor <iant@google.com>
6537
6538 PR bootstrap/40430
6539 * collect2.c (main): Use CONST_CAST2 in code inside #if
6540 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
6541
6542 2009-06-12 Joey Ye <joey.ye@intel.com>
6543
6544 PR middle-end/39146
6545 * cfgexpand.c (get_decl_align_unit): Update
6546 max_used_stack_slot_alignment with align instead of
6547 stack_alignment_needed.
6548
6549 * function.c (assign_stack_local_1): Update
6550 max_used_stack_slot_alignment with alignment_in_bits instead
6551 of stack_alignment_needed.
6552 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
6553 here.
6554
6555 2009-06-12 Jakub Jelinek <jakub@redhat.com>
6556
6557 * dwarf2out.c (last_var_location_insn): New variable.
6558 (dwarf2out_end_epilogue): Clear last_var_location_insn.
6559 (dwarf2out_var_location): Don't record anything after last real
6560 insn. Only change labels if there were any real instructions
6561 in between last note and this one, or if changed sections.
6562
6563 2009-06-11 Richard Henderson <rth@redhat.com>
6564
6565 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
6566 note when storing the frame pointer in a register.
6567 (FRP): Don't redefine to nothing for epilogue.
6568 (alpha_expand_epilogue): Mark register and sp restores.
6569 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
6570
6571 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
6572 when gen_lowpart is needed.
6573
6574 2009-06-11 Richard Henderson <rth@redhat.com>
6575
6576 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
6577
6578 * dwarf2out.c (need_data_align_sf_opcode): New.
6579 (div_data_align): Move earlier.
6580 (def_cfa_1, reg_save): Use it.
6581
6582 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
6583
6584 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
6585 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
6586 (ix86_handle_option): Handle OPT_mcrc32.
6587 (ix86_target_string): Add -mcrc32.
6588 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
6589
6590 * config/i386/i386.h (TARGET_CRC32): New.
6591
6592 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
6593 (sse4_2_crc32di): Likewise.
6594
6595 * config/i386/i386.opt (mcrc32): New.
6596
6597 * doc/invoke.texi: Document -mcrc32.
6598
6599 2009-06-11 Richard Henderson <rth@redhat.com>
6600
6601 * common.opt (gdwarf-): Accept a version number.
6602 * doc/invoke.texi (gdwarf-): Update docs.
6603 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
6604 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
6605 version level, and record it.
6606
6607 * dwarf2.h (DW_CIE_VERSION): Remove.
6608 * dwarf2out.c (DWARF_VERSION): Remove.
6609 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
6610 (output_call_frame_info): Use CIE version 3 for dwarf3,
6611 or if the return register column is out of range for version 1.
6612 (dwarf_stack_op_name): Add all dwarf3 values.
6613 (DEBUG_PUBTYPES_SECTION): New.
6614 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
6615 encoding change for dwarf3.
6616 (output_die) [dw_val_class_die_ref]: Likewise.
6617 (output_compilation_unit_header): Emit correct version for dwarf3.
6618 (output_line_info): Likewise.
6619 (output_pubnames): Update for DWARF_VERSION removal.
6620 (output_aranges): Likewise.
6621 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
6622 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
6623 (dwarf2out_finish): Likewise.
6624
6625 2009-06-11 David Daney <ddaney@caviumnetworks.com>
6626
6627 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
6628 in r148403.
6629
6630 2009-06-11 David Daney <ddaney@caviumnetworks.com>
6631
6632 PR c/39252
6633 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
6634 * builtins.c (expand_builtin_unreachable): New function.
6635 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
6636 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
6637 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
6638 successors.
6639 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
6640 searching for missing barriers.
6641
6642 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6643
6644 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
6645 when -fprofile-generate* was passed.
6646 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
6647
6648 2009-06-11 Anthony Green <green@moxielogic.com>
6649
6650 * config/moxie/moxie.md: Define length attribute for all instructions.
6651 (rCC): Define.
6652 (*b<cond:code>): Support limited branch ranges for new PC-relative
6653 branch instructions.
6654 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
6655
6656 2009-06-11 Jakub Jelinek <jakub@redhat.com>
6657
6658 * config/i386/i386.c (min_insn_size): Use get_attr_length
6659 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
6660 For __asm return 0.
6661
6662 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
6663 instead of emit_insn_before.
6664
6665 2009-06-10 Ian Lance Taylor <iant@google.com>
6666
6667 PR bootstrap/40408
6668 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
6669 GIMPLE_SWITCH.
6670
6671 2009-06-10 Revital Eres <eres@il.ibm.com>
6672
6673 * passes.c (init_optimization_passes): Reschedule
6674 predictive-commoning pass before complete unroll pass.
6675
6676 2009-06-10 Martin Jambor <mjambor@suse.cz>
6677
6678 * cgraph.c (cgraph_node_can_be_local_p): New function.
6679 (cgraph_make_node_local): New function.
6680 * cgraph.h (cgraph_node_can_be_local_p): Declare.
6681 (cgraph_make_node_local): Declare.
6682
6683 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
6684
6685 * tree.h (tree_base): Add packed_flag and user_align fields.
6686 Decrease size of spare field.
6687 (TYPE_USER_ALIGN): Use user_align from tree_base.
6688 (DECL_USER_ALIGN): Likewise.
6689 (TYPE_PACKED): Use packed_flag from tree_base.
6690 (DECL_PACKED): Likewise.
6691 (tree_type): Delete packed_flag and user_align fields. Widen
6692 precision field. Widen mode field and shuffle fields to align
6693 mode on an 8-bit boundary.
6694 (tree_decl_common): Delete decl_flag_1 and user_align fields.
6695 Renumber decl_flag_* fields. Fix comments. Widen
6696 decl_common_unused field.
6697 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
6698 (DECL_EXTERNAL): Likewise.
6699 (DECL_BIT_FIELD): Likewise.
6700 (DECL_NONADDRESSABLE_P): Likewise.
6701 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
6702 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
6703
6704 2009-06-10 Ian Lance Taylor <iant@google.com>
6705
6706 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
6707 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
6708 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
6709 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
6710 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
6711 DEF_VEC_ALLOC_FUNC_P.
6712 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
6713 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
6714 DEF_VEC_ALLOC_FUNC_O.
6715 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
6716 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
6717 DEF_VEC_ALLOC_FUNC_I.
6718 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
6719 (vec_stack_p_reserve_exact_1): Declare.
6720 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
6721 (vec_stack_free): Declare.
6722 (VEC_stack_alloc): Define.
6723 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
6724 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
6725 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
6726 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
6727 for void_p.
6728 (stack_vecs): New static variable.
6729 (vec_stack_p_reserve_exact_1): New function.
6730 (vec_stack_o_reserve_1): New static function.
6731 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
6732 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
6733 (vec_stack_free): New function.
6734 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
6735 (VEC_df_ref_stack_alloc): Define.
6736 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
6737 DEF_VEC_ALLOC_P_STACK.
6738 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
6739 (struct df_collection_rec): Change _vec fields to VEC. Remove
6740 _use fields.
6741 (df_free_collection_rec): Adjust for new fields.
6742 (df_insn_rescan): Use new df_collection_rec fields.
6743 (df_notes_rescan, df_canonize_collection_rec): Likewise.
6744 (df_ref_create_structure, df_ref_record): Likewise.
6745 (df_get_conditional_uses, df_get_call_refs): Likewise.
6746 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
6747 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
6748 (df_record_exit_block_uses, df_bb_verify): Likewise.
6749 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
6750 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
6751 Remove count parameter. Change return type to void. Change all
6752 callers.
6753 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
6754 Remove count parameter. Change return type to void. Change all
6755 callers.
6756 (df_install_refs): Change old_vec parameter to VEC. Remove count
6757 parameter. Change all callers.
6758 (df_install_mws): Change old_vec parameter to VEC. Remove count
6759 parameter. Change all callers.
6760 (df_refs_verify): Change new_rec parameter to VEC. Change call
6761 callers.
6762 (df_mws_verify): Likewise.
6763
6764 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
6765
6766 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
6767
6768 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
6769
6770 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
6771
6772 2009-06-10 Anthony Green <green@moxielogic.com>
6773
6774 * config/moxie/crti.asm: New file.
6775 * config/moxie/crtn.asm: New file.
6776 * config/moxie/moxie.c: New file.
6777 * config/moxie/moxie.h: New file.
6778 * config/moxie/sfp-machine.h: New file.
6779 * config/moxie/moxie-protos.h: New file.
6780 * config/moxie/t-moxie: Created.
6781 * config/moxie/t-moxie-softfp: Created.
6782 * config/moxie/moxie.md: Created.
6783 * config/moxie/constraints.md: Created.
6784 * config.gcc: Add moxie support.
6785 * doc/md.texi (Machine Constraints): Add moxie constraints.
6786 * doc/contrib.texi (Contributors): Mention moxie port.
6787 * doc/install.texi (Specific): Mention the moxie port.
6788
6789 2009-06-09 Ian Lance Taylor <iant@google.com>
6790
6791 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
6792 compiling with C++.
6793 * optabs.c (optab_table): Only use designated initializers if
6794 HAVE_DESIGNATED_INITIALIZERS is defined.
6795 (convert_optab_table): Likewise.
6796 (init_optabs): Always call init_insn_codes if
6797 HAVE_DESIGNATED_INITIALIZERS is not defined.
6798
6799 2009-06-09 Ian Lance Taylor <iant@google.com>
6800
6801 * targhooks.c (default_builtin_vectorized_function): Change fn
6802 parameter to unsigned int.
6803 (default_builtin_vectorized_conversion): Change code parameter to
6804 unsigned int.
6805 (default_builtin_reciprocal): Change fn parameter to unsigned int.
6806 * targhooks.h: Update declarations.
6807 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
6808 parameter to unsigned int.
6809
6810 * c-typeck.c (comptypes_check_enum_int): New static function.
6811 (comptypes_internal): Add enum_and_int_p parameter. Change all
6812 callers.
6813 (comp_target_types): Add location parameter. Change all callers.
6814 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
6815 Change all callers.
6816 (function_types_compatible_p, type_lists_compatible_p): Likewise.
6817 (build_conditional_expr): Add colon_loc parameter. Change all
6818 callers.
6819 (convert_for_assignment): Add location parameter. Change all callers.
6820 * c-parser.c (c_parser_conditional_expression): Pass location of
6821 colon to build_conditional_expr.
6822 * c-tree.h (build_conditional_expr): Update declaration.
6823
6824 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6825
6826 * graphite.c: Revert previous patch.
6827
6828 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6829
6830 PR bootstrap/40103
6831 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
6832
6833 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
6834
6835 * tree-ssa-loop-prefetch.c
6836 (loop_prefetch_arrays): Fixed a portability problem in printf format
6837 string.
6838
6839 2009-06-09 Martin Jambor <mjambor@suse.cz>
6840
6841 PR tree-optimization/40351
6842 * tree-sra.c (propagate_subacesses_accross_link): Check that a
6843 refrence to a potential artifical subaccess can be constructed.
6844
6845 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6846
6847 * config/sh/sh-protos.h (sh_optimization_options): Declare.
6848 (sh_override_options): Likewise.
6849 * config/sh/sh.c: Include params.h.
6850 (sh_optimization_options): New.
6851 (sh_override_options): Likewise.
6852 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
6853 (OVERRIDE_OPTIONS): Use sh_override_options.
6854
6855 2009-06-08 Jakub Jelinek <jakub@redhat.com>
6856
6857 * dwarf2out.c (emit_cfa_remember): New variable.
6858 (add_fde_cfi): If emit_cfa_remember, recurse to add
6859 DW_CFA_remember_state first.
6860 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
6861 instead just set emit_cfa_remember.
6862
6863 2009-06-08 Jan Hubicka <jh@suse.cz>
6864
6865 PR debug/40126
6866 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
6867
6868 2009-06-08 Jan Hubicka <jh@suse.cz>
6869
6870 PR middle-end/39834
6871 * cgraphunit.c (save_inline_function_body): Do not copy transform
6872 hooks for saved inline bodies.
6873 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
6874 for given function.
6875
6876 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
6877
6878 * jump.c (returnjump_p): Handle delayed branches. Add missing
6879 function comment.
6880
6881 2009-06-08 Jan Hubicka <jh@suse.cz>
6882
6883 PR middle-end/40102
6884 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
6885 original node might've been modified.
6886 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
6887
6888 2009-06-08 Jakub Jelinek <jakub@redhat.com>
6889
6890 * tree-object-size.c (addr_object_size): Add OSI argument.
6891 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
6892 (compute_builtin_object_size, expr_object_size): Adjust callers.
6893 (plus_stmt_object_size): Call addr_object_size instead of
6894 compute_builtin_object_size.
6895
6896 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
6897 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6898
6899 * tree-ssa-loop-prefetch.c
6900 (gather_memory_references): Introduced a counter for the number of
6901 memory references.
6902 (anything_to_prefetch_p): Introduced a counter for the number of
6903 prefetches.
6904 (is_loop_prefetching_profitable): New function with a cost model
6905 for prefetching.
6906 (loop_prefetch_arrays): Use the new cost model to determine if
6907 prefetching is profitable.
6908 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
6909 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6910 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
6911 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6912 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
6913 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6914
6915 2009-06-08 Michael Matz <matz@suse.de>
6916
6917 PR debug/40012
6918 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
6919 partitions use the same.
6920 (expand_one_var): Deal with DECL_RTL sometimes begin set also
6921 for basevars of SSA_NAMEs.
6922 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
6923 to not expand them twice.
6924 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
6925 multiple places.
6926
6927 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
6928
6929 * common.opt (fcompare-debug=, fcompare-debug-second): New.
6930 (fdump-final-insns=, gtoggle): New.
6931 * doc/invoke.texi: Document them.
6932 * final.c (rest_of_clean_state): Dump final insn stream.
6933 * gcc.c (invoke_as): Hook in -fcompare-debug.
6934 (static_spec_functions): Add compare-debug-dump-opt,
6935 compare-debug-self-opt and compare-debug-auxbase-opt.
6936 (compare_debug, compare_debug_second, compare_debug_opt): New.
6937 (switches_debug_check, n_switches_debug_check): New.
6938 (debug_auxbase_opt, debug_check_temp_file): New.
6939 (process_command): Handle -fno-compare-debug, -fcompare-debug and
6940 -fcompare-debug=*.
6941 (do_self_spec): Handle arguments after switches.
6942 (do_spec_1): Add .gk extension to temp file basenames for compare.
6943 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
6944 (cc1_options): Use it instead of normal auxbase computation for
6945 the second compare-debug compilation.
6946 (compare_files): New.
6947 (main): Set up and implement compare debug mode.
6948 (compare_debug_dump_opt_spec_function): New.
6949 (compare_debug_self_opt_spec_function): New.
6950 (compare_debug_auxbase_opt_spec_function): New.
6951 * toplev.c (process_options): Handle flag_gtoggle,
6952 flag_dump_final_insns.
6953 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
6954 during -fcompare-debug-second compilation.
6955
6956 2009-06-07 Ian Lance Taylor <iant@google.com>
6957
6958 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
6959 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
6960
6961 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
6962 with no default node. Change warning with %H to warning_at.
6963 Don't clear warn_switch around case checking.
6964 * doc/invoke.texi (Warning Options): Clarify distinction between
6965 -Wswitch and -Wswitch-enum.
6966
6967 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6968
6969 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
6970
6971 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6972
6973 * gbl-ctors.h: Add header guard.
6974
6975 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6976
6977 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
6978 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
6979 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
6980 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
6981 prototypes for removed functions.
6982 (expressions_equal_p): Move to ...
6983 * tree-ssa-sccvn.h: ... here and ...
6984 * matrix-reorg.c: ... adjust includes.
6985
6986 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6987
6988 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
6989
6990 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6991
6992 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
6993 (finish_function): Remove erroneous whitespace.
6994
6995 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6996
6997 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
6998 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
6999
7000 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7001
7002 * errors.c (internal_error): Commentary typo fix.
7003 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
7004 * tree-ssa-pre.c: Ditto.
7005
7006 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7007
7008 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
7009 them is supposed to hold actual statements.
7010
7011 2009-06-06 Ian Lance Taylor <iant@google.com>
7012
7013 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
7014 empty statements can now have attributes.
7015
7016 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
7017
7018 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
7019 * config/mips/mips.md: Ditto.
7020
7021 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
7022
7023 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
7024 _RELOCATABLE.
7025 (__eabi_uconvert): Likewise.
7026
7027 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
7028
7029 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
7030 CFI_* definitions with IN_GCC.
7031
7032 2009-06-05 David Edelsohn <edelsohn@gnu.org>
7033
7034 * xcoffout.h (xcoffout_source_line): Update prototype.
7035
7036 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7037
7038 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
7039 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
7040
7041 2009-06-05 Jakub Jelinek <jakub@redhat.com>
7042
7043 PR middle-end/40340
7044 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
7045 inlined_function_outer_scope_p blocks for artificial inlines
7046 even at -g0/-g1.
7047 * tree.c (tree_nonartificial_location): Rewrite using
7048 block_nonartificial_location.
7049
7050 2009-06-05 Revital Eres <eres@il.ibm.com>
7051 Leehod Baruch <leehod@il.ibm.com>
7052
7053 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
7054 (expand_expr_real_1): Remove comment.
7055 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7056 Vectorize misaligned access when the target supports it.
7057 (vect_supportable_dr_alignment): Check for unaligned access support.
7058 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
7059 and remove asset.
7060
7061 2009-06-05 Julian Brown <julian@codesourcery.com>
7062
7063 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
7064 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
7065
7066 2009-06-05 Richard Guenther <rguenther@suse.de>
7067
7068 PR bootstrap/40350
7069 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
7070 as possibly unused.
7071
7072 2009-06-05 Jakub Jelinek <jakub@redhat.com>
7073
7074 * config/s390/s390.c (global_not_special_regno_p): New static inline.
7075 (save_gprs): Don't tell unwinder when a global register is saved.
7076 (s390_emit_epilogue): Emit needed epilogue unwind info.
7077
7078 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
7079
7080 * dwarf2out.c (deferred_asm_name): New.
7081 (add_name_and_src_coords_attributes): Defer creation of
7082 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
7083 computed yet.
7084 (move_linkage_attr): New.
7085 (dwarf2out_finish): Revisit deferrals and emit attributes at the
7086 right place.
7087
7088 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
7089
7090 * tree-nested.c (finalize_nesting_tree_1): Declare the
7091 frame_decl in the binding tree.
7092
7093 2009-06-04 Cary Coutant <ccoutant@google.com>
7094
7095 * basic-block.h (struct basic_block_def): Add discriminator field.
7096 * dbxout.c (dbxout_source_line): Add new parameter. Change all
7097 callers.
7098 * debug.c (do_nothing_debug_hooks): Add additional entry.
7099 (debug_nothing_int_charstar_int): New function.
7100 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
7101 (debug_nothing_int_charstar_int): New declaration.
7102 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
7103 discriminator value in .loc directive.
7104 * final.c (last_discriminator): New variable.
7105 (discriminator): New variable.
7106 (final_start_function): Initialize above variables, pass current
7107 discriminator to debug hook.
7108 (notice_source_line): Check for discriminator change.
7109 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
7110 * sdbout.c (sdbout_source_line): New parameter.
7111 * tree-cfg.c (struct locus_discrim_map): New structure type.
7112 (discriminator_per_locus): New hash table.
7113 (build_gimple_cfg): Allocate and free discriminator hash table.
7114 (make_edges): Call assign_discriminator.
7115 (locus_map_hash): New function.
7116 (locus_map_eq): New function.
7117 (next_discriminator_for_locus): New function.
7118 (same_line_p): New function.
7119 (assign_discriminator): New function.
7120 (make_cond_expr_edges): Call assign_discriminator.
7121 (make_gimple_switch_edges): Likewise.
7122 (first_non_label_stmt): New function.
7123 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
7124 all callers.
7125 * xcoffout.c (xcoffout_source_line): Add new parameter.
7126
7127 * configure.ac (gcc_cv_as_discriminator): New configury check for
7128 gas support for discriminator.
7129 * configure: Regenerate.
7130 * config.in: Regenerate.
7131
7132 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7133
7134 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
7135 val after checking for integers.
7136
7137 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
7138
7139 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
7140 X64_REGPARM_MAX.
7141 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
7142 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
7143 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
7144 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
7145 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
7146 X64_SSE_REGPARM_MAX.
7147 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
7148 X64_SSE_REGPARM_MAX.
7149
7150 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
7151
7152 * gcc.c (report_times_to_file): New.
7153 (execute): Implement it.
7154 (process_command): Support -time=.
7155 * doc/invoke.texi: Document it.
7156
7157 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
7158
7159 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
7160 that have value exprs.
7161
7162 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
7163
7164 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
7165 declarations for constants until...
7166 (dw2_output_indirect_constant_1): ... this point.
7167
7168 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
7169
7170 PR target/10242
7171 * arm.md (arm_addsi3): Don't try to split an add with an
7172 eliminable register until after reload has completed.
7173
7174 2009-06-03 Ian Lance Taylor <iant@google.com>
7175
7176 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
7177 * genattrtab.c (write_length_unit_log): Likewise.
7178 * genchecksum.c (dosum): Likewise.
7179 * gengtype.c (write_rtx_next): Likewise.
7180 (finish_root_table, write_roots): Likewise.
7181 * gimple.c (gimple_ops_offset_): Likewise.
7182 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
7183 * config/arc/arc.c (arc_attribute_table): Likewise.
7184 * config/arm/arm.c (arm_attribute_table): Likewise.
7185 * config/avr/avr.c (avr_attribute_table): Likewise.
7186 * config/crx/crx.c (crx_attribute_table): Likewise.
7187 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
7188 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
7189 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
7190 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
7191 * config/sh/sh.c (sh_attribute_table): Likewise.
7192 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
7193 * config/spu/spu.c (spu_attribute_table): Likewise.
7194 * config/v850/v850.c (v850_attribute_table): Likewise.
7195
7196 * config/alpha/alpha.c (vms_attribute_table): Make static.
7197 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
7198 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
7199 * config/mips/mips.c (mips_attribute_table): Likewise.
7200
7201 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
7202 $(SYSTEM_H).
7203 (cc1-checksum.o): Likewise.
7204
7205 2009-06-03 Steve Ellcey <sje@cup.hp.com>
7206
7207 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
7208
7209 2009-06-03 Jakub Jelinek <jakub@redhat.com>
7210
7211 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
7212 insn if it is changing sp. Use gen_add3_insn instead of
7213 conditionally gen_addsi3 and gen_adddi3.
7214 (offset_below_red_zone_p): New static inline function.
7215 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
7216 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
7217 * config/rs6000/ppc-asm.h: Include auto-host.h.
7218 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
7219 CFI_RESTORE): Define.
7220 * config/rs6000/crtresxgpr.asm: Add unwind info.
7221 * config/rs6000/crtresxfpr.asm: Likewise.
7222 * config/rs6000/crtresgpr.asm: Likewise.
7223 * config/rs6000/crtresfpr.asm: Likewise.
7224 * config/rs6000/crtsavgpr.asm: Likewise.
7225 * config/rs6000/crtsavfpr.asm: Likewise.
7226
7227 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
7228 argument of DWARF2_FRAME_REG_OUT macros.
7229
7230 2009-06-03 Julian Brown <julian@codesourcery.com>
7231
7232 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
7233 words or less (including TImode) in core registers.
7234
7235 2009-06-03 Richard Guenther <rguenther@suse.de>
7236
7237 PR middle-end/40328
7238 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
7239
7240 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
7241
7242 * statistics.c (statistics_counter_event): Do not record event
7243 in pass dump if its number == -1.
7244 (curr_statistics_hash): Add assert that we never get passes
7245 with static number == -1.
7246
7247 2009-06-03 Richard Guenther <rguenther@suse.de>
7248 Andrey Belevantsev <abel@ispras.ru>
7249
7250 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
7251 non-BLKmode arrays addressable.
7252
7253 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
7254
7255 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
7256 * config/m68k/m68k.h: ... here.
7257 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
7258 m68k and fido.
7259
7260 2009-06-03 Martin Jambor <mjambor@suse.cz>
7261
7262 PR tree-optimization/40323
7263 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
7264 assignment.
7265
7266 2009-06-03 Richard Guenther <rguenther@suse.de>
7267
7268 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
7269 consistently.
7270
7271 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
7272
7273 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
7274 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
7275 JUMP_TABLE_DATA_P where applicable.
7276 * config/sh/sh.c: Ditto.
7277 * config/sh/sh.h: Ditto.
7278 * config/sh/sh.md: Ditto.
7279 * config/sh/symbian.c: Ditto.
7280
7281 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
7282
7283 * config/i386/driver-i386.c (describe_cache): Optimize
7284 concatenation of strings. Use snprintf instead of sprintf.
7285 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
7286 target when not compiling with GCC.
7287
7288 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
7289
7290 * config/sh/sh.c: Revert last change.
7291 (sh_expand_epilogue): Emit a blockage insn before the frame
7292 pointer adjustment unconditionally.
7293
7294 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
7295
7296 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
7297 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
7298 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
7299 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
7300 to COLLECT_GCC_OPTIONS.
7301
7302 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
7303
7304 * collect2.c (target_system_root): New variable.
7305 (main): Handle --sysroot=.
7306 (ignore_library): Strip the sysroot from the library path.
7307
7308 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
7309
7310 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
7311 (collect2.o): Depend on collect2-aix.h.
7312 (collect2-aix.o): New rule.
7313 * collect2-aix.h: New file.
7314 * collect2-aix.c: Likewise.
7315 * collect2.c: Include collect2-aix.h. Don't undefine
7316 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
7317 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
7318 Use TARGET_AIX_VERSION instead of _AIX51.
7319 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
7320 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
7321 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
7322 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
7323 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
7324
7325 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
7326
7327 * collect2.c (ignore_library): Avoid premature post-increment
7328 and null deference.
7329
7330 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
7331
7332 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
7333 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
7334 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
7335 CROSS_DIRECTORY_STRUCTURE too.
7336 (LINK_LIBG_SPEC): Likewise.
7337 (LIB_SPEC): Add %R to sysroot paths.
7338 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
7339 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
7340 * config/rs6000/aix51.h: As for aix43.h.
7341 * config/rs6000/aix52.h: Likewise.
7342 * config/rs6000/aix53.h: Likewise.
7343 * config/rs6000/aix61.h: Likewise.
7344 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
7345 to the beginning of sysroot paths.
7346
7347 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7348
7349 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
7350 INSN_LISTs that are out of the REG_NOTE range.
7351
7352 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7353
7354 * loop-unroll.c (struct iv_to_split): Add pointer to next.
7355 (struct var_to_expand): Likewise.
7356 (struct opt_info): Add head and tail for linked lists of the above.
7357 (analyze_insn_to_expand_var): Initialize next.
7358 (analyze_iv_to_split_insn): Likewise.
7359 (analyze_insns_in_loop): Create linked lists.
7360 (allocate_basic_variable): Simplify for use without hash table.
7361 (insert_var_expansion_initialization): Likewise, make it type-safer.
7362 (combine_var_copies_in_loop_exit): Likewise.
7363 (apply_opt_in_copies): Walk lists rather than hash tables.
7364 (release_var_copies): Simplified and inlined by hand into...
7365 (free_opt_info): ... this function.
7366
7367 2009-06-02 Richard Guenther <rguenther@suse.de>
7368
7369 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
7370 for field decls.
7371
7372 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7373
7374 * cfgexpand.c (gimple_expand_cfg): Discard the source location
7375 only for builtins that are not overridden.
7376
7377 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7378
7379 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
7380 label string.
7381
7382 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7383
7384 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
7385
7386 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7387
7388 * combine.c (move_deaths): Compare LUIDs within the same BB only.
7389
7390 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7391
7392 * common.opt (fdump-unnumbered-links): New.
7393 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
7394 * print-rtl.c (flag_dump_unnumbered_links): New.
7395 (print_rtx): Test it.
7396
7397 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
7398
7399 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
7400 push/pop multiple to 8-byte alignment.
7401
7402 2009-06-01 Jakub Jelinek <jakub@redhat.com>
7403
7404 * config/i386/i386.c (queued_cfa_restores): New static variable.
7405 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
7406 functions.
7407 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
7408 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
7409 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
7410 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
7411 note unconditionally.
7412 (ix86_emit_restore_regs_using_mov): Likewise.
7413 (ix86_emit_restore_sse_regs_using_mov): Likewise.
7414 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
7415 it through to ix86_emit_restore_reg_using_pop.
7416 (ix86_emit_leave): Add RED_OFFSET argument. Call
7417 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
7418 instead of adding REG_CFA_OFFSET note unconditionally.
7419 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
7420 the above functions. Call ix86_add_queued_cfa_restore_notes when
7421 needed.
7422
7423 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
7424 force output of the label even for dwarf2out_do_cfi_asm.
7425 (add_fde_cfi): If -g2 and above and cfi might change CFA,
7426 force creation of CFI label and chain DW_CFA_set_loc jumping to it
7427 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
7428 caller.
7429 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
7430 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
7431 dwarf2out_cfi_label callers.
7432 * tree.h (dwarf2out_cfi_label): Adjust prototype.
7433 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
7434 Adjust dwarf2out_cfi_label callers.
7435 * config/vax/vax.c (vax_output_function_prologue): Likewise.
7436
7437 * config/i386/i386.h (struct machine_cfa_state,
7438 struct machine_function): Guard with ifndef USED_FOR_TARGET
7439 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
7440
7441 PR other/40024
7442 * emutls.c (__emutls_get_address): Change arr->size to mean number
7443 of allocated arr->data entries instead of # of slots + 1.
7444
7445 PR middle-end/40316
7446 * recog.c (peep2_reinit_state): New function.
7447 (peephole2_init_state): Use it at the end of a basic block and also
7448 when seeing a RTX_FRAME_RELATED_P insn.
7449
7450 2009-06-01 Steve Ellcey <sje@cup.hp.com>
7451
7452 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
7453 fixuns_truncrfdi2): New.
7454 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
7455 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
7456 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
7457 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
7458 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
7459 *recip_approx): Remove.
7460 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
7461 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
7462 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
7463 move to div.md.
7464 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
7465 setf_exp_rf): New.
7466
7467 2009-06-01 Ian Lance Taylor <iant@google.com>
7468
7469 * attribs.c (register_attribute): Use CONST_CAST.
7470 * collect2.c (main): Use CONST_CAST2.
7471 (scan_prog_file): Likewise.
7472 * gcc.c (process_command, main): Likewise.
7473 * toplev.c (toplev_main): Likewise.
7474
7475 * c-typeck.c (handle_warn_cast_qual): New static function,
7476 partially broken out of build_c_cast.
7477 (build_c_cast): Call handle_warn_cast_qual.
7478 * doc/invoke.texi (Warning Options): Document new effect of
7479 -Wcast-qual.
7480
7481 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
7482
7483 * diagnostic.c (diagnostic_build_prefix): Always print columns.
7484 (diagnostic_report_current_module): Print columns.
7485 * common.opt (flag_show_column): Enable by default.
7486
7487 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
7488
7489 * alias.c (find_base_term): Check for NULL term before returning.
7490
7491 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
7492
7493 Revert due to PR40320:
7494 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
7495 * calls.c (emit_library_call_value_1): Don't force_operand for move
7496 and push insns.
7497
7498 2009-06-01 Olivier Hainque <hainque@adacore.com>
7499 Eric Botcazou <ebotcazou@adacore.com>
7500
7501 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
7502 to be processed as a bitfield for constructor output purposes.
7503 * output.h (initializer_constant_valid_for_bitfield_p): Declare
7504 new function.
7505 * varasm.c (oc_local_state): New type, output_constructor
7506 local state to support communication with helpers.
7507 (oc_outer_state): New type, output_constructor outer state of
7508 relevance in recursive calls.
7509 (output_constructor_array_range): New output_constructor helper,
7510 extracted code for an array range element.
7511 (output_constructor_regular_field): New output_constructor helper,
7512 extracted code for an element that is not a bitfield.
7513 (output_constructor_bitfield): New output_constructor helper,
7514 extracted code for a bitfield element. Accept an OUTER state
7515 argument for recursive processing. Recurse on record or array
7516 CONSTRUCTOR values, possibly past noop conversions.
7517 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
7518 VALUE is a valid constant-valued expression for use in a static
7519 bit-field initializer.
7520 (output_constructor): Rework to use helpers. Accept and honor an
7521 OUTER state argument for recursive calls. Return total size. Be
7522 prepared for nested constructors initializing bitfields.
7523 (output_constant): Feed OUTER in calls to output_constructor.
7524
7525 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
7526
7527 * calls.c (emit_library_call_value_1): Don't force_operand for move
7528 and push insns.
7529
7530 2009-06-01 Nick Clifton <nickc@redhat.com>
7531
7532 * doc/invoke.texi (IA-64 Options): Fix typo.
7533
7534 2009-06-01 Ira Rosen <irar@il.ibm.com>
7535
7536 PR tree-optimization/39129
7537 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
7538 printed message.
7539 (vect_do_peeling_for_loop_bound): Use
7540 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
7541 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
7542 (vect_loop_versioning): Likewise.
7543 (vect_create_cond_for_alias_checks): Fix indentation.
7544 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
7545 macros.
7546 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
7547 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7548 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
7549 "control flow in loop".
7550 (vect_estimate_min_profitable_iters): Use
7551 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
7552 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
7553 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
7554 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7555 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
7556 statement belongs to a group of strided accesses with the exact code
7557 check.
7558 (vectorizable_load): Likewise.
7559 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
7560 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
7561
7562 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
7563
7564 * config/freebsd-stdint.h: New file.
7565 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
7566 Add freebsd-stdint.h to tm_file.
7567
7568 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
7569
7570 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
7571 (thumb2_extendhidi2): Likewise.
7572
7573 2009-05-31 Ian Lance Taylor <iant@google.com>
7574
7575 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
7576
7577 2009-05-31 Ian Lance Taylor <iant@google.com>
7578
7579 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
7580 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
7581 (ipa-reference.o): Depend upon gt-ipa-reference.h.
7582
7583 2009-05-31 Jason Merrill <jason@redhat.com>
7584
7585 * tree-pretty-print.c (print_call_name): Take the callee, not the
7586 call itself. Make non-static. Use dump_function_name for functions.
7587 (dump_generic_node): Adjust.
7588 * diagnostic.h: Declare print_call_name.
7589 * gimple-pretty-print.c (dump_gimple_call): Use it.
7590
7591 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
7592
7593 * config/sh/sh.md (ashldi3_std): New define_expand.
7594 (ashldi3): Use it.
7595
7596 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
7597
7598 PR target/40313
7599 * config/sh/sh.c: Include debug.h.
7600 (sh_expand_epilogue): Emit a blockage insn before the frame
7601 pointer adjustment also when dwarf2out_do_frame returns true.
7602
7603 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
7604
7605 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
7606 (thumb2_extendqidi2): New pattern.
7607
7608 2009-05-31 Ira Rosen <irar@il.ibm.com>
7609
7610 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
7611 mark phis for renaming.
7612 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
7613 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
7614 Call mark_sym_for_renaming.
7615 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
7616 * tree-vect-loop.c (vect_transform_loop): Remove
7617 vect_memsyms_to_rename initialization and a call to
7618 mark_set_for_renaming.
7619
7620 2009-05-31 Jakub Jelinek <jakub@redhat.com>
7621
7622 PR middle-end/40304
7623 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
7624 frame related even if !set_cfa && style < 0.
7625
7626 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
7627
7628 * config/i386/mingw-tls.c: New file.
7629 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
7630 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
7631 defining _WIN32 but not __CYGWIN__.
7632
7633 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7634
7635 * configure.ac: Add MPC support.
7636
7637 * config.in, configure: Regenerate.
7638
7639 2009-05-29 Richard Henderson <rth@redhat.com>
7640
7641 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
7642 NOTE_INSN_BASIC_BLOCK.
7643 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
7644 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
7645 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
7646 to be deleted.
7647 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
7648 add in_use field.
7649 (add_cfi): Disable check redefining cfa away from drap.
7650 (lookup_cfa_1): Add remember argument; handle remember/restore.
7651 (lookup_cfa): Pass remember argument.
7652 (cfa_remember): New.
7653 (compute_barrier_args_size_1): Remove sibcall check.
7654 (dwarf2out_frame_debug_def_cfa): New.
7655 (dwarf2out_frame_debug_adjust_cfa): New.
7656 (dwarf2out_frame_debug_cfa_offset): New.
7657 (dwarf2out_frame_debug_cfa_register): New.
7658 (dwarf2out_frame_debug_cfa_restore): New.
7659 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
7660 (dwarf2out_begin_epilogue): New.
7661 (dwarf2out_frame_debug_restore_state): New.
7662 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
7663 DW_CFA_restore_state.
7664 (output_cfi_directive): Likewise.
7665 (convert_cfa_to_fb_loc_list): Likewise.
7666 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
7667 * dwarf2out.h: Update.
7668 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
7669 (copy_insn_1): Early out for null.
7670 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
7671 and dwarf2out_frame_debug_restore_state.
7672 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
7673 (prologue_insn_hash, epilogue_insn_hash): New.
7674 (free_after_compilation): Adjust freeing accordingly.
7675 (record_insns): Create hash table if needed; push insns into
7676 hash instead of array.
7677 (maybe_copy_epilogue_insn): New.
7678 (contains): Search hash table instead of array.
7679 (sibcall_epilogue_contains): Remove.
7680 (thread_prologue_and_epilogue_insns): Split eh_return insns
7681 and mark them as epilogues.
7682 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
7683 scanning in terms of basic blocks.
7684 * insn-notes.def (CFA_RESTORE_STATE): New.
7685 * jump.c (returnjump_p_1): Accept EH_RETURN.
7686 (eh_returnjump_p_1, eh_returnjump_p): New.
7687 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
7688 CFA_REGISTER, CFA_RESTORE): New.
7689 * rtl.def (EH_RETURN): New.
7690 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
7691
7692 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
7693 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
7694
7695 * config/i386/i386.c (gen_push): Update cfa state.
7696 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
7697 add a CFA_ADJUST_CFA note.
7698 (ix86_dwarf_handle_frame_unspec): Remove.
7699 (ix86_expand_prologue): Update cfa state.
7700 (ix86_emit_restore_reg_using_pop): New.
7701 (ix86_emit_restore_regs_using_pop): New.
7702 (ix86_emit_leave): New.
7703 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
7704 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
7705 * config/i386/i386.h (struct machine_cfa_state): New.
7706 (ix86_cfa_state): New.
7707 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
7708 (eh_return_internal): Merge from eh_return_<mode>,
7709 use eh_return rtx, split w/ epilogue.
7710
7711 2009-05-29 Ian Lance Taylor <iant@google.com>
7712
7713 * builtins.c (validate_gimple_arglist): Don't use va_arg with
7714 enum type.
7715 * calls.c (emit_library_call_value_1): Likewise.
7716
7717 * c-typeck.c (c_build_va_arg): New function.
7718 * c-tree.h (c_build_va_arg): Declare.
7719 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
7720 instead of build_va_arg.
7721
7722 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
7723
7724 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
7725 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
7726 (ptr_difference_cost): Use affine combinations to compute it.
7727 (difference_cost): Likewise.
7728 (get_computation_cost_at): Compute more accurate cost for addresses
7729 if the ratio is a multiplier allowed in addresses.
7730 For non-addresses, consider that an additional offset or symbol is
7731 added only once.
7732
7733 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7734
7735 * config/i386/i386.c (ix86_decompose_address): Avoid useless
7736 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
7737
7738 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
7739 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
7740 (prefix_rex): For UNIT_MMX don't imply the prefix by default
7741 if MODE_DI.
7742 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
7743 to 1 for TYPE_SSE{IADD1,CVT1}.
7744 (prefix_vex_imm8): Removed.
7745 (length_vex): Only pass 1 as second argument to
7746 ix86_attr_length_vex_default if prefix_extra is 0.
7747 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
7748 (length): For prefix vex computation use length_immediate
7749 attribute instead of prefix_vex_imm8.
7750 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
7751 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
7752 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
7753 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
7754 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
7755 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
7756 a space in between the operands.
7757 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
7758 if one operand is 0xff and the other one si, di, bp or sp.
7759 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
7760 other one si, di, bp or sp.
7761 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
7762 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
7763 type and mode attributes.
7764 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
7765 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
7766 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
7767 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
7768 prefix_data16 attribute iff MODE_DF.
7769 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
7770 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
7771 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
7772 constm128_operand in length_immediate computation.
7773 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
7774 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
7775 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
7776 length_immediate attribute to 1.
7777 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
7778 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
7779 for certain alternatives.
7780 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
7781 prefix_data16 attribute if MODE_V1DF.
7782 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
7783 length_immediate to 1.
7784 (set_got_rex64, set_rip_rex64): Remove length attribute, set
7785 length_address to 4, set mode attribute to MODE_DI.
7786 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
7787 (fxam<mode>2_i387): Set length attribute to 4.
7788 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
7789 *prefetch_3dnow_rex): Override length_address attribute.
7790 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
7791 attributes.
7792 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
7793 (constm128_operand): Removed.
7794 * config/i386/i386.c (memory_address_length): For
7795 disp && !index && !base in 64-bit mode account for SIB byte if
7796 print_operand_address can't optimize disp32 into disp32(%rip)
7797 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
7798 for fs: or gs: segment.
7799 (ix86_attr_length_immediate_default): When checking if shortform
7800 is possible, truncate immediate to the length of the non-shortened
7801 immediate.
7802 (ix86_attr_length_address_default): Ignore MEM_P operands
7803 with X constraint.
7804 (ix86_attr_length_vex_default): Only check for DImode on
7805 GENERAL_REG_P operands.
7806 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
7807 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
7808 (sse_cvttps2pi): Clear prefix_rep attribute.
7809 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
7810 attribute.
7811 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
7812 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
7813 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
7814 iff operand 2 is const_int_operand.
7815 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
7816 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
7817 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
7818 instead of vex.
7819 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
7820 prefix_data16.
7821 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
7822 prefix_data16 attribute for movlpd and movhpd instructions.
7823 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
7824 length_immediate for shufpd instruction.
7825 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
7826 (avx_cmpp<avxmodesuffixf2c><mode>3,
7827 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
7828 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
7829 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
7830 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
7831 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
7832 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
7833 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
7834 prefix_data16 attribute for the first alternative to 1.
7835 (*avx_loadlps): Override length_immediate for the first alternative.
7836 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
7837 attributes for second alternative.
7838 (*vec_concatv2sf_sse4_1): Override length_immediate and
7839 prefix_data16 attributes for second alternative.
7840 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
7841 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
7842 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
7843 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
7844 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
7845 prefix_data16 and length_immediate to 1.
7846 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
7847 to 1.
7848 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
7849 prefix_extra attribute for variants that don't have 0f prefix alone.
7850 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
7851 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
7852 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
7853 *sse4_1_pextrd): Set length_immediate to 1.
7854 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
7855 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
7856 to 1.
7857 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
7858 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
7859 length_immediate to 1 for second alternative.
7860 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
7861 prefix_extra and length_immediate attributes for the first
7862 alternative.
7863 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
7864 first alternative.
7865 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
7866 to 1 for the first and third alternative.
7867 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
7868 alternative.
7869 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
7870 attribute.
7871 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
7872 attribute to 0.
7873 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
7874 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
7875 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
7876 *avx_psign<mode>3): Set prefix_extra attribute to 1.
7877 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
7878 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
7879 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
7880 ssse3_psign<mode>3): Override prefix_rex attribute.
7881 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
7882 (ssse3_palignrti): Override length_immediate to 1.
7883 (ssse3_palignrdi): Override length_immediate to 1, override
7884 prefix_rex attribute.
7885 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
7886 (sse4a_extrqi): Override length_immediate to 2.
7887 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
7888 (sse4a_insertq): Override prefix_data16 to 0.
7889 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
7890 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
7891 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
7892 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
7893 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
7894 and length_immediate to 1.
7895 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
7896 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
7897 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
7898 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
7899 and length_immediate to 1.
7900 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
7901 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
7902 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
7903 avx_ptest256): Override prefix_extra to 1.
7904 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
7905 Override prefix_data16 and length_immediate to 1.
7906 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
7907 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
7908 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
7909 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
7910 prefix_data16 to 0 and prefix_extra to 2.
7911 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
7912 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
7913 attribute.
7914 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
7915 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
7916 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
7917 and prefix_extra to 2.
7918 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
7919 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
7920 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
7921 avx_vpermilvar<mode>3,
7922 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
7923 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
7924 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
7925 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
7926 Override prefix_extra to 1.
7927 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
7928 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
7929 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
7930 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
7931 prefix_extra and length_immediate to 1.
7932 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
7933 modrm to 0.
7934 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
7935 to 1 for the first alternative.
7936 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
7937 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
7938 cases.
7939 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
7940 *movv2sf_internal_avx, *movv2sf_internal): Override
7941 prefix_rep attribute for certain alternatives.
7942 (*mov<mode>_internal): Override prefix_rep or prefix_data16
7943 attributes for certain alternatives.
7944 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
7945 attributes for certain alternatives.
7946 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
7947 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
7948 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
7949 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
7950 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
7951 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
7952 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
7953 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
7954 length_immediate to 1 if operand 2 is const_int_operand.
7955 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
7956 *vec_extractv2si_1): Set length_immediate attribute to 1.
7957 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
7958 using old 3DNOW insn rather than SSE/3DNOW_A.
7959 (mmx_emms, mmx_femms): Clear modrm attribute.
7960
7961 2009-05-29 Martin Jambor <mjambor@suse.cz>
7962
7963 * tree-sra.c: New implementation of SRA.
7964
7965 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
7966 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
7967 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
7968 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
7969 (SRA_MAX_STRUCTURE_COUNT): Removed.
7970 (SRA_FIELD_STRUCTURE_RATIO): Removed.
7971 * doc/invoke.texi (sra-max-structure-size): Removed.
7972 (sra-field-structure-ratio): Removed.
7973
7974 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7975
7976 PR middle-end/40291
7977 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
7978 before expansion.
7979
7980 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
7981
7982 PR rtl-optimization/40101
7983 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
7984 seqno. Adjust comment.
7985 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
7986 inserting bookkeeping before a jump, the jump is not scheduled.
7987 When no positive seqno found, provide a value. Add comment.
7988
7989 2009-05-29 Richard Guenther <rguenther@suse.de>
7990
7991 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
7992 short-cutting on the first component.
7993
7994 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7995
7996 PR middle-end/39958
7997 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
7998 for trees other than decls/types.
7999
8000 2009-05-29 Richard Guenther <rguenther@suse.de>
8001
8002 * tree-ssa-operands.c (get_expr_operands): Do not handle
8003 INDIRECT_REFs in the handled-component case. Remove
8004 unused get_ref_base_and_extent case.
8005 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
8006 tree_low_cst and host_integerp where possible.
8007 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
8008 codes for equivalence.
8009 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
8010
8011 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
8012
8013 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
8014 to tmake_file for i[34567]86-*-cygwin*.
8015
8016 2009-05-29 Jakub Jelinek <jakub@redhat.com>
8017
8018 PR target/40017
8019 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
8020 (altivec_categorize_keyword, init_vector_keywords,
8021 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
8022 similar to bool.
8023
8024 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
8025
8026 * tree.c (handle_dll_attribute): Check if node is
8027 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
8028
8029 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
8030
8031 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
8032 component.
8033 (thumb2_zero_extendqidi2): Likewise.
8034
8035 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
8036
8037 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
8038 instead of gen_movrt.
8039 * config/sh/sh.md (movrt): Remove.
8040
8041 2009-05-28 Steve Ellcey <sje@cup.hp.com>
8042
8043 * doc/invoke.texi (IA-64 Options):
8044 Add -msdata, -mfused-madd, -mno-inline-float-divide,
8045 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
8046 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
8047 -msched-prefer-non-control-spec-insns,
8048 -msched-stop-bits-after-every-cycle,
8049 -msched-count-spec-in-critical-path,
8050 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
8051 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
8052 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
8053 and -msched-spec-verbose.
8054
8055 2009-05-28 Joseph Myers <joseph@codesourcery.com>
8056
8057 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8058 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
8059 error if used.
8060 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
8061
8062 2009-05-28 Richard Guenther <rguenther@suse.de>
8063
8064 * tree-ssa-alias.c (ao_ref_init): New function.
8065 (ao_ref_base): Likewise.
8066 (ao_ref_base_alias_set): Likewise.
8067 (ao_ref_alias_set): Likewise.
8068 (refs_may_alias_p_1): Change signature.
8069 (refs_may_alias_p): Adjust.
8070 (refs_anti_dependent_p): Likewise.
8071 (refs_output_dependent_p): Likewise.
8072 (call_may_clobber_ref_p_1): Change signature.
8073 (call_may_clobber_ref_p): Adjust.
8074 (stmt_may_clobber_ref_p_1): New function split out from ...
8075 (stmt_may_clobber_ref_p): ... here.
8076 (maybe_skip_until): Adjust signature.
8077 (get_continuation_for_phi): Likewise.
8078 (walk_non_aliased_vuses): Likewise.
8079 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
8080 (ao_ref_init): Declare.
8081 (ao_ref_base): Likewise.
8082 (ao_ref_alias_set): Likewise.
8083 (stmt_may_clobber_ref_p_1): Likewise.
8084 (walk_non_aliased_vuses): Adjust.
8085 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
8086 (get_ref_from_reference_ops): remove.
8087 (vn_reference_lookup_2): Adjust signature.
8088 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
8089 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
8090 (vn_reference_lookup): Adjust.
8091 (vn_reference_insert): Likewise.
8092 (vn_reference_insert_pieces): Adjust signature.
8093 (visit_reference_op_call): Adjust.
8094 * tree-ssa-pre.c (get_expr_type): Simplify.
8095 (phi_translate_1): Adjust.
8096 (compute_avail): Likewise.
8097 (translate_vuse_through_block): Do not re-build trees.
8098 (value_dies_in_block_x): Likewise.
8099 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
8100 fields.
8101 (vn_reference_lookup_pieces): Adjust declaration.
8102 (vn_reference_insert_pieces): Likewise.
8103
8104 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
8105
8106 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
8107 with checking disabled.
8108
8109 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
8110
8111 PR target/37216
8112
8113 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
8114 macro definition for support of three-operand format aligned
8115 .comm directive in assembler on cygwin/pe/mingw target OS.
8116 * configure: Regenerate.
8117 * config.h: Regenerate.
8118
8119 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
8120 aligned form of .comm directive if -mpe-aligned-commons is in effect.
8121 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
8122
8123 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
8124 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
8125
8126 2009-05-28 Ira Rosen <irar@il.ibm.com>
8127
8128 PR tree-optimization/40254
8129 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
8130 in analysis of basic blocks.
8131
8132 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
8133
8134 PR middle-end/33699
8135 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
8136 * target-def.h (TARGET_CONST_ANCHOR): New macro.
8137 (TARGET_INITIALIZER): Use it.
8138 * cse.c (CHEAPER): Move it up to the other macros.
8139 (insert): Rename this ...
8140 (insert_with_costs): ... to this. Add cost parameters. Update
8141 function comment.
8142 (insert): New function. Call insert_with_costs.
8143 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
8144 find_reg_offset_for_const, try_const_anchors): New functions.
8145 (cse_insn): Call try_const_anchors. Adjust cost of src_related
8146 when using a const-anchor. Call insert_const_anchors.
8147 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
8148 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
8149
8150 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
8151
8152 * tree-inline.c (remap_decls): Enable nonlocalized variables
8153 when not optimizing.
8154
8155 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
8156
8157 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
8158 Simplify other tests involving optimize.
8159
8160 2009-05-27 Tom Tromey <tromey@redhat.com>
8161
8162 * unwind-dw2.c (_Unwind_DebugHook): New function.
8163 (uw_install_context): Call _Unwind_DebugHook.
8164
8165 2009-05-27 Tom Tromey <tromey@redhat.com>
8166
8167 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
8168
8169 2009-05-27 Ian Lance Taylor <iant@google.com>
8170
8171 * Makefile.in (LINKER, LINKER_FLAGS): Define.
8172 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
8173 (ALL_LINKERFLAGS): Define.
8174 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
8175 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
8176 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
8177 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
8178 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
8179 $(LINKER_FOR_BUILD).
8180 (build/gcov-iov$(build_exeext)): Likewise.
8181
8182 2009-05-27 Julian Brown <julian@codesourcery.com>
8183
8184 * gcse.c (target.h): Include.
8185 (can_assign_to_reg_without_clobbers_p): Check that the target allows
8186 copy of argument to a pseudo register.
8187
8188 2009-05-27 Diego Novillo <dnovillo@google.com>
8189
8190 * tree-ssa-live.c (dump_scope_block): Document arguments.
8191 (dump_scope_blocks): Document.
8192 (debug_scope_blocks): New.
8193 * tree-flow.h (debug_scope_blocks): Declare.
8194
8195 2009-05-21 Denis Chertykov <denisc@overta.ru>
8196
8197 * doc/contrib.texi (Contributors): Add myself to the list.
8198
8199 2009-05-27 Olivier Hainque <hainque@adacore.com>
8200
8201 * expr.c (target_align): New function. Alignment the TARGET of an
8202 assignment may be assume to have.
8203 (highest_pow2_factor_for_target): Use it instead of relying on
8204 immediate tree attributes of TARGET, not necessarily honored when
8205 intermediate bitfields are involved.
8206
8207 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
8208
8209 PR target/40266
8210 * config/i386/driver-i386.c (host_detect_local_cpu): Support
8211 AVX, SSE4, AES, PCLMUL and POPCNT.
8212
8213 2009-05-27 Diego Novillo <dnovillo@google.com>
8214
8215 * tree-pretty-print.c (dump_location): New.
8216 (dump_generic_node): Call it.
8217 Factor code to handle BLOCK nodes ...
8218 (dump_block_node): ... here.
8219
8220 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
8221
8222 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
8223 with it.
8224 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
8225 included.
8226 * gcc-plugin.h: Include config.h and system.h.
8227 (IN_GCC): Define if not defined.
8228
8229 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
8230
8231 PR middle-end/40249
8232 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
8233 with -fno-inline.
8234
8235 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
8236
8237 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
8238 applicable.
8239 * config/m32r/m32r.h: Ditto.
8240 * config/m32r/m32r.md: Ditto.
8241 * config/m32r/predicates.md: Ditto.
8242
8243 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
8244
8245 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
8246
8247 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
8248
8249 * doc/plugins.texi
8250 (Loading plugins): typo.
8251 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
8252 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
8253 (Interacting with the GCC Garbage Collector): Added new section.
8254 (Giving information about a plugin): Added new section for
8255 PLUGIN_INFO.
8256 * ggc.h (ggc_register_root_tab): Added declaration.
8257 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
8258 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
8259 (register_callback): Improved comment in declaration.
8260 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
8261 (extra_root_vec) Added static variable for dynamic roots registration.
8262 (ggc_register_root_tab) Added new routine.
8263 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
8264 PLUGIN_GGC_MARKING event.
8265 * ggc-zone.c: Include plugin.h.
8266 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
8267 * ggc-page.c: Include plugin.h.
8268 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
8269 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
8270 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
8271 (register_callback): check lack of callbacks for
8272 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
8273 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
8274 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
8275 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
8276 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
8277 dependency on plugin.h.
8278 (plugin.o): Added dependency on ggc.h...
8279
8280 2009-05-26 Richard Guenther <rguenther@suse.de>
8281
8282 PR middle-end/40248
8283 Revert
8284 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
8285 with mismatched comparison modes.
8286
8287 * expr.c (expand_expr_real_1): Expand the operand of a
8288 VIEW_CONVERT_EXPR in its natural mode.
8289
8290 2009-05-26 Ian Lance Taylor <iant@google.com>
8291
8292 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
8293 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
8294 (ALL_COMPILERFLAGS): Define.
8295 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
8296 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
8297 (collect2$(exeext), collect2.o): Likewise.
8298 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
8299 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
8300 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
8301 (libbackend.o, intl.o, cppdefault.o): Likewise.
8302 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
8303 (build/%.o): Use $(COMPILER_FOR_BUILD).
8304 (build/gen%$(build_exeext)): Likewise.
8305 (build/gcov-iov$(build_exeext)): LIkewise.
8306 * config/t-darwin (darwin.o): Use $(COMPILER).
8307 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
8308 * config/t-sol2 (sol2-c.o): Likewise.
8309 (sol2.o): Likewise.
8310 * config/t-vxworks (vxworks.o): Likewise.
8311 * config/x-darwin (host-darwin.o): Likewise.
8312 * config/x-hpux (host-hpux.o): Likewise.
8313 * config/x-linux (host-linux.o): Likewise.
8314 * config/x-solaris (host-solaris.o): Likewise.
8315 * config/alpha/x-alpha (driver-alpha.o): Likewise.
8316 * config/arm/t-arm (arm-c.o): Likewise.
8317 * config/arm/t-pe (pe.o): Likewise.
8318 * config/arm/t-wince-pe (pe.o): Likewise.
8319 * config/i386/t-cygming (winnt.o): Likewise.
8320 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
8321 * config/i386/t-cygwin (cygwin1.o): Likewise.
8322 (cygwin2.o): Likewise.
8323 * config/i386/t-i386 (i386-c.o): Likewise.
8324 * config/i386/t-interix (winnt.o): Likewise.
8325 * config/i386/t-netware (netware.o): Likewise.
8326 * config/i386/t-nwld (nwld.o): Likewise.
8327 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
8328 * config/i386/x-i386 (driver-i386.o): Likewise.
8329 * config/i386/x-cygwin (host-cygwin.o): Likewise.
8330 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
8331 * config/ia64/t-ia64 (ia64-c.o): Likewise.
8332 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
8333 * config/mips/x-native (driver-native.o): Likewise.
8334 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
8335 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
8336 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
8337 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
8338 * config/score/t-score-elf (score7.o): Likewise.
8339 (score3.o): Likewise.
8340 * config/sh/t-sh (sh-c.o): Likewise.
8341 * config/sh/t-symbian (sh-c.o): Likewise.
8342 (symbian.o): Likewise.
8343 * config/spu/t-spu-elf (spu-c.o): Likewise.
8344 * config/v850/t-v850 (v850-c.o): Likewise.
8345 * config/v850/t-v850e (v850-c.o): Likewise.
8346
8347 2009-05-26 Richard Guenther <rguenther@suse.de>
8348
8349 PR tree-optimization/40122
8350 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
8351 VECTOR_CSTs if possible.
8352 (fold_gimple_assign): Likewise.
8353
8354 2009-05-26 Richard Guenther <rguenther@suse.de>
8355
8356 PR middle-end/40252
8357 * fold-const.c (fold_binary): Use the correct types for building
8358 rotates.
8359
8360 2009-05-26 Richard Guenther <rguenther@suse.de>
8361
8362 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
8363 redundant calls to merge_alias_info.
8364 (bump_vector_ptr): Likewise.
8365 * tree-ssa-copy.c (merge_alias_info): Remove.
8366 (replace_exp_1): Remove call to merge_alias_info.
8367 (propagate_tree_value): Likewise.
8368 (fini_copy_prop): Propagate points-to info.
8369 * tree-flow.h (merge_alias_info): Remove.
8370
8371 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
8372
8373 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
8374
8375 2009-05-25 Jan Hubicka <jh@suse.cz>
8376
8377 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8378 * cgraph.h (struct inline_summary): New filed self_wize,
8379 size_inlining_benefit, self_time and time_inlining_benefit.
8380 (struct cgraph_global_info): Replace insns by time ans size fields.
8381 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8382 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8383 (ipcp_update_callgraph): Do not touch function bodies.
8384 * ipa-inline.c: Include except.h
8385 (MAX_TIME): New constant.
8386 (overall_insns): Remove.
8387 (leaf_node_p): New.
8388 (overall_size, max_benefit): New static variables.
8389 (cgraph_estimate_time_after_inlining): New function.
8390 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8391 (cgraph_clone_inlined_nodes): Update size.
8392 (cgraph_mark_inline_edge): Update size.
8393 (cgraph_estimate_growth): Use size info.
8394 (cgraph_check_inline_limits): Check size.
8395 (cgraph_default_inline_p): Likewise.
8396 (cgraph_edge_badness): Compute badness based on benefit and size cost.
8397 (cgraph_decide_recursive_inlining): Check size.
8398 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8399 and times.
8400 (cgraph_decide_inlining): Likewise.
8401 (cgraph_decide_inlining_incrementally): Likewise; honor
8402 PARAM_EARLY_INLINING_INSNS.
8403 (likely_eliminated_by_inlining_p): New predicate.
8404 (estimate_function_body_sizes): New function.
8405 (compute_inline_parameters): Use it.
8406 * except.c (must_not_throw_labels): New function.
8407 * except.h (must_not_throw_labels): Declare.
8408 * tree-inline.c (init_inline_once): Kill inlining_weigths
8409 * tree-ssa-structalias.c: Avoid uninitialized warning.
8410 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8411 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8412 (PARAM_INLINE_CALL_COST): Remove.
8413 (PARAM_EARLY_INLINING_INSNS): New.
8414
8415 2009-05-25 Richard Guenther <rguenther@suse.de>
8416
8417 PR tree-optimization/36327
8418 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
8419 callback for reference translation or lookup at the point of may-defs.
8420 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
8421 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
8422 for union COMPONENT_REFs.
8423 (vn_reference_lookup_3): New callback. Lookup from memset
8424 and CONSTRUCTOR assignment, translate through struct copies.
8425 (vn_reference_lookup_pieces): Make sure to not free the
8426 passed operands array. Adjust walk_non_aliased_vuses call.
8427 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
8428 make sure we do not leak memory.
8429
8430 2009-05-25 Richard Guenther <rguenther@suse.de>
8431
8432 * tree-ssa-alias.h (dump_points_to_solution): Declare.
8433 * tree-inline.c (expand_call_inline): Reset the escaped and
8434 callused solutions.
8435 * tree-ssa-structalias.c (pass_build_ealias): New.
8436 * tree-pass.h (pass_build_ealias): Declare.
8437 * passes.c (init_optimization_passes): Add PTA during
8438 early optimizations.
8439 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
8440 and CALLUSED solutions.
8441 (dump_points_to_solution): New function, split out from ...
8442 (dump_points_to_info_for): ... here.
8443 * tree-parloops.c (parallelize_loops): Reset the escaped and
8444 callused solutions.
8445
8446 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8447
8448 PR bootstrap/40027
8449 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
8450 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
8451
8452 2009-05-25 Ira Rosen <irar@il.ibm.com>
8453
8454 PR tree-optimization/40238
8455 * tree-vect-stmts.c (vect_init_vector): Insert initialization
8456 statements after basic block's labels.
8457 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
8458 to free the allocated memory.
8459
8460 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
8461
8462 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
8463 return address with a USE.
8464
8465 2009-05-24 Richard Guenther <rguenther@suse.de>
8466
8467 PR middle-end/40233
8468 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
8469 array type from the main variant of the inner type.
8470
8471 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8472
8473 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
8474 definition to bool (from int) to un-break build.
8475 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
8476
8477 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
8478
8479 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
8480 discard_stmt_changes): Delete.
8481 * tree-ssa-operands.c (scb_stack): Delete.
8482 (init_ssa_operands): Do not initialize it.
8483 (fini_ssa_operands): Do not free it.
8484 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
8485
8486 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
8487 update_stmt, remove the others. Fix comments.
8488 * tree-dfa.c (optimize_stack_restore): Likewise.
8489 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
8490 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
8491 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
8492 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
8493 Likewise.
8494 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
8495 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
8496 (dom_opt_finalize_block): Likewise, adjusting access to
8497 stmts_to_rescan.
8498 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
8499 (stmts_to_rescan): Change item type to gimple.
8500 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
8501
8502 2009-05-24 Ira Rosen <irar@il.ibm.com>
8503
8504 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
8505 * tree-pass.h (pass_slp_vectorize): New pass.
8506 * params.h (SLP_MAX_INSNS_IN_BB): Define.
8507 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
8508 * tree-vectorizer.c (timevar.h): Include.
8509 (user_vect_verbosity_level): Declare.
8510 (vect_location): Fix comment.
8511 (vect_set_verbosity_level): Update user_vect_verbosity_level
8512 instead of vect_verbosity_level.
8513 (vect_set_dump_settings): Add an argument. Ignore user defined
8514 verbosity if dump flags require higher level of verbosity. Print to
8515 stderr only for loop vectorization.
8516 (vectorize_loops): Update call to vect_set_dump_settings.
8517 (execute_vect_slp): New function.
8518 (gate_vect_slp): Likewise.
8519 (struct gimple_opt_pass pass_slp_vectorize): New.
8520 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
8521 access its members.
8522 (vec_info_for_bb): New function.
8523 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
8524 (VECTORIZATION_ENABLED): New macro.
8525 (SLP_ENABLED, SLP_DISABLED): Likewise.
8526 (vect_is_simple_use): Add bb_vec_info argument.
8527 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
8528 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
8529 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
8530 vect_schedule_slp, vect_analyze_slp): Likewise.
8531 (vect_analyze_stmt): Add slp_tree argument.
8532 (find_bb_location): Declare.
8533 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
8534 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
8535 (vect_analyze_loop_operations, vect_analyze_loop,
8536 get_initial_def_for_induction, vect_create_epilog_for_reduction,
8537 vect_finalize_reduction, vectorizable_reduction,
8538 vectorizable_live_operation, vect_transform_loop): Likewise.
8539 * tree-data-ref.c (dr_analyze_innermost): Update comment,
8540 skip evolution analysis if analyzing a basic block.
8541 (dr_analyze_indices): Likewise.
8542 (initialize_data_dependence_relation): Skip the test whether the
8543 object is invariant for basic blocks.
8544 (compute_all_dependences): Skip dependence analysis for data
8545 references in basic blocks.
8546 (find_data_references_in_stmt): Don't fail in case of invariant
8547 access in basic block.
8548 (find_data_references_in_bb): New function.
8549 (find_data_references_in_loop): Move code to
8550 find_data_references_in_bb and add a call to it.
8551 (compute_data_dependences_for_bb): New function.
8552 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
8553 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
8554 that STEP is 0.
8555 (vect_analyze_data_ref_dependence): Check for interleaving in case of
8556 unknown dependence in basic block and fail in case of dependence in
8557 basic block.
8558 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
8559 dependence instances from either loop or basic block vectorization
8560 info.
8561 (vect_compute_data_ref_alignment): Check if it is loop vectorization
8562 before calling nested_in_vect_loop_p.
8563 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
8564 dependence instances from either loop or basic block vectorization
8565 info.
8566 (vect_verify_datarefs_alignment): Likewise.
8567 (vect_enhance_data_refs_alignment): Adjust function calls.
8568 (vect_analyze_data_refs_alignment): Likewise.
8569 (vect_analyze_group_access): Fix printing. Skip different checks if
8570 DR_STEP is 0. Keep strided stores either in loop or basic block
8571 vectorization data structure. Fix indentation.
8572 (vect_analyze_data_ref_access): Fix comments, allow zero step in
8573 basic blocks.
8574 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
8575 dependence instances from either loop or basic block vectorization
8576 info.
8577 (vect_analyze_data_refs): Update comment. Call
8578 compute_data_dependences_for_bb to analyze basic blocks.
8579 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
8580 case of loop vectorization. In case of basic block vectorization use
8581 data-ref itself as a base.
8582 (vect_create_data_ref_ptr): In case of basic block vectorization:
8583 don't advance the pointer, add new statements before the current
8584 statement. Adjust function calls.
8585 (vect_supportable_dr_alignment): Support only aligned accesses in
8586 basic block vectorization.
8587 * common.opt (ftree-slp-vectorize): New flag.
8588 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
8589 (vect_pattern_recog_1): Likewise.
8590 * tree-vect-stmts.c (process_use): Likewise.
8591 (vect_init_vector): Add new statements in the beginning of the basic
8592 block in case of basic block SLP.
8593 (vect_get_vec_def_for_operand): Adjust function calls.
8594 (vect_finish_stmt_generation): Likewise.
8595 (vectorizable_call): Add assert that it is loop vectorization, adjust
8596 function calls.
8597 (vectorizable_conversion, vectorizable_assignment): Likewise.
8598 (vectorizable_operation): In case of basic block SLP, take
8599 vectorization factor from statement's type and skip the relevance
8600 check. Adjust function calls.
8601 (vectorizable_type_demotion): Add assert that it is loop
8602 vectorization, adjust function calls.
8603 (vectorizable_type_promotion): Likewise.
8604 (vectorizable_store): Check for outer loop only in case of loop
8605 vectorization. Adjust function calls. For basic blocks, skip the
8606 relevance check and don't advance pointers.
8607 (vectorizable_load): Likewise.
8608 (vectorizable_condition): Add assert that it is loop vectorization,
8609 adjust function calls.
8610 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
8611 that it is not reduction, get vector type, call only supported
8612 functions, skip loop specific parts.
8613 (vect_transform_stmt): Check for outer loop only in case of loop
8614 vectorization.
8615 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
8616 (vect_is_simple_use): Fix comment, add new argument, fix conditions
8617 for external definition.
8618 * passes.c (pass_slp_vectorize): New pass.
8619 * tree-vect-slp.c (find_bb_location): New function.
8620 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
8621 check for patterns only in loops.
8622 (vect_build_slp_tree): Add argument, adjust function calls, fail in
8623 case of multiple types in basic block SLP.
8624 (vect_mark_slp_stmts_relevant): New function.
8625 (vect_supported_load_permutation_p): Fix comment.
8626 (vect_analyze_slp_instance): Add argument. In case of basic block
8627 SLP, take vectorization factor from statement's type, check that
8628 unrolling factor is 1. Adjust function call. Save SLP instance in
8629 either loop or basic block vectorization structure. Return FALSE,
8630 if SLP failed.
8631 (vect_analyze_slp): Add argument. Get strided stores groups from
8632 either loop or basic block vectorization structure. Return FALSE
8633 if basic block SLP failed.
8634 (new_bb_vec_info): New function.
8635 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
8636 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
8637 (vect_schedule_slp): Add argument. Get SLP instances from either
8638 loop or basic block vectorization structure. Set vectorization factor
8639 to be 1 for basic block SLP.
8640 (vect_slp_transform_bb): New function.
8641 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
8642
8643 2009-05-23 Mark Mitchell <mark@codesourcery.com>
8644
8645 * final.c (shorten_branches): Do not align labels for jump tables.
8646 (final_scan_insn): Use JUMP_TABLE_DATA_P.
8647
8648 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
8649
8650 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
8651 Remove outdated reference to flow.c and fix nits.
8652 * doc/gccint.texi: Tweak RTL description.
8653 * doc/rtl.texi: Likewise.
8654
8655 2009-05-23 Denis Chertykov <chertykov@gmail.com>
8656
8657 * config/avr/avr.c: Change my email address.
8658 * config/avr/avr.h: Likewise.
8659 * config/avr/avr.md: Likewise.
8660 * config/avr/avr-protos.h: Likewise.
8661 * config/avr/libgcc.S: Likewise.
8662
8663 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
8664
8665 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
8666 (spu_split_load, spu_split_store): Change return type to int.
8667 (spu_split_convert): Declare.
8668 * config/spu/predicates.md (spu_mem_operand): Remove.
8669 (spu_mov_operand): Update.
8670 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
8671 * config/spu/spu.c (regno_aligned_for_load): Remove.
8672 (reg_aligned_for_addr, spu_expand_load): Define.
8673 (spu_expand_extv): Reimplement and handle MEM.
8674 (spu_expand_insv): Handle MEM.
8675 (spu_sched_reorder): Handle insn's with length 0.
8676 (spu_legitimate_address_p): Reimplement.
8677 (store_with_one_insn_p): Return TRUE for any mode with size
8678 larger than 16 bytes.
8679 (address_needs_split): Define.
8680 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
8681 operands.
8682 (spu_convert_move): Define.
8683 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
8684 (spu_split_store): Change all MEM's to TImode.
8685 (spu_init_expanders): Preallocate registers that correspond to
8686 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
8687 mark_reg_pointer.
8688 (spu_split_convert): Define.
8689 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
8690 (_move<mode>, _movdi, _movti): Update predicate and condition.
8691 (load, store): Change to define_split.
8692 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
8693 extend<mode>ti2.
8694 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
8695 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
8696 define_insn_and_split of lshr<mode>3.
8697 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
8698 (<v>ashr<mode>3_imm): Define.
8699 (extv, extzv, insv): Allow MEM operands.
8700 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
8701 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
8702 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
8703 (_spu_convert2): Change to define_insn_and_split and remove the
8704 corresponding define_peephole2.
8705 (stack_protect_set, stack_protect_test, stack_protect_test_si):
8706 Change predicates to memory_operand.
8707
8708 2009-05-22 Mark Mitchell <mark@codesourcery.com>
8709
8710 * config/arm/thumb2.md: Add 16-bit multiply instructions.
8711
8712 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8713
8714 PR tree-optimization/40219
8715 * tree.c (iterative_hash_expr): Make sure the builtin function is
8716 a normal builtin function and not a front end or back end builtin
8717 before indexing into the built_in_decls array.
8718
8719 2009-05-22 Richard Guenther <rguenther@suse.de>
8720
8721 PR middle-end/38964
8722 * alias.c (write_dependence_p): Do not use TBAA for answering
8723 anti-dependence or output-dependence.
8724 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
8725 (emit_pointer_definition): Remove.
8726 (emit_alias_warning): Likewise.
8727 (find_what_var_points_to): Remove TBAA pruning code.
8728 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
8729 violations.
8730 (compute_points_to_sets): Remove code computing the set of
8731 dereferenced pointers.
8732 * tree-data-ref.c (dr_may_alias_p): Properly use the split
8733 oracle for querying anti and output dependencies.
8734 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
8735 if TBAA may be applied.
8736 (refs_anti_dependent_p): New function.
8737 (refs_output_dependent_p): Likewise.
8738 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
8739 (refs_output_dependent_p): Likewise.
8740 * doc/tree-ssa.texi (Memory model): New section.
8741 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
8742 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
8743 * cfgexpand.c (expand_gimple_basic_block): Do not handle
8744 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
8745 * expr.c (expand_expr_real_1): Likewise.
8746 * gimple-low.c (lower_stmt): Likewise.
8747 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
8748 (dump_gimple_cdt): Remove.
8749 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
8750 (gimple_size): Likewise.
8751 (walk_gimple_op): Likewise.
8752 (is_gimple_stmt): Likewise.
8753 (walk_stmt_load_store_addr_ops): Likewise.
8754 (gimple_build_cdt): Remove.
8755 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
8756 * gimple.h (gimple_cdt_new_type): Remove.
8757 (gimple_cdt_new_type_ptr): Likewise.
8758 (gimple_cdt_set_new_type): Likewise.
8759 (gimple_cdt_location): Likewise.
8760 (gimple_cdt_location_ptr): Likewise.
8761 (gimple_cdt_set_location): Likewise.
8762 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
8763 * tree-cfg.c (remove_useless_stmts_1): Do not handle
8764 GIMPLE_CHANGE_DYNAMIC_TYPE.
8765 (verify_types_in_gimple_stmt): Likewise.
8766 * tree-inline.c (estimate_num_insns): Likewise.
8767 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
8768 (copy_decl_to_var): Likewise.
8769 (copy_result_decl_to_var): Likewise.
8770 * tree-pretty-print.c (dump_generic_node): Do not handle
8771 CHANGE_DYNAMIC_TYPE_EXPR.
8772 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8773 * tree-ssa-operands.c (get_expr_operands): Likewise.
8774 * tree-ssa-structalias.c (struct variable_info): Remove
8775 no_tbaa_pruning member.
8776 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
8777 (unify_nodes): Do not copy it.
8778 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
8779 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
8780 (set_uids_in_ptset): Do not check it.
8781 (find_what_var_points_to): Likewise.
8782 (compute_tbaa_pruning): Remove.
8783 (compute_points_to_sets): Do not call it.
8784 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
8785 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
8786 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
8787 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
8788 (DECL_NO_TBAA_P): Likewise.
8789 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
8790 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
8791 (expand_omp_atomic_pipeline): Do not set it.
8792 * print-tree.c (print_node): Do not dump it.
8793 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8794 redundant check.
8795
8796 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
8797
8798 PR target/39856
8799 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
8800 for clobber.
8801
8802 2009-05-22 Mark Mitchell <mark@codesourcery.com>
8803
8804 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
8805 non-external.
8806
8807 2009-05-22 Ben Elliston <bje@au.ibm.com>
8808
8809 * Makefile.in (bversion.h, s-bversion): New targets.
8810 (TOPLEV_H): Add bversion.h.
8811 * toplev.h: Include "bversion.h".
8812 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
8813 the __format__ attribute only if compiling with the same version
8814 of GCC as the sources (the "build version").
8815
8816 2009-05-22 Ben Elliston <bje@au.ibm.com>
8817
8818 * c-format.c (handle_format_attribute): Fix comment typo.
8819
8820 2009-05-21 Steve Ellcey <sje@cup.hp.com>
8821
8822 PR target/37846
8823 * config/ia64/ia64.opt (mfused-madd): New.
8824 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
8825 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8826 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
8827 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
8828 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
8829 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
8830 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
8831 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
8832 instruction if !TARGET_FUSED_MADD.
8833 (fpma, fpms): Remove colon from name.
8834
8835 2009-05-22 Richard Guenther <rguenther@suse.de>
8836
8837 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
8838 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
8839 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
8840 TARGET_MEM_REF.
8841 (create_expression_by_pieces): Only convert if necessary.
8842 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
8843 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
8844
8845 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
8846
8847 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
8848 regular pattern from a template and rename it ...
8849 (*extzv_truncsi_exts): ... to this.
8850
8851 2009-05-21 Richard Guenther <rguenther@suse.de>
8852
8853 * cgraph.h (struct cgraph_node): Remove inline_decl member.
8854 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
8855 (cgraph_default_inline_p): Likewise.
8856 (cgraph_decide_inlining_incrementally): Likewise.
8857
8858 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
8859 Uros Bizjak <ubizjak@gmail.com>
8860
8861 * config/i386/cpuid.h (bit_MOVBE): New.
8862
8863 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
8864
8865 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
8866 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
8867 (ix86_handle_option): Handle OPT_mmovbe.
8868 (ix86_target_string): Add -mmovbe.
8869 (pta_flags): Add PTA_MOVBE.
8870 (processor_alias_table): Add PTA_MOVBE to "atom".
8871 (override_options): Handle PTA_MOVBE.
8872
8873 * config/i386/i386.h (TARGET_MOVBE): New.
8874
8875 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
8876 (*bswapsi_movbe): New.
8877 (*bswapdi_movbe): Likewise.
8878 (bswapdi2): Renamed to ...
8879 (*bswapdi_1): This.
8880 (bswapdi2): New expander.
8881
8882 * config/i386/i386.opt (mmovbe): New.
8883
8884 * doc/invoke.texi: Document -mmovbe.
8885
8886 2009-05-21 Taras Glek <tglek@mozilla.com>
8887
8888 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
8889 * gcc-plugin.h (plugin_init): Updated signature.
8890 * gcc-plugin.h (plugin_name_args): Moved to this header.
8891 * doc/plugins.texi (plugin_init): Updated documention to reflect
8892 API change.
8893 * doc/plugins.texi (plugin_name_args): Added to documention.
8894
8895 2009-05-21 Mark Mitchell <mark@codesourcery.com>
8896
8897 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
8898 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
8899
8900 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
8901
8902 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
8903 JUMP_TABLE_DATA_P predicates where applicable.
8904 * config/i386/predicates.md: Ditto.
8905 * config/i386/sse.md: Ditto.
8906
8907 2009-05-21 Jakub Jelinek <jakub@redhat.com>
8908
8909 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
8910 operand2 -128 override length_immediate attribute to 1.
8911 * config/i386/predicates.md (constm128_operand): New predicate.
8912
8913 * config/i386/i386.c (memory_address_length): Handle %r12
8914 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
8915 also check REGNO.
8916 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
8917 mode look through optional ZERO_EXTEND and SUBREG.
8918 * config/i386/i386.md (R12_REG): New define_constant.
8919 (prefix_data16): For sse unit set also for MODE_TI insns.
8920 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
8921 insns set if operand 1 is ext_QIreg_operand.
8922 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
8923 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
8924 immediate.
8925 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
8926 mode from MODE_DI to MODE_SI.
8927 (movdi_1_rex64): Override modrm and length_immediate attributes
8928 only for movabs (TYPE_IMOV, alternative 2).
8929 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
8930 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
8931 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
8932 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
8933 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
8934 prefix_rex attribute if DImode.
8935 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
8936 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
8937 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
8938 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
8939 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
8940 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
8941 Likewise. For TYPE_IMOV clear length_immediate attribute.
8942 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
8943 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
8944 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
8945 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
8946 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
8947 or one operand TYPE_ISHIFT.
8948 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
8949 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
8950 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
8951 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
8952 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
8953 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
8954 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
8955 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
8956 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
8957 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
8958 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
8959 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
8960 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
8961 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
8962 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
8963 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
8964 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
8965 set mode attribute, don't override length attribute.
8966 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
8967 to 1.
8968 (return_internal_long): Set length attribute to 2 instead of 1.
8969 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
8970 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
8971 prefix_rex attribute.
8972 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
8973 New predicates.
8974 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
8975
8976 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8977
8978 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
8979
8980 2009-05-20 Ian Lance Taylor <iant@google.com>
8981
8982 * tree.c (build_tree_list_vec_stat): New function.
8983 (ctor_to_vec): New function.
8984 (build_nt_call_vec): New function.
8985 (build_call_array): Change args to be a const pointer.
8986 (build_call_vec): New function.
8987 * tree.h (build_nt_call_vec): Declare.
8988 (build_tree_list_vec_stat): Declare.
8989 (build_tree_list_vec): Define.
8990 (build_call_array): Update declaration.
8991 (build_call_vec): Declare.
8992 (ctor_to_vec): Declare.
8993 * c-common.c (tree_vector_cache): New static variable.
8994 (make_tree_vector): New function.
8995 (release_tree_vector): New function.
8996 (make_tree_vector_single): New function.
8997 (make_tree_vector_copy): New function.
8998 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
8999 (make_tree_vector_single, make_tree_vector_copy): Declare.
9000 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
9001 (c_parser_expr_list): Don't manage cache here, instead call
9002 make_tree_vector.
9003 (c_parser_release_expr_list): Remove static function.
9004 (c_parser_vec_to_tree_list): Remove static function.
9005 (c_parser_attributes): Call build_tree_list_vec instead of
9006 c_parser_vec_to_tree_list. Call release_tree_vector instead of
9007 c_parser_release_expr_list.
9008 (c_parser_postfix_expression_after_primary): Likewise.
9009 (c_parser_objc_keywordexpr): Likewise.
9010
9011 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
9012
9013 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
9014 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
9015 TARGET_CONVERT_TO_TYPE.
9016 * hooks.c (hook_tree_const_tree_null): Define.
9017 * hooks.h (hook_tree_const_tree_null): Declare.
9018 * target.h (struct gcc_target): Add invalid_parameter_type,
9019 invalid_return_type, promoted_type, and convert_to_type fields.
9020 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
9021 (TARGET_INVALID_RETURN_TYPE): Define.
9022 (TARGET_PROMOTED_TYPE): Define.
9023 (TARGET_CONVERT_TO_TYPE): Define.
9024 (TARGET_INITIALIZER): Update for new fields.
9025 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
9026 (grokparms): Check targetm.invalid_parameter_type.
9027 * c-typeck.c (default_conversion): Check targetm.promoted_type.
9028 * c-convert.c (convert): Check targetm.convert_to_type.
9029
9030 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
9031
9032 * config/mips/mips.md (*extenddi_truncate<mode>,
9033 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
9034 defintions.
9035 (*extendhi_truncateqi): New define_insn_and_sptit.
9036
9037 2009-05-20 Jakub Jelinek <jakub@redhat.com>
9038
9039 PR middle-end/40204
9040 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
9041 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
9042
9043 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
9044
9045 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
9046 the operand of VIEW_CONVERT_EXPR.
9047
9048 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
9049
9050 * config/i386/driver-i386.c (host_detect_local_cpu): Check
9051 extended family and model for Intel processors. Support Intel Atom.
9052
9053 2009-05-20 Olivier Hainque <hainque@adacore.com>
9054
9055 * gstab.h (stab_code_type): Define, to be used instead of the
9056 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
9057 notice.
9058 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
9059 occurrences by stab_code_type.
9060 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
9061
9062 2009-05-20 Martin Jambor <mjambor@suse.cz>
9063
9064 * tree-flow.h (insert_edge_copies_seq): Undeclare.
9065 (sra_insert_before): Likewise.
9066 (sra_insert_after): Likewise.
9067 (sra_init_cache): Likewise.
9068 (sra_type_can_be_decomposed_p): Likewise.
9069 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
9070 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
9071 (sra_insert_before): Likewise.
9072 (sra_insert_after): Likewise.
9073 (sra_init_cache): Likewise.
9074 (insert_edge_copies_seq): Made static and moved upwards.
9075
9076 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
9077 case.
9078
9079 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
9080
9081 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
9082 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
9083 simple copies.
9084
9085 2009-05-20 Richard Guenther <rguenther@suse.de>
9086
9087 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
9088 with mismatched comparison modes.
9089
9090 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9091
9092 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
9093 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
9094 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
9095 with shifts for Thumb2.
9096 (orsi_notsi): New for orn.
9097 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
9098 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
9099 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
9100 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
9101 Don't invert remainder for IOR.
9102
9103 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
9104
9105 PR tree-optimization/40087
9106 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
9107 number_of_iterations_ne): Rename never_infinite argument.
9108 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
9109 number_of_iterations_le): Handle pointer-type ivs when
9110 exit_must_be_taken is false.
9111 (number_of_iterations_cond): Do not always assume that
9112 exit_must_be_taken if the control variable is a pointer.
9113
9114 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
9115
9116 * c-typeck.c (build_binary_op): Allow % on integal vectors.
9117 * doc/extend.texi (Vector Extension): Document that % is allowed too.
9118
9119 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
9120
9121 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
9122 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
9123
9124 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9125
9126 PR c/40172
9127 * c.opt (Wlogical-op): Disabled by default.
9128 * c-opt (c_common_post_options): Do not enable Wlogical-op with
9129 Wextra.
9130 * doc/invoke.texi (Wlogical-op): Likewise.
9131
9132 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
9133
9134 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
9135 into CASE_CONVERT.
9136 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
9137 Propagate the type of the first operand.
9138 <ASSERT_EXPR>: Simplify.
9139 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
9140 Rewrite using the RHS code as discriminant.
9141 <NOP_EXPR>: Turn into CASE_CONVERT.
9142 <PLUS_EXPR>: Propagate the type of the first operand.
9143
9144 2009-05-19 Steve Ellcey <sje@cup.hp.com>
9145
9146 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
9147 (ia64_dconst_0_375): New.
9148 * config/ia64/ia64.c (ia64_override_options): Remove
9149 -minline-sqrt-min-latency warning.
9150 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
9151 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
9152 * config/ia64/ia64.md (*sqrt_approx): Remove.
9153 (sqrtsf2): Remove #if 0.
9154 (sqrtsf2_internal_thr): Rewrite and move to div.md.
9155 (sqrtdf): Remove assert.
9156 (sqrtdf2_internal_thr): Rewrite and move to div.md.
9157 (sqrtxf2): Remove #if 0.
9158 (sqrtxf2_internal_thr): Rewrite and move to div.md.
9159 * div.md (sqrt_approx_rf): New.
9160 (sqrtsf2_internal_thr): New implementation.
9161 (sqrtsf2_internal_lat): New.
9162 (sqrtdf2_internal_thr: New implementation.
9163 (sqrtxf2_internal): New implementation.
9164
9165 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
9166 Hans-Peter Nilsson <hp@axis.com>
9167
9168 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
9169 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
9170 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
9171 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
9172 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
9173 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
9174 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
9175 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
9176 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
9177 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
9178 * c-common.c: ...from here.
9179
9180 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9181
9182 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
9183
9184 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9185
9186 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
9187
9188 2009-05-19 Ben Elliston <bje@au.ibm.com>
9189
9190 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
9191 assignments with memcpy calls.
9192 (add_fdes): Likewise.
9193 (binary_search_unencoded_fdes): Likewise.
9194 (linear_search_fdes): Eliminate type puns.
9195
9196 2009-05-19 Richard Guenther <rguenther@suse.de>
9197
9198 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
9199 not falsely claim to have propagated into all uses.
9200
9201 2009-05-19 Ben Elliston <bje@au.ibm.com>
9202
9203 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
9204 version to v3.0.
9205
9206 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
9207
9208 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
9209 * config/sh/sh.c (sh_legitimate_address_p): Make static.
9210 (TARGET_LEGITIMATE_ADDRESS_P): New.
9211 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9212 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
9213
9214 2009-05-18 Dodji Seketeli <dodji@redhat.com>
9215
9216 PR debug/40109
9217 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
9218 child of the containing namespace's DIE.
9219
9220 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
9221
9222 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
9223 *zero_extendhi_truncqi): Move after the zero_extend patterns.
9224 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
9225 extend patterns.
9226
9227 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
9228
9229 PR target/39942
9230 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
9231 gen_align with gen_pad.
9232 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
9233 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
9234
9235 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
9236 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
9237
9238 * config/i386/i386.md (align): Renamed to ...
9239 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
9240 ASM_OUTPUT_MAX_SKIP_PAD.
9241
9242 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
9243
9244 * config.gcc: Fix variable syntax.
9245
9246 PR target/39531
9247 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
9248 before calling exact_log2.
9249 (output_iorsi3): Likewise.
9250 (output_xorsi3): Likewise.
9251
9252 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
9253
9254 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
9255 for the none zero constant operand except for EQ and NE
9256 comprisons even when the first operand is R0.
9257
9258 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
9259
9260 * config/s390/2064.md: Remove trailing whitespaces.
9261 * config/s390/2084.md: Likewise.
9262 * config/s390/constraints.md: Likewise.
9263 * config/s390/fixdfdi.h: Likewise.
9264 * config/s390/libgcc-glibc.ver: Likewise.
9265 * config/s390/s390-modes.def: Likewise.
9266 * config/s390/s390-protos.h: Likewise.
9267 * config/s390/s390.c: Likewise.
9268 * config/s390/s390.h: Likewise.
9269 * config/s390/s390.md: Likewise.
9270 * config/s390/tpf-unwind.h: Likewise.
9271
9272 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9273
9274 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
9275
9276 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9277
9278 M68K TLS support.
9279 * configure.ac (m68k-*-*): Check if binutils support TLS.
9280 * configure: Regenerate.
9281 * config/m68k/predicates.md (symbolic_operand): Extend comment.
9282 * config/m68k/constraints.md (Cu): New constraint.
9283 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
9284 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
9285 (movsi): Handle TLS symbols.
9286 (addsi3_5200): Handle XTLS symbols, indent.
9287 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
9288 (m68k_tls_reference_p): Declare.
9289 (m68k_legitimize_address): Declare.
9290 (m68k_unwrap_symbol): Declare.
9291 * config/m68k/m68k.opt (mxtls): New option.
9292 * config/m68k/m68k.c (ggc.h): Include.
9293 (m68k_output_dwarf_dtprel): Implement hook.
9294 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
9295 (m68k_expand_prologue): Load GOT pointer when function needs it.
9296 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
9297 (m68k_legitimate_constant_address_p): Same.
9298 (m68k_decompose_address): Handle TLS references.
9299 (m68k_get_gp): New static function.
9300 (enum m68k_reloc): New contants.
9301 (TLS_RELOC_P): New macro.
9302 (m68k_wrap_symbol): New static function.
9303 (m68k_unwrap_symbol): New function.
9304 (m68k_final_prescan_insn_1): New static function.
9305 (m68k_final_prescan_insn): New function.
9306 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
9307 functions.
9308 (legitimize_pic_address): Handle TLS references..
9309 (m68k_tls_get_addr, m68k_get_tls_get_addr)
9310 (m68k_libcall_value_in_a0_p)
9311 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
9312 (m68k_call_m68k_read_tp): Helper variables and functions for ...
9313 (m68k_legitimize_tls_address): Handle TLS references.
9314 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
9315 New functions.
9316 (m68k_legitimize_address): Handle TLS symbols.
9317 (m68k_get_reloc_decoration): New static function.
9318 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
9319 UNSPEC_RELOC32.
9320 (m68k_output_dwarf_dtprel): Implement hook.
9321 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
9322 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
9323 m68k_call_* routines.
9324 (sched_attr_op_type): Handle TLS symbols.
9325 (gt-m68k.h): Include.
9326 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
9327 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
9328
9329 2009-05-18 Martin Jambor <mjambor@suse.cz>
9330
9331 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
9332 (visit_store_addr_for_mod_analysis): New function.
9333 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
9334 (determine_cst_member_ptr): Use gimple_assign_single_p.
9335 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
9336 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
9337 operands. Don't check number of operands of a NOP_EXPR.
9338
9339 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
9340
9341 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
9342
9343 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
9344
9345 PR c/40172
9346 * c-common.c (warn_logical_operator): Don't warn if one of
9347 expression isn't always true or false.
9348
9349 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
9350
9351 * config/i386/biarch32.h: New file.
9352 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
9353
9354 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
9355
9356 * config/mips/mips.md (*zero_extend<mode>_trunchi,
9357 *zero_extend<mode>_truncqi): Merge these into ...
9358 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
9359 Name the pattern following this as *zero_extendhi_truncqi.
9360
9361 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
9362
9363 PR middle-end/39301
9364 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
9365 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
9366 (output_info): Make field HOST_WIDEST_INT.
9367 (print_statistics): Use HOST_WIDEST_INT_PRINT.
9368 (dump_bitmat_statistics): Same.
9369
9370 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
9371
9372 * config.gcc (use_gcc_stdint): Set to wrap.
9373 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9374 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9375 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9376 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9377 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9378 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9379 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9380 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9381
9382 2009-05-16 Joseph Myers <joseph@codesourcery.com>
9383
9384 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
9385 tune_64.
9386 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
9387 Move definitions earlier.
9388 (OPT_ARCH64, OPT_ARCH32): Define.
9389 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
9390 and tune_64.
9391
9392 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
9393
9394 PR target/40153
9395 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
9396 implies.
9397
9398 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
9399
9400 * arm.md (movdi2): Copy non-reg values to DImode registers.
9401
9402 2009-05-16 Jakub Jelinek <jakub@redhat.com>
9403
9404 PR target/39942
9405 * final.c (label_to_max_skip): New function.
9406 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
9407 CODE_LABEL_NUMBER <= max_labelno.
9408 * output.h (label_to_max_skip): New prototype.
9409 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
9410 (ix86_avoid_jump_mispredicts): ... this. Don't define if
9411 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
9412 Handle CODE_LABELs with >= 16 byte alignment or with
9413 max_skip == (1 << align) - 1.
9414 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
9415 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
9416
9417 PR target/39942
9418 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
9419 .p2align 3 if MAX_SKIP is smaller than 7.
9420 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
9421
9422 2009-05-15 Ian Lance Taylor <iant@google.com>
9423
9424 * alias.c (struct alias_set_entry_d): Rename from struct
9425 alias_set_entry. Change all uses.
9426 * except.c (struct call_site_record_d): Rename from struct
9427 call_site_record. Change all uses.
9428 * except.h (struct eh_region_d): Rename from struct eh_region.
9429 Change all uses.
9430 * gcse.c (struct hash_table_d): Rename from struct hash_table.
9431 Change all uses.
9432 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
9433 ivtype_map_elt. Change all uses.
9434 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
9435 Change all uses.
9436 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
9437 * graphite.h (struct name_tree_d): Rename from struct name_tree.
9438 Change all uses.
9439 (struct sese_d): Rename from struct sese. Change all uses.
9440 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
9441 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
9442 * optabs.h (struct optab_d): Rename from struct optab. Change all
9443 uses.
9444 (struct convert_optab_d): Rename from struct convert_optab.
9445 Change all uses.
9446 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
9447 ipa_opt_pass. Change all uses.
9448 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
9449 all uses.
9450
9451 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
9452 defined as a typedef.
9453 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
9454 defined as a tag.
9455
9456 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
9457
9458 PR 16302
9459 * fold-const.c (make_range,build_range_check,merge_ranges): Move
9460 declaration to...
9461 (merge_ranges): Returns bool.
9462 * tree.h (make_range): .. to here.
9463 (build_range_check): Likewise.
9464 (merge_ranges): Likewise. Renamed from merge_ranges.
9465 * c-typeck.c (parser_build_binary_op): Update calls to
9466 warn_logical_operator.
9467 * c-common.c (warn_logical_operator): Add new warning.
9468 * c-common.h (warn_logical_operator): Update declaration.
9469
9470 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
9471
9472 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
9473
9474 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9475
9476 * doc/install.texi: Document MPC requirements, flags etc.
9477
9478 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
9479 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
9480 Evaluate constant arguments.
9481 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
9482 (fold_builtin_1): Likewise, also evaluate constant arguments.
9483 Remove superfluous break.
9484 (do_mpc_ckconv): New.
9485 * real.h: Include mpc.h.
9486 * toplev.c (print_version): Output MPC version info if available.
9487
9488 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
9489
9490 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
9491
9492 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
9493
9494 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
9495 only once.
9496
9497 2009-05-15 Jan Hubicka <jh@suse.cz>
9498
9499 * doc/invoke.texi (max-early-inliner-iterations): New flag.
9500 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
9501 (try_inline): Fix return value.
9502 (cgraph_decide_inlining_incrementally): Honor new value.
9503 (cgraph_early_inlining): Handle indirect inlining.
9504 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
9505
9506 2009-05-15 Jan Hubicka <jh@suse.cz>
9507
9508 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
9509 * cgraphunit.c (cgraph_finalize_function): Set it.
9510 (cgraph_expand_function): Use it.
9511
9512 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
9513
9514 * real.c (encode_ieee_half): Define.
9515 (decode_ieee_half): Define.
9516 (ieee_half_format): Define.
9517 (arm_half_format): Define.
9518 * real.h (ieee_half_format): Declare.
9519 (arm_half_format): Declare.
9520
9521 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
9522
9523 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
9524 swapped, and reversed optabs exist before trying to use them.
9525
9526 2009-05-15 Paul Brook <paul@codesourcery.com>
9527 Sandra Loosemore <sandra@codesourcery.com>
9528
9529 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
9530 loads. Allow PRE_DEC.
9531 (output_move_neon): Handle PRE_DEC.
9532 (arm_print_operand): Add 'A' for neon structure loads.
9533 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
9534 * config/arm/neon.md (neon_mov): Update comment.
9535 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
9536 calls.
9537 (Um): New constraint.
9538
9539 2009-05-15 Jan Hubicka <jh@suse.cz>
9540
9541 Revert the following patch until testsuite fallout is fixed:
9542 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
9543 * cgraph.h (struct inline_summary): New filed self_wize,
9544 size_inlining_benefit, self_time and time_inlining_benefit.
9545 (struct cgraph_global_info): Replace insns by time ans size fields.
9546 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
9547 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
9548 (ipcp_update_callgraph): Do not touch function bodies.
9549 * ipa-inline.c: Include except.h
9550 (MAX_TIME): New constant.
9551 (overall_insns): Remove
9552 (overall_size, max_benefit): New static variables.
9553 (cgraph_estimate_time_after_inlining): New function.
9554 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
9555 (cgraph_clone_inlined_nodes): Update size.
9556 (cgraph_mark_inline_edge): Update size.
9557 (cgraph_estimate_growth): Use size info.
9558 (cgraph_check_inline_limits): Check size.
9559 (cgraph_default_inline_p): Likewise.
9560 (cgraph_edge_badness): Compute badness based on benefit and size cost.
9561 (cgraph_decide_recursive_inlining): Check size.
9562 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
9563 and times.
9564 (cgraph_decide_inlining): Likewise.
9565 (cgraph_decide_inlining_incrementally): Likewise; honor
9566 PARAM_EARLY_INLINING_INSNS.
9567 (likely_eliminated_by_inlining_p): New predicate.
9568 (estimate_function_body_sizes): New function.
9569 (compute_inline_parameters): Use it.
9570 * except.c (must_not_throw_labels): New function.
9571 * except.h (must_not_throw_labels): Declare.
9572 * tree-inline.c (init_inline_once): Kill inlining_weigths
9573 * tree-ssa-structalias.c: Avoid uninitialized warning.
9574 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
9575 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
9576 (PARAM_INLINE_CALL_COST): Remove.
9577 (PARAM_EARLY_INLINING_INSNS): New.
9578
9579 2009-05-15 Richard Guenther <rguenther@suse.de>
9580
9581 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
9582 not TODO_update_ssa.
9583
9584 2009-05-15 Richard Guenther <rguenther@suse.de>
9585
9586 PR tree-optimization/39999
9587 * gimple.h (gimple_expr_type): Use the expression type looking
9588 through useless conversions.
9589 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
9590 (vn_nary_op_insert_stmt): Likewise.
9591 (simplify_binary_expression): Likewise.
9592
9593 2009-05-15 Richard Guenther <rguenther@suse.de>
9594
9595 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
9596 New options, enabled by default.
9597 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
9598 Document.
9599 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
9600 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
9601 * tree-ssa-structalias.c (gate_tree_pta): New function.
9602 (pass_build_alias): Use it.
9603
9604 2009-05-15 Joseph Myers <joseph@codesourcery.com>
9605
9606 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
9607 recurse on an invariant address if a conversion from a pointer
9608 type to a wider integer type is involved.
9609
9610 2009-05-15 Jan Hubicka <jh@suse.cz>
9611
9612 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
9613 * cgraph.h (struct inline_summary): New filed self_wize,
9614 size_inlining_benefit, self_time and time_inlining_benefit.
9615 (struct cgraph_global_info): Replace insns by time ans size fields.
9616 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
9617 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
9618 (ipcp_update_callgraph): Do not touch function bodies.
9619 * ipa-inline.c: Include except.h
9620 (MAX_TIME): New constant.
9621 (overall_insns): Remove
9622 (overall_size, max_benefit): New static variables.
9623 (cgraph_estimate_time_after_inlining): New function.
9624 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
9625 (cgraph_clone_inlined_nodes): Update size.
9626 (cgraph_mark_inline_edge): Update size.
9627 (cgraph_estimate_growth): Use size info.
9628 (cgraph_check_inline_limits): Check size.
9629 (cgraph_default_inline_p): Likewise.
9630 (cgraph_edge_badness): Compute badness based on benefit and size cost.
9631 (cgraph_decide_recursive_inlining): Check size.
9632 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
9633 and times.
9634 (cgraph_decide_inlining): Likewise.
9635 (cgraph_decide_inlining_incrementally): Likewise; honor
9636 PARAM_EARLY_INLINING_INSNS.
9637 (likely_eliminated_by_inlining_p): New predicate.
9638 (estimate_function_body_sizes): New function.
9639 (compute_inline_parameters): Use it.
9640 * except.c (must_not_throw_labels): New function.
9641 * except.h (must_not_throw_labels): Declare.
9642 * tree-inline.c (init_inline_once): Kill inlining_weigths
9643 * tree-ssa-structalias.c: Avoid uninitialized warning.
9644 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
9645 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
9646 (PARAM_INLINE_CALL_COST): Remove.
9647 (PARAM_EARLY_INLINING_INSNS): New.
9648 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
9649 (inline-call-cost): Remove.
9650 (early-inlining-insns): New.
9651
9652 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
9653
9654 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
9655 for bounds.
9656 (print_int_cst_bounds_in_octal_p): Likewise.
9657 (dbxout_type): Adjust calls to above functions. Be prepared to deal
9658 with subtypes.
9659 * dwarf2out.c (base_type_die): Likewise.
9660 (is_subrange_type): Delete.
9661 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
9662 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
9663 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
9664 if the destination type is boolean.
9665 (build_range_check): Do not special-case subtypes.
9666 (fold_sign_changed_comparison): Likewise.
9667 (fold_unary): Likewise.
9668 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
9669 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
9670 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
9671 * tree.c (subrange_type_for_debug_p): New predicate based on the
9672 former is_subrange_type.
9673 * tree.h (subrange_type_for_debug_p): Declare.
9674 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
9675 (convert_affine_scev): Remove call to above function.
9676 (chrec_convert_aggressive): Likewise.
9677 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
9678 false for conversions involving subtypes.
9679 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
9680 (vrp_val_min): Likewise.
9681 (needs_overflow_infinity): Likewise.
9682 (extract_range_from_unary_expr): Likewise.
9683
9684 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
9685
9686 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
9687 * config/frv/frv.c: Likewise.
9688 * config/s390/s390.c: Likewise.
9689 * config/sparc/sparc.h: Likewise.
9690 * config/i386/i386.h: Likewise.
9691 * config/i386/i386.c: Likewise.
9692 * config/crx/crx.c: Likewise.
9693 * config/m68hc11/m68hc11.h: Likewise.
9694 * config/iq2000/iq2000.c: Likewise.
9695 * config/mn10300/mn10300.h: Likewise.
9696 * config/mn10300/mn10300.c: Likewise.
9697 * config/m68k/m68k.c: Likewise.
9698 * config/rs6000/rs6000.c: Likewise.
9699 * config/rs6000/xcoff.h: Likewise.
9700 * config/rs6000/linux64.h: Likewise.
9701 * config/rs6000/sysv4.h: Likewise.
9702 * config/score/score3.c: Likewise.
9703 * config/score/score7.c: Likewise.
9704 * config/score/score.c: Likewise.
9705 * config/arm/arm.md: Likewise.
9706 * config/mips/mips.c: Likewise.
9707 * config/mips/mips.md: Likewise.
9708 * config/bfin/bfin.h: Likewise.
9709 * config/pa/pa.c: Likewise.
9710 * config/pa/constraints.md: Likewise.
9711
9712 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
9713 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
9714 * config/pdp11/pdp11.h: Use memory_address_p instead.
9715
9716 2009-05-14 Ian Lance Taylor <iant@google.com>
9717
9718 * passes.c (finish_optimization_passes): Change i to int.
9719 * plugin.c (plugins_active_p): Change event to int.
9720 (dump_active_plugins): Likewise.
9721 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
9722 Add cast.
9723 * tree.c (tree_range_check_failed): Change c to unsigned int.
9724 (omp_clause_range_check_failed): Likewise.
9725 (build_common_builtin_nodes): Change mode to int. Add cast.
9726 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
9727 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
9728
9729 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
9730 ++ or -- with a variable of enum type.
9731
9732 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9733
9734 PR driver/40144
9735 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
9736
9737 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9738
9739 * store-motion.c: Do not include params.h
9740 * Makefile.in: Fix dependencies for various files.
9741
9742 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9743
9744 * auto-inc-dec.c: Fix pass description, remove apparent
9745 accidental duplication.
9746
9747 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
9748
9749 PR middle-end/40147
9750 * ipa-utils.h (memory_identifier_string): Moved to ...
9751 * tree.h (memory_identifier_string): Here. Add GTY(()).
9752
9753 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
9754
9755 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
9756 in the former documentation of...
9757 (GO_IF_LEGITIMATE_ADDRESS): ... this.
9758 * ira-conflicts.c (get_dup_num): Use address_operand.
9759 * targhooks.c (default_legitimate_address_p): New.
9760 * targhooks.h (default_legitimate_address_p): New.
9761 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
9762 Call hook.
9763 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
9764 * target.h (struct target): Add legitimate_address_p.
9765 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
9766 (TARGET_INITIALIZER): Include it.
9767
9768 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9769 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
9770 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
9771 (TARGET_LEGITIMATE_ADDRESS_P): New.
9772
9773 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9774 (REG_OK_STRICT_P): Delete.
9775 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
9776 (frv_legitimate_address_p_1): ... this.
9777 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
9778 (frv_legitimate_address_p_1): ... the renamed old
9779 frv_legitimate_address_p.
9780 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
9781 (TARGET_LEGITIMATE_ADDRESS_P): New.
9782
9783 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9784 * config/s390/s390-protos.h (legitimate_address_p): Remove.
9785 * config/s390/s390.c (legitimate_address_p): Rename to...
9786 (s390_legitimate_address_p): ... this, make static.
9787 (legitimize_address): Adjust call.
9788 (TARGET_LEGITIMATE_ADDRESS_P): New.
9789 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
9790
9791 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9792 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
9793 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
9794 (TARGET_LEGITIMATE_ADDRESS_P): New.
9795
9796 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9797 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
9798 * config/spu/spu.c (spu_legitimate_address): Rename to...
9799 (spu_legitimate_address_p): ... this, make static.
9800 (TARGET_LEGITIMATE_ADDRESS_P): New.
9801
9802 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9803 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
9804 * config/sparc/sparc.c (legitimate_address_p): Rename to...
9805 (sparc_legitimate_address_p): ... this, make static and return bool.
9806 (legitimize_address): Adjust call.
9807 (TARGET_LEGITIMATE_ADDRESS_P): New.
9808
9809 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9810 * config/i386/i386-protos.h (legitimate_address_p): Remove.
9811 * config/i386/i386.c (legitimate_address_p): Rename to...
9812 (ix86_legitimate_address_p): ... this, make static.
9813 (constant_address_p): Move after it, adjust call.
9814 (TARGET_LEGITIMATE_ADDRESS_P): New.
9815
9816 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9817 * config/avr/avr-protos.h (legitimate_address_p): Remove.
9818 * config/avr/avr.c (legitimate_address_p): Rename to...
9819 (avr_legitimate_address_p): ... this, make static.
9820 (legitimize_address): Adjust call.
9821 (TARGET_LEGITIMATE_ADDRESS_P): New.
9822
9823 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9824 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
9825 * config/crx/crx.c (crx_legitimate_address_p): Make static.
9826 (TARGET_LEGITIMATE_ADDRESS_P): New.
9827
9828 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9829 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
9830 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
9831 (TARGET_LEGITIMATE_ADDRESS_P): New.
9832
9833 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9834 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
9835 Remove.
9836 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
9837 Make static.
9838 (TARGET_LEGITIMATE_ADDRESS_P): New.
9839
9840 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9841 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
9842 Remove.
9843 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
9844 Rename to...
9845 (m68hc11_legitimate_address_p): ... this, make static.
9846 (go_if_legitimate_address_internal): Rename to...
9847 (m68hc11_legitimate_address_p_1): ... this.
9848 (legitimize_address): Adjust call.
9849 (TARGET_LEGITIMATE_ADDRESS_P): New.
9850
9851 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9852 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
9853 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
9854 (TARGET_LEGITIMATE_ADDRESS_P): New.
9855
9856 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9857 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
9858 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
9859 (mn10300_legitimate_address_p): ... this, make static.
9860 (TARGET_LEGITIMATE_ADDRESS_P): New.
9861
9862 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9863 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
9864 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
9865 (TARGET_LEGITIMATE_ADDRESS_P): New.
9866
9867 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9868 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
9869 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
9870 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9871 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
9872 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
9873 (rs6000_legitimate_address_p): ... this, make static.
9874 (TARGET_LEGITIMATE_ADDRESS_P): New.
9875 (REG_MODE_OK_FOR_BASE_P): Delete.
9876 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
9877
9878 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9879 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
9880 Delete.
9881 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
9882 static, adjust types.
9883 (TARGET_LEGITIMATE_ADDRESS_P): New.
9884
9885 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9886 * config/score/score.c (score_address_p): Rename to...
9887 (score_legitimate_address_p): ... this.
9888 (TARGET_LEGITIMATE_ADDRESS_P): New.
9889 * config/score/score3.c (score3_address_p): Rename to...
9890 (score3_legitimate_address_p): ... this.
9891 * config/score/score7.c (score7_address_p): Rename to...
9892 (score7_legitimate_address_p): ... this.
9893
9894 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
9895 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
9896 GO_IF_LEGITIMATE_ADDRESS): Delete.
9897 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
9898 thumb2_legitimate_address_p): Delete.
9899 (arm_legitimate_address_p): Rename to...
9900 (arm_legitimate_address_outer_p): ... this.
9901 * config/arm/constraints.md ("Uq"): Adjust call.
9902 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
9903 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
9904 to...
9905 (arm_legitimate_address_outer_p): ... this.
9906 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
9907 static.
9908 (TARGET_LEGITIMATE_ADDRESS_P): New.
9909
9910 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9911 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
9912 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
9913 (TARGET_LEGITIMATE_ADDRESS_P): New.
9914
9915 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9916 * config/vax/vax-protos.h (legitimate_address_p): Remove.
9917 * config/vax/vax.c (legitimate_address_p): Rename to...
9918 (vax_legitimate_address_p): ... this, make static.
9919 (TARGET_LEGITIMATE_ADDRESS_P): New.
9920
9921 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9922 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
9923 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
9924 (TARGET_LEGITIMATE_ADDRESS_P): New.
9925
9926 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9927 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
9928 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
9929 (mmix_legitimate_address_p): ... this, make static.
9930 (TARGET_LEGITIMATE_ADDRESS_P): New.
9931
9932 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9933 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
9934 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
9935 (TARGET_LEGITIMATE_ADDRESS_P): New.
9936
9937 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
9938
9939 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
9940 of MODE_COMPLEX_INT.
9941
9942 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9943
9944 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
9945 LCT_NORMAL in function call.
9946 * mips-tdump.c (print_file_desc): Add cast to enum type.
9947 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
9948 (mark_stabs): Add casts to enum types.
9949 (parse_stabs_common): Add casts to enum types.
9950
9951 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
9952
9953 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
9954 Check for invalid values of LETTER.
9955
9956 2009-05-13 Taras Glek <tglek@mozilla.com>
9957
9958 * attribs.c (register_attribute): moved out attribute registration
9959 into register_attribute.
9960 * doc/plugins.texi: Documented register_attribute and
9961 PLUGIN_ATTRIBUTES.
9962 * gcc-plugin.h: Added forward decl for register_attribute.
9963 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
9964 * plugin.c (register_callback, invoke_plugin_callbacks): Added
9965 PLUGIN_ATTRIBUTES boilerplate.
9966
9967 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
9968
9969 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
9970 values even in sentinel and empty entries.
9971 (ms_printf_flag_specs): Likewise.
9972 (ms_scanf_flag_specs): Likewise.
9973 (ms_strftime_flag_specs): Likewise.
9974 (ms_print_char_table): Likewise.
9975 (ms_scan_char_table): Likewise.
9976 (ms_time_char_table): Likewise.
9977
9978 2009-05-13 Doug Kwan <dougkwan@google.com>
9979
9980 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
9981
9982 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
9983
9984 * config/mips/mips.md (store): Add attributes for QI and HI.
9985 Update comment.
9986 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
9987 (truncdi<mode>2): ... this new pattern.
9988
9989 2009-05-13 Brad Hards <bradh@kde.org>
9990
9991 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
9992
9993 2009-05-14 Jakub Jelinek <jakub@redhat.com>
9994 Ben Elliston <bje@au.ibm.com>
9995
9996 PR middle-end/40035
9997 * dse.c (check_mem_read_rtx): Guard against width == -1.
9998
9999 2009-05-13 Michael Matz <matz@suse.de>
10000
10001 PR middle-end/39976
10002 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
10003 (trivially_conflicts_p): New function.
10004 (insert_backedge_copies): Use it.
10005
10006 2009-05-13 Janis Johnson <janis187@us.ibm.com>
10007
10008 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
10009 (handle_stdc_pragma): Use new enum constant names.
10010 (handle_pragma_float_const_decimal64): Ditto.
10011
10012 2009-05-13 Ian Lance Taylor <iant@google.com>
10013
10014 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
10015 tree.def.
10016
10017 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
10018
10019 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
10020 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
10021 multilibs.
10022 * config/m68k/m68k.h (FL_UCLINUX): Define.
10023
10024 2009-05-13 Jan Hubicka <jh@suse.cz>
10025
10026 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
10027
10028 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10029
10030 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
10031 unless -fschedule-insns is specified.
10032
10033 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10034
10035 PR target/39561
10036 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
10037 TARGET_EXPAND_CBRANCHDI4.
10038 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
10039 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
10040 (cmpeqdi): Fix comment.
10041
10042 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
10043
10044 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
10045 (sh_legitimate_address_p): Likewise.
10046 * config/sh/sh.c (sh_legitimate_index_p): New.
10047 (sh_legitimate_address_p): Likewise.
10048 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
10049 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
10050 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
10051 (MAYBE_BASE_REGISTER_RTX_P): New macro.
10052 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
10053 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
10054 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
10055 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
10056 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
10057
10058 2009-05-12 Jan Hubicka <jh@suse.cz>
10059
10060 * tree-inline.c (estimate_operator_cost): Add operands;
10061 when division happens by constant, it is cheap.
10062 (estimate_num_insns): Loads and stores are not having cost of 0;
10063 EH magic stuff is cheap; when computing runtime cost of switch,
10064 use log2 base of amount of its cases; builtin_expect has cost of 0;
10065 compute cost for moving return value of call.
10066 (init_inline_once): Initialize time_based flags.
10067 * tree-inline.h (eni_weights_d): Add time_based flag.
10068
10069 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10070
10071 * df-core.c: Update head documentation.
10072
10073 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10074
10075 PR bootstrap/40118
10076 * rs6000.c (rs6000_generate_compare): Use op1b instead of
10077 shadowing exisiting variable op1.
10078
10079 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
10080
10081 PR target/37179
10082 * config/i386/driver-i386.c (processor_signatures): New enum.
10083 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
10084 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
10085 processor signature to detect geode processor.
10086
10087 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10088
10089 Revert:
10090
10091 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10092
10093 * optabs.c (prepare_cmp_insn): Temporarily disable test that
10094 causes spurious differences between trunk and cond-optab branch.
10095
10096 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10097
10098 * dojump.c (compare_from_rtx): Delete.
10099 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
10100 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
10101 if the comparison does not satisfy the predicate; test predicates for
10102 operands 2 and 3 of a cstore pattern. Don't try cstore optab
10103 further if one existing pattern fails.
10104 * expr.h (compare_from_rtx): Delete.
10105 (prepare_operand): Declare it.
10106 * optabs.c: Change "lib call" to "libcall" throughout.
10107 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
10108 HAVE_conditional_trap, emit_cmp_insn): Delete.
10109 (can_compare_p): Delete cmp_optab case.
10110 (prepare_float_lib_cmp): Return an rtx and a machine mode.
10111 Accept other parameters by value.
10112 (prepare_operand): Make non-static.
10113 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
10114 other parameters by value. Try to widen operands here based on
10115 an optab_methods argument and looking at cbranch_optab.
10116 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
10117 loop. Use cbranch_optab directly.
10118 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
10119 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
10120 assertion.
10121 (emit_conditional_move, emit_conditional_add): Inline what's needed
10122 of compare_from_rtx, using new prepare_cmp_insn for the rest.
10123 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
10124 with COMPARE. Move cmov_optab and cstore_optab above
10125 with cbranch_optab, move cmp_optab down with ucmp_optab,
10126 remove tst_otpab. Do not initialize trap_rtx.
10127 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
10128 for trap code. Do not check HAVE_conditional_trap. Use
10129 prepare_cmp_insn. Accept no predicate for operand 3.
10130 * optabs.h (OTI_cmp): Mark as used only for libcalls.
10131 (OTI_ctrap, ctrap_optab): New.
10132 (tst_optab): Delete.
10133 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
10134 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
10135 with lookup of ctrap_optab.
10136 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
10137 Delete.
10138 (ctrap_optab): New.
10139
10140 * combine.c (combine_simplify_rtx, simplify_set): Do not
10141 special case comparing against zero for cc0 machines.
10142 * simplify-rtx.c (simplify_binary_operation_1): Never remove
10143 COMPARE on cc0 machines.
10144 (simplify_relational_operation): Return a new expression when
10145 a COMPARE could be removed.
10146 * final.c (final_scan_insn): Compare cc_status values
10147 against LHS of a (compare FOO (const_int 0)) cc0 source.
10148 Also check if cc_status.value is the full compare.
10149
10150 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
10151 (cstoreMM4): Document.
10152 (conditional_trap): Document ctrapMM4 instead.
10153 (sync_compare_and_swapMM): Refer to cbranchcc4.
10154 (Dependent Patterns): Eliminate obsolete information referring to
10155 the old jump optimization phase.
10156 (Canonicalization): Include cbranchcc4 case, omit canonicalization
10157 of compares with 0 on cc0 machines.
10158 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
10159 avoiding references to cc0. Remove text about storing operands
10160 in cmpMM.
10161 * doc/tm.texi (Condition Codes): Include blurb on different
10162 condition code representations, separate into subsections for
10163 CC0, MODE_CC and conditional execution.
10164
10165 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
10166 alpha_emit_setcc): Accept operands and a machine mode.
10167 * config/alpha/alpha.c (alpha_emit_conditional_branch):
10168 Get code/op0/op1 from operands, use machine mode argument
10169 instead of alpha_compare.fp_p. Emit the branch here.
10170 (alpha_emit_setcc): Likewise, and return boolean.
10171 (alpha_emit_conditional_move): Likewise. Assert that
10172 cmp_op_mode == cmp_mode, and simplify accordingly.
10173 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
10174 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
10175 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
10176 Delete.
10177 (stack probe test): Use cbranchdi4.
10178 * config/alpha/predicates.md (alpha_cbranch_operator): New.
10179
10180 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
10181 * config/arc/arc.h (movsicc, movsfcc): Use it.
10182 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
10183 (cbranchsi4, cstoresi4): New.
10184 (cmpsi, bCC and sCC expanders): Remove.
10185
10186 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
10187 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
10188 * config/arm/predicates.md (arm_comparison_operator): Only include
10189 floating-point operators if there is a hardware floating-point unit.
10190 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
10191 deferring to cbranch_cc and cstore_cc respectively.
10192 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
10193 cbranch_cc, cstore_cc): New.
10194 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
10195 arm_compare_op1.
10196 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
10197
10198 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
10199 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
10200 as an argument.
10201 (adjust_insn_length): Adjust calls.
10202 (avr_reorg): Handle (compare (foo) (const_int 0)).
10203 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
10204 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
10205 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
10206 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
10207 (bCC): Remove.
10208 (cbranchqi4, cbranchhi4, cbranchsi4): New.
10209 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
10210
10211 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
10212 (cbranchsi4, cstorebi4, cstoresi4): New.
10213 (movbisi): This insn is duplicate, split it to zero_extend.
10214 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
10215 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
10216 (bfin_optimize_loop): Use cbranch expander.
10217 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
10218 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
10219 (bfin_bimode_comparison_operator): ... this.
10220 (bfin_direct_comparison_operator): New.
10221
10222 * config/cris/cris.c (cris_normal_notice_update_cc): Look
10223 inside (compare FOO (const_int 0)).
10224 (cris_rtx_costs): Handle ZERO_EXTRACT.
10225 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
10226 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
10227 (*tstdi_v32): Delete.
10228 (*cmpdi_non_v32): Add M alternative for operand 1.
10229 (cmpsi, cmp<mode>): Make private.
10230 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
10231 with COMPARE.
10232 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
10233
10234 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
10235 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
10236 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
10237 (cc_reg_operand): New.
10238 (any_cond): Delete.
10239 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
10240 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
10241 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
10242 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
10243 crx_expand_scond): Delete.
10244
10245 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
10246 (cbranchsi4): New.
10247 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
10248 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
10249
10250 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
10251 cstoresi4, cstoresf4, cstoredf4): New.
10252 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
10253 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
10254 Receive the entire operands array.
10255 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
10256 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
10257 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
10258 Get test/op0/op1 from the operands array.
10259 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
10260
10261 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
10262 (h8300_expand_store): New.
10263 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
10264 (const_int 0)).
10265 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
10266 (h8300_expand_store): New.
10267 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
10268 or do not try to produce (set (cc0) REG).
10269 (peepholes): Wrap arguments with COMPARE. Add a peephole to
10270 change a compare into a move to a scratch register. Disable some
10271 peepholes when comparing with zero.
10272 (tstsi, tsthi, tstsi, cmpqi): Make private.
10273 (cmphi): Delete.
10274 (bCC, sCC): Delete.
10275 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
10276 cstoresi4): New.
10277
10278 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
10279 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
10280 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
10281 (ix86_emit_i387_log1p): Use cbranchxf2.
10282 (ix86_expand_setcc): Return void.
10283 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
10284 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
10285 cmp<MODEF>, cmpcc): Remove.
10286 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
10287 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
10288 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
10289 (sCC and bCC expanders): Remove.
10290 (stack_protect_test): Use cbranchcc4.
10291
10292 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
10293 Delete.
10294 (ia64_expand_compare): Accept three rtx by reference and return void.
10295 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
10296 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
10297 from *expr. Update *expr with the BImode comparison to do.
10298 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
10299 cmptf, bCC, sCC, conditional_trap): Delete.
10300 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
10301 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
10302 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
10303 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
10304 * config/ia64/predicates.md (ia64_cbranch_operator): New.
10305
10306 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
10307 type of last argument.
10308 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
10309 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
10310 use machine mode argument instead of branch_type. Remove dead
10311 code for floating-point comparisons.
10312 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
10313 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
10314 Remove.
10315 (cbranchsi4, cstoresi4): New.
10316 * config/iq2000/predicates.md (reg_or_const_operand): New.
10317
10318 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
10319 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
10320 (b<code>_op): Rewrite to...
10321 (bcc_op): ... this, using match_operator.
10322 (s<code>_op): Rewrite to...
10323 (scc_op): ... this, using match_operator.
10324 (s<code>_24_op): Rewrite to...
10325 (scc_op_24): ... this, using match_operator.
10326 (s<code>_<mode>): Rewrite to...
10327 (cstore<mode>4): ... this, using match_operator.
10328 (s<code>_<mode>_24): Rewrite to...
10329 (cstore<mode>4_24): ... this, using match_operator.
10330 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
10331 m32c_unpend_compare, m32c_expand_scc): Delete.
10332 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
10333 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
10334 (m32c_expand_movcc): Change NE to EQ if necessary.
10335 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
10336
10337 * config/m32r/m32r-protos.h (gen_cond_store): New.
10338 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
10339 (gen_cond_store): New, from sCC patterns.
10340 (m32r_expand_block_move): Use cbranchsi4.
10341 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
10342 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
10343 (cbranchsi4, cstoresi4): New.
10344
10345 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
10346 Delete.
10347 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
10348 (m68hc11_notice_update_cc): Look into a compare with 0.
10349 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
10350 Delete.
10351 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
10352 cmphi, cmpqi, bCC): Delete.
10353 (cbranchsi4, cbranchhi4, cbranchqi4): New.
10354 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
10355 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
10356 sets with COMPARE.
10357
10358 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
10359 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
10360 * config/m68k/constraints.md (H): New.
10361 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
10362 the define_insn below.
10363 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
10364 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
10365 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
10366 patterns): Wrap RHS with COMPARE.
10367 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
10368 (*cmpdi_internal): Name this pattern.
10369 (cmpdi): Change to define_insn.
10370 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
10371 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
10372 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
10373 predicate.
10374 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
10375 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
10376 (conditional_trap): Change to...
10377 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
10378 (*conditional_trap): Use the ordered_comparison_operator and
10379 const1_operand predicates.
10380 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
10381 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
10382 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
10383 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
10384
10385 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
10386 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
10387 (mcore_gen_compare): New.
10388 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
10389 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
10390 (mcore_gen_compare): ... this.
10391 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
10392 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
10393 (stack probe pattern): Use cbranchsi4.
10394
10395 * config/mips/predicates.md (mips_cstore_operator): New.
10396 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
10397 * config/mips/mips.md (any_cond): Delete.
10398 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
10399 always succeed.
10400 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
10401 fixuns_truncsfdi2): Use cbranch patterns.
10402 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
10403 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
10404 Adjust call to mips_expand_conditional_branch.
10405 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
10406 cstore<GPR:mode>4.
10407 * config/mips/mips-protos.h (mips_expand_conditional_branch,
10408 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
10409 * config/mips/mips.c (cmp_operands): Delete.
10410 (mips_emit_compare): Get comparison operands from *op0/*op1.
10411 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
10412 that it succeeds. Use op0/op1 instead of cmp_operands.
10413 (mips_expand_conditional_branch, mips_expand_conditional_move,
10414 mips_expand_conditional_trap): Likewise.
10415 (mips_block_move_loop): Use cbranch patterns.
10416 * config/mips/mips.h (cmp_operands): Delete.
10417
10418 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
10419 (mmix_gen_compare_reg): Just return a register in the right CC mode.
10420 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
10421 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
10422 (*cmpcc_folded): Rename to...
10423 (*cmpdi_folded): this.
10424 (*cmpcc): Rename to...
10425 (*cmps): ... this.
10426 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
10427 (bCC): Remove.
10428 (cbranchdi4): New.
10429 (cbranchdf4): New. Handle invalid comparisons here.
10430 * config/mmix/predicates.md (float_comparison_operator): New.
10431
10432 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
10433 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
10434 * config/mn10300/mn10300.md (tst): Delete.
10435 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
10436 Name these patterns and wrap RHS in a compare.
10437 (*cmpsi): Make this pattern private. Include tst.
10438 (*cmpsf): Make this pattern private.
10439 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
10440 (compare with zero peepholes): Likewise.
10441 (bCC): Remove.
10442 (cbranchsi4, cbranchsf4): New.
10443 (casesi): Use cbranchsi4.
10444
10445 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
10446 hppa_branch_type): Delete.
10447 (return_addr_rtx): Use cbranchsi4.
10448 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
10449 Emit CCFPmode comparison here.
10450 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
10451 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
10452 hppa_branch_type): Delete.
10453 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
10454 (movsicc, movdicc): Remove references to hppa_compare_op0,
10455 hppa_compare_op1 and compare_from_rtx.
10456 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
10457 (casesi): Use cbranchsi4.
10458
10459 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
10460 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
10461 * config/pdp11/pdp11.md (register_or_const0_operand): New.
10462 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
10463 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
10464 (bCC): Delete.
10465 (cbranchdf4, cbranchhi4, cbranchqi4): New.
10466 (*branch, *branch_inverted): New.
10467
10468 * config/picochip/picochip.md (cbranchhi4): Use
10469 ordered_comparison_operator.
10470 (cmphi, bCC): Remove.
10471
10472 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
10473 (trap_comparison_operator): Delete.
10474 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
10475 rs6000_emit_cbranch): Accept mode and operands.
10476 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
10477 rs6000_compare_fp_p): Delete.
10478 (rs6000_generate_compare): Accept mode and comparison. Extract code
10479 and op0/op1 from there. Replace references to rs6000_compare_op0
10480 and rs6000_compare_op1.
10481 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
10482 extract result from passed operands.
10483 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
10484 extract loc from passed operands.
10485 (rs6000_emit_cmove): Likewise.
10486 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
10487 rs6000_compare_fp_p): Delete.
10488 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
10489 (cbranch<GPR>4, cbranch<FP>4): New.
10490 (cstore<mode>4): New. Consolidate here all choices about when to use
10491 portable or specialized sCC sequences.
10492 (stack_protect_test): Use cbranchsi4.
10493 (conditional_trap): Replace with ctrap<GPR>4.
10494 (conditional trap insn): Replace trap_comparison_operator with
10495 ordered_comparison_operator.
10496
10497 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
10498 (s390_emit_prologue): Use ctrap.
10499 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
10500 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
10501 New predicates replacing...
10502 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
10503 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
10504 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
10505 (add<mode>cc): Do not use s390_compare_op0/op1.
10506 (s<code>): Change to...
10507 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
10508 (seq): Change to...
10509 (cstorecc4): ... this. Handle EQ or NE equally.
10510 (*sne): Un-privatize for use in cstorecc4.
10511 (b<code>): Change to...
10512 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
10513 (conditional_trap): Replace with...
10514 (ctrap<GPR>4, ctrap<FP>4): ... these.
10515 (stack_protect): Use cbranchcc4.
10516
10517 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
10518 * config/score/score-protos.h (score_gen_cmp): Delete.
10519 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
10520 (score_block_move-loop): Use cbranchsi4.
10521 * config/score/score.md (cbranchsi4): New.
10522 (cmpsi, bCC): Delete.
10523 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
10524 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
10525 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
10526 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
10527 * config/score/score3.h (score3_gen_cmp): Delete.
10528 * config/score/score7.h (score7_gen_cmp): Delete.
10529
10530 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
10531 (sh_emit_scc_to_t): ... this. Return void.
10532 (from_compare): Rename to...
10533 (sh_emit_compare_and_branch): ... this.
10534 (sh_emit_compare_and_set): New.
10535 (sh_expand_t_scc): Accept operands.
10536 * config/sh/predicates.md (sh_float_comparison_operator): New.
10537 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
10538 (prepare_scc_operands): Rename to...
10539 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
10540 arguments.
10541 (sh_emit_cheap_store_flag): New.
10542 (sh_emit_set_t_insn): New.
10543 (from_compare): Rename to...
10544 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
10545 handling of TARGET_SH2E floating point to avoid recursive call.
10546 Generate branch here.
10547 (sh_emit_compare_and_set): New.
10548 (sh_expand_t_scc): Get op0/op1 from arguments.
10549 (sh_emit_cheap_store_flag): New.
10550 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
10551 cases.
10552 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
10553 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
10554 (movsicc, movdicc): Do nothing when it recreated operands from
10555 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
10556 prepare_scc_operands (now sh_emit_scc_to_t).
10557 (udivdi3): Use cstoresi4.
10558 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
10559 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
10560 (cbranchint4_media, cbranchfp4_media): New.
10561 (casesi): Use cbranchdi4.
10562 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
10563 Delete.
10564 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
10565 (movnegt): Remove second operand.
10566 (cbranchsf4, cbranchdf4): New.
10567 (stack_protect): Use cbranchdi4/cbranchsi4.
10568
10569 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
10570 (gen_compare_reg): Accept comparison, extract part of it to...
10571 (gen_compare_reg_1): ... this.
10572 (gen_compare_operator): Delete.
10573 (gen_v9_scc): Accept separate destination, comparison code and arms.
10574 Do not use sparc_compare_op0/sparc_compare_op1.
10575 (emit_scc_insn, emit_conditional_branch_insn): New.
10576 (emit_v9_brxx): Make static. Remove useless assertion.
10577 (sparc_emit_float_lib_cmp): Return RTL instead of calling
10578 emit_cmp_insn.
10579 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
10580 * config/sparc/sparc-protos.h (gen_compare_reg,
10581 sparc_emit_float_lib_cmp): Adjust prototype.
10582 (emit_scc_insn, emit_conditional_branch_insn): New.
10583 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
10584 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
10585 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
10586 iterators to the top.
10587 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
10588 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
10589 snedi_special_trunc): Delete.
10590 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
10591 and snedi_special_trunc.
10592 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
10593 cbranchdi4, cbranch<F:mode>4): New.
10594 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
10595 here. Use gen_compare_reg instead of gen_compare_operator.
10596 (conditional_trap): Replace with...
10597 (ctrapsi4, ctrapdi4): ... this.
10598 (stack_protect_test): Use cbranchcc4.
10599
10600 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
10601 argument to rtx.
10602 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
10603 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
10604 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
10605 from operands[0] or operands[3] depending on is_set.
10606 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
10607 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
10608 cmpdf, bCC), sCC: Remove.
10609 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
10610 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
10611 cstoredf4): New.
10612 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
10613 spu_emit_branch_or_set.
10614
10615 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
10616 Add two arguments.
10617 * config/stormy16/stormy16.h (xstormy16_compare_op0,
10618 xstormy16_compare_op1): Delete.
10619 * config/stormy16/stormy16.c (xstormy16_compare_op0,
10620 xstormy16_compare_op1): Delete.
10621 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
10622 Adjust calls.
10623 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
10624 (cmphi, cmpsi, bCC): Remove.
10625
10626 * config/v850/v850.md (tstsi, cmpsi): Fold into...
10627 (*cmpsi): ... this one.
10628 (cbranchsi4, cstoresi4): New.
10629 (bCC expanders): Delete.
10630 (sCC insns): Fold into...
10631 (*setcc): ... this one.
10632 (casesi): Do not use gen_cmpsi and gen_bgtu.
10633 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
10634 (movsicc): Simplify.
10635 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
10636
10637 * config/vax/vax-protos.h (cond_name): New.
10638 (vax_output_conditional_branch): Remove.
10639 * config/vax/vax.c (cond_name): New.
10640 (vax_output_conditional_branch): Remove.
10641 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
10642 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
10643 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
10644 (bit<VAXint>): Wrap source with (compare).
10645 (b<code> and following unnamed pattern): Rename to *branch and
10646 *branch_reversed. Change macroization to match_operator.
10647 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
10648
10649 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
10650 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
10651 Change last argument to machine_mode.
10652 (xtensa_expand_scc): Add machine_mode argument.
10653 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
10654 (gen_conditional_move, xtensa_expand_conditional_branch,
10655 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
10656 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
10657 Adjust operand numbers.
10658 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
10659 Delete.
10660 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
10661 (cmpsi, cmpsf, b<code>, s<code>): Delete.
10662 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
10663
10664 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10665
10666 * optabs.c (prepare_cmp_insn): Temporarily disable test that
10667 causes spurious differences between trunk and cond-optab branch.
10668
10669 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
10670
10671 PR target/37137
10672 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
10673
10674 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
10675
10676 * tree.c (iterative_hash_pointer): Delete.
10677 (iterative_hash_expr): Short-circuit handling of NULL pointer.
10678 Hash UIDs and versions of SSA names. Don't special-case built-in
10679 function declarations.
10680
10681 2009-05-11 Ian Lance Taylor <iant@google.com>
10682
10683 PR bootstrap/40103
10684 * graphite.c: Force -Wc++-compat to only be a warning before
10685 #including "cloog/cloog.h".
10686
10687 2009-05-11 Martin Jambor <mjambor@suse.cz>
10688
10689 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
10690
10691 2009-05-11 Jan Hubicka <jh@suse.cz>
10692
10693 * tree-ssa-loop-ivcanon.c: Include target.h
10694 (struct loop_size): new structure.
10695 (constant_after_peeling): New predicate.
10696 (tree_estimate_loop_size): New function.
10697 (estimated_unrolled_size): Rewrite for new estimates.
10698 (try_unroll_loop_completely): Use new estimates.
10699 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
10700
10701 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
10702
10703 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
10704 libcpp interface change.
10705 (spu_macro_to_expand): Likewise.
10706
10707 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
10708
10709 PR tree-optimization/40026
10710 * gimplify.c (gimplify_init_constructor): Change initial conditional
10711 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
10712 optimize_compound_literals_in_ctor.
10713
10714 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
10715
10716 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
10717 New devices.
10718 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
10719
10720 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
10721
10722 * tree-vect-data-refs.c (vect_analyze_group_access): Use
10723 HOST_WIDE_INT for gap.
10724
10725 2009-05-11 Ira Rosen <irar@il.ibm.com>
10726
10727 PR tree-optimization/40074
10728 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
10729 account in group size and step comparison.
10730
10731 2009-05-11 Richard Guenther <rguenther@suse.de>
10732
10733 * passes.c (init_optimization_passes): Strip now incorrect comment.
10734 (execute_function_todo): Do not set PROP_alias.
10735 * tree-pass.h (PROP_alias): Remove.
10736 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
10737 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
10738 * tree-nrv.c (pass_return_slot): Likewise.
10739 * tree-object-size.c (pass_object_sizes): Likewise.
10740 * tree-ssa-dom.c (pass_dominator): Likewise.
10741 (pass_phi_only_cprop): Likewise.
10742 * tree-ssa-dse.c (pass_dse): Likewise.
10743 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
10744 (pass_cselim): Likewise.
10745 * tree-ssa-pre.c (pass_pre): Likewise.
10746 (pass_fre): Likewise.
10747 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10748 * tree-ssa-sink.c (pass_sink_code): Likewise.
10749 * tree-stdarg.c (pass_stdarg): Likewise.
10750 * tree-tailcall.c (pass_tail_calls): Likewise.
10751 * tree-vrp.c (pass_vrp): Likewise.
10752
10753 2009-05-10 Ian Lance Taylor <iant@google.com>
10754
10755 * basic-block.h (enum profile_status): Break out of struct
10756 control_flow_graph.
10757 * cgraph.h (struct inline_summary): Break out of struct
10758 cgraph_local_info.
10759 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
10760 of struct cgraph_order_sort.
10761 * combine.c (enum undo_kind): New enum, broken out of struct undo.
10762 * cse.c (struct branch_path): Break out of struct
10763 cse_basic_block_data.
10764 * except.h (enum eh_region_type): Break out of struct eh_region.
10765 * gcc.c (enum add_del): Break out of struct modify_target.
10766 * genrecog.c (enum decision_type): Break out of struct decision_test.
10767 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
10768 ggc_pch_data.
10769 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
10770 * regmove.c (enum match_use): New enum, broken out of struct match.
10771 * sched-int.h (enum post_call_group): New enum, broken out of
10772 struct deps.
10773 (struct deps_reg): Break out of struct deps.
10774 * target.h (struct asm_int_op): Break out of struct gcc_target.
10775 * tree-eh.c (struct goto_queue_node): Break out of struct
10776 leh_tf_state.
10777 * tree-inline.h (enum copy_body_cge_which): Break out of
10778 copy_body_data.
10779 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
10780
10781 * c-decl.c (in_struct, struct_types): New static variables.
10782 (pushtag): Add loc parameter. Change all callers.
10783 (lookup_tag): Add ploc parameter. Change all callers.
10784 (check_compound_literal_type): New function.
10785 (parser_xref_tag): Add loc parameter. Change all callers. If
10786 -Wc++-compat, warn about struct/union/enum types defined within a
10787 struct or union.
10788 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
10789 and loc parameters. Change all callers. Change error calls to
10790 error_at, using loc. For a redefinition, if the location of the
10791 original definition is known, report it. Set in_struct and
10792 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
10793 (finish_struct): Add new parameters enclosing_in_struct and
10794 enclosing_struct_types. Change all callers. Set
10795 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
10796 in the struct. If in a struct, add this struct to struct_types.
10797 (start_enum): Add loc parameter. Change all callers. Use
10798 error_at for errors, using loc. For a redefinition, if the
10799 location of the original definition is known, report it. If in a
10800 struct, add this enum type to struct_types. If -Wc++-compat warn
10801 if in sizeof, typeof, or alignof.
10802 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
10803 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
10804 (c_parser_enum_specifier): Get enum location for start_enum.
10805 (c_parser_struct_or_union_specifier): Get struct location for
10806 start_struct. Save in_struct and struct_types status between
10807 start_struct and finish_struct.
10808 (c_parser_cast_expression): Get location of cast.
10809 (c_parser_alignof_expression): Get location of type.
10810 (c_parser_postfix_expression): Likewise.
10811 (c_parser_postfix_expression_after_paren_type): Add type_loc
10812 parameter. Change all callers. Call check_compound_literal_type.
10813 Use type_loc for error about variable size type.
10814 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
10815 of an enum constant from an enum type defined in a struct or union.
10816 (c_cast_expr): Add loc parameter. Change all callers. If
10817 -Wc++-compat, warn about defining a type in a cast.
10818 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
10819 (start_enum, start_struct, finish_struct): Update declarations.
10820 (parser_xref_tag, c_cast_expr): Update declarations.
10821 (check_compound_literal_type): Declare.
10822
10823 2009-05-11 Ben Elliston <bje@au.ibm.com>
10824
10825 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
10826 for recent libcpp interface change.
10827 (rs6000_macro_to_expand): Likewise.
10828
10829 2009-05-10 Michael Matz <matz@suse.de>
10830
10831 PR target/40031
10832 * config/arm/arm.c (require_pic_register): Emit on entry edge,
10833 not at entry of function.
10834
10835 2009-05-10 Richard Guenther <rguenther@suse.de>
10836
10837 PR tree-optimization/40081
10838 Revert
10839 * tree-sra.c (instantiate_element): Instantiate scalar replacements
10840 using the main variant of the element type. Do not fiddle with
10841 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
10842
10843 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
10844 structs with volatile fields.
10845
10846 2009-05-10 Jan Hubicka <jh@suse.cz>
10847
10848 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
10849 (estimate_move_cost): Assert that it does not get called for
10850 VOID_TYPE_P.
10851 (estimate_num_insns): Skip VOID types in argument handling.
10852 (optimize_inline_calls): Delete unreachable blocks and verify that
10853 callgraph is valid.
10854
10855 2009-05-10 Jan Hubicka <jh@suse.cz>
10856
10857 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
10858 * cgraph.c (cgraph_mark_address_taken_node): New function.
10859 (dump_cgraph_node): Dump new flag.
10860 * cgraph.h (struct cgraph_node): Add address_taken.
10861 (cgraph_mark_address_taken_node): New function.
10862 * ipa.c (cgraph_postorder): Prioritize functions with address taken
10863 since new direct calls can be born.
10864
10865 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10866
10867 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
10868 tok->val.node.node.
10869
10870 2009-05-10 Jan Hubicka <jh@suse.cz>
10871
10872 PR middle-end/40084
10873 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
10874 argument; rewrite.
10875 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
10876 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
10877 * tree-inline.c (copy_bb): Set frequency correctly.
10878 (fold_marked_statements): Update call to
10879 cgraph_update_edges_for_call_stmt.
10880
10881 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10882
10883 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
10884 identifiers in diagnostics.
10885 * config/arm/arm.c (arm_handle_fndecl_attribute,
10886 arm_handle_isr_attribute): Likewise.
10887 * config/avr/avr.c (avr_handle_progmem_attribute,
10888 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
10889 * config/bfin/bfin.c (handle_int_attribute,
10890 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
10891 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
10892 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
10893 Likewise.
10894 * config/darwin.c (darwin_handle_kext_attribute,
10895 darwin_handle_weak_import_attribute): Likewise.
10896 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
10897 h8300_handle_eightbit_data_attribute,
10898 h8300_handle_tiny_data_attribute): Likewise.
10899 * config/i386/i386.c (ix86_handle_cconv_attribute,
10900 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
10901 * config/i386/winnt.c (ix86_handle_shared_attribute,
10902 ix86_handle_selectany_attribute): Likewise.
10903 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
10904 * config/m32c/m32c.c (function_vector_handler): Likewise.
10905 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
10906 m68hc11_handle_fntype_attribute): Likewise.
10907 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
10908 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
10909 * config/mips/mips.c (mips_insert_attributes,
10910 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
10911 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
10912 rs6000_handle_struct_attribute): Likewise.
10913 * config/sh/sh.c (sh_insert_attributes,
10914 sh_handle_resbank_handler_attribute,
10915 sh_handle_interrupt_handler_attribute,
10916 sh2a_handle_function_vector_handler_attribute,
10917 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
10918 Likewise.
10919 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
10920 * config/spu/spu.c (spu_handle_fndecl_attribute,
10921 spu_handle_vector_attribute): Likewise.
10922 * config/stormy16/stormy16.c
10923 (xstormy16_handle_interrupt_attribute): Likewise.
10924 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
10925 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
10926
10927 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10928
10929 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
10930 (pp_translate_identifiers): New.
10931 (pp_identifier): Only conditionally translate identifier to locale
10932 character set.
10933 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
10934 (pp_base_tree_identifier): Only conditionally translate identifier
10935 to locale character set.
10936 * c-pretty-print.c (M_): Define.
10937 (pp_c_type_specifier, pp_c_primary_expression): Mark English
10938 fragments for conditional translation with M_.
10939 * tree-pretty-print.c (maybe_init_pretty_print): Disable
10940 identifier translation.
10941
10942 2009-05-10 Richard Guenther <rguenther@suse.de>
10943
10944 PR tree-optimization/40081
10945 * tree-sra.c (instantiate_element): Instantiate scalar replacements
10946 using the main variant of the element type. Do not fiddle with
10947 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
10948
10949 2009-05-09 Jan Hubicka <jh@suse.cz>
10950
10951 PR middle-end/40080
10952 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
10953 indirect calls; verify cgraph afterwards.
10954
10955 2009-05-09 Jan Hubicka <jh@suse.cz>
10956
10957 PR bootstrap/40082
10958 * ipa.c (update_inlined_to_pointer): New function.
10959 (cgraph_remove_unreachable_nodes): Use it.
10960
10961 2009-05-09 Jan Hubicka <jh@suse.cz>
10962
10963 * tree-eh.c (struct leh_state): Remove prev_try.
10964 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
10965 not track prev_try.
10966 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
10967 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
10968 remove_eh_handler_and_replace, foreach_reachable_handler,
10969 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
10970 * except.h (struct eh_region): Remove eh_region_u_cleanup.
10971 (gen_eh_region_cleanup): Update prototype.
10972
10973 2009-05-09 Jan Hubicka <jh@suse.cz>
10974
10975 PR middle-end/40043
10976 * except.c (copy_eh_region): Always set prev_try.
10977 (redirect_eh_edge_to_label): Find outer try.
10978 (foreach_reachable_handler): When looking for prev try
10979 handle case where previous try is not going to be taken.
10980
10981 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10982
10983 PR tree-optimization/40049
10984 * tree-vect-stmts.c (vectorizable_operation): If the machine has
10985 only vector/vector shifts, convert the type of the constant to the
10986 appropriate type to avoid building incorrect trees, which
10987 eventually have problems with garbage collection.
10988
10989 2009-05-08 Joseph Myers <joseph@codesourcery.com>
10990
10991 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
10992 -1 for complex floating-point types if honoring signed zeros.
10993
10994 2009-05-08 Jan Hubicka <jh@suse.cz>
10995
10996 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
10997 argument; handle correctly when profile is absent.
10998 (build_cgraph_edges): Update.
10999 (rebuild_cgraph_edges): Update.
11000 * cgraph.c: Do not include varray.h.
11001 (cgraph_set_call_stmt_including_clones): New function.
11002 (cgraph_create_edge_including_clones): Likewise
11003 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
11004 (cgraph_update_edges_for_call_stmt): Handle clones.
11005 (cgraph_remove_node): Handle clone tree.
11006 (cgraph_remove_node_and_inline_clones): New function.
11007 (dump_cgraph_node): Dump clone tree.
11008 (cgraph_clone_node): Handle clone tree.
11009 (clone_function_name): Bring here from tree-inline.c.
11010 (cgraph_create_virtual_clone): New function.
11011 * cgraph.h (ipa_replace_map): Move here from ipa.h.
11012 (cgraph_clone_info): New function.
11013 (strut cgraph_node): Add clone_info and new clone tree pointers.
11014 (cgraph_remove_node_and_inline_clones,
11015 cgraph_set_call_stmt_including_clones,
11016 cgraph_create_edge_including_clones,
11017 cgraph_create_virtual_clone): Declare.
11018 (cgraph_function_versioning): Use VEC argument.
11019 (compute_call_stmt_bb_frequency): Update prototype.
11020 (cgraph_materialize_all_clones): New function.
11021 * ipa-cp.c (ipcp_update_cloned_node): Remove.
11022 (ipcp_create_replace_map): Update to VECtors.
11023 (ipcp_update_callgraph): Use virtual clones.
11024 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
11025 (ipcp_update_profiling): Do not update local profiling.
11026 (ipcp_insert_stage): Use VECtors and virtual clones.
11027 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
11028 (clone_of_p): New function.
11029 (cgraph_preserve_function_body_p): Use clone tree.
11030 (cgraph_optimize): Materialize clones.
11031 (cgraph_function_versioning): Update for VECtors.
11032 (save_inline_function_body): Use clone tree.
11033 (cgraph_materialize_clone): New function.
11034 (cgraph_materialize_all_clones): Likewise.
11035 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
11036 * ipa.c: Include gimple.h.
11037 (cgraph_remove_unreachable_nodes): Use clone tree.
11038 * ipa-prop.c (ipa_note_param_call): Update call to
11039 compute_call_stmt_bb_frequencycall.
11040 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
11041 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
11042 (copy_bb): Handle updating of clone tree; add new edge when new call
11043 appears.
11044 (expand_call_inline): Be strict about every call having edge.
11045 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
11046 (delete_unreachable_blocks_update_callgraph): New function.
11047 (tree_function_versioning): Use VECtors; always remove unreachable
11048 blocks and fold conditionals.
11049 * tree-inline.h: Do not include varray.h.
11050 (tree_function_versioning): Remove.
11051 * Makefile.in (GTFILES): Remove tree-inline.c
11052 * passes.c (do_per_function): Do only functions having body.
11053 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
11054 tree.
11055
11056 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
11057 Andrew Morrow <acm@google.com>
11058
11059 PR c/36892
11060 * c-common.c (c_common_attribute_table): Permit deprecated
11061 attribute to take an optional argument.
11062 (handle_deprecated_attribute): If the optional argument to
11063 __attribute__((deprecated)) is not a string ignore the attribute
11064 and emit a warning.
11065
11066 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
11067 * c-typeck.c (build_component_ref): Likewise.
11068 (build_external_ref): Likewise.
11069
11070 * toplev.c (warn_deprecated_use): Add an attribute argument.
11071 Emit the message associated with __attribute__((deprecated)).
11072
11073 * toplev.h (warn_deprecated_use): Updated.
11074
11075 * doc/extend.texi: Document new optional parameter to
11076 __attribute__((deprecated))
11077
11078 2009-05-08 Michael Eager <eager@eagercon.com>
11079
11080 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
11081 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
11082
11083 2009-05-08 Richard Guenther <rguenther@suse.de>
11084
11085 PR tree-optimization/40062
11086 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
11087 Avoid exponential behavior.
11088
11089 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
11090
11091 PR rtl-optimization/33928
11092 PR 26854
11093 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
11094 process_uses, build_single_def_use_links): New.
11095 (update_df): Update use_def_ref.
11096 (forward_propagate_into): Use get_def_for_use instead of use-def
11097 chains.
11098 (fwprop_init): Call build_single_def_use_links and let it initialize
11099 dataflow.
11100 (fwprop_done): Free use_def_ref.
11101 (fwprop_addr): Eliminate duplicate call to df_set_flags.
11102 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
11103 df_rd_simulate_one_insn): New.
11104 (df_rd_bb_local_compute_process_def): Update head comment.
11105 (df_chain_create_bb): Use the new RD simulation functions.
11106 * df.h (df_rd_simulate_artificial_defs_at_top,
11107 df_rd_simulate_one_insn): New.
11108 * opts.c (decode_options): Enable fwprop at -O1.
11109 * doc/invoke.texi (-fforward-propagate): Document this.
11110
11111 2009-05-08 Joseph Myers <joseph@codesourcery.com>
11112
11113 PR c/24581
11114 * c-typeck.c (build_binary_op): Handle arithmetic between one real
11115 and one complex operand specially.
11116 * tree-complex.c (some_nonzerop): Do not identify a real value as
11117 zero if flag_signed_zeros.
11118
11119 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
11120
11121 PR rtl-optimization/33928
11122 * loop-invariant.c (record_use): Fix && vs. || mishap.
11123
11124 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
11125
11126 PR rtl-optimization/33928
11127 * loop-invariant.c (struct use): Add addr_use_p.
11128 (struct def): Add n_addr_uses.
11129 (struct invariant): Add cheap_address.
11130 (create_new_invariant): Set cheap_address.
11131 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
11132 (record_uses): Pass df_ref to record_use.
11133 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
11134 used only as such.
11135
11136 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
11137
11138 * config/sh/sh.c: Do not include c-pragma.h.
11139
11140 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
11141
11142 * config/spu/spu.c: Remove include of c-common.h.
11143
11144 2009-05-07 Janis Johnson <janis187@us.ibm.com>
11145
11146 PR c/39037
11147 * c-common.h (mark_valid_location_for_stdc_pragma,
11148 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
11149 clear_float_const_decimal64, float_const_decimal64_p): New.
11150 * c.opt (Wunsuffixed-float-constants): New.
11151 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
11152 unsuffixed float constant, handle new warning.
11153 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
11154 * c-decl.c (c_scope): New flag float_const_decimal64.
11155 (set_float_const_decimal64, clear_float_const_decimal64,
11156 float_const_decimal64_p): New.
11157 (push_scope): Set new flag.
11158 * c-parser.c (c_parser_translation_unit): Mark when it's valid
11159 to use STDC pragmas.
11160 (c_parser_external_declaration): Ditto.
11161 (c_parser_compound_statement_nostart): Ditto.
11162 * c-pragma.c (valid_location_for_stdc_pragma,
11163 mark_valid_location_for_stdc_pragma,
11164 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
11165 handle_pragma_float_const_decimal64): New.
11166 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
11167 * cp/semantics.c (valid_location_for_stdc_pragma_p,
11168 set_float_const_decimal64, clear_float_const_decimal64,
11169 float_const_decimal64_p): New dummy functions.
11170 * doc/extend.texi (Decimal Float): Remove statement that the
11171 pragma, and suffix for double constants, are not supported.
11172 * doc/invoke.texi (Warning Options): List new option.
11173 (-Wunsuffixed-float-constants): New.
11174
11175 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
11176
11177 * config/i386/i386.c: Do not include c-common.h.
11178
11179 2009-05-07 Mark Heffernan <meheff@google.com>
11180
11181 * doc/invoke.texi (Debugging Options): Document change of debugging
11182 dump location.
11183 * opts.c (decode_options): Make dump_base_name relative to
11184 aux_base_name directory.
11185
11186 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
11187
11188 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
11189 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
11190
11191 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
11192
11193 * Makefile.in (install-plugin): Simplify a bit.
11194
11195 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
11196
11197 * Makefile.in (OBJS-common): Add regcprop.o.
11198 (regcprop.o): New.
11199 * timevar.def (TV_CPROP_REGISTERS): New.
11200 * regrename.c (regrename_optimize): Return 0.
11201 (rest_of_handle_regrename): Delete.
11202 (pass_rename_registers): Point to regrename_optimize.
11203 (struct value_data_entry, struct value_data,
11204 kill_value_one_regno, kill_value_regno, kill_value,
11205 set_value_regno, init_value_data, kill_clobbered_value,
11206 kill_set_value, kill_autoinc_value, copy_value,
11207 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
11208 replace_oldest_value_reg, replace_oldest_value_addr,
11209 replace_oldest_value_mem, copyprop_hardreg_forward_1,
11210 debug_value_data, validate_value_data): Move...
11211 * regcprop.c: ... here.
11212 (rest_of_handle_cprop): Delete.
11213 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
11214
11215 2009-05-07 Jakub Jelinek <jakub@redhat.com>
11216
11217 PR middle-end/40057
11218 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
11219 GEN_INT for 1 << bitnum.
11220 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
11221 build_int_cst_type.
11222
11223 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
11224
11225 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
11226 Remove wrong description of "nand" operation.
11227
11228 2009-05-06 Richard Guenther <rguenther@suse.de>
11229 Adam Nemet <anemet@caviumnetworks.com>
11230
11231 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
11232 comment. Add that if LHS is not a gimple register, then RHS1 has
11233 to be a single object (GIMPLE_SINGLE_RHS).
11234
11235 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
11236
11237 * expr.c (get_def_for_expr): Move it up in the file.
11238 (store_field): When expanding a bit-field store, look at the
11239 defining gimple stmt for the masking conversion.
11240
11241 2009-05-06 Janis Johnson <janis187@us.ibm.com>
11242
11243 PR middle-end/39986
11244 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
11245 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
11246 32-bit memcpy into long.
11247
11248 2009-05-06 Jakub Jelinek <jakub@redhat.com>
11249
11250 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
11251 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
11252 new_reg_loc_descr.
11253 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
11254 instead of appending DW_OP_deref*.
11255
11256 2009-05-06 Michael Matz <matz@suse.de>
11257
11258 PR middle-end/40021
11259 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
11260 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
11261
11262 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
11263
11264 * Makefile.in (install-plugin): Fix srcdir handling.
11265
11266 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
11267
11268 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
11269 when processing for not_regs_needed bitmap.
11270 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
11271 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
11272 handling it for rhs.
11273
11274 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
11275
11276 * config/i386/i386.md (unnamed inc/dec peephole): Use
11277 optimize_insn_for_size_p instead of optimize_size.
11278 * config/i386/predicates.md (incdec_operand): Likewise.
11279 (aligned_operand): Likewise.
11280 * config/i386/sse.md (divv8sf3): Likewise.
11281 (sqrtv8sf2): Likewise.
11282
11283 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
11284
11285 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
11286
11287 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
11288
11289 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
11290
11291 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
11292 ssemodesuffixf2c with avxmodesuffixf2c.
11293
11294 2009-05-06 Joseph Myers <joseph@codesourcery.com>
11295
11296 PR c/40032
11297 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
11298
11299 2009-05-05 Jakub Jelinek <jakub@redhat.com>
11300
11301 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
11302 (struct tree_base): Adjust spacing for 8 bit boundaries.
11303 (struct tree_decl_common): Add decl_by_reference_flag bit.
11304 (DECL_BY_REFERENCE): Adjust.
11305 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
11306 print DECL_BY_REFERENCE bit.
11307 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
11308 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
11309 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
11310 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
11311 unconditionally.
11312
11313 PR middle-end/39666
11314 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
11315 range of the type, but default label is missing, add it with one
11316 of the existing labels instead of adding a new label for it.
11317
11318 2009-05-05 Joseph Myers <joseph@codesourcery.com>
11319
11320 * dwarf.h: Remove.
11321
11322 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
11323
11324 * Makefile.in (enable_plugin, plugin_includedir): New.
11325 (install): Depend on install-plugin.
11326 (PLUGIN_HEADERS): New.
11327 (install-plugin): New.
11328 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
11329
11330 2009-05-05 Richard Guenther <rguenther@suse.de>
11331
11332 PR tree-optimization/40022
11333 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
11334 the only vuse.
11335 (phivn_valid_p): Fix tuplification error, simplify.
11336 (phiprop_insert_phi): Add dumps.
11337 (propagate_with_phi): Simplify.
11338
11339 2009-05-05 Richard Guenther <rguenther@suse.de>
11340
11341 PR middle-end/40023
11342 * builtins.c (gimplify_va_arg_expr): Properly build the address.
11343
11344 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
11345
11346 * tree.h (strip_float_extensions): Remove duplicate declaration.
11347 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
11348 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
11349 block_ultimate_origin): Rearrange the declarations line to match the
11350 comment that indicates the .c file which the functions are defined.
11351 (dwarf2out_*, set_decl_rtl): Add comment.
11352 (get_base_address): Adjust comment.
11353 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
11354 declarations line and add comment.
11355 (is_builtin_name): Add blank after function name, for clarity.
11356
11357 2009-05-04 Joseph Myers <joseph@codesourcery.com>
11358
11359 * attribs.c (decl_attributes): Use %qE for identifiers in
11360 diagnostics.
11361 * cgraphunit.c (verify_cgraph_node): Translate function names to
11362 locale character set in diagnostics.
11363 * coverage.c (get_coverage_counts): Use %qE for identifiers in
11364 diagnostics.
11365 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
11366 Document that functions are named in UTF-8.
11367 * expr.c (expand_expr_real_1): Translate function names to locale
11368 character set in diagnostics.
11369 * gimplify.c (omp_notice_variable, omp_is_private,
11370 gimplify_scan_omp_clauses): Use %qE for identifiers in
11371 diagnostics.
11372 * langhooks.c (lhd_print_error_function): Translate function names
11373 to locale character set.
11374 * langhooks.h (decl_printable_name): Document that return value is
11375 in internal character set.
11376 * stmt.c: Include pretty-print.h
11377 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
11378 diagnostics.
11379 (resolve_operand_name_1): Translate named operand name to locale
11380 character set.
11381 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
11382 diagnostics.
11383 * toplev.c (announce_function): Translate function names to locale
11384 character set.
11385 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
11386 (default_tree_printer): Use pp_identifier or translate identifiers
11387 to locale character set. Mark "<anonymous>" for translation.
11388 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
11389 for identifiers in diagnostics.
11390 * tree.c (handle_dll_attribute): Use %qE for identifiers in
11391 diagnostics.
11392 * varasm.c (output_constructor): Use %qE for identifiers in
11393 diagnostics.
11394
11395 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
11396
11397 * configure.ac: use ` ` instead of $()
11398 * configure: Regenerate.
11399
11400 2009-05-05 Ben Elliston <bje@au.ibm.com>
11401
11402 * config/pa/linux-atomic.c: Eliminate conditional include of
11403 errno.h on non-LP64 systems to simplify build requirements.
11404
11405 2009-05-04 Joseph Myers <joseph@codesourcery.com>
11406
11407 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
11408 diagnostics.
11409 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
11410 and pass value to identifier_to_locale.
11411 (warn_variable_length_array): Make name a tree.
11412 (grokdeclarator): Separate diagnostic texts for named and unnamed
11413 declarators. Use %qE for named declarators.
11414 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
11415 diagnostics.
11416 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
11417 identifiers in diagnostics.
11418 * c-typeck.c (push_member_name, start_init): Pass identifiers to
11419 identifier_to_locale. Mark "anonymous" strings for translation.
11420
11421 2009-05-04 Michael Eager <eager@eagercon.com>
11422
11423 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
11424 address for DImode/DFmode only if double-precision FP regs.
11425
11426 2009-05-04 Michael Eager <eager@eagercon.com>
11427
11428 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
11429 TARGET_SINGLE_FLOAT check.
11430
11431 2009-05-04 Michael Eager <eager@eagercon.com>
11432
11433 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
11434
11435 2009-05-04 Michael Eager <eager@eagercon.com>
11436
11437 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
11438 * config/rs6000/t-xilinx: New
11439
11440 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
11441
11442 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
11443 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
11444 * gcc/explow.c (memory_address): Use target hook.
11445 * gcc/targhooks.c (default_legitimize_address): New.
11446 * gcc/targhooks.h (default_legitimize_address): New.
11447 * gcc/target.h (legitimize_address): New.
11448 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
11449 (TARGET_INITIALIZER): Include it.
11450 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
11451
11452 * config/bfin/bfin-protos.h (legitimize_address): Remove.
11453 * config/bfin/bfin.c (legitimize_address): Remove.
11454 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
11455 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
11456 Remove.
11457 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
11458 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
11459
11460 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
11461 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
11462 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
11463 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
11464 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
11465 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
11466 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
11467 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
11468 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
11469 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
11470 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
11471 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
11472 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
11473 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
11474 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
11475 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
11476 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
11477 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
11478 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
11479 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
11480 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
11481 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
11482 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
11483
11484 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
11485 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
11486 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
11487 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
11488 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
11489 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
11490 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
11491 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
11492 (thumb_legitimize_address): Delete.
11493 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
11494 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
11495 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
11496 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
11497 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
11498 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
11499 Delete.
11500 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
11501 Delete.
11502
11503 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
11504 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
11505 * config/m32r/m32r.c (m32r_legitimize_address): New.
11506 * config/m68k/m68k.c (m68k_legitimize_address): New.
11507 * config/score/score.c (score_legitimize_address): Standardize.
11508 * config/score/score3.c (score3_legitimize_address): Standardize.
11509 * config/score/score3.h (score3_legitimize_address): Adjust.
11510 * config/score/score7.c (score7_legitimize_address): Standardize.
11511 * config/score/score7.h (score7_legitimize_address): Adjust.
11512 * config/sh/sh.c (sh_legitimize_address): New.
11513 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
11514
11515 * gcc/config/s390/s390.c (legitimize_address): Rename to...
11516 (s390_legitimize_address): ... this.
11517 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
11518 (sparc_legitimize_address): ... this.
11519 * gcc/config/i386/i386.c (legitimize_address): Rename to...
11520 (ix86_legitimize_address): ... this.
11521 * gcc/config/avr/avr.c (legitimize_address): Rename to...
11522 (avr_legitimize_address): ... this.
11523 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
11524 (mn10300_legitimize_address): ... this.
11525 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
11526 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
11527 (alpha_expand_mov): Adjust call.
11528
11529 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
11530 * config/spu/spu.c (spu_legitimize_address): Likewise.
11531 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
11532 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
11533
11534 2009-05-04 Joseph Myers <joseph@codesourcery.com>
11535
11536 * intl.c (locale_encoding, locale_utf8): New.
11537 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
11538 * intl.h (locale_encoding, locale_utf8): Declare.
11539 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
11540 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
11541 New.
11542 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
11543 argument.
11544 (pp_tree_identifier): Define to call pp_base_tree_identifier.
11545 (pp_base_tree_identifier): Declare as function.
11546 (identifier_to_locale): Declare.
11547 * Makefile.in (pretty-print.o): Update dependencies.
11548 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
11549
11550 2009-05-04 Richard Guenther <rguenther@suse.de>
11551
11552 PR middle-end/40015
11553 * builtins.c (fold_builtin_memory_op): Do not decay to element
11554 type if the size matches the whole array.
11555
11556 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
11557
11558 * expmed.c (synth_mult): When trying out a shift, pass the result
11559 of a signed shift.
11560
11561 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
11562
11563 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
11564 (shiftsub1_cost): New.
11565 (init_expmed): Compute shiftsub1_cost.
11566 (synth_mult): Optimize multiplications by constants of the form
11567 -(2^^m-1) for some constant positive integer m.
11568
11569 2009-05-03 Richard Guenther <rguenther@suse.de>
11570
11571 PR c/39983
11572 * c-typeck.c (array_to_pointer_conversion): Do not built
11573 ADDR_EXPRs of arrays of pointer-to-element type.
11574 * c-gimplify.c (c_gimplify_expr): Revert change fixing
11575 up wrong ADDR_EXPRs after-the-fact.
11576 * c-common.c (strict_aliasing_warning): Strip pointer
11577 conversions for obtaining the original type.
11578 * builtins.c (fold_builtin_memset): Handle array types.
11579 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
11580 and array types
11581
11582 2009-05-03 Richard Guenther <rguenther@suse.de>
11583
11584 PR middle-end/23329
11585 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
11586 Do not lose casts from array types with unknown extent to array
11587 types with known extent.
11588 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
11589 alias set compatibility.
11590
11591 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
11592
11593 * flags.h (extra_warnings): Delete.
11594 * toplev.c (process_options): Handle Wuninitialized here.
11595 * opts.c (extra_warnings): Delete.
11596 (set_Wextra): Delete.
11597 (common_handle_option): -Wextra can be handled automatically.
11598 * c-opts.c (c_common_handle_option): Delete obsolete code.
11599 (c_common_post_options): Simplify comment.
11600 * common.opt (W): Add Var.
11601 (Wextra): Add Var.
11602 (Wuninitialized): Initialize to -1.
11603
11604 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
11605 Richard Guenther <rguenther@suse.de>
11606
11607 * expr.c (get_def_for_expr): New function.
11608 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
11609 SSA rather than trees.
11610 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
11611 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
11612
11613 2009-05-03 Joseph Myers <joseph@codesourcery.com>
11614
11615 * c-common.c (reswords): Add _Imaginary.
11616 * c-common.c (enum rid): Add RID_IMAGINARY.
11617
11618 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
11619
11620 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
11621 Patch by Richard Guenther.
11622
11623 2009-05-03 Anatoly Sokolov <aesok@post.ru>
11624
11625 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
11626 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
11627 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
11628 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
11629 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
11630 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
11631 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
11632 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
11633 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
11634 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
11635 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
11636 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
11637 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
11638 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
11639 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
11640 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
11641 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
11642 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
11643
11644 2009-05-02 Richard Guenther <rguenther@suse.de>
11645
11646 PR tree-optimization/39940
11647 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
11648 doing so.
11649
11650 2009-05-02 Richard Guenther <rguenther@suse.de>
11651
11652 PR middle-end/40001
11653 * tree-ssa.c (execute_update_addresses_taken): Properly check
11654 if we can mark a variable DECL_GIMPLE_REG_P.
11655 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
11656 back to the end of the function.
11657 (is_gimple_reg_type): Remove complex type special casing.
11658 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
11659 if not optimizing.
11660
11661 2009-05-02 Ben Elliston <bje@au.ibm.com>
11662
11663 * doc/collect2.texi (Collect2): Document search path behaviour
11664 when configured with --with-ld.
11665
11666 2009-05-02 Jan Hubicka <jh@suse.cz>
11667
11668 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
11669 parameter; update callers.
11670 (coalesce_cost_edge): EH edges are costier because they needs
11671 splitting even if not critical and even more costier when there are
11672 multiple EH predecestors.
11673
11674 2009-05-02 Jan Hubicka <jh@suse.cz>
11675
11676 * except.c (remove_eh_handler_and_replace): Handle updating after
11677 removing TRY blocks.
11678
11679 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
11680
11681 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
11682
11683 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
11684
11685 * varasm.c: Do not include c-pragma.h.
11686 * attribs.c: Do not incude c-common.h.
11687
11688 2009-05-01 Michael Matz <matz@suse.de>
11689
11690 * calls.c (initialize_argument_information): Handle SSA names like
11691 decls with a non MEM_P DECL_RTL.
11692
11693 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
11694
11695 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
11696 * ipa-utils.c: Likewise.
11697 * ipa-type-escape.c: Likewise.
11698 * cgraphunit.c Do not include c-common.h.
11699 * ipa-pure-const.c: Likewise.
11700 * tree-if-conv.c: Likewise.
11701 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
11702 * ipa-struct-reorg.c: Likewise.
11703 * tree-nomudflap.c: Likewise.
11704 * tree-ssa-structalias.c: Likewise.
11705
11706 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
11707
11708 * store-motion.c: Many cleanups to make this pass a first-class
11709 citizen instead of an appendix to gcse load motion. Add TODO list
11710 to make this pass faster/cleaner/better.
11711
11712 (struct ls_expr): Post gcse.c-split cleanups.
11713 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
11714 "stores" field to "avail_stores".
11715 (pre_ldst_mems): Rename to store_motion_mems.
11716 (pre_ldst_table): Rename to store_motion_mems_table.
11717 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
11718 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
11719 (ldst_entry): Rename to st_expr_entry, update users.
11720 (free_ldst_entry): Rename to free_st_expr_entry, update users.
11721 (free_ldst_mems): Rename to free_store_motion_mems, update users.
11722 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
11723 update caller.
11724 (first_ls_expr): Rename to first_st_expr, update users.
11725 (next_ls_expr): Rename to next_st_expr, update users.
11726 (print_ldst_list): Rename to print_store_motion_mems. Print names of
11727 fields properly for store motion instead of names inherited from load
11728 motion in gcse.c.
11729 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
11730 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
11731 are done with it.
11732
11733 (ae_kill): Rename to st_kill, update users.
11734 (ae_gen): Rename to st_avloc, update users.
11735 (transp): Rename to st_transp, update users.
11736 (pre_insert_map): Rename to st_insert_map, update users.
11737 (pre_delete_map): Rename to st_delete_map, update users.
11738 (insert_store, build_store_vectors, free_store_memory,
11739 one_store_motion_pass): Update for abovementioned changes.
11740
11741 (gcse_subst_count, gcse_create_count): Remove.
11742 (one_store_motion_pass): New statistics counters "n_stores_deleted"
11743 and "n_stores_created", local variables.
11744
11745 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
11746 use for_each_rtx.
11747
11748 (regvec, compute_store_table_current_insn): Remove.
11749 (reg_set_info, reg_clear_last_set): Remove.
11750 (compute_store_table): Use DF caches instead of local dataflow
11751 solvers.
11752
11753 2009-05-01 Joseph Myers <joseph@codesourcery.com>
11754
11755 * c-objc-common.c (c_tree_printer): Print identifiers with
11756 pp_identifier, not pp_string. Mark "({anonymous})" for
11757 translation.
11758 * c-pretty-print.c (pp_c_ws_string): New.
11759 (pp_c_cv_qualifier, pp_c_type_specifier,
11760 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
11761 pp_c_storage_class_specifier, pp_c_function_specifier,
11762 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
11763 pp_c_primary_expression, pp_c_postfix_expression,
11764 pp_c_unary_expression, pp_c_shift_expression,
11765 pp_c_relational_expression, pp_c_equality_expression,
11766 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
11767 use pp_string and pp_c_ws_string in place of pp_identifier and
11768 pp_c_identifier for non-identifiers. Mark English strings for
11769 translation.
11770 * c-pretty-print.h (pp_c_ws_string): Declare.
11771
11772 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
11773 Roland McGrath <roland@redhat.com>
11774
11775 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
11776 (ENABLE_LD_BUILDID): New configuration option.
11777 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
11778 (LINK_BUILDID_SPEC): New macro.
11779 (init_spec): If defined, prepend it between LINK_EH_SPEC and
11780 link_spec.
11781 * doc/install.texi: Document --enable-linker-build-id option.
11782 * configure: Rebuild.
11783 * config.in: Rebuild.
11784
11785 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
11786
11787 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
11788 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
11789 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
11790 MIPS_GP_SAVE_AREA_SIZE.
11791 * config/mips/mips.c (struct mips_frame_info): Update comment
11792 before arg_pointer_offset and hard_frame_pointer_offset.
11793 (mips_compute_frame_info): Update diagram before function: to
11794 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
11795 indicate the position of frame_pointer_rtx with -fstack-protector and
11796 to show args_size. Don't allocate cprestore area for leaf functions
11797 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
11798 cprestore_size.
11799 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
11800
11801 2009-04-30 Michael Matz <matz@suse.de>
11802
11803 PR tree-optimization/39955
11804 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
11805
11806 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
11807
11808 * ira.c (setup_cover_and_important_classes): Use safe macro
11809 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
11810 directly.
11811 * genpreds.c (write_tm_preds_h): Output suitable definition of
11812 REG_CLASS_FOR_CONSTRAINT.
11813
11814 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
11815
11816 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
11817 instead of an int.
11818 * bitmap.c (bitmap_descriptor): Likewise.
11819 * ggc-common.c (loc_descriptor): Likewise.
11820 * varray.c (varray_descriptor): Likewise.
11821 * vec.c (vec_descriptor): Likewise.
11822
11823 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
11824
11825 * Makefile.in (dce.o): Add $(EXCEPT_H).
11826 * dce.c: Include except.h and delete redundant vector definitions.
11827 (deletable_insn_p): Return false for non-call insns that can throw
11828 if DF is running.
11829
11830 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
11831
11832 * gcse.c (ae_gen): Remove.
11833 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
11834 and make non-static function to make it available in store-motion.c.
11835 Update call sites with search-and-replace.
11836 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
11837 extract_mentioned_regs, extract_mentioned_regs_helper,
11838 find_moveable_store, compute_store_table, load_kills_store, find_loads,
11839 store_killed_in_insn, store_killed_after, store_killed_before,
11840 build_store_vectors, insert_insn_start_basic_block, insert-store,
11841 remove_reachable_equiv_notes, replace_store_insn, delete_store,
11842 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
11843 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
11844 * store-motion.c: ...new file. Also copy data structures from gcse.c
11845 and clean up to remove parts not used by store motion.
11846 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
11847 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
11848
11849 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11850
11851 PR target/38571
11852 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
11853 when optimizing for size.
11854
11855 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
11856
11857 * gcse.c (gcse_constant_p): Fix typo in last change.
11858
11859 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
11860
11861 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
11862
11863 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
11864
11865 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
11866
11867 2009-04-29 James E. Wilson <wilson@codesourcery.com>
11868
11869 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
11870 CONST_HIGH_PART result.
11871
11872 2009-04-29 Anatoly Sokolov <aesok@post.ru>
11873
11874 * config/avr/avr.c (initial_elimination_offset): Rename to
11875 avr_initial_elimination_offset.
11876 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
11877 change return type to bool.
11878 (avr_can_eliminate): New function.
11879 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
11880 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
11881 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
11882 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
11883 avr_initial_elimination_offset.
11884 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
11885 (avr_initial_elimination_offset): Define.
11886
11887 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
11888 Steven Bosscher <steven@gcc.gnu.org>
11889
11890 PR rtl-optimization/39938
11891 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
11892 * cfgrtl.c: Include insn-attr.h.
11893 (rest_of_pass_free_cfg): New function.
11894 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
11895 * resource.c (init_resource_info): Remove call to df_analyze.
11896
11897 2009-04-29 Richard Guenther <rguenther@suse.de>
11898
11899 PR target/39943
11900 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
11901 allow conversion to signed integers.
11902
11903 2009-04-29 Richard Guenther <rguenther@suse.de>
11904
11905 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
11906 shifts of floating point vectors if the shift amount is
11907 a constant multiple of the element size.
11908
11909 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
11910 Michael Matz <matz@suse.de>
11911
11912 PR middle-end/39927
11913 PR bootstrap/39929
11914 * tree-outof-ssa.c (emit_partition_copy): New function.
11915 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
11916 insert_part_to_rtx_on_edge): Perform the partition base var
11917 copy using emit_partition_copy.
11918 (insert_value_copy_on_edge): Convert constants to the right mode.
11919 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
11920 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
11921
11922 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11923
11924 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
11925 scan backwards to try to find a constant to initialize it.
11926
11927 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
11928 insn before the loop_end instruction, don't look past labels.
11929
11930 2009-04-29 Richard Guenther <rguenther@suse.de>
11931
11932 PR middle-end/39937
11933 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
11934 loose type conversions.
11935 (forward_propagate_addr_expr): Fix tuplification bug. Remove
11936 stmts only if there are no uses of its definition.
11937
11938 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11939
11940 * config/bfin/bfin.h (splitting_loops): Declare.
11941 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
11942 Reorder bit definitions to be ascending.
11943 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
11944 * config/bfin/bfin.c (splitting_loops): New variable.
11945 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
11946 (struct loop_info): Remove members INIT and LOOP_INIT.
11947 (bfin_optimize_loop): Don't set them. Reorder the code that generates
11948 the LSETUP sequence. Allow LC to be loaded from any register, but
11949 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
11950 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
11951 set to 1.
11952 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
11953 of reload_completed.
11954
11955 From Jie Zhang:
11956 * config/bfin/bfin.md (movsi_insn): Refine constraints.
11957
11958 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
11959
11960 * Makefile.in (PLUGIN_VERSION_H): New.
11961 (OBJS-common): Remove plugin-version.o.
11962 (plugin.o): Depend on (PLUGIN_VERSION_H).
11963 (plugin-version.o): Remove.
11964 * configure: Regenerate
11965 * configure.ac: Create plugin-version.h.
11966 * gcc-plugin.h (plugin_gcc_version): Remove.
11967 (plugin_default_version_check): Change signature.
11968 * plugin-version.c: Remove.
11969 * plugin.c: Include plugin-version.h.
11970 (str_plugin_gcc_version_name): Remove.
11971 (try_init_one_plugin): Pass gcc version to plugin_init.
11972 (plugin_default_version_check): Both gcc and plugin versions are now
11973 arguments.
11974
11975 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11976
11977 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
11978 problematic last insns. Test for TYPE_CALL rather than CALL_P.
11979 Remove special case testing for last insn of inner loops. Don't fail
11980 if the loop ends with a jump, emit an extra nop instead.
11981
11982 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
11983 DREGS rather than comparing directly. Remove code that tries to
11984 account for latencies.
11985
11986 2009-04-29 Richard Guenther <rguenther@suse.de>
11987
11988 PR tree-optimization/39941
11989 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
11990 eliminating an indirect call.
11991
11992 2009-04-29 Richard Guenther <rguenther@suse.de>
11993
11994 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
11995 parameter. Allow invariants as base if !require_lvalue.
11996 (verify_gimple_assign_single): Adjust.
11997
11998 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11999
12000 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
12001 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
12002 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
12003 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
12004 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
12005 a VEC_SELECT.
12006 * config/bfin/bfin.c (bfin_expand_builtin,
12007 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
12008
12009 2009-04-28 Richard Guenther <rguenther@suse.de>
12010
12011 * tree-vect-loop.c (get_initial_def_for_induction): Use
12012 correct types for pointer increment.
12013
12014 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12015
12016 * toplev.c (print_version): Update GMP version string calculation.
12017
12018 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
12019
12020 PR rtl-optimization/39938
12021 * resource.c (init_resource_info): Add call to df_analyze.
12022
12023 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
12024
12025 * config/alpha/alpha.md (usegp): Cast the result of
12026 alpha_find_lo_sum_using_gp to enum attr_usegp.
12027 * config/alpha/alpha.c (override_options): Remove end-of-structure
12028 marker element from cpu_table. Use array size of cpu_table to handle
12029 -mcpu and -mtune options.
12030 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
12031
12032 2009-04-28 Joseph Myers <joseph@codesourcery.com>
12033
12034 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
12035 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
12036 tune_32 and tune_64.
12037 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12038 support on PowerPC.
12039 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
12040 * config/rs6000/option-defaults.h: ... here. New file.
12041 (OPT_64, OPT_32): Define.
12042 (MASK_64BIT): Define to 0 if not already defined.
12043 (OPT_ARCH64, OPT_ARCH32): Define.
12044 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
12045 and tune_64.
12046
12047 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12048
12049 * config/arm/arm.c (arm_override_options): Emit error on using
12050 fpa with AAPCS.
12051
12052 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
12053
12054 PR rtl-optimization/39914
12055 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12056 registers for allocnos created from user-defined variables only
12057 when not optimizing.
12058
12059 2009-04-28 Richard Guenther <rguenther@suse.de>
12060
12061 PR middle-end/39937
12062 * fold-const.c (fold_binary): Use distribute_real_division only
12063 on float types.
12064
12065 2009-04-28 Steve Ellcey <sje@cup.hp.com>
12066
12067 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
12068 add hpux-stdint.h to tm_file.
12069 (hppa[12]*-*-hpux11*): Ditto.
12070 (ia64*-*-hpux*): Ditto.
12071 * config/hpux-stdint.h: New.
12072 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
12073 __STDC_EXT__ for all compiles.
12074 * config/pa/pa-hpux.h: Ditto.
12075 * config/pa/pa-hpux10.h: Ditto.
12076 * config/pa/pa-hpux11.h: Ditto.
12077
12078 2009-04-28 Catherine Moore <clm@codesourcery.com>
12079
12080 * debug.h (set_name): Add comment.
12081
12082 2009-04-28 Andrew Pinski <pinskia@gmail.com>
12083
12084 PR target/39929
12085 * config/darwin.c (machopic_gen_offset): Check
12086 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
12087 * config/arm/arm.c (require_pic_register): Likewise.
12088
12089 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
12090
12091 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
12092 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
12093 m32c_promote_prototypes): Delete.
12094
12095 2009-04-28 Michael Matz <matz@suse.de>
12096
12097 PR middle-end/39922
12098 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
12099 constants.
12100
12101 2009-04-28 Richard Guenther <rguenther@suse.de>
12102
12103 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
12104
12105 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12106
12107 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
12108 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
12109 * config/arm/arm-tune.md: Regenerate.
12110
12111 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
12112
12113 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
12114 block if there are complex incoming edges.
12115 (sel_merge_blocks): Remove useless assert.
12116 (sel_redirect_edge_and_branch): Check that edge was redirected.
12117 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
12118 (sel_find_rgns): Delete declaration.
12119 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
12120 the region when it is not a preheader.
12121
12122 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
12123
12124 PR c/39323
12125 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
12126
12127 2009-04-28 Richard Guenther <rguenther@suse.de>
12128
12129 * tree.h (SSA_NAME_VALUE): Remove.
12130 (struct tree_ssa_name): Remove value_handle member.
12131 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
12132 array for jump threading.
12133 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
12134 SSA_NAME_VALUEs.
12135 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
12136 * tree-flow.h (threadedge_initialize_values): Declare.
12137 (threadedge_finalize_values): Likewise.
12138 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
12139 (SSA_NAME_VALUE): Define.
12140 (threadedge_initialize_values): New function.
12141 (threadedge_finalize_values): Likewise.
12142 * tree-ssa-dom.c (ssa_name_values): New global variable.
12143 (SSA_NAME_VALUE): Define.
12144 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
12145
12146 2009-04-28 Ira Rosen <irar@il.ibm.com>
12147
12148 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
12149 Use REPORT_VECTORIZED_LOCATIONS instead
12150 REPORT_VECTORIZED_LOOPS.
12151 * tree-vectorizer.c (vect_verbosity_level): Make static.
12152 (vect_loop_location): Rename to vect_location.
12153 (vect_set_verbosity_level): Update comment.
12154 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
12155 and vect_location.
12156 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
12157 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
12158 instead REPORT_UNVECTORIZED_LOOPS.
12159 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
12160 and vect_loop_def to vect_external_def and vect_internal_def.
12161 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
12162 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
12163 REPORT_UNVECTORIZED_LOCATIONS.
12164 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
12165 and vect_used_in_loop and to vect_unused_in_scope and
12166 vect_used_in_scope.
12167 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
12168 (vect_verbosity_level): Remove declaration.
12169 (vect_analyze_operations): Likewise.
12170 (vect_analyze_stmt): Declare.
12171 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
12172 REPORT_UNVECTORIZED_LOCATIONS.
12173 (vect_get_loop_niters): Fix indentation.
12174 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
12175 (vect_analyze_loop_operations): New function.
12176 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
12177 vect_analyze_operations.
12178 (vect_is_simple_reduction): Use new names.
12179 (vectorizable_live_operation, vect_transform_loop): Likewise.
12180 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
12181 to specify whether the data references can be a part of interleaving
12182 chain.
12183 (vect_analyze_data_ref_dependence): Use new names.
12184 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
12185 (vect_create_addr_base_for_vector_ref): Remove redundant code.
12186 * tree-vect-patterns.c (widened_name_p): Use new names.
12187 (vect_recog_dot_prod_pattern): Likewise.
12188 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
12189 (process_use, vect_mark_stmts_to_be_vectorized,
12190 vect_model_simple_cost, vect_model_store_cost,
12191 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
12192 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
12193 vectorizable_operation, vectorizable_type_demotion,
12194 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
12195 vectorizable_condition): Likewise.
12196 (vect_analyze_operations): Split into vect_analyze_loop_operations
12197 and ...
12198 (vect_analyze_stmt): ... new function.
12199 (new_stmt_vec_info): Use new names.
12200 (vect_is_simple_use): Use new names and fix comment.
12201 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
12202 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
12203
12204 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
12205
12206 PR target/39911
12207 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
12208 and integer modes for x87 operands. Do not ICE for unsupported size,
12209 generate error instead. Generate error for unsupported operand types.
12210 ['z']: Do not handle HImode memory operands specially. Warning
12211 for floating-point operands. Fallthru to 'Z' for unsupported operand
12212 types. Do not ICE for unsupported size, generate error instead.
12213 (output_387_binary_op): Use %Z to output operands.
12214 (output_fp_compare): Ditto.
12215 (output_387_reg_move): Ditto.
12216
12217 2009-04-28 Ben Elliston <bje@au.ibm.com>
12218
12219 PR c++/35652
12220 Revert:
12221
12222 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12223
12224 * builtins.c (c_strlen): Do not warn here.
12225 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12226 * c-common.c (pointer_int_sum): Take an explicit location.
12227 Warn about offsets out of bounds.
12228 * c-common.h (pointer_int_sum): Adjust declaration.
12229
12230 2009-04-27 Ian Lance Taylor <iant@google.com>
12231
12232 * collect2.c (is_ctor_dtor): Change type of ret field in struct
12233 names to symkind.
12234 * dce.c (run_fast_df_dce): Change type of old_flags to int.
12235 * df-core.c (df_set_flags): Change return type to int. Change
12236 type of old_flags to int.
12237 (df_clear_flags): Likewise.
12238 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
12239 (df_get_conditional_uses): Likewise.
12240 * df.h (df_set_flags, df_clear_flags): Update declarations.
12241 * dwarf2out.c (struct indirect_string_node): Change type of form
12242 field to enum dwarf_form.
12243 (AT_string_form): Change return type to enum dwarf_form.
12244 * fixed-value.c (fixed_compare): Add cast to enum type.
12245 * fwprop.c (update_df): Change 0 to VOIDmode.
12246 * gensupport.c: Change 0 to UNKNOWN.
12247 * gimple.h (gimple_cond_code): Add cast to enum type.
12248 * haifa-sched.c (reemit_notes): Add cast to enum type.
12249 * hooks.c (hook_int_void_no_regs): Remove function.
12250 * hooks.h (hook_int_void_no_regs): Remove declaration.
12251 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
12252 * predict.c (combine_predictions_for_insn): Add casts to enum type.
12253 * real.c (real_arithmetic): Add cast to enum type.
12254 (real_compare): Likewise.
12255 * target.h (struct gcc_target): Change return type of
12256 branch_target_register_class to enum reg_class.
12257 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
12258 default_branch_target_register_class.
12259 * targhooks.c (default_branch_target_register_class): New function.
12260 * targhooks.h (default_branch_target_register_class): Declare.
12261 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
12262 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
12263 cast to int.
12264 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
12265 ERROR_MARK.
12266 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
12267 vect_uninitialized_def. Change 0 to ERROR_MARK.
12268 * tree-vect-stmts.c (supportable_widening_operation): Don't
12269 initialize icode1 and icode2.
12270 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
12271 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
12272 and to STD_C89.
12273 (cmn_err_flag_specs): Change 0 to STD_C89.
12274 (cmn_err_char_table): Likewise.
12275 * config/arm/arm.c (get_arm_condition_code): Change type of code
12276 to enum arm_cond_code.
12277 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
12278 (IWMMXT_BUILTIN2): Likewise.
12279 (neon_builtin_type_bits): Don't define typedef.
12280 (neon_builtin_datum): Change type of bits field to int.
12281 (arm_expand_neon_args): Add cast to enum type.
12282 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
12283 TLS_MODEL_NONE.
12284 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
12285 casts to enum type.
12286 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
12287 MIPS_FP_COND_f.
12288 * config/mips/mips.md (jal_macro): Return enum constant.
12289 (single_insn): Likewise.
12290 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
12291 CODE_FOR_nothing.
12292 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12293 casts to enum type.
12294 * config/s390/s390.c (s390_tune_flags): Change type to int.
12295 (s390_arch_flags): Likewise.
12296 (s390_handle_arch_option): Change flags field of struct pta to int.
12297 * config/s390/s390.h (s390_tune_flags): Update declaration.
12298 (s390_arch_flags): Likewise.
12299 * config/sh/sh.c (prepare_move_operands): Compare
12300 tls_symbolic_operand result with enum constant.
12301 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
12302 (sh_expand_prologue): Add cast to enum type.
12303 (sh_expand_epilogue): Likewise.
12304 (tls_symbolic_operand): Change return type to enum tls_model.
12305 (fpscr_set_from_mem): Add cast to enum type.
12306 (legitimize_pic_address): Compare tls_symbolic_operand result with
12307 enum constant.
12308 (sh_target_reg_class): Change return type to enum reg_class.
12309 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
12310 PROCESSOR_xxx.
12311 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
12312 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
12313 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
12314 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
12315 (delayed_branch, tls_call_delay): Likewise.
12316 (eligible_for_sibcall_delay): Likewise.
12317 (eligible_for_return_delay): Likewise.
12318 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
12319 (spu_expand_builtin_1): Likewise.
12320
12321 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
12322 for all types of conversions.
12323 (output_init_element): Issue -Wc++-compat warning if needed when
12324 initializing a bitfield with enum type.
12325 * c-parser.c (c_parser_expression): Set original_type to
12326 original_type of right hand operand of comma operator.
12327
12328 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12329
12330 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
12331 grammar nits.
12332 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
12333 * doc/cpp.texi (Standard Predefined Macros)
12334 (Implementation-defined behavior): Likewise.
12335 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
12336 * doc/gimple.texi (GIMPLE Exception Handling)
12337 (@code{GIMPLE_ASSIGN}): Likewise.
12338 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
12339 * doc/invoke.texi (Warning Options, Optimize Options)
12340 (AVR Options, Darwin Options): Likewise.
12341 (Optimize Options): Reformulate -fwhole-program description.
12342 * doc/loop.texi (Lambda): Likewise.
12343 * doc/md.texi (Output Template, Define Constraints)
12344 (Standard Names, Insn Splitting): Likewise.
12345 * doc/options.texi (Option properties): Likewise.
12346 * doc/passes.texi (Tree-SSA passes): Likewise.
12347 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
12348 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
12349 (File Names and DBX): Likewise.
12350 * doc/trouble.texi (Incompatibilities): Likewise.
12351
12352 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
12353
12354 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
12355 instruction is correct.
12356
12357 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
12358
12359 Allow non-constant arguments to conversion intrinsics.
12360 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
12361 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
12362 * spu.c (print_operand): Handle 'v' and 'w'.
12363 (exp2_immediate_p, spu_gen_exp2): Define.
12364 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
12365 spu_convtf_1): Update parameter descriptions.
12366 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
12367 * constraints.md ('v', 'w'): New.
12368 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
12369 Remove.
12370 (i2f, I2F): New define_mode_attr.
12371 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
12372 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
12373 fixuns_truncv4sfv4si2): Update to use mode attribute.
12374 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
12375 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
12376 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
12377 patterns for combine.
12378
12379 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
12380
12381 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
12382 (cprop, hoist, pre, store_motion): New debug counters.
12383 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
12384 is not an RTL pass anymore.
12385 (pass_profiling): Remove extern decl for pass removed in 2005.
12386 (pass_gcse, pass_jump_bypass): Remove.
12387 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
12388 to 0 for clean state.
12389 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
12390 * cse.c (gate_handle_cse_after_global_opts,
12391 rest_of_handle_cse_after_global_opts): New functions.
12392 (pass_cse_after_global_opts): New pass, does local CSE.
12393 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
12394 (TV_CPROP): New timevar.
12395 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
12396 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
12397 (gcse_main, recompute_all_luids): Remove.
12398 (compute_hash_table_work): Call max_reg_num instead of reading
12399 max_gcse_regno.
12400 (cprop_jump): Don't set run_jump_opt_after_gcse.
12401 (constprop_register): Always allow to alter jumps.
12402 (cprop_insn): Likewise.
12403 (do_local_cprop): Likewise.
12404 (local_cprop_pass): Likewise. Return non-zero if something changed.
12405 (cprop): Remove function, fold interesting bits into one_cprop_pass.
12406 (find_implicit_sets): Add note about missed optimization opportunity.
12407 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
12408 pass_rtl_cprop execute function.
12409 Don't bother tracking the pass number, each pass gets its own dumpfile
12410 now anyway.
12411 Always allow to alter jumpsand bypass jumps.
12412 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
12413 will just find no suitable set.
12414 (pre_edge_insert): Fix dumping, this function is for PRE only.
12415 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
12416 pass_rtl_pre execute function.
12417 (hoist_code): Return non-zero if something changed. Keep track of
12418 substitutions and insertions for statistics gathering similar to PRE.
12419 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
12420 called from the pass_rtl_hoist execute function. Show pass statistics.
12421 (compute_store_table): Use max_reg_num directly instead of using the
12422 formerly global max_gcse_regno.
12423 (build_store_vectors): Likewise.
12424 (replace_store_insn): Fix dumping.
12425 (store_motion): Rename to ...
12426 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
12427 pass, called from the pass_rtl_store_motion execute function. Keep
12428 track of substitutions and insertions for statistics gathering similar
12429 to PRE.
12430 (bypass_jumps): Remove, fold interesting bits into ...
12431 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
12432 from the pass_rtl_cprop execute function.
12433 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
12434 pass_jump_bypass): Remove.
12435 (gate_handle_gcse, rest_of_handle_gcse): Remove.
12436 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
12437 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
12438 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
12439 (gate_rtl_store_motion, execute_rtl_store_motion,
12440 pass_rtl_store_motion): New.
12441 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
12442 make it clear that -fcse-skip-blocks is a no-op for backward compat.
12443 * passes.c (init_optimization_passes): Remove pass_gcse and
12444 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
12445 and cse_after_global_opts in place of pass_gcse. Schedule cprop
12446 instead of pass_jump_bypass.
12447
12448 2009-04-27 Richard Guenther <rguenther@suse.de>
12449
12450 PR middle-end/39928
12451 * gimplify.c (gimplify_expr): If we are required to create
12452 a temporary make sure it ends up as register.
12453
12454 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
12455
12456 PR target/39903
12457 * config/i386/i386.c (construct_container): Don't call
12458 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
12459 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
12460
12461 2009-04-27 Michael Matz <matz@suse.de>
12462
12463 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
12464 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
12465 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
12466 (dump_replaceable_exprs): Take a bitmap.
12467 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
12468 array.
12469 (expand_gimple_basic_block): Likewise.
12470 * tree-ssa-ter.c (struct temp_expr_table_d): Make
12471 replaceable_expressions member a bitmap.
12472 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
12473 (mark_replaceable): Likewise.
12474 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
12475 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
12476
12477 2009-04-27 Richard Guenther <rguenther@suse.de>
12478
12479 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
12480 (verify_stmts): Dispatch to gimple/type verification code.
12481 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
12482 issue with call argument types.
12483
12484 2009-04-27 Michael Matz <matz@suse.de>
12485
12486 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
12487 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
12488 to above.
12489
12490 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
12491 Eric Botcazou <ebotcazou@adacore.com>
12492
12493 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
12494 a label's basic block.
12495 (mark_target_live_regs): Tidy and rework obsolete comments.
12496 Change back DF problem to LIVE. If a label starts a basic block,
12497 assume that all registers that used to be live then still are.
12498 (init_resource_info): If a label starts a basic block, set its
12499 BLOCK_FOR_INSN accordingly.
12500 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
12501
12502 2009-04-27 Richard Guenther <rguenther@suse.de>
12503
12504 * tree-flow-inline.h (function_ann): Remove.
12505 (get_function_ann): Likewise.
12506 * tree-dfa.c (create_function_ann): Remove.
12507 * tree-flow.h (struct static_var_ann_d): Remove.
12508 (struct function_ann_d): Likewise.
12509 (union tree_ann_d): Remove fdecl member.
12510 (function_ann_t): Remove.
12511 (function_ann, get_function_ann, create_function_ann): Remove
12512 declarations.
12513
12514 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
12515
12516 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
12517
12518 2009-04-27 Jan Hubicka <jh@suse.cz>
12519
12520 * ipa-pure-const.c (struct funct_state_d): New fields
12521 state_previously_known, looping_previously_known; remove
12522 state_set_in_source.
12523 (analyze_function): Use new fields.
12524 (propagate): Avoid assumption that state_set_in_source imply
12525 nonlooping.
12526
12527 * tree-ssa-loop-niter.c (finite_loop_p): New function.
12528 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
12529 * cfgloop.h (finite_loop_p): Declare.
12530
12531 2009-04-26 Michael Matz <matz@suse.de>
12532
12533 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
12534
12535 2009-04-26 Michael Matz <matz@suse.de>
12536
12537 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
12538 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
12539 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
12540 pass_mark_used_blocks): Remove.
12541 * tree-optimize.c (pass_free_datastructures,
12542 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
12543 * passes.c (init_optimization_passes): Don't call
12544 pass_mark_used_blocks, remove dead code.
12545
12546 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
12547
12548 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
12549 * tree-ssa-live.h (register_ssa_partition): Likewise.
12550
12551 2009-04-26 Michael Matz <matz@suse.de>
12552
12553 Expand from SSA.
12554 * builtins.c (fold_builtin_next_arg): Handle SSA names.
12555 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
12556 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
12557 SSA names.
12558 (compare_pairs): Swap cost comparison.
12559 (coalesce_ssa_name): Don't use change_partition_var.
12560 * tree-nrv.c (struct nrv_data): Add modified member.
12561 (finalize_nrv_r): Set it.
12562 (tree_nrv): Use it to update statements.
12563 (pass_nrv): Require PROP_ssa.
12564 * tree-mudflap.c (mf_decl_cache_locals,
12565 mf_build_check_statement_for): Use make_rename_temp.
12566 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
12567 * alias.c (find_base_decl): Handle SSA names.
12568 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
12569 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
12570 * rtl.h (set_reg_attrs_for_parm): Declare.
12571 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
12572 to "optimized", remove unused locals at finish.
12573 (execute_free_datastructures): Make global, call
12574 delete_tree_cfg_annotations.
12575 (execute_free_cfg_annotations): Don't call
12576 delete_tree_cfg_annotations.
12577
12578 * ssaexpand.h: New file.
12579 * expr.c (toplevel): Include ssaexpand.h.
12580 (expand_assignment): Handle SSA names the same as register variables.
12581 (expand_expr_real_1): Expand SSA names.
12582 * cfgexpand.c (toplevel): Include ssaexpand.h.
12583 (SA): New global variable.
12584 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
12585 (SSAVAR): New macro.
12586 (set_rtl): New helper function.
12587 (add_stack_var): Deal with SSA names, use set_rtl.
12588 (expand_one_stack_var_at): Likewise.
12589 (expand_one_stack_var): Deal with SSA names.
12590 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
12591 before unique numbers.
12592 (expand_stack_vars): Use set_rtl.
12593 (expand_one_var): Accept SSA names, add asserts for them, feed them
12594 to above subroutines.
12595 (expand_used_vars): Expand all partitions (without default defs),
12596 then only the local decls (ignoring those expanded already).
12597 (expand_gimple_cond): Remove edges when jumpif() expands an
12598 unconditional jump.
12599 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
12600 or remove abnormal edges. Ignore insns setting the LHS of a TERed
12601 SSA name.
12602 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
12603 members of SA; deal with PARM_DECL partitions here; expand
12604 all PHI nodes, free tree datastructures and SA. Commit instructions
12605 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
12606 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
12607 info and statements at start, collect garbage at finish.
12608 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
12609 (VAR_ANN_PARTITION) Remove.
12610 (change_partition_var): Don't declare.
12611 (partition_to_var): Always return SSA names.
12612 (var_to_partition): Only accept SSA names.
12613 (register_ssa_partition): Only check argument.
12614 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
12615 member.
12616 (delete_var_map): Don't free it.
12617 (var_union): Only accept SSA names, simplify.
12618 (partition_view_init): Mark only useful SSA names as used.
12619 (partition_view_fini): Only deal with SSA names.
12620 (change_partition_var): Remove.
12621 (dump_var_map): Use ssa_name instead of partition_to_var member.
12622 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
12623 basic blocks.
12624 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
12625 (struct _elim_graph): New member const_dests; nodes member vector of
12626 ints.
12627 (set_location_for_edge): New static helper.
12628 (create_temp): Remove.
12629 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
12630 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
12631 (new_elim_graph): Allocate const_dests member.
12632 (clean_elim_graph): Truncate const_dests member.
12633 (delete_elim_graph): Free const_dests member.
12634 (elim_graph_size): Adapt to new type of nodes member.
12635 (elim_graph_add_node): Likewise.
12636 (eliminate_name): Likewise.
12637 (eliminate_build): Don't take basic block argument, deal only with
12638 partition numbers, not variables.
12639 (get_temp_reg): New static helper.
12640 (elim_create): Use it, deal with RTL temporaries instead of trees.
12641 (eliminate_phi): Adjust all calls to new signature.
12642 (assign_vars, replace_use_variable, replace_def_variable): Remove.
12643 (rewrite_trees): Only do checking.
12644 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
12645 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
12646 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
12647 contains_tree_r, MAX_STMTS_IN_LATCH,
12648 process_single_block_loop_latch, analyze_edges_for_bb,
12649 perform_edge_inserts): Remove.
12650 (expand_phi_nodes): New global function.
12651 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
12652 functions, initialize new parameter, remember partitions having a
12653 default def.
12654 (finish_out_of_ssa): New global function.
12655 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
12656 don't reset in_ssa_p here, don't disable TER when mudflap.
12657 (pass_del_ssa): Remove.
12658 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
12659 partition members.
12660 (execute_free_datastructures): Declare.
12661 * Makefile.in (SSAEXPAND_H): New variable.
12662 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
12663 * basic-block.h (commit_one_edge_insertion): Declare.
12664 * passes.c (init_optimization_passes): Move pass_nrv and
12665 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
12666 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
12667 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
12668 (redirect_branch_edge): Deal with super block when expanding, split
12669 out jump patching itself into ...
12670 (patch_jump_insn): ... here, new static helper.
12671
12672 2009-04-26 Michael Matz <matz@suse.de>
12673
12674 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
12675 beyond num_ssa_names.
12676 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
12677 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
12678
12679 2009-04-26 Jakub Jelinek <jakub@redhat.com>
12680
12681 PR inline-asm/39543
12682 * fwprop.c (forward_propagate_asm): New function.
12683 (forward_propagate_and_simplify): Propagate also into __asm, if it
12684 doesn't increase the number of referenced registers.
12685
12686 PR c/39889
12687 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
12688
12689 2009-04-26 Jakub Jelinek <jakub@redhat.com>
12690
12691 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
12692 note_nonlocal_vla_type for nonlocal VLAs.
12693 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
12694 contains_remapped_vars, remap_vla_decls): New functions.
12695 (convert_nonlocal_reference_stmt): If not optimizing, call
12696 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
12697 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
12698 if it wasn't found in var_map.
12699 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
12700 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
12701 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
12702 declare_vars.
12703 * gimplify.c (nonlocal_vlas): New variable.
12704 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
12705 referenced VLAs.
12706 (gimplify_body): Create and destroy nonlocal_vlas.
12707
12708 * dwarf2out.c (loc_descr_plus_const): New function.
12709 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
12710 mem_loc_descriptor, loc_descriptor_from_tree_1,
12711 descr_info_loc, gen_variable_die): Use it.
12712
12713 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
12714 !TREE_STATIC VAR_DECLs.
12715 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
12716 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
12717 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
12718 DECL_BY_REFERENCE is valid.
12719 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
12720 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
12721 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
12722 Copy DECL_BY_REFERENCE.
12723 (struct nesting_copy_body_data): New type.
12724 (nesting_copy_decl): New function.
12725 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
12726 if they have variable length.
12727
12728 2009-04-26 Michael Matz <matz@suse.de>
12729
12730 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
12731 mark new temporaries for renaming.
12732
12733 2009-04-26 Joseph Myers <joseph@codesourcery.com>
12734
12735 PR c/39581
12736 * c-decl.c (global_bindings_p): Return negative value.
12737 (c_variable_size): New. Based on variable_size from
12738 stor-layout.c.
12739 (grokdeclarator): Call c_variable_size not variable_size.
12740
12741 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
12742
12743 * config/i386/i386.c (print_operand) ['z']: Fix typo.
12744
12745 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
12746
12747 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
12748 Redefine it to just use mingw/include.
12749 (ASM_SPEC): Rules for -m32 and -m64.
12750 (LINK_SPEC): Use Likewise.
12751 (SPEC_32): New define.
12752 (SPEC_64): Likewise.
12753 (SUB_LINK_SPEC): Likewise.
12754 (MULTILIB_DEFAULTS): New define.
12755 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
12756 Add multilib options.
12757 (MULTILIB_DIRNAMES): Likewise.
12758 (MULTILIB_OSDIRNAMES): Likewise.
12759 (LIBGCC): Likewise.
12760 (INSTALL_LIBGCC): Likewise.
12761
12762 2009-04-26 Joseph Myers <joseph@codesourcery.com>
12763
12764 PR c/39556
12765 * c-tree.h (enum c_inline_static_type): New.
12766 (record_inline_static): Declare.
12767 * c-decl.c (struct c_inline_static, c_inline_statics,
12768 record_inline_static, check_inline_statics): New.
12769 (pop_file_scope): Call check_inline_statics.
12770 (start_decl): Call record_inline_static instead of pedwarning
12771 directly for static in inline function.
12772 * c-typeck.c (build_external_ref): Call record_inline_static
12773 instead of pedwarning directly for static referenced in inline
12774 function.
12775
12776 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
12777
12778 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
12779 not new but only being rescanned.
12780 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
12781 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
12782 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
12783 record_set_info, compute_set, grealloc): Remove.
12784 (recompute_all_luids): New function.
12785 (gcse_main): Don't compute sets, and don't do related memory
12786 allocations/free-ing. If something changed before the end of the
12787 pass, update LUIDs using recompute_all_luids.
12788 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
12789 (free_gcse_mem): Don't free it either.
12790 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
12791 Use the df insn LUIDs.
12792 (load_killed_in_block): Likewise.
12793 (compute_hash_table_work): Don't compute reg_set_in_block.
12794 (compute_transp): Use DF_REG_DEF_CHAINs.
12795 (local_cprop_pass): Don't use compute_sets and related functions.
12796 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
12797 Use get_max_uid() instead of max_cuid.
12798 (insert_insn_end_basic_block, pre_insert_copy_insn,
12799 update_ld_motion_stores): Don't try to
12800 keep reg_set tables up to date.
12801 (pre_insert_copies): Use df insn LUIDs.
12802 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
12803 (reg_set_info): Don't use extra bitmap argument.
12804 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
12805 information to compute regs_set_in_block.
12806 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
12807 (bypass_jumps): Don't use compute_sets and friends.
12808
12809 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12810
12811 PR testsuite/39710
12812 * opts.c (undocumented_msg): Do not leave blank even with
12813 ENABLE_CHECKING.
12814
12815 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12816
12817 * c-decl.c (build_enumerator): Allow values folding to integer
12818 constants but not integer constant expressions with a pedwarn if
12819 pedantic.
12820
12821 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12822
12823 PR c/39582
12824 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
12825 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
12826 type is an integer constant.
12827
12828 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
12829
12830 PR target/39897
12831 * config/i386/i386.c (print_operand) ['z']: Revert handling of
12832 HImode operands.
12833
12834 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12835
12836 PR c/39564
12837 * c-decl.c (grokdeclarator): Diagnose declarations of functions
12838 with variably modified return type and no storage class
12839 specifiers, except for the case of nested functions. Distinguish
12840 extern declarations of functions with variably modified return
12841 types from those of objects with variably modified types.
12842
12843 2009-04-25 Jan Hubicka <jh@suse.cz>
12844
12845 * tree.c (list_equal_p): New function.
12846 * tree.h (list_equal_p): Declare.
12847 * coretypes.h (edge_def, edge, const_edge, basic_block_def
12848 basic_block_def, basic_block, const_basic_block): New.
12849 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
12850 (redirect_eh_edge): New function.
12851 (make_eh_edge_update_phi): EH edges are not abnormal.
12852 * except.c: Include tree-flow.h.
12853 (list_match): New function.
12854 (eh_region_replaceable_by_p): New function.
12855 (replace_region): New function.
12856 (hash_type_list): New function.
12857 (hash_eh_region): New function.
12858 (eh_regions_equal_p): New function.
12859 (merge_peers): New function.
12860 (remove_unreachable_regions): Verify EH tree when checking;
12861 merge peers.
12862 (copy_eh_region_1): New function.
12863 (copy_eh_region): New function.
12864 (push_reachable_handler): New function.
12865 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
12866 regions without label but with live RESX.
12867 * except.h (redirect_eh_edge_to_label): New.
12868 * tree-flow.h (redirect_eh_edge): New.
12869 * coretypes.h (edge_def, edge, const_edge, basic_block_def
12870 basic_block_def, basic_block, const_basic_block): Remove.
12871 * Makefile.in (except.o): Add dependency on tree-flow.h
12872 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
12873 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
12874 Remove.
12875
12876 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
12877
12878 PR bootstrap/39645
12879 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
12880 on the destination of memcpy.
12881
12882 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
12883
12884 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
12885 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
12886 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
12887
12888 2009-04-25 Jan Hubicka <jh@suse.cz>
12889
12890 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
12891 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
12892 to be reached by different label than left.
12893 (update_eh_edges): Update comment; remove edge_to_remove if possible
12894 and return true if suceeded.
12895 (cleanup_empty_eh): Accept sharing map; handle shared regions.
12896 (cleanup_eh): Compute sharing map.
12897 * except.c (remove_eh_handler_and_replace): Add argument if we should
12898 update regions.
12899 (remove_unreachable_regions): Update for label sharing.
12900 (label_to_region_map): Likewise.
12901 (get_next_region_sharing_label): New function.
12902 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
12903 prev_try pointers.
12904 (remove_eh_handler): Update.
12905 (remove_eh_region_and_replace_by_outer_of): New function.
12906 * except.h (struct eh_region): Add next_region_sharing_label.
12907 (remove_eh_region_and_replace_by_outer_of,
12908 get_next_region_sharing_label): Declare.
12909 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
12910
12911 2009-04-25 Jan Hubicka <jh@suse.cz>
12912
12913 * tree-cfg.c (split_critical_edges): Split also edges where we can't
12914 insert code even if they are not critical.
12915
12916 2009-04-25 Jan Hubicka <jh@suse.cz>
12917
12918 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
12919 (gimple_can_remove_branch_p): EH edges won't remove branch by
12920 redirection.
12921 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
12922 updating of non-abnormal EH edges.
12923 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
12924 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
12925 (split_critical_edges): Split also edges where emitting code on them
12926 will lead to splitting later.
12927
12928 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
12929 H.J. Lu <hongjiu.lu@intel.com>
12930
12931 PR target/39590
12932 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
12933 the configured assembler supports fildq and fistpq mnemonics.
12934 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
12935 * configure: Regenerated.
12936 * config.in: Ditto.
12937
12938 * config/i386/i386.c (print_operand): Handle 'Z'.
12939 ['z']: Remove handling of special fild/fist suffixes.
12940 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
12941 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
12942 suffix of fild insn.
12943 (*floatsi<mode>2_vector_mixed): Ditto.
12944 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
12945 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
12946 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12947 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
12948 * config/i386/gas.h (GAS_MNEMONICS): Remove.
12949
12950 2009-04-25 Ben Elliston <bje@au.ibm.com>
12951
12952 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
12953 the source of a set operation.
12954
12955 2009-04-25 Anatoly Sokolov <aesok@post.ru>
12956
12957 * target.h (struct gcc_target): Add case_values_threshold field.
12958 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
12959 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
12960 * targhooks.c (default_case_values_threshold): New function.
12961 * targhooks.h (default_case_values_threshold): Declare function.
12962 * stmt.c (expand_case): Use case_values_threshold target hook.
12963 * expr.h (case_values_threshold): Remove declartation.
12964 * expr.c (case_values_threshold): Remove function.
12965 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
12966
12967 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
12968 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12969 (avr_case_values_threshold): Declare as static.
12970 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
12971
12972 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
12973 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12974 (mn10300_case_values_threshold): New function.
12975
12976 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
12977
12978 * ira.c (setup_cover_and_important_classes): Add enum cast.
12979
12980 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
12981
12982 * genpreds.c (write_enum_constraint_num): Output definition of
12983 CONSTRAINT_NUM_DEFINED_P macro.
12984 * ira.c (setup_cover_and_important_classes): Use
12985 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
12986
12987 2009-04-24 DJ Delorie <dj@redhat.com>
12988
12989 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
12990 __SH2A_SINGLE_ONLY__ also.
12991
12992 2009-04-24 Steve Ellcey <sje@cup.hp.com>
12993
12994 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
12995 (movdf_internal): Ditto.
12996 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
12997 SFmode and DFmode constants.
12998 (ia64_print_operand): Add 'G' format for printing
12999 floating point constants.
13000
13001 2009-04-24 Richard Guenther <rguenther@suse.de>
13002
13003 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
13004 from unsigned additions.
13005
13006 2009-04-24 Joseph Myers <joseph@codesourcery.com>
13007
13008 * c-typeck.c (set_init_index): Allow array designators that are
13009 not integer constant expressions with a pedwarn if pedantic.
13010
13011 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
13012
13013 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
13014 zero if no overlap in nonzero bits between the operands.
13015
13016 2009-04-24 Ian Lance Taylor <iant@google.com>
13017
13018 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
13019 (record_dead_and_set_regs): Likewise.
13020 * df.h (struct df_mw_hardreg): Change flags field to int.
13021 (struct df_base_ref): Likewise.
13022 (struct df): Change changeable_flags field to int.
13023 * df-scan.c (df_defs_record): Change clobber_flags to int.
13024 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
13025 constants rather than #define macros.
13026 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
13027 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
13028 (enum dwarf_calling_convention): Likewise.
13029 (enum dwarf_line_number_x_ops): Likewise.
13030 (enum dwarf_call_frame_info): Likewise.
13031 (enum dwarf_source_language): Likewise.
13032 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
13033 (add_calling_convention_attribute): Likewise.
13034 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
13035 (combine_comparisons): Change compcode to int. Add cast to enum type.
13036 * genrecog.c (maybe_both_true_2): Change c to int.
13037 (write_switch): Likewise. Add cast to enum type.
13038 * gimplify.c (gimplify_omp_for): Handle return values from
13039 gimplify_expr using MIN rather than bitwise or.
13040 (gimplify_expr): Add cast to enum type.
13041 * ipa-prop.c (update_jump_functions_after_inlining): Change
13042 IPA_BOTTOM to IPA_JF_UNKNOWN.
13043 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
13044 Add casts to enum type.
13045 (setup_cover_and_important_classes): Change cl to int. Add casts
13046 to enum type.
13047 (setup_class_translate): Change cl and mode to int.
13048 (ira_init_once): Change mode to int.
13049 (free_register_move_costs): Likewise.
13050 (setup_prohibited_mode_move_regs): Add casts to enum type.
13051 * langhooks.c (add_builtin_function_common): Rework assertion that
13052 value fits bitfield.
13053 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
13054 * omega.c (omega_do_elimination): Avoid math on enum types.
13055 * optabs.c (expand_vec_shift_expr): Remove casts to int.
13056 * opts.c (set_debug_level): Change 2 to enum constant. Use new
13057 int local to handle integral_argment value.
13058 * regmove.c (try_auto_increment): Change PUT_MODE to
13059 PUT_REG_NOTE_KIND.
13060 * reload.c (push_secondary_reload): Add casts to enum type.
13061 (secondary_reload_class, find_valid_class): Likewise.
13062 * reload1.c (emit_input_reload_insns): Likewise.
13063 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
13064 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
13065 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
13066 constant.
13067 * tree.c (build_common_builtin_nodes): Add casts to enum type.
13068 * tree-complex.c (complex_lattice_t): Typedef to int rather than
13069 enum type.
13070 (expand_complex_libcall): Add casts to enum type.
13071 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
13072 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
13073 with ERROR_MARK, not NUM_TREE_CODES.
13074 (vect_create_epilog_for_reduction): Likewise.
13075 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
13076 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
13077 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
13078 enum machine_mode.
13079 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
13080 vect_unused_in_loop. Change 0 to loop_vect.
13081 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
13082 * var-tracking.c (get_init_value): Change return type to enum
13083 var_init_status.
13084 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
13085 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
13086 arm_fp_model.
13087 (arm_override_options): Add casts to enum type.
13088 (arm_emit_tls_decoration): Likewise.
13089 * config/i386/i386.c (ix86_function_specific_restore): Add casts
13090 to enum type.
13091 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
13092 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
13093 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
13094 enum type.
13095 * config/s390/s390.c (code_for_builtin_64): Change to array of
13096 enum insn_code.
13097 (code_for_builtin_31): Likewise.
13098 (s390_expand_builtin): Change code_for_builtin to enum insn_code
13099 const *.
13100 * config/sparc/sparc.c (sparc_override_options): Change value
13101 field in struct code_model to enum cmodel. In initializer change
13102 0 to NULL and add cast to enum type.
13103
13104 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
13105 Change all callers. Issue a -Wc++-compat warning using
13106 lhs_origtype if necessary.
13107 (convert_for_assignment): Issue -Wc++-compat warnings about
13108 invalid conversions to enum type on assignment.
13109 * c-common.h (build_modify_expr): Update declaration.
13110
13111 2009-04-24 Nick Clifton <nickc@redhat.com>
13112
13113 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
13114 (function_arg_advance): Likewise.
13115 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
13116 5th alternative.
13117
13118 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
13119
13120 * config/s390/constraints.md ('I', 'J'): Fix condition.
13121
13122 2009-04-24 Diego Novillo <dnovillo@google.com>
13123
13124 * gengtype-parse.c (parse_error): Add newline after message.
13125
13126 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
13127
13128 * config/i386/sse.md (avxmodesuffixs): Removed.
13129 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
13130 (*avx_pinsr<ssevecsize>): This.
13131
13132 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
13133
13134 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
13135 follow chains of regs with a single definition, and allow expressions
13136 that are function_invariant_p.
13137 (simple_rhs_p): Allow expressions that are function_invariant_p.
13138
13139 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
13140
13141 PR middle-end/39867
13142 * fold-const.c (fold_cond_expr_with_comparison): When folding
13143 > and >= to MAX, make sure the MAX uses the same type as the
13144 comparison's operands.
13145
13146 2009-04-24 Nick Clifton <nickc@redhat.com>
13147
13148 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
13149 addressing for DImode accesses.
13150 (frv_print_operand_address): Handle PLUS case.
13151 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
13152
13153 2009-04-24 Jakub Jelinek <jakub@redhat.com>
13154
13155 PR rtl-optimization/39794
13156 * alias.c (canon_true_dependence): Add x_addr argument.
13157 * rtl.h (canon_true_dependence): Adjust prototype.
13158 * cse.c (check_dependence): Adjust canon_true_dependence callers.
13159 * cselib.c (cselib_invalidate_mem): Likewise.
13160 * gcse.c (compute_transp): Likewise.
13161 * dse.c (scan_reads_nospill): Likewise.
13162 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
13163 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
13164 canon_base_addr of the group, plus optional offset.
13165 (struct group_info): Rename canon_base_mem to
13166 canon_base_addr.
13167 (get_group_info): Set canon_base_addr to canon_rtx of base, not
13168 canon_rtx of base_mem.
13169
13170 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
13171
13172 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
13173 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
13174
13175 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13176
13177 * config/spu/spu-builtins.h: Delete file.
13178
13179 * config/spu/spu.h (enum spu_builtin_type): Move here from
13180 spu-builtins.h.
13181 (struct spu_builtin_description): Likewise. Add GTY marker.
13182 Do not use enum spu_function_code or enum insn_code.
13183 (spu_builtins): Add extern declaration.
13184
13185 * config/spu/spu.c: Do not include "spu-builtins.h".
13186 (enum spu_function_code, enum spu_builtin_type_index,
13187 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
13188 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
13189 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
13190 unsigned_V2DI_type_node): Move here from spu-builtins.h.
13191 (spu_builtin_types): Make static. Add GTY marker.
13192 (spu_builtins): Add extern declaration with GTY marker.
13193 Include "gt-spu.h".
13194
13195 * config/spu/spu-c.c: Do not include "spu-builtins.h".
13196 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
13197 Check programmatically whether all parameters are scalar.
13198
13199 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
13200
13201 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
13202
13203 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
13204 assignment from the constructor either if the target is volatile.
13205
13206 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
13207
13208 * config/arm/arm.md (insv): Do not share operands[0].
13209
13210 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
13211
13212 * config/vxlib-tls.c (active_tls_threads): Delete.
13213 (delete_hook_installed): New.
13214 (tls_delete_hook): Don't delete the delete hook.
13215 (tls_destructor): Delete it here.
13216 (__gthread_set_specific): Adjust installing the delete hook.
13217 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
13218 __gthread_leave_tsd_dtor_context.
13219
13220 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
13221
13222 * c-format.c (gcc_tdiag_char_table): Add support for %E.
13223
13224 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
13225
13226 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
13227 enum type.
13228 (alpha_rtx_costs): Ditto.
13229 (emit_unlikely_jump): Use add_reg_note.
13230 (emit_frame_store_1): Ditto.
13231 (alpha_expand_prologue): Ditto.
13232 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
13233 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
13234
13235 2009-04-23 Nick Clifton <nickc@redhat.com>
13236
13237 * config/v850/v850.md (epilogue): Remove suppressed code.
13238 (return): Rename to return_simple and remove test of frame size.
13239 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
13240 to gen_return_simple.
13241
13242 2009-04-22 Jing Yu <jingyu@google.com>
13243
13244 PR testsuite/39781
13245 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
13246
13247 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
13248
13249 PR C/31499
13250 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
13251 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
13252 value is a VECTOR_CST, the element type is the element type of the
13253 vector.
13254
13255 2009-04-22 DJ Delorie <dj@redhat.com>
13256
13257 * config/m32c/m32c.h: Update GTY annotations to new syntax.
13258
13259 2009-04-22 Jakub Jelinek <jakub@redhat.com>
13260
13261 * alias.c (find_base_term): Move around LO_SUM case, so that
13262 CONST falls through into PLUS/MINUS handling.
13263
13264 PR c/39855
13265 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
13266 into 0, use omit_one_operand.
13267
13268 2009-04-23 Ben Elliston <bje@au.ibm.com>
13269
13270 * config/rs6000/linux-unwind.h (get_regs): Remove type
13271 puns. Change the type of `pc' to an array of unsigned ints and
13272 update all users. Constify frame24.
13273
13274 2009-04-22 DJ Delorie <dj@redhat.com>
13275
13276 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
13277 declarations before code.
13278 (current_function_special_page_vector): Likewise.
13279 (m32c_expand_insv): Silence a warning.
13280
13281 2009-04-21 Taras Glek <tglek@mozilla.com>
13282
13283 * alias.c: Update GTY annotations to new syntax.
13284 * basic-block.h: Likewise.
13285 * bitmap.h: Likewise.
13286 * c-common.h: Likewise.
13287 * c-decl.c: Likewise.
13288 * c-parser.c: Likewise.
13289 * c-pragma.c: Likewise.
13290 * c-tree.h: Likewise.
13291 * cfgloop.h: Likewise.
13292 * cgraph.h: Likewise.
13293 * config/alpha/alpha.c: Likewise.
13294 * config/arm/arm.h: Likewise.
13295 * config/avr/avr.h: Likewise.
13296 * config/bfin/bfin.c: Likewise.
13297 * config/cris/cris.c: Likewise.
13298 * config/darwin.c: Likewise.
13299 * config/frv/frv.c: Likewise.
13300 * config/i386/i386.c: Likewise.
13301 * config/i386/i386.h: Likewise.
13302 * config/i386/winnt.c: Likewise.
13303 * config/ia64/ia64.h: Likewise.
13304 * config/iq2000/iq2000.c: Likewise.
13305 * config/mips/mips.c: Likewise.
13306 * config/mmix/mmix.h: Likewise.
13307 * config/pa/pa.c: Likewise.
13308 * config/pa/pa.h: Likewise.
13309 * config/rs6000/rs6000.c: Likewise.
13310 * config/s390/s390.c: Likewise.
13311 * config/sparc/sparc.c: Likewise.
13312 * config/xtensa/xtensa.c: Likewise.
13313 * cselib.h: Likewise.
13314 * dbxout.c: Likewise.
13315 * dwarf2out.c: Likewise.
13316 * except.c: Likewise.
13317 * except.h: Likewise.
13318 * fixed-value.h: Likewise.
13319 * function.c: Likewise.
13320 * function.h: Likewise.
13321 * gimple.h: Likewise.
13322 * integrate.c: Likewise.
13323 * optabs.c: Likewise.
13324 * output.h: Likewise.
13325 * real.h: Likewise.
13326 * rtl.h: Likewise.
13327 * stringpool.c: Likewise.
13328 * tree-data-ref.c: Likewise.
13329 * tree-flow.h: Likewise.
13330 * tree-scalar-evolution.c: Likewise.
13331 * tree-ssa-address.c: Likewise.
13332 * tree-ssa-alias.h: Likewise.
13333 * tree-ssa-operands.h: Likewise.
13334 * tree.c: Likewise.
13335 * tree.h: Likewise.
13336 * varasm.c: Likewise.
13337 * varray.h: Likewise.
13338 * vec.h: Likewise.
13339 * coretypes.h: Do not define GTY macro if it is already defined.
13340 * doc/gty.texi: Update GTY documentation to new syntax.
13341 * gengtype-lex.l: Enforce attribute-like syntax for GTY
13342 annotations on structs.
13343 * gengtype-parse.c: Likewise.
13344
13345 2009-04-22 Mark Heffernan <meheff@google.com>
13346
13347 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
13348
13349 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
13350
13351 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
13352 where appropriate.
13353
13354 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
13355
13356 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
13357 the same as a PLUS without a shift. Increase the cost of a
13358 CONST_INT in MULT.
13359
13360 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13361
13362 * Makefile.in: Update dependencies.
13363 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
13364 * errors.h: Remove bogus comment about compatibility.
13365 (warning): Update declaration.
13366 * genautomata.c: Update all calls to warning.
13367 * gimple.c: Do not include errors.h. Include toplev.h.
13368 * tree-ssa-structalias.c: Do not include errors.h.
13369 * omega.c: Likewise.
13370 * tree-ssa-reassoc.c: Likewise.
13371 * config/spu/spu-c.c: Likewise.
13372 * config/spu/t-spu-elf: Update dependencies.
13373
13374 2009-04-22 Richard Guenther <rguenther@suse.de>
13375
13376 PR tree-optimization/39824
13377 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
13378 make sure the types are compatible.
13379
13380 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13381
13382 PR c++/14875
13383 * c-common.c (c_parse_error): Take a token_flags parameter.
13384 Use token_type for the token type instead.
13385 Pass token_flags to cpp_type2name.
13386 * c-common.h (c_parse_error): Update declaration.
13387 * c-parser.c (c_parser_error): Pass 0 as token flags.
13388
13389 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
13390
13391 PR rtl-optimization/39580
13392 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
13393
13394 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13395
13396 * function.c (expand_function_end): Do not emit a jump to the "naked"
13397 return label for fall-through returns.
13398 * except.c (sjlj_emit_function_exit): Always place the call to the
13399 unregister function at the location installed by expand_function_end.
13400
13401 2009-04-22 Richard Guenther <rguenther@suse.de>
13402
13403 PR tree-optimization/39845
13404 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
13405 (gen_inbound_check): Likewise.
13406
13407 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
13408
13409 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
13410 padding for PPC.
13411 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
13412 * config/vxlib.c (__gthread_once): Add race guard for PPC.
13413
13414 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
13415
13416 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
13417 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
13418 shift counts to avoid out-of-bounds array accesses.
13419
13420 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
13421
13422 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
13423 (Pmode): Move above.
13424
13425 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
13426
13427 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
13428 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
13429 GET_CODE macro. Use IN_RANGE macro where appropriate.
13430 * config/alpha/alpha.h: Ditto.
13431 * config/alpha/alpha.md: Ditto.
13432 * config/alpha/constraints.md: Ditto.
13433 * config/alpha/predicates.md: Ditto.
13434
13435 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
13436
13437 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
13438 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13439 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13440 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13441 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13442 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13443 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13444 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13445 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13446 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13447 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13448 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13449 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13450 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13451 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13452 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13453 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13454 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13455 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13456 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13457 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13458 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13459 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13460 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13461 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13462 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13463 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
13464
13465 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
13466
13467 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
13468 references from comments.
13469 * cfgbuild.c: (count_basic_blocks): Delete.
13470 (find_basic_blocks_1): Delete.
13471 (find_basic_blocks): Delete.
13472 * except.c (finish_eh_generation): Make static. Move comment from
13473 except.h here. Remove find_basic_blocks references from comments.
13474 * except.h (finish_eh_generation): Delete.
13475 * basic-block.h (find_basic_blocks): Delete.
13476 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
13477
13478 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
13479
13480 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
13481 (sdbout_parms): Likewise.
13482
13483 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
13484
13485 * config/sh/sh.c (prepare_cbranch_operands): Use
13486 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
13487 (expand_cbranchdi4): Likewise.
13488 (from_compare): Add cast to enum type.
13489 (expand_cbranchsi4): Use add_reg_note.
13490 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
13491 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
13492 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
13493 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
13494 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
13495 instead of CODE_FOR_nothing.
13496 (cbranchdi4): Likewise. Fix the order of arguments for
13497 gen_rtx_fmt_ee.
13498 (push_fpscr): Use add_reg_note.
13499 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
13500 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
13501
13502 2009-04-21 Joseph Myers <joseph@codesourcery.com>
13503
13504 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
13505 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
13506 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
13507 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
13508 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
13509 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
13510 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
13511 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
13512 config/alpha/x-vms, config/arc/t-arc,
13513 config/arm/README-interworking, config/arm/arm-c.c,
13514 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
13515 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
13516 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
13517 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
13518 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
13519 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
13520 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
13521 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
13522 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
13523 config/cris/t-elfmulti, config/crx/t-crx,
13524 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
13525 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
13526 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
13527 config/h8300/t-h8300, config/i386/athlon.md,
13528 config/i386/darwin-libgcc.10.4.ver,
13529 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
13530 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
13531 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
13532 config/i386/t-linux64, config/i386/t-nwld,
13533 config/i386/t-rtems-i386, config/i386/t-sol2-10,
13534 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
13535 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
13536 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
13537 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
13538 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
13539 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
13540 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
13541 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
13542 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
13543 config/m68k/t-uclinux, config/mcore/t-mcore,
13544 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
13545 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
13546 config/mips/crtn.asm, config/mips/irix-crti.asm,
13547 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
13548 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
13549 config/mips/mips-fixed.md, config/mips/sb1.md,
13550 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
13551 config/mips/t-iris6, config/mips/t-isa3264,
13552 config/mips/t-libgcc-mips16, config/mips/t-linux64,
13553 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
13554 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
13555 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
13556 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
13557 config/mn10300/t-linux, config/mn10300/t-mn10300,
13558 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
13559 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
13560 config/picochip/libgccExtras/clzsi2.asm,
13561 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
13562 config/rs6000/darwin-libgcc.10.4.ver,
13563 config/rs6000/darwin-libgcc.10.5.ver,
13564 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
13565 config/rs6000/t-aix43, config/rs6000/t-aix52,
13566 config/rs6000/t-darwin, config/rs6000/t-fprules,
13567 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
13568 config/rs6000/t-lynx, config/rs6000/t-netbsd,
13569 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
13570 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
13571 config/rs6000/t-rtems, config/rs6000/t-spe,
13572 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
13573 config/score/t-score-elf, config/sh/divcost-analysis,
13574 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
13575 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
13576 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
13577 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
13578 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
13579 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
13580 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
13581 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
13582 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
13583 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
13584 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
13585 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
13586 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
13587 limitx.h, version.c, xcoff.h: Add copyright and license notices.
13588 * config/h8300/genmova.sh: Include copyright and license notices
13589 in generated output.
13590 * config/h8300/mova.md: Regenerate.
13591 * doc/install.texi2html: Include word "Copyright" in copyright
13592 notice and use name "Free Software Foundation, Inc.".
13593 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
13594 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
13595 ChangeLog-2007, ChangeLog-2008: Correct dates.
13596
13597 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
13598
13599 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
13600 NE_EXPR operations as well.
13601 * c-parser.c (c_parser_condition): Do not set location information on
13602 the condition.
13603 (c_parser_conditional_expression): Likewise.
13604 (c_parser_binary_expression): Set location information on operators.
13605 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
13606 TRUTH_NOT_EXPR has been folded.
13607 * fold-const.c (fold_truth_not_expr): Copy location information from
13608 the incoming expression to the outgoing one.
13609 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
13610 recursive calls on the LHS of the operator but pass that of the
13611 operator to recursive calls on the RHS of the operator. Set it
13612 on the COND_EXPR.
13613 (shortcut_cond_expr): Set the locus of the operator on the second
13614 COND_EXPR and that of the expression on the first in degenerate cases.
13615 Pass the locus of the expression to calls to shortcut_cond_r.
13616 Set the locus of the 'then' block on the associated jump, if any.
13617 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
13618 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
13619 expression to call to gimplify_boolean_expr.
13620
13621 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
13622
13623 * config.gcc: Add additional configuration for
13624 i686-w64-mingw* and x86_64-w64-mingw* triplet.
13625 * config/i386/mingw-w64.h: New mingw-w64 specific header.
13626 (CPP_SPEC): Redefine for allowing -municode option.
13627 (STARTFILE_SPEC): Likewise.
13628 * config/i386/t-mingw-w64: New.
13629 * config/i386/mingw-w64.opt: New.
13630 (municode): Add new target option.
13631 * doc/invoke.texi (municode): Add documentation for new option.
13632
13633 2009-04-21 Ian Lance Taylor <iant@google.com>
13634
13635 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13636 Correct test for number of arguments.
13637 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
13638
13639 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
13640
13641 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
13642 argument of emit_library_call.
13643
13644 2009-04-21 Richard Guenther <rguenther@suse.de>
13645
13646 PR middle-end/39829
13647 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
13648 inside VIEW_CONVERT_EXPRs.
13649
13650 2009-04-21 Martin Jambor <mjambor@suse.cz>
13651
13652 * tree-switch-conversion.c (build_constructors): Split a long line.
13653 (constructor_contains_same_values_p): New function.
13654 (build_one_array): Create assigns of constants if possible, do not
13655 call mark_sym_for_renaming, call update_stmt.
13656 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
13657 make_rename_temp. Do not call mark_symbols_for_renaming, call
13658 update_stmt.
13659 (gen_def_assigns): Do not call mark_symbols_for_renaming or
13660 find_new_referenced_vars, call update_stmt.
13661 (gen_inbound_check): Use create_tmp_var and create ssa names manually
13662 instead of calling make_rename_temp. Do not call
13663 find_new_referenced_vars or mark_symbols_for_renaming, call
13664 update_stmt.
13665
13666 2009-04-21 Richard Guenther <rguenther@suse.de>
13667
13668 PR tree-optimization/39827
13669 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
13670 (tree_ssa_phiprop): Pass the correct array size.
13671
13672 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
13673
13674 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
13675
13676 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
13677
13678 PR 16202
13679 * c-typeck.c (lvalue_p): Move declaration ...
13680 * c-common.h (lvalue_p): ... to here.
13681 * c-common.c (candidate_equal_p): New.
13682 (add_tlist): Use it.
13683 (merge_tlist): Use it.
13684 (warn_for_collisions_1): Likewise.
13685 (warning_candidate_p): Accept more candidates.
13686 (verify_tree): A warning candidate can be an expression. Use
13687 candidate_equal_p.
13688
13689 2009-04-21 Ben Elliston <bje@au.ibm.com>
13690
13691 PR target/5267
13692 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
13693 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
13694 options. Remove -mcall-solaris documentation.
13695
13696 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13697
13698 PR c++/13358
13699 * doc/invoke.texi (-Wlong-long): Update description.
13700 * c-lex (interpret_integer): Only warn if there was no previous
13701 overflow and -Wlong-long is enabled.
13702 * c-decl.c (declspecs_add_type): Drop redundant flags.
13703 * c.opt (Wlong-long): Init to -1.
13704 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
13705 and front-end warn_long_long. Wlong-long only depends on other
13706 flags if it is uninitialized.
13707 * c-parser.c (disable_extension_diagnostics): warn_long_long is
13708 the same for CPP and FE.
13709 (restore_extension_diagnostics): Likewise.
13710
13711 2009-04-20 Ian Lance Taylor <iant@google.com>
13712
13713 Fix enum conversions which are invalid in C++:
13714 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
13715 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
13716 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
13717 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
13718 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
13719 (dbxout_parms): Likewise.
13720 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
13721 (df_clear_flags): Likewise.
13722 * df-problems.c (df_rd_bb_local_compute_process_def): Change
13723 top_flag parameter to int.
13724 (df_chain_create_bb_process_use): Likewise.
13725 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
13726 Remove cast.
13727 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
13728 (df_ref_create_structure, df_def_record_1): Likewise.
13729 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
13730 (df_notes_rescan): Change 0 to VOIDmode in function call.
13731 (df_get_call_refs, df_insn_refs_collect): Likewise.
13732 (df_bb_regs_collect): Likewise.
13733 (df_entry_block_defs_collect): Likewise.
13734 (df_exit_block_uses_collect): Likewise.
13735 * df.h: Update declarations.
13736 * double-int.c (double_int_divmod): Add cast to enum type.
13737 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
13738 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
13739 (based_loc_descr): Likewise.
13740 (loc_descriptor_from_tree_1): Change first_op and second_op to
13741 enum dwarf_location_atom. Add cast to enum type.
13742 * expmed.c (init_expmed): Change 0 to SET in function call.
13743 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
13744 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
13745 (do_store_flag): Likewise.
13746 * fixed-value.h (struct fixed_value): Change mode to enum
13747 machine_mode.
13748 * function.c (assign_parms): Change 0 to VOIDmode in function call.
13749 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
13750 function call.
13751 (insert_insn_decl, insert_decl, insert_state): Likewise.
13752 (automata_list_finish): Likewise.
13753 * genrecog.c (process_define_predicate): Add cast to enum type.
13754 * gensupport.c (init_predicate_table): Add cast to enum type.
13755 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
13756 function call.
13757 (gimple_build_call_1, gimple_build_label): Likewise.
13758 (gimple_build_goto, gimple_build_asm_1): Likewise.
13759 (gimple_build_switch_1, gimple_build_cdt): Likewise.
13760 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
13761 (enum fallback): Rename from enum fallback_t.
13762 (fallback_t): Typedef as int.
13763 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
13764 GSI_SAME_STMT in function call.
13765 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
13766 enum type.
13767 (setup_reg_class_relations): Likewise.
13768 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
13769 (setup_prohibited_class_mode_regs): Add cast to enum type.
13770 (setup_prohibited_mode_move_regs): Likewise.
13771 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
13772 (record_address_regs): Change i to enum reg_class.
13773 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
13774 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
13775 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
13776 (GET_MODE_2XWIDER_MODE): Likewise.
13777 (GET_CLASS_NARROWEST_MODE): Likewise.
13778 * omp-low.c (expand_omp_for): Add cast to enum type.
13779 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
13780 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
13781 * postreload.c (reload_cse_simplify_operands): Change rclass local
13782 to enum reg_class.
13783 * predict.c (combine_predictions_for_insn): Change best_predictor
13784 and predictor to enum br_predictor.
13785 (combine_predictions_for_bb): Likewise.
13786 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
13787 use SET_PREDICT_EXPR_OUTCOME.
13788 * real.c (real_arithmetic): Change icode to code in function call.
13789 * reginfo.c (init_move_cost): Add casts to enum type.
13790 (init_reg_sets_1, init_fake_stack_mems): Likewise.
13791 * regmove.c (regclass_compatible_p): Change class0 and class1 to
13792 enum reg_class.
13793 * reload.c (find_valid_class): Add casts to enum type.
13794 (push_reload): Change 0 to NO_REGS in function call.
13795 (find_reloads): Change this_alternative to array of enum
13796 reg_class. Remove some now-unnecessary casts.
13797 (make_memloc): Change 0 to VOIDmode in function call.
13798 * reload1.c (reload): Change 0 to VOIDmode in function call.
13799 (eliminate_regs_1, elimination_effects): Likewise.
13800 (eliminate_regs_in_insn): Likewise.
13801 (emit_input_reload_insns): Add cast to enum type.
13802 (delete_output_reload): Change 0 to VOIDmode in function call.
13803 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
13804 to enum type in function call.
13805 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
13806 (SET_PREDICT_EXPR_OUTCOME): Define.
13807 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
13808 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
13809 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
13810 (dump_function): Likewise.
13811 * tree-dump.h: Update declarations.
13812 * tree-pass.h: Update declarations.
13813 * varasm.c (assemble_integer): Change mclass to enum mode_class.
13814 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
13815 enum type.
13816 (arm_rtx_costs_1): Correct parenthesization.
13817 (arm_rtx_costs): Add casts to enum type.
13818 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
13819 (vfp_emit_fstmd): Use add_rg_note.
13820 (emit_multi_reg_push, emit_sfm): Likewise.
13821 (thumb_set_frame_pointer): Likewise.
13822 (arm_expand_prologue): Likewise.
13823 (arm_regno_class): Change return type to enum reg_class.
13824 (thumb1_expand_prologue): Use add_reg_note.
13825 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
13826 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
13827 in function call.
13828 * config/arm/gentune.sh: Add cast to enum type.
13829 * config/arm/arm-tune.md: Rebuild.
13830 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
13831 (ix86_split_fp_branch, predict_jump): Likewise.
13832 (ix86_expand_multi_arg_builtin): Change sub_code from enum
13833 insn_code to enum rtx_code.
13834 (ix86_builtin_vectorized_function): Add cast to enum type.
13835 * config/i386/i386.md (truncdfsf2): Change slot to enum
13836 ix86_stack_slot.
13837 (truncxf<mode>2, isinf<mode>2): Likewise.
13838 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
13839 enum type.
13840 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
13841 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
13842 (insert_bundle_state): Change 1 to INSERT in function call.
13843 (ia64_add_bundle_selector_before): Likewise.
13844 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
13845 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
13846 (restore_stack_nonlocal): Likewise.
13847 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
13848 function call.
13849 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
13850 function call.
13851 (mips_rtx_costs): Likewise.
13852 (mips_override_options): Add casts to enum type.
13853 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
13854 in function call.
13855 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
13856 (store_reg, set_reg_plus_d): Likewise.
13857 (hppa_expand_prologue, hppa_profile_hook): Likewise.
13858 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
13859 cast to enum type.
13860 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
13861 function call.
13862 (emit_unlikely_jump): Use add_reg_note.
13863 (rs6000_emit_allocate_stack): Likewise.
13864 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
13865 (output_toc): Change 1 to INSERT in function call.
13866 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
13867 (rs6000_initialize_trampoline): Likewise.
13868 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
13869 function call.
13870 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
13871 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
13872 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
13873 (save_gprs): Use add_reg_note.
13874 (s390_emit_prologue): Likewise.
13875 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
13876 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
13877 (sparc_fold_builtin): Add cast to enum type.
13878 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
13879 enum insn_code.
13880 (spu_expand_prologue): Use add_reg_note.
13881 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
13882
13883 2009-04-20 Ian Lance Taylor <iant@google.com>
13884
13885 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
13886 (c_parser_postfix_expression_after_primary): Get VEC for list of
13887 arguments. Get original types of arguments. Call
13888 build_function_call_vec.
13889 (cached_expr_list_1, cached_expr_list_2): New static variables.
13890 (c_parser_expr_list): Change return type to VEC *. Add
13891 p_orig_types parameter. Change all callers.
13892 (c_parser_release_expr): New static function.
13893 (c_parser_vec_to_tree_list): New static function.
13894 * c-typeck.c (build_function_call): Rewrite to build a VEC and
13895 call build_function_call_vec.
13896 (build_function_call_vec): New function, based on old
13897 build_function_call.
13898 (convert_arguments): Remove nargs and argarray parameters. Change
13899 values to a VEC. Add origtypes parameter.
13900 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
13901 (convert_for_assignment): Add origtype parameter. Change all
13902 callers. If warn_cxx_compat, check for conversion to an enum
13903 type when calling a function.
13904 (store_init_value): Add origtype parameter. Change all callers.
13905 (digest_init): Likewise.
13906 (struct init_node): Add origtype field.
13907 (add_pending_init): Add origtype parameter. Change all callers.
13908 (output_init_element): Likewise.
13909 (output_pending_init_elements): Pass origtype from init_node to
13910 output_init_element.
13911 (process_init_element): Pass origtype from c_expr to
13912 output_init_element.
13913 (c_finish_return): Add origtype parameter. Change all callers.
13914 * c-common.c (sync_resolve_size): Change params to VEC *. Change
13915 caller.
13916 (sync_resolve_params): Likewise.
13917 (sync_resolve_return): Change params to first_param. Change caller.
13918 (resolve_overloaded_builtins): Change params to VEC *. Change
13919 callers. Save first parameter around call to build_function_call_vec.
13920 * c-decl.c (finish_decl): Add origtype parameter. Change all
13921 callers. Call build_function_call_vec rather than
13922 build_function_call for cleanup.
13923 * c-tree.h: Update declarations.
13924 * c-common.h: Update declarations.
13925 * stub-objc.c (objc_rewrite_function_call): Change parameter from
13926 params to first_param.
13927 * target.h (struct gcc_target): Change resolve_overloaded_builtin
13928 params parameter from tree to void *.
13929 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13930 Change arglist parameter to have type void *, and to be a pointer
13931 to a VEC.
13932 * config/rs6000/rs6000-protos.h
13933 (altivec_resolve_overloaded_builtin): Update declaration.
13934 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
13935 fnargs parameter to have type void *, and to be a pointer to a
13936 VEC. Call build_function_call_vec instead of
13937 build_function_call.
13938 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
13939
13940 2009-04-20 Joey Ye <joey.ye@intel.com>
13941 Xuepeng Guo <xuepeng.guo@intel.com>
13942 H.J. Lu <hongjiu.lu@intel.com>
13943
13944 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
13945
13946 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
13947 (IX86_LEA_PRIORITY): Likewise.
13948 (distance_non_agu_define): New function.
13949 (distance_agu_use): Likewise.
13950 (ix86_lea_for_add_ok): Likewise.
13951 (ix86_dep_by_shift_count): Likewise.
13952
13953 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
13954 should split for LEA.
13955
13956 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
13957 function.
13958 (ix86_dep_by_shift_count): Likewise.
13959
13960 2009-04-20 Richard Guenther <rguenther@suse.de>
13961
13962 * expr.c (handled_component_p): Move ...
13963 * tree.h (handled_component_p): ... here.
13964 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
13965 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
13966 and REALPART_EXPR to be in one group.
13967
13968 2009-04-20 Richard Guenther <rguenther@suse.de>
13969
13970 * basic-block.h (get_all_dominated_blocks): Declare.
13971 * dominance.c (get_all_dominated_blocks): New function.
13972 * tree-cfg.c (get_all_dominated_blocks): Remove.
13973 (remove_edge_and_dominated_blocks): Adjust.
13974 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
13975 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
13976 instead of recursing.
13977
13978 2009-04-20 Doug Kwan <dougkwan@google.com>
13979
13980 * cgraph.h (cgraph_node_ptr): New type for vector functions.
13981 (struct cgraph_node_set_def): New type.
13982 (cgraph_node_set) New type. Also declare vector functions.
13983 (struct cgraph_node_set_element_def): New type.
13984 (cgraph_node_set_element): Ditto.
13985 (cgraph_node_set_iterator): New iterator type.
13986 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
13987 cgraph_node_set_remove, dump_cgraph_node_set,
13988 debug_cgraph_node_set): New prototypes.
13989 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
13990 cgraph_node_set_size): New inlines.
13991 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
13992 including cgraph.h.
13993 (struct ipa_opt_pass): Add struct cgraph_node_set_def
13994 argument to function 'write_summary'.
13995 * ipa.c: Include ggc.h.
13996 (hash_cgraph_node_set_element,
13997 eq_cgraph_node_set_element, cgraph_node_set_new,
13998 cgraph_node_set_add, cgraph_node_set_remove,
13999 cgraph_node_set_find, dump_cgraph_node_set,
14000 debug_cgraph_node_set): New functions.
14001 * Makefile.in (ipa.o): Add dependency on GGC_H.
14002
14003 2009-04-20 Ira Rosen <irar@il.ibm.com>
14004
14005 PR tree-optimization/39675
14006 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
14007 check of the return code of vect_schedule_slp. Check that
14008 stmt_vec_info still exists for the statement, before checking its
14009 vectorization type.
14010
14011 2009-04-20 Michael Matz <matz@suse.de>
14012
14013 * Makefile.in (generated_files): Take out $(simple_generated_c).
14014
14015 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
14016
14017 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
14018 (UINTPTR_TYPE): Likewise.
14019
14020 2009-04-19 Joseph Myers <joseph@codesourcery.com>
14021
14022 PR c/37481
14023 * c-typeck.c (digest_init): Check for initializing an array with a
14024 string literal.
14025
14026 2009-04-19 Joseph Myers <joseph@codesourcery.com>
14027
14028 PR c/19771
14029 * c-semantics.c (pop_stmt_list): Propagate
14030 STATEMENT_LIST_HAS_LABEL to parent statement list.
14031
14032 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
14033
14034 * config/mips/mips.h (mips_tune_attr): New macro.
14035 * config/mips/mips.md (cpu): Use it.
14036
14037 2009-04-19 Joseph Myers <joseph@codesourcery.com>
14038
14039 PR c/38243
14040 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
14041 declaring a tag.
14042
14043 2009-04-19 Diego Novillo <dnovillo@google.com>
14044
14045 * toplev.c (compile_file): Move call to coverage_finish ...
14046 * cgraphunit.c (ipa_passes): ... here.
14047 Call cgraph_process_new_functions.
14048 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
14049 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
14050
14051 2009-04-19 Jan Hubicka <jh@suse.cz>
14052
14053 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
14054 cfun.
14055 (dump_cgraph_node): Dump can throw external flag.
14056 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
14057
14058 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
14059
14060 PR c/32061
14061 PR c++/36954
14062 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
14063 * common.opt (Wlogical-op): Move from here...
14064 * c.opt (Wlogical-op): ... to here.
14065 * c-typeck.c (parser_build_binary_op): Update call to
14066 warn_logical_operator.
14067 * c-opts.c (c_common_post_options): Enable warn_logical_op with
14068 extra_warnings.
14069 * c-common.c (warn_logical_op): Update.
14070 * c-common.h (warn_logical_op): Update declaration.
14071
14072 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
14073
14074 * tree.c (protected_set_expr_location): Fix formatting.
14075
14076 2009-04-18 Joseph Myers <joseph@codesourcery.com>
14077
14078 PR c/27676
14079 * c-typeck.c (readonly_warning): new.
14080 (build_unary_op, build_modify_expr): Use readonly_warning for
14081 storing into something readonly but not const-qualified.
14082
14083 2009-04-18 Joseph Myers <joseph@codesourcery.com>
14084
14085 PR c/22367
14086 * c-typeck.c (build_unary_op): Check for taking address of
14087 expression of type void.
14088
14089 2009-04-18 Joseph Myers <joseph@codesourcery.com>
14090
14091 PR c/35210
14092 * c-typeck.c (build_function_call): Check for calling a function
14093 with qualified void return types. Call require_complete_type when
14094 generating a trap.
14095
14096 2009-04-18 Jan Hubicka <jh@suse.cz>
14097
14098 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
14099 Set nothrow flag.
14100 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
14101 can_throw_external flag.
14102 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
14103 * ipa-pure-const.c (ignore_edge): New function.
14104 (propagate): Compute order for NOTHROW computation; set NOTHROWs
14105 only over can_throw_external edges.
14106 (local_pure_const): Add nothrow flag.
14107 * ipa-utils.c (searchc): Add ignore_edge callback.
14108 (ipa_utils_reduced_inorder): Add ignore_edge callback.
14109 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
14110 (set_nothrow_function_flags): Update cgraph.
14111 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
14112
14113 2009-04-18 Richard Guenther <rguenther@suse.de>
14114
14115 PR middle-end/39804
14116 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
14117 (fold_stmt): ... this and ...
14118 (fold_stmt_inplace): ... this.
14119 (fold_stmt_1): Fold references in calls and asms.
14120 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
14121
14122 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
14123
14124 * tree-vrp.c (ssa_name_nonzero_p): Remove.
14125 * tree.h: Remove the prototype for ssa_name_nonzero_p.
14126
14127 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
14128
14129 * tree.c (function_args_count): Remove.
14130 * tree.h: Remove the prototype for function_args_count.
14131
14132 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
14133
14134 * tree-iterator.c (expr_only): Remove.
14135 * tree.h: Remove the prototype for expr_only.
14136
14137 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
14138
14139 * reginfo.c (cannot_change_mode_set_regs): Remove.
14140 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
14141
14142 2009-04-08 Anatoly Sokolov <aesok@post.ru>
14143
14144 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
14145 whether operands 0 and 1 overlaps.
14146
14147 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
14148
14149 PR middle-end/36902
14150 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
14151 pointer. Use warning_at instead of warning.
14152 (search_for_addr_array): Likewise.
14153 (check_array_bounds): Likewise.
14154 (check_all_array_refs): Check that the incoming edge is not in the
14155 list of edges to be removed.
14156 (check_all_array_refs): Avoid the temporal pointer.
14157 (vrp_visit_cond_stmt): Fix typo.
14158 (simplify_switch_using_ranges): Handle the case where the switch
14159 index is an integer constant.
14160
14161 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
14162
14163 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
14164
14165 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
14166
14167 * doc/extend.texi, doc/invoke.texi: Fix typos.
14168
14169 2009-04-17 Cary Coutant <ccoutant@google.com>
14170
14171 * tree-flow-inline.h (get_lineno): Fix inverted test.
14172
14173 2009-04-17 Diego Novillo <dnovillo@google.com>
14174
14175 * tree-ssa-pre.c (create_expression_by_pieces): Remove
14176 assertion for AVAIL_OUT.
14177
14178 2009-04-17 Mike Frysinger <vapier@gentoo.org>
14179
14180 PR target/38627
14181 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
14182 * config/sh/linux-atomic.asm: Likewise.
14183
14184 2009-04-17 Diego Novillo <dnovillo@google.com>
14185
14186 * except.c (debug_eh_tree): New.
14187 (struct eh_region, struct eh_status): Move ...
14188 * except.h: ... here.
14189 (add_type_for_runtime): Declare extern.
14190 (lookup_type_for_runtime): Likewise.
14191 (debug_eh_tree): Declare.
14192 * Makefile.in (GTFILES): List except.h before except.c
14193
14194 2009-04-17 Diego Novillo <dnovillo@google.com>
14195
14196 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
14197 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
14198 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
14199 (find_vars_r): ... here.
14200 * tree-flow.h (find_referenced_vars_in): Declare.
14201 * tree-ssa-pre.c (create_expression_by_pieces): Assert
14202 that AVAIL_OUT exists for BLOCK.
14203 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
14204 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
14205 (tree-parloops.o): Likewise.
14206
14207 2009-04-17 Simon Baldwin <simonb@google.com>
14208
14209 * toplev.c (default_tree_printer): Add handling for %E format.
14210
14211 2009-04-17 Diego Novillo <dnovillo@google.com>
14212
14213 * tree-pretty-print.c (dump_generic_node): Add break after
14214 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
14215 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
14216 FUNCTION_TYPE together. Call print_struct_decl when printing
14217 structures and TDF_SLIM is not given.
14218 (print_struct_decl): Fix logic for detecting recursion.
14219
14220 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
14221
14222 PR 31567
14223 * gcc.c (create_at_file): New.
14224 (compile_input_file_p): New.
14225 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
14226 * main.c (main): Update call to toplev_main.
14227 * toplev.c (toplev_main): Change signature. Call expandargv.
14228 * toplev.h (toplev_main): Change signature.
14229
14230 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
14231
14232 * dwarf2out.c (field_byte_offset): Use the type size as the field size
14233 if the latter is not constant.
14234
14235 2009-04-17 David Edelsohn <edelsohn@gnu.org>
14236
14237 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
14238
14239 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
14240
14241 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
14242 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
14243
14244 2009-04-17 Richard Guenther <rguenther@suse.de>
14245
14246 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14247 Handle component references view-converting an invariant address.
14248
14249 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
14250
14251 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
14252 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
14253 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
14254 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
14255 Use @deftypevr rather than @deftypevar.
14256
14257 2009-04-17 Richard Guenther <rguenther@suse.de>
14258
14259 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
14260 (get_prop_source_stmt): Likewise.
14261 (can_propagate_from): Likewise.
14262
14263 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
14264
14265 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
14266 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
14267 (--with-multilib-list): Add default value.
14268 * configure: Regenerate.
14269 * Makefile.in (TM_ENDIAN_CONFIG): Define.
14270 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
14271 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
14272 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
14273 Don't add default cpu to multilib list unnecessarily, but do enable
14274 the relevant compiler option..
14275 Add support for --with-multilib-list=<blank> and
14276 --with-multilib-list=!<somelib> to supress unwanted multilibs.
14277 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
14278 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
14279 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
14280 TM_MULTILIB_CONFIG.
14281 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
14282 (MULTILIB_OSDIRNAMES): New variable.
14283 * config/sh/t-1e: Delete file.
14284 * config/sh/t-mlib-sh1: Delete file.
14285 * config/sh/t-mlib-sh2: Delete file.
14286 * config/sh/t-mlib-sh2a: Delete file.
14287 * config/sh/t-mlib-sh2a-nofpu: Delete file.
14288 * config/sh/t-mlib-sh2a-single: Delete file.
14289 * config/sh/t-mlib-sh2a-single-only: Delete file.
14290 * config/sh/t-mlib-sh2e: Delete file.
14291 * config/sh/t-mlib-sh3e: Delete file.
14292 * config/sh/t-mlib-sh4: Delete file.
14293 * config/sh/t-mlib-sh4-nofpu: Delete file.
14294 * config/sh/t-mlib-sh4-single: Delete file.
14295 * config/sh/t-mlib-sh4-single-only: Delete file.
14296 * config/sh/t-mlib-sh4a: Delete file.
14297 * config/sh/t-mlib-sh4a-nofpu: Delete file.
14298 * config/sh/t-mlib-sh4a-single: Delete file.
14299 * config/sh/t-mlib-sh4a-single-only: Delete file.
14300 * config/sh/t-mlib-sh4al: Delete file.
14301 * config/sh/t-mlib-sh5-32media: Delete file.
14302 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
14303 * config/sh/t-mlib-sh5-64media: Delete file.
14304 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
14305 * config/sh/t-mlib-sh5-compact: Delete file.
14306 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
14307 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
14308 * doc/install.texi (Options specification): Add
14309 --with-multilib-list and --with-endian.
14310
14311 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
14312
14313 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
14314 REVISION_c.
14315 (OBJS-common): Add plugin-version.o.
14316 (plugin-version.o): New.
14317 * gcc-plugin.h (plugin_gcc_version): New.
14318 (plugin_default_version_check): New.
14319 (plugin_init_func, plugin_init): Add version argument.
14320 * plugin-version.c: New.
14321 * plugin.c (str_plugin_gcc_version_name): New.
14322 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
14323 pass it to the init function.
14324 (plugin_default_version_check): New.
14325
14326 2009-04-17 Richard Guenther <rguenther@suse.de>
14327
14328 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
14329 for decl-vs-decl disambiguation.
14330
14331 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
14332
14333 * config/s390/s390.h (s390_tune_attr): New macro definition.
14334 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
14335
14336 2009-04-17 Richard Guenther <rguenther@suse.de>
14337
14338 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
14339 (fold_stmt_r): Likewise.
14340 (maybe_fold_reference): New function.
14341 (fold_gimple_assign): Handle cases fold_stmt_r did.
14342 (fold_stmt): Do not use fold_stmt_r.
14343 (fold_stmt_inplace): Likewise.
14344
14345 2009-04-17 Richard Guenther <rguenther@suse.de>
14346
14347 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
14348 (record_equivalences_from_stmt): Remove useless checks and
14349 simplifications.
14350 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
14351 the type is already suitable.
14352
14353 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
14354
14355 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
14356
14357 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
14358
14359 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
14360 (CMPtype): Define as __gcc_CMPtype.
14361
14362 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
14363
14364 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
14365 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
14366
14367 2009-04-17 Richard Guenther <rguenther@suse.de>
14368
14369 PR tree-optimization/39746
14370 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
14371 special-casing for builtins and static variable use/def.
14372 (call_may_clobber_ref_p_1): Likewise.
14373
14374 2009-04-16 Ian Lance Taylor <iant@google.com>
14375
14376 * df.h: Include "timevar.h".
14377 (struct df_problem): Change tv_id field to timevar_id_t.
14378 * tree-pass.h: Include "timevar.h".
14379 (struct opt_pass): Change tv_id field to timevar_id_t.
14380 * timevar.h (timevar_id_t): Define TV_NONE.
14381 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
14382 TV_NONE rather than tv_id != 0.
14383 (execute_one_pass): Likewise.
14384 * Makefile.in (DF_H): Add $(TIMEVAR_H).
14385 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
14386 dependencies to $(TREE_PASS_H).
14387 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
14388 to TV_NONE.
14389 (pass_branch_target_load_optimize2): Likewise.
14390 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
14391 (pass_outof_cfg_layout_mode): Likewise.
14392 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
14393 (pass_rebuild_cgraph_edges): Likewise.
14394 (pass_remove_cgraph_callee_edges): Likewise.
14395 * df-core.c (pass_df_initialize_opt): Likewise.
14396 (pass_df_initialize_no_opt): Likewise.
14397 (pass_df_finish): Likewise.
14398 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
14399 * except.c (pass_set_nothrow_function_flags): Likewise.
14400 (pass_convert_to_eh_region_ranges): Likewise.
14401 * final.c (pass_compute_alignments): Likewise.
14402 * function.c (pass_instantiate_virtual_regs): Likewise.
14403 (pass_init_function): Likewise.
14404 (pass_leaf_regs): Likewise.
14405 (pass_match_asm_constraints): Likewise.
14406 * gimple-low.c (pass_lower_cf): Likewise.
14407 (pass_mark_used_blocks): Likewise.
14408 * init-regs.c (pass_initialize_regs): Likewise.
14409 * integrate.c (pass_initial_value_sets): Likewise.
14410 * ira.c (pass_ira): Likewise.
14411 * jump.c (pass_cleanup_barriers): Likewise.
14412 * omp-low.c (pass_expand_omp): Likewise.
14413 (pass_lower_omp): Likewise.
14414 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
14415 * recog.c (pass_split_all_insns): Likewise.
14416 (pass_split_after_reload): Likewise.
14417 (pass_split_before_regstack): Likewise.
14418 (pass_split_before_sched2): Likewise.
14419 (pass_split_for_shorten_branches): Likewise.
14420 * reginfo.c (pass_reginfo_init): Likewise.
14421 (pass_subregs_of_mode_init): Likewise.
14422 (pass_subregs_of_mode_finish): Likewise.
14423 * passes.c (pass_postreload): Likewise.
14424 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
14425 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
14426 (pass_warn_function_return): Likewise.
14427 (pass_warn_function_noreturn): Likewise.
14428 * tree-complex.c (pass_lower_complex): Likewise.
14429 (pass_lower_complex_O0): Likewise.
14430 * tree-if-conv.c (pass_if_conversion): Likewise.
14431 * tree-into-ssa.c (pass_build_ssa): Likewise.
14432 * tree-mudflap.c (pass_mudflap_1): Likewise.
14433 (pass_mudflap_2): Likewise.
14434 * tree-nomudflap.c (pass_mudflap_1): Likewise.
14435 (pass_mudflap_2): Likewise.
14436 * tree-nrv.c (pass_return_slot): Likewise.
14437 * tree-object-size.c (pass_object_sizes): Likewise.
14438 * tree-optimize.c (pass_all_optimizations): Likewise.
14439 (pass_early_local_passes): Likewise.
14440 (pass_all_early_optimizations): Likewise.
14441 (pass_cleanup_cfg): Likewise.
14442 (pass_cleanup_cfg_post_optimizing): Likewise.
14443 (pass_free_datastructures): Likewise.
14444 (pass_free_cfg_annotations): Likewise.
14445 (pass_fixup_cfg): Likewise.
14446 (pass_init_datastructures): Likewise.
14447 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
14448 (pass_late_warn_uninitialized): Likewise.
14449 (pass_update_address_taken): Likewise.
14450 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
14451 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
14452 (pass_cse_sincos): Likewise.
14453 (pass_convert_to_rsqrt): Likewise.
14454 * tree-ssa-structalias.c (pass_build_alias): Likewise.
14455 * tree-stdarg.c (pass_stdarg): Likewise.
14456 * tree-tailcall.c (pass_tail_recursion): Likewise.
14457 (pass_tail_calls): Likewise.
14458 * tree-vect-generic.c (pass_lower_vector): Likewise.
14459 (pass_lower_vector_ssa): Likewise.
14460 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
14461
14462 2009-04-16 Joseph Myers <joseph@codesourcery.com>
14463
14464 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
14465 XLR entry.
14466 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
14467 Handle -march=xlr.
14468 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
14469 logical and signext.
14470
14471 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
14472
14473 PR target/39767
14474 * config/sh/predicates.md (arith_operand): Check if the operand
14475 of TRUNCATE is a REG.
14476
14477 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14478
14479 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
14480 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
14481
14482 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14483
14484 * tree-iterator.c (tsi_split_statement_list_after,
14485 tsi_split_statement_list_before): Remove.
14486 * tree-iterator.h: Remove the prototypes for
14487 tsi_split_statement_list_after and tsi_split_statement_list_before.
14488
14489 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14490
14491 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
14492 * tree-ssa-propagate.h: Remove the prototype for
14493 stmt_makes_single_load.
14494
14495 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14496
14497 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
14498 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
14499
14500 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14501
14502 * tree-iterator.c (EXPR_LAST_BODY): Remove.
14503
14504 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14505
14506 * except.c (eh_region_outer_p): Remove.
14507 * except.h: Remove the prototype for eh_region_outer_p.
14508
14509 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
14510
14511 * function.c (current_function_assembler_name): Remove.
14512 * function.h: Remove the prototype for
14513 current_function_assembler_name.
14514
14515 2009-04-16 Ian Lance Taylor <iant@google.com>
14516
14517 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
14518 (add_reg_note): Call alloc_reg_note.
14519 * rtl.h (alloc_reg_note): Declare.
14520 * combine.c (try_combine): Use alloc_reg_note.
14521 (recog_for_combine, move_deaths): Likewise.
14522 (distribute_notes): Use alloc_reg_note and add_reg_note.
14523 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
14524 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
14525 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
14526
14527 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
14528
14529 PR rtl-optimization/39762
14530 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
14531 ira_may_move_out_cost): Add comments about way of their usage.
14532 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
14533
14534 * ira-conflicts.c (process_regs_for_copy): Use function
14535 ira_get_register_move_cost instead of global
14536 ira_register_move_cost.
14537
14538 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
14539 color_pass, move_spill_restore, update_curr_costs): Ditto.
14540
14541 * ira-lives.c (process_single_reg_class_operands): Ditto.
14542
14543 * ira-emit.c (emit_move_list): Ditto.
14544
14545 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
14546 (record_reg_classes): Ditto. Use functions
14547 ira_get_register_move_cost and ira_get_may_move_cost instead of
14548 global vars ira_register_move_cost, ira_may_move_out_cost and
14549 ira_may_move_in_cost.
14550 (record_address_regs): Don't call ira_init_register_move_cost.
14551 Use function ira_get_may_move_cost instead of global
14552 ira_may_move_in_cost.
14553 (process_bb_node_for_hard_reg_moves): Use function
14554 ira_get_register_move_cost instead of global ira_register_move_cost.
14555 (ira_costs): Don't call ira_init_register_move_cost.
14556
14557 2009-04-16 Richard Guenther <rguenther@suse.de>
14558
14559 * tree-cfg.c (verify_gimple_assign_binary):
14560 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
14561 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
14562 (create_general_new_stmt): Note that this function is broken.
14563
14564 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
14565
14566 * common.opt (fhelp): Add Var(help_flag).
14567 * gcc-plugin.h (plugin_info): Add help.
14568 * plugin.c (plugin_name_args): Add help.
14569 (register_plugin_info): Set plugin->help.
14570 (print_help_one_plugin): New.
14571 (print_plugins_help): New.
14572 * plugin.h (print_plugins_help): New.
14573 * toplev.c (toplev_main): Call print_plugins_help if needed.
14574
14575 2009-04-16 Richard Guenther <rguenther@suse.de>
14576
14577 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
14578 (gimple_ior_addresses_taken_1): New function.
14579 (gimple_ior_addresses_taken): Likewise.
14580 * gimple.h (struct gimple_statement_with_ops_base): Remove
14581 addresses_taken member.
14582 (gimple_ior_addresses_taken): Declare.
14583 (gimple_addresses_taken, gimple_addresses_taken_ptr,
14584 gimple_set_addresses_taken): Remove.
14585 * ipa-reference.c (mark_address): New function.
14586 (scan_stmt_for_static_refs): Use it for marking addresses taken.
14587 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
14588 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
14589 (gimple_add_to_addresses_taken): Remove.
14590 (get_tmr_operands): Call mark_address_taken.
14591 (get_asm_expr_operands): Likewise.
14592 (get_expr_operands): Likewise.
14593 (build_ssa_operands): Do not clear the addresses_taken bitmap.
14594 (free_stmt_operands): Do not free it.
14595 * tree-ssa.c (delete_tree_ssa): Likewise.
14596 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
14597
14598 2009-04-16 Richard Guenther <rguenther@suse.de>
14599
14600 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
14601 (walk_stmt_load_store_ops): Likewise.
14602 * gimple.c (get_base_loadstore): New function.
14603 (walk_stmt_load_store_addr_ops): Likewise.
14604 (walk_stmt_load_store_ops): Likewise.
14605 * ipa-pure-const.c (check_op): Simplify.
14606 (check_load, check_store): New functions.
14607 (check_stmt): Use walk_stmt_load_store_ops.
14608 * ipa-reference.c (mark_load): Adjust signature.
14609 (mark_store): Likewise.
14610 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
14611
14612 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
14613
14614 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
14615 (plugin_info): New.
14616 * opts.c (common_handle_option): Don't call print_version.
14617 * plugin.c (plugin_name_args): Add version.
14618 (register_plugin_info): New.
14619 (register_callback): Handle PLUGIN_INFO.
14620 (try_init_one_plugin): New.
14621 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
14622 if failed to init.
14623 (finalize_one_plugin): New.
14624 (finalize_plugins): New.
14625 (print_one_plugin): New.
14626 (print_plugins_versions): New.
14627 * plugin.h (print_plugins_versions): New.
14628 (finalize_plugins): New.
14629 * toplev.c (compile_file): Don't call initialize_plugins.
14630 (print_version): Call print_plugins_versions.
14631 (toplev_main): Call initialize_plugins. Print version if needed.
14632 Call finalize_plugins.
14633
14634 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
14635
14636 * common.opt (fversion): New.
14637 * gcc.c (print_version): New.
14638 (process_command): Don't print the version. Just set print_version.
14639 (main): Print version. Call subprocesses if print_version and
14640 verbose_flag are set.
14641 * opts.c (common_handle_option): Handle OPT_fversion.
14642
14643 2009-04-16 Richard Guenther <rguenther@suse.de>
14644 Ira Rosen <irar@il.ibm.com>
14645
14646 PR tree-optimization/39698
14647 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
14648 type of the reduction variable. Only generate the def if
14649 it is needed.
14650
14651 * omp-low.c (expand_omp_for_generic): When converting to a pointer
14652 make sure to first convert to an integer of the same precision.
14653 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
14654 the type of the evolution correctly in computing the new
14655 induction variable base.
14656
14657 2009-04-16 Richard Guenther <rguenther@suse.de>
14658
14659 PR middle-end/39625
14660 * tree-cfg.c (make_blocks): Split statements with to-be
14661 abnormal SSA names on the lhs.
14662
14663 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
14664
14665 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
14666 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
14667 * c-typeck.c (really_start_incremental_init): Likewise.
14668 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
14669 (TARGET_INITIALIZER): Remove it.
14670 * target.h (struct target): Remove vector_opaque_p.
14671 * tree.c (build_opaque_vector_type): New.
14672 * tree.h (TYPE_VECTOR_OPAQUE): New.
14673 (build_opaque_vector_type): Declare.
14674 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
14675 * config/rs6000/rs6000.c (build_opaque_vector_type,
14676 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
14677 (rs6000_init_builtins): Use build_opaque_vector_type for
14678 opaque_V4SI_type_node.
14679
14680 2009-04-15 Catherine Moore <clm@codesourcery.com>
14681
14682 * debug.h (set_name): Declare.
14683 * dwarf2out.c (dwarf2out_set_name): Declare.
14684 (dwarf2_debug_hooks): Add set_name.
14685 (find_AT_string): New.
14686 (add_AT_string): Call find_AT_string.
14687 (dwarf2out_set_name): New.
14688 * cp/decl.c (grokdeclarator): Call set_name.
14689 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
14690 * debug.c (do_nothing_debug_hooks): Likewise.
14691 * dbxout.c (dbx_debug_hooks): Likewise.
14692 * sdbout.c (sdb_debug_hooks): Likewise.
14693
14694 2009-04-15 Michael Eager <eager@eagercon.com>
14695
14696 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
14697 reg for single-precision FPU.
14698 * config/rs6000/rs6000.md (movsi_internal1): Only for
14699 !TARGET_SINGLE_FPU.
14700 (movsi_internal1_single): New. Add pattern to move SI values to/from
14701 single-precision FP regs.
14702
14703 2009-04-15 Richard Guenther <rguenther@suse.de>
14704
14705 * omp-low.c (lower_rec_input_clauses): Build correct address
14706 expressions.
14707 (expand_omp_for_generic): Fix multiplication type.
14708 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
14709 (generate_memset_zero): Fix types.
14710 * tree-profile.c (prepare_instrumented_value): Correctly
14711 widen a pointer.
14712
14713 2009-04-15 Ian Lance Taylor <iant@google.com>
14714
14715 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
14716 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
14717 for -Wall and for -Wc++-compat.
14718 (c_common_post_options): For C++, set warn_enum_compare if not
14719 already set.
14720 * c-tree.h (struct c_expr): Add field original_type.
14721 (build_external_ref): Update declaration.
14722 * c-parser.c (c_parser_braced_init): Set original_type.
14723 (c_parser_initelt): Likewise.
14724 (c_parser_expr_no_commas): Likewise.
14725 (c_parser_conditional_expression): Likewise.
14726 (c_parser_cast_expression): Likewise.
14727 (c_parser_unary_expression): Likewise. Pull setting of
14728 original_code to top of function.
14729 (c_parser_sizeof_expression): Set original_type.
14730 (c_parser_alignof_expression): Likewise.
14731 (c_parser_postfix_expression): Likewise. Pull setting of
14732 original_code to top of function.
14733 (c_parser_postfix_expression_after_paren_type): Set original_type.
14734 (c_parser_postfix_expression_after_primary): Likewise.
14735 (c_parser_expression): Likewise.
14736 * c-typeck.c (build_external_ref): Add type parameter. Change all
14737 callers.
14738 (c_expr_sizeof_expr): Set original_type field.
14739 (parser_build_unary_op): Likewise.
14740 (parser_build_binary_op): Likewise. Optionally warn about
14741 comparisons of enums of different types.
14742 (digest_init): Set original_type field.
14743 (really_start_incremental_init): Likewise.
14744 (push_init_level, pop_init_level): Likewise.
14745 * doc/invoke.texi (Warning Options): -Wenum-compare now
14746 supported in C.
14747
14748 2009-04-15 Richard Guenther <rguenther@suse.de>
14749
14750 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
14751 out a necessary conversion.
14752 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
14753 names we didn't value number.
14754 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
14755
14756 2009-04-15 Richard Guenther <rguenther@suse.de>
14757
14758 PR tree-optimization/39764
14759 * tree-ssa-ccp.c (get_value): Canonicalize value with
14760 canonicalize_float_value.
14761
14762 2009-04-15 Jan Hubicka <jh@suse.cz>
14763
14764 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
14765 Wrong version of patch.
14766
14767 2009-04-15 Jan Hubicka <jh@suse.cz>
14768
14769 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
14770
14771 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
14772
14773 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
14774 our distinct integral and vector types.
14775
14776 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
14777
14778 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
14779 * init.c (build_vtbl_address): Remove call to assemble_external.
14780
14781 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
14782
14783 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
14784 output for other floating point modes.
14785
14786 2009-04-14 Diego Novillo <dnovillo@google.com>
14787
14788 * diagnostic.c (diagnostic_report_diagnostic): Do not
14789 warn about loaded plugins for DK_ERROR and DK_WARNING.
14790 * c-decl.c (declspecs_add_type): Move call to
14791 invoke_plugin_callbacks ...
14792 * c-parser.c (c_parser_declspecs): ... here.
14793 * plugin.c (dump_active_plugins): Tidy output.
14794
14795 2009-04-14 Diego Novillo <dnovillo@google.com>
14796 Le-Chun Wu <lcwu@google.com>
14797
14798 * configure.ac: Add --enable-plugin support.
14799 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
14800 * Makefile.in (PLUGIN_H): Define.
14801 Export ENABLE_PLUGIN and GMPINC to site.exp.
14802 Add PLUGINLIBS to link command.
14803 Add/modify dependencies for plugin.o and files including plugin.h.
14804 (plugin.o): New.
14805 * config.in: Regenerate.
14806
14807 * opts.c (common_handle_option): Handle OPT_fplugin_ and
14808 OPT_fplugin_arg_.
14809
14810 2009-04-14 Le-Chun Wu <lcwu@google.com>
14811
14812 * tree-pass.h (register_one_dump_file): Add a prototype for
14813 register_one_dump_file.
14814 * toplev.c (compile_file): Call initialize_plugins.
14815 (do_compile): Call invoke_plugin_callbacks.
14816 (toplev_main): Call invoke_plugin_callbacks.
14817 * common.opt: Add -fplugin= and -fplugin-arg-.
14818 * gcc-plugin.h: New public header file for plugins to include.
14819 * plugin.c: New source file.
14820 * plugin.h: New internal header file.
14821 * passes.c (register_one_dump_file): Make it external.
14822
14823 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
14824
14825 2009-04-14 Diego Novillo <dnovillo@google.com>
14826
14827 * doc/plugins.texi: New.
14828 * doc/gccint.texi: Add reference to Plugins chapter.
14829 * doc/invoke.texi: Document -fplugin and -fplugin-arg
14830 * diagnostic.c (diagnostic_report_diagnostic): Warn about
14831 loaded plugins, if any.
14832 * timevar.def (TV_PLUGIN_INIT): Define.
14833 (TV_PLUGIN_RUN): Define.
14834 * plugin.c: Include timevar.h
14835 (plugins_active_p): New.
14836 (dump_active_plugins): New.
14837 (debug_active_plugins): New.
14838
14839 2009-04-14 Joseph Myers <joseph@codesourcery.com>
14840
14841 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
14842 library paths.
14843 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
14844
14845 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
14846
14847 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
14848 the same as a minus without a shift.
14849
14850 2009-04-14 Nick Clifton <nickc@redhat.com>
14851
14852 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
14853 comparisons with small integers will always produce a short
14854 branch.
14855
14856 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
14857
14858 Merge:
14859 2008-12-19 Diego Novillo <dnovillo@google.com>
14860
14861 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
14862
14863 2009-04-14 Richard Guenther <rguenther@suse.de>
14864
14865 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
14866 verification.
14867 (verify_gimple_assign_binary): Likewise. Handle shifts and
14868 rotates correctly.
14869 (verify_gimple_phi): Print the mismatched argument position.
14870 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
14871 Fix types.
14872 (vect_update_init_of_dr): Likewise.
14873 * matrix-reorg.c (transform_access_sites): Do what the
14874 comment suggests.
14875 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
14876
14877 2009-04-13 Michael Eager <eager@eagercon.com>
14878
14879 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
14880 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
14881 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
14882 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
14883 remove duplicate config
14884
14885 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
14886
14887 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
14888 file_name:line_number type locator of the call site.
14889
14890 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
14891
14892 * genautomata.c: Put blank after comma.
14893 (automaton_decls): New.
14894 (struct unit_usage): Add comments to member next.
14895 (store_alt_unit_usage): Keep the list ordered.
14896 (unit_present_on_list_p, equal_alternatives_p): New.
14897 (check_regexp_units_distribution): Check units distribution
14898 correctness correctly.
14899 (main): Don't write automata if error is found. Return correct
14900 exit code.
14901
14902 * config/m68k/cf.md (cfv4_ds): Remove.
14903 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
14904 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
14905
14906 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
14907 power4-load-ext, power4-store, power4-store-update,
14908 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
14909 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
14910 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
14911 power4-sqrt, power4-isync): Modify reservation to make correct
14912 unit distribution to automata.
14913
14914 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
14915 power5-store-update, power5-two, power5-three, power5-lmul,
14916 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
14917
14918 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
14919
14920 * except.c (pass_set_nothrow_function_flags): Set name and add
14921 TODO_dump_func.
14922 (set_nothrow_function_flags): Mention in the dump file when
14923 changing a function to nothrow.
14924
14925 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
14926
14927 PR/39066
14928 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
14929 instead of unsigned long.
14930
14931 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14932
14933 * config/arm/arm.c (return_used_this_function): Remove.
14934 (arm_output_function_prologue): Remove use of
14935 return_used_this_function.
14936 (output_return_instruction): Replace use of
14937 return_used_this_function
14938 by cfun->machine->return_used_this_function.
14939 (arm_output_epilogue): Likewise.
14940 (arm_output_function_epilogue): Likewise.
14941 (thumb_unexpanded_epilogue): Likewise.
14942 * config/arm/arm.h (struct machine_function):
14943 New member return_used_this_function.
14944
14945 2009-04-12 Mark Mitchell <mark@codesourcery.com>
14946
14947 * doc/install.texi: Correct description of default directory for
14948 --with-gxx-include-dir.
14949
14950 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
14951
14952 * fold-const.c (build_range_check): Properly deal with enumeral and
14953 boolean base types.
14954
14955 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
14956
14957 * doc/invoke.texi (max_gcse_passes): Remove documentation.
14958 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
14959 * params.h (MAX_GCSE_PASSES): Remove.
14960 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
14961 in sequence. Remove ability to run multiple passes.
14962 (bypass_jumps): Report run as third CPROP pass.
14963
14964 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
14965
14966 PR middle-end/39651
14967 * except.c (can_throw_external): Look at each insn in a SEQUENCE
14968 when deciding whether the whole SEQUENCE can throw.
14969
14970 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
14971
14972 PR target/39740
14973 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
14974 offseted label references.
14975
14976 2009-04-11 Jan Hubicka <jh@suse.cz>
14977
14978 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
14979
14980 2009-04-11 Richard Guenther <rguenther@suse.de>
14981
14982 PR middle-end/39732
14983 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
14984 return variables as TREE_ADDRESSABLE.
14985
14986 2009-04-11 Richard Guenther <rguenther@suse.de>
14987
14988 PR tree-optimization/39713
14989 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
14990 reference trees have SSA_NAME operands.
14991
14992 2009-04-11 Richard Guenther <rguenther@suse.de>
14993
14994 PR c/39712
14995 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
14996 address expressions.
14997
14998 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
14999
15000 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
15001 match changes in Cygwin 1.7
15002 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
15003 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
15004
15005 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
15006
15007 PR tree-optimization/39701
15008 * doc/invoke.texi (Optimization Options): Document change in
15009 meaning and initialization of -fdelete-null-pointer-checks.
15010
15011 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
15012
15013 PR middle-end/39701
15014 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
15015
15016 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
15017 here.
15018
15019 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
15020
15021 2009-04-10 Chao-ying Fu <fu@mips.com>
15022
15023 * doc/tm.texi (Instruction Output): Document
15024 TARGET_ASM_FINAL_POSTSCAN_INSN.
15025 * target.h (final_postscan_insn): New field in asm_out.
15026 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
15027 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
15028 * final.c (final_scan_insn): Call
15029 targetm.asm_out.final_postscan_insn after outputting
15030 an asm macro and a normal instruction.
15031
15032 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
15033 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
15034 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
15035 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
15036 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
15037
15038 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
15039
15040 PR middle-end/39701
15041 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
15042 variables as non-NULL even with -fdelete-null-pointer-checks.
15043
15044 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
15045
15046 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
15047
15048 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
15049
15050 PR target/39678
15051 * config/i386/i386.c (classify_argument): Handle SCmode with
15052 (bit_offset % 64) != 0.
15053
15054 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
15055
15056 * doc/invoke.texi (Optimize Options): Add cross-reference to
15057 -Q --help=optimizers examples.
15058
15059 2009-04-10 Ben Elliston <bje@au.ibm.com>
15060
15061 PR target/36800
15062 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
15063 regalign for the reg == fpr and TDmode case.
15064
15065 2009-04-09 David Ayers <ayers@fsfe.org>
15066
15067 PR objc/29200
15068 * objc/objc-act.c (warn_with_method): Remove helper function.
15069 (check_duplicates): Call warning and inform directly.
15070 (really_start_method): Likewise.
15071
15072 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
15073
15074 * expmed.c (expand_divmod): Always use a comparison for a division
15075 by a large unsigned integer.
15076
15077 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
15078 for things others than variables or functions as nonzero.
15079
15080 2009-04-09 Nick Clifton <nickc@redhat.com>
15081
15082 * unwind-compat.c: Change copyright header to refer to version
15083 3 of the GNU General Public License with version 3.1 of the
15084 GCC Runtime Library Exception and to point readers at the
15085 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
15086 * config/alpha/crtfastmath.c: Likewise.
15087 * config/alpha/linux-unwind.h: Likewise.
15088 * config/alpha/qrnnd.asm: Likewise.
15089 * config/alpha/vms-crt0-64.c: Likewise.
15090 * config/alpha/vms-crt0.c: Likewise.
15091 * config/alpha/vms-dwarf2.asm: Likewise.
15092 * config/alpha/vms-dwarf2eh.asm: Likewise.
15093 * config/alpha/vms-psxcrt0-64.c: Likewise.
15094 * config/alpha/vms-psxcrt0.c: Likewise.
15095 * config/alpha/vms_tramp.asm: Likewise.
15096 * config/arc/initfini.c: Likewise.
15097 * config/arc/lib1funcs.asm: Likewise.
15098 * config/arm/bpabi-v6m.S: Likewise.
15099 * config/arm/bpabi.S: Likewise.
15100 * config/arm/bpabi.c: Likewise.
15101 * config/arm/crti.asm: Likewise.
15102 * config/arm/crtn.asm: Likewise.
15103 * config/arm/ieee754-df.S: Likewise.
15104 * config/arm/ieee754-sf.S: Likewise.
15105 * config/arm/lib1funcs.asm: Likewise.
15106 * config/arm/libunwind.S: Likewise.
15107 * config/arm/linux-atomic.c: Likewise.
15108 * config/arm/mmintrin.h: Likewise.
15109 * config/arm/pr-support.c: Likewise.
15110 * config/arm/unaligned-funcs.c: Likewise.
15111 * config/arm/unwind-arm.c: Likewise.
15112 * config/arm/unwind-arm.h: Likewise.
15113 * config/avr/libgcc.S: Likewise.
15114 * config/bfin/crti.s: Likewise.
15115 * config/bfin/crtlibid.s: Likewise.
15116 * config/bfin/crtn.s: Likewise.
15117 * config/bfin/lib1funcs.asm: Likewise.
15118 * config/bfin/linux-unwind.h: Likewise.
15119 * config/cris/arit.c: Likewise.
15120 * config/cris/cris_abi_symbol.c: Likewise.
15121 * config/darwin-64.c: Likewise.
15122 * config/darwin-crt2.c: Likewise.
15123 * config/darwin-crt3.c: Likewise.
15124 * config/darwin.h: Likewise.
15125 * config/dbxelf.h: Likewise.
15126 * config/dfp-bit.c: Likewise.
15127 * config/dfp-bit.h: Likewise.
15128 * config/elfos.h: Likewise.
15129 * config/fixed-bit.c: Likewise.
15130 * config/fixed-bit.h: Likewise.
15131 * config/fp-bit.c: Likewise.
15132 * config/fp-bit.h: Likewise.
15133 * config/fr30/crti.asm: Likewise.
15134 * config/fr30/crtn.asm: Likewise.
15135 * config/fr30/lib1funcs.asm: Likewise.
15136 * config/freebsd-spec.h: Likewise.
15137 * config/frv/cmovd.c: Likewise.
15138 * config/frv/cmovh.c: Likewise.
15139 * config/frv/cmovw.c: Likewise.
15140 * config/frv/frvbegin.c: Likewise.
15141 * config/frv/frvend.c: Likewise.
15142 * config/frv/lib1funcs.asm: Likewise.
15143 * config/glibc-stdint.h: Likewise.
15144 * config/h8300/clzhi2.c: Likewise.
15145 * config/h8300/crti.asm: Likewise.
15146 * config/h8300/crtn.asm: Likewise.
15147 * config/h8300/ctzhi2.c: Likewise.
15148 * config/h8300/fixunssfsi.c: Likewise.
15149 * config/h8300/lib1funcs.asm: Likewise.
15150 * config/h8300/parityhi2.c: Likewise.
15151 * config/h8300/popcounthi2.c: Likewise.
15152 * config/i386/ammintrin.h: Likewise.
15153 * config/i386/att.h: Likewise.
15154 * config/i386/avxintrin.h: Likewise.
15155 * config/i386/biarch64.h: Likewise.
15156 * config/i386/bmmintrin.h: Likewise.
15157 * config/i386/cpuid.h: Likewise.
15158 * config/i386/cross-stdarg.h: Likewise.
15159 * config/i386/crtfastmath.c: Likewise.
15160 * config/i386/crtprec.c: Likewise.
15161 * config/i386/cygming-crtbegin.c: Likewise.
15162 * config/i386/cygming-crtend.c: Likewise.
15163 * config/i386/cygwin.asm: Likewise.
15164 * config/i386/emmintrin.h: Likewise.
15165 * config/i386/gmm_malloc.h: Likewise.
15166 * config/i386/gthr-win32.c: Likewise.
15167 * config/i386/i386.h: Likewise.
15168 * config/i386/immintrin.h: Likewise.
15169 * config/i386/linux-unwind.h: Likewise.
15170 * config/i386/linux64.h: Likewise.
15171 * config/i386/mm3dnow.h: Likewise.
15172 * config/i386/mmintrin-common.h: Likewise.
15173 * config/i386/mmintrin.h: Likewise.
15174 * config/i386/nmmintrin.h: Likewise.
15175 * config/i386/pmm_malloc.h: Likewise.
15176 * config/i386/pmmintrin.h: Likewise.
15177 * config/i386/smmintrin.h: Likewise.
15178 * config/i386/sol2-c1.asm: Likewise.
15179 * config/i386/sol2-ci.asm: Likewise.
15180 * config/i386/sol2-cn.asm: Likewise.
15181 * config/i386/sol2-gc1.asm: Likewise.
15182 * config/i386/tmmintrin.h: Likewise.
15183 * config/i386/unix.h: Likewise.
15184 * config/i386/w32-unwind.h: Likewise.
15185 * config/i386/wmmintrin.h: Likewise.
15186 * config/i386/x86-64.h: Likewise.
15187 * config/i386/x86intrin.h: Likewise.
15188 * config/i386/xmmintrin.h: Likewise.
15189 * config/ia64/crtbegin.asm: Likewise.
15190 * config/ia64/crtend.asm: Likewise.
15191 * config/ia64/crtfastmath.c: Likewise.
15192 * config/ia64/crti.asm: Likewise.
15193 * config/ia64/crtn.asm: Likewise.
15194 * config/ia64/fde-glibc.c: Likewise.
15195 * config/ia64/lib1funcs.asm: Likewise.
15196 * config/ia64/linux-unwind.h: Likewise.
15197 * config/ia64/quadlib.c: Likewise.
15198 * config/ia64/unwind-ia64.c: Likewise.
15199 * config/linux.h: Likewise.
15200 * config/m32c/m32c-lib1.S: Likewise.
15201 * config/m32c/m32c-lib2-trapv.c: Likewise.
15202 * config/m32c/m32c-lib2.c: Likewise.
15203 * config/m32r/initfini.c: Likewise.
15204 * config/m68hc11/larith.asm: Likewise.
15205 * config/m68hc11/m68hc11-crt0.S: Likewise.
15206 * config/m68k/cf.md: Likewise.
15207 * config/m68k/crti.s: Likewise.
15208 * config/m68k/crtn.s: Likewise.
15209 * config/m68k/lb1sf68.asm: Likewise.
15210 * config/m68k/linux-unwind.h: Likewise.
15211 * config/mcore/crti.asm: Likewise.
15212 * config/mcore/crtn.asm: Likewise.
15213 * config/mcore/lib1.asm: Likewise.
15214 * config/mips/linux-unwind.h: Likewise.
15215 * config/mips/loongson.h: Likewise.
15216 * config/mips/mips16.S: Likewise.
15217 * config/mmix/crti.asm: Likewise.
15218 * config/mmix/crtn.asm: Likewise.
15219 * config/pa/fptr.c: Likewise.
15220 * config/pa/hpux-unwind.h: Likewise.
15221 * config/pa/lib2funcs.asm: Likewise.
15222 * config/pa/linux-atomic.c: Likewise.
15223 * config/pa/linux-unwind.h: Likewise.
15224 * config/pa/milli64.S: Likewise.
15225 * config/pa/quadlib.c: Likewise.
15226 * config/pa/stublib.c: Likewise.
15227 * config/picochip/libgccExtras/adddi3.asm: Likewise.
15228 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
15229 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
15230 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
15231 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
15232 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
15233 * config/picochip/libgccExtras/divmod15.asm: Likewise.
15234 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
15235 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
15236 * config/picochip/libgccExtras/longjmp.asm: Likewise.
15237 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
15238 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
15239 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
15240 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
15241 * config/picochip/libgccExtras/setjmp.asm: Likewise.
15242 * config/picochip/libgccExtras/subdi3.asm: Likewise.
15243 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
15244 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
15245 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
15246 * config/rs6000/750cl.h: Likewise.
15247 * config/rs6000/altivec.h: Likewise.
15248 * config/rs6000/biarch64.h: Likewise.
15249 * config/rs6000/crtresfpr.asm: Likewise.
15250 * config/rs6000/crtresgpr.asm: Likewise.
15251 * config/rs6000/crtresxfpr.asm: Likewise.
15252 * config/rs6000/crtresxgpr.asm: Likewise.
15253 * config/rs6000/crtsavfpr.asm: Likewise.
15254 * config/rs6000/crtsavgpr.asm: Likewise.
15255 * config/rs6000/darwin-asm.h: Likewise.
15256 * config/rs6000/darwin-fallback.c: Likewise.
15257 * config/rs6000/darwin-fpsave.asm: Likewise.
15258 * config/rs6000/darwin-ldouble.c: Likewise.
15259 * config/rs6000/darwin-tramp.asm: Likewise.
15260 * config/rs6000/darwin-unwind.h: Likewise.
15261 * config/rs6000/darwin-vecsave.asm: Likewise.
15262 * config/rs6000/darwin-world.asm: Likewise.
15263 * config/rs6000/e500crtres32gpr.asm: Likewise.
15264 * config/rs6000/e500crtres64gpr.asm: Likewise.
15265 * config/rs6000/e500crtres64gprctr.asm: Likewise.
15266 * config/rs6000/e500crtrest32gpr.asm: Likewise.
15267 * config/rs6000/e500crtrest64gpr.asm: Likewise.
15268 * config/rs6000/e500crtresx32gpr.asm: Likewise.
15269 * config/rs6000/e500crtresx64gpr.asm: Likewise.
15270 * config/rs6000/e500crtsav32gpr.asm: Likewise.
15271 * config/rs6000/e500crtsav64gpr.asm: Likewise.
15272 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
15273 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
15274 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
15275 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
15276 * config/rs6000/eabi-ci.asm: Likewise.
15277 * config/rs6000/eabi-cn.asm: Likewise.
15278 * config/rs6000/eabi.asm: Likewise.
15279 * config/rs6000/linux-unwind.h: Likewise.
15280 * config/rs6000/linux64.h: Likewise.
15281 * config/rs6000/paired.h: Likewise.
15282 * config/rs6000/paired.md: Likewise.
15283 * config/rs6000/ppc64-fp.c: Likewise.
15284 * config/rs6000/ppu_intrinsics.h: Likewise.
15285 * config/rs6000/rs6000.h: Likewise.
15286 * config/rs6000/si2vmx.h: Likewise.
15287 * config/rs6000/sol-ci.asm: Likewise.
15288 * config/rs6000/sol-cn.asm: Likewise.
15289 * config/rs6000/spe.h: Likewise.
15290 * config/rs6000/spu2vmx.h: Likewise.
15291 * config/rs6000/sysv4.h: Likewise.
15292 * config/rs6000/tramp.asm: Likewise.
15293 * config/rs6000/vec_types.h: Likewise.
15294 * config/s390/linux-unwind.h: Likewise.
15295 * config/s390/tpf-unwind.h: Likewise.
15296 * config/score/crti.asm: Likewise.
15297 * config/score/crtn.asm: Likewise.
15298 * config/sh/crt1.asm: Likewise.
15299 * config/sh/crti.asm: Likewise.
15300 * config/sh/crtn.asm: Likewise.
15301 * config/sh/divtab-sh4-300.c: Likewise.
15302 * config/sh/divtab-sh4.c: Likewise.
15303 * config/sh/divtab.c: Likewise.
15304 * config/sh/lib1funcs-4-300.asm: Likewise.
15305 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
15306 * config/sh/lib1funcs.asm: Likewise.
15307 * config/sh/lib1funcs.h: Likewise.
15308 * config/sh/linux-atomic.asm: Likewise.
15309 * config/sh/linux-unwind.h: Likewise.
15310 * config/sh/shmedia.h: Likewise.
15311 * config/sh/sshmedia.h: Likewise.
15312 * config/sh/ushmedia.h: Likewise.
15313 * config/sparc/crtfastmath.c: Likewise.
15314 * config/sparc/linux-unwind.h: Likewise.
15315 * config/sparc/sol2-c1.asm: Likewise.
15316 * config/sparc/sol2-ci.asm: Likewise.
15317 * config/sparc/sol2-cn.asm: Likewise.
15318 * config/spu/divmodti4.c: Likewise.
15319 * config/spu/divv2df3.c: Likewise.
15320 * config/spu/float_disf.c: Likewise.
15321 * config/spu/float_unsdidf.c: Likewise.
15322 * config/spu/float_unsdisf.c: Likewise.
15323 * config/spu/float_unssidf.c: Likewise.
15324 * config/spu/mfc_multi_tag_release.c: Likewise.
15325 * config/spu/mfc_multi_tag_reserve.c: Likewise.
15326 * config/spu/mfc_tag_release.c: Likewise.
15327 * config/spu/mfc_tag_reserve.c: Likewise.
15328 * config/spu/mfc_tag_table.c: Likewise.
15329 * config/spu/multi3.c: Likewise.
15330 * config/spu/spu_internals.h: Likewise.
15331 * config/spu/spu_intrinsics.h: Likewise.
15332 * config/spu/spu_mfcio.h: Likewise.
15333 * config/spu/vec_types.h: Likewise.
15334 * config/spu/vmx2spu.h: Likewise.
15335 * config/stormy16/stormy16-lib2.c: Likewise.
15336 * config/svr4.h: Likewise.
15337 * config/sync.c: Likewise.
15338 * config/v850/lib1funcs.asm: Likewise.
15339 * config/vxlib-tls.c: Likewise.
15340 * config/vxlib.c: Likewise.
15341 * config/vxworks-dummy.h: Likewise.
15342 * config/xtensa/crti.asm: Likewise.
15343 * config/xtensa/crtn.asm: Likewise.
15344 * config/xtensa/ieee754-df.S: Likewise.
15345 * config/xtensa/ieee754-sf.S: Likewise.
15346 * config/xtensa/lib1funcs.asm: Likewise.
15347 * config/xtensa/lib2funcs.S: Likewise.
15348 * config/xtensa/linux-unwind.h: Likewise.
15349 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
15350 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
15351 * coretypes.h: Likewise.
15352 * crtstuff.c: Likewise.
15353 * defaults.h: Likewise.
15354 * dwarf2.h: Likewise.
15355 * emutls.c: Likewise.
15356 * gbl-ctors.h: Likewise.
15357 * gcov-io.h: Likewise.
15358 * ginclude/float.h: Likewise.
15359 * ginclude/iso646.h: Likewise.
15360 * ginclude/stdarg.h: Likewise.
15361 * ginclude/stdbool.h: Likewise.
15362 * ginclude/stddef.h: Likewise.
15363 * ginclude/stdfix.h: Likewise.
15364 * ginclude/stdint-gcc.h: Likewise.
15365 * ginclude/tgmath.h: Likewise.
15366 * gthr-aix.h: Likewise.
15367 * gthr-dce.h: Likewise.
15368 * gthr-gnat.c: Likewise.
15369 * gthr-gnat.h: Likewise.
15370 * gthr-lynx.h: Likewise.
15371 * gthr-mipssde.h: Likewise.
15372 * gthr-nks.h: Likewise.
15373 * gthr-posix.c: Likewise.
15374 * gthr-posix.h: Likewise.
15375 * gthr-posix95.h: Likewise.
15376 * gthr-rtems.h: Likewise.
15377 * gthr-single.h: Likewise.
15378 * gthr-solaris.h: Likewise.
15379 * gthr-tpf.h: Likewise.
15380 * gthr-vxworks.h: Likewise.
15381 * gthr-win32.h: Likewise.
15382 * gthr.h: Likewise.
15383 * libgcc2.c: Likewise.
15384 * libgcc2.h: Likewise.
15385 * libgcov.c: Likewise.
15386 * tsystem.h: Likewise.
15387 * typeclass.h: Likewise.
15388 * unwind-c.c: Likewise.
15389 * unwind-compat.h: Likewise.
15390 * unwind-dw2-fde-compat.c: Likewise.
15391 * unwind-dw2-fde-darwin.c: Likewise.
15392 * unwind-dw2-fde-glibc.c: Likewise.
15393 * unwind-dw2-fde.c: Likewise.
15394 * unwind-dw2-fde.h: Likewise.
15395 * unwind-dw2.c: Likewise.
15396 * unwind-dw2.h: Likewise.
15397 * unwind-generic.h: Likewise.
15398 * unwind-pe.h: Likewise.
15399 * unwind-sjlj.c: Likewise.
15400 * unwind.inc: Likewise.
15401 * config/arm/neon-gen.ml: Change generated copyright header to
15402 refer to version 3 of the GNU General Public License with
15403 version 3.1 of the GCC Runtime Library Exception and to point
15404 readers at the COPYING3 and COPYING3.RUNTIME files and the
15405 FSF's license web page.
15406 * config/arm/arm_neon.h: Regenerate.
15407
15408 2009-04-09 Jakub Jelinek <jakub@redhat.com>
15409
15410 * config/cris/cris.md: Change copyright header to refer to version
15411 3 of the GNU General Public License.
15412 * doc/install.texi2html: Change copyright header to refer to version
15413 3 of the GNU General Public License and to point readers at the
15414 COPYING3 file and the FSF's license web page.
15415 * config/vax/linux.h: Likewise.
15416
15417 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
15418
15419 * config/i386/i386.md (cmpcc): New.
15420 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
15421 (sync_compare_and_swap_cc*): Delete.
15422
15423 * config/s390/s390.c (s390_compare_emitted): Remove.
15424 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
15425 s390_compare_emitted used to be handled. Assert that modes match.
15426 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
15427 refer to sync_compare_and_swap_ccsi.
15428 * config/s390/s390.h (s390_compare_emitted): Remove.
15429 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
15430 instead of s390_compare_emitted.
15431 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
15432 instead of s390_compare_emitted.
15433 * config/s390/s390.md (cmpcc): New.
15434 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
15435 CC_REGNUM, do not pretend it's set.
15436 (sync_compare_and_swap_cc*): Delete.
15437 * config/s390/predicates.md (cc_reg_operand): New.
15438
15439 * expr.c (sync_compare_and_swap_cc): Delete.
15440 * optabs.h (sync_compare_and_swap_cc): Delete.
15441 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
15442 is being used with can_compare_p.
15443 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
15444 (find_cc_set): New.
15445 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
15446 look for a MODE_CC set instead. Use emit_store_flag.
15447 (expand_compare_and_swap_loop): Likewise, with some additional
15448 complication to avoid a force_reg when useless. Use
15449 emit_cmp_and_jump_insns.
15450 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
15451 * doc/md.texi (sync_compare_and_swap_cc): Merge with
15452 sync_compare_and_swap documentation.
15453
15454 2009-04-09 Jan Hubicka <jh@suse.cz>
15455
15456 * except.c (find_prev_try): Break out from ....
15457 (duplicate_eh_regions): ... here; properly update prev_try pointers
15458 when duplication part of tree.
15459 (dump_eh_tree): Improve dumping.
15460 (verify_eh_region): New.
15461 (verify_eh_tree): Use it.
15462
15463 2009-04-06 Richard Guenther <rguenther@suse.de>
15464
15465 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
15466 &ARRAY addresses by adjusting their types and prepending
15467 a conversion.
15468 * tree-cfg.c (verify_gimple_assign_single): Verify that
15469 addresses are correct.
15470
15471 2009-04-09 Richard Guenther <rguenther@suse.de>
15472
15473 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
15474 indices into an array reference if possible.
15475 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
15476 Fold POINTER_PLUS_EXPR statements with invariant address.
15477
15478 2009-04-09 Alan Modra <amodra@bigpond.net.au>
15479
15480 PR target/39634
15481 * config.gcc (powerpc64-*-linux*): Always build biarch.
15482
15483 2009-04-09 Joseph Myers <joseph@codesourcery.com>
15484
15485 PR c/39613
15486 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
15487 it and pedwarn if this results in an INTEGER_CST.
15488
15489 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15490
15491 * doc/install.texi: Update minimum GMP version. Remove obsolete
15492 text in MPFR section.
15493
15494 2009-04-08 Jakub Jelinek <jakub@redhat.com>
15495
15496 * dwarf2out.c (class_scope_p): New static inline.
15497 (class_or_namespace_scope_p): Use it.
15498 (gen_variable_die): Use DW_TAG_member tag for static data member
15499 declarations instead of DW_TAG_variable.
15500
15501 PR middle-end/39573
15502 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
15503 variables.
15504
15505 2009-04-08 Richard Guenther <rguenther@suse.de>
15506
15507 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
15508 valueize random data.
15509
15510 2009-04-08 David Edelsohn <edelsohn@gnu.org>
15511
15512 * config.gcc (aix tm_file): Add aix-stdint.h.
15513 (aix tm clause use_gcc_stdint): Set to wrap.
15514 * config/rs6000/aix-stdint.h: New file.
15515
15516 2009-04-08 Richard Guenther <rguenther@suse.de>
15517
15518 PR middle-end/36291
15519 * tree-dfa.c (add_referenced_var): Do not recurse into
15520 global initializers.
15521 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
15522 exposed variables.
15523 (fold_const_aggregate_ref): Likewise.
15524
15525 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
15526
15527 * recog.c (ordered_comparison_operator): New.
15528 * gensupport.c (std_preds): Add it.
15529 * doc/md.texi (Machine-Independent Predicates): Document it.
15530
15531 2009-04-08 Jan Hubicka <jh@suse.cz>
15532
15533 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
15534 * function.h (rtl_eh): Remove exception_handler_label_map.
15535 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
15536 remove_exception_handler_label, for_each_eh_label_1): Remove.
15537 (rtl_remove_unreachable_regions): Remove.
15538 (convert_from_eh_region_ranges): Do not remove unreachable regions.
15539 (find_exception_handler_labels): Don't build the hashtable.
15540 (maybe_remove_eh_handler): Remove.
15541 (for_each_eh_label): Rewrite to walk the tree.
15542 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
15543 * except.h (maybe_remove_eh_handler): Remove.
15544 * passes.c (init_optimization_passes): Schedule second EH cleanup
15545 before out-of-ssa.
15546 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
15547 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
15548
15549 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
15550
15551 * genoutput.c (validate_optab_operands): New.
15552 (gen_insn, gen_expand): Call it.
15553
15554 * genflags.c (gen_insn): Detect misused iterators.
15555 (main): Pass line_no to gen_insn, exit with status 1 on error.
15556
15557 * genextract.c (line_no): Make global.
15558 (VEC_safe_set_locstr): Change assertion to error message.
15559 (main): Exit with status 1 on error.
15560
15561 2009-04-08 Joseph Myers <joseph@codesourcery.com>
15562
15563 PR c/39614
15564 PR c/39673
15565 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
15566 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
15567 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
15568 * c-convert.c (convert): Do not call fold on results of conversion
15569 functions when the result is a C_MAYBE_CONST_EXPR.
15570 * c-parser.c (c_parser_postfix_expression): Do not fold condition
15571 of __builtin_choose_expr.
15572 * c-typeck.c (remove_c_maybe_const_expr): New.
15573 (build_unary_op, build_conditional_expr, build_compound_expr,
15574 build_binary_op, c_objc_common_truthvalue_conversion): Call
15575 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
15576 integer operands.
15577
15578 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
15579
15580 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
15581 CODE to produce a new one. Add a prototype to use fold_convert_const
15582
15583 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
15584
15585 PR bootstrap/39660
15586 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
15587 mix declarations and code.
15588
15589 2009-04-08 Ben Elliston <bje@au.ibm.com>
15590
15591 * gcc.c: Replace `CC' with `GCC' throughout.
15592
15593 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
15594
15595 * doc/invoke.texi: Document Atom support.
15596
15597 2009-04-07 Jason Merrill <jason@redhat.com>
15598
15599 PR c++/25185
15600 * c-common.h, c-common.c: Add flag_pretty_templates.
15601 * c-opts.c (c_common_handle_option): Set it.
15602 * c.opt: Add -fno-pretty-templates.
15603 * doc/invoke.texi (C++ Dialect Options): Likewise.
15604
15605 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
15606
15607 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
15608 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
15609 (ia64_expand_builtin): Likewise.
15610
15611 2009-04-07 Martin Jambor <mjambor@suse.cz>
15612
15613 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
15614 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
15615 ADDR_EXPRS are include too.
15616
15617 2009-04-07 Richard Guenther <rguenther@suse.de>
15618
15619 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
15620 decls are only used if passes as parameters or if they are
15621 local statics and the call is not to a builtin.
15622 (call_may_clobber_ref_p_1): Likewise.
15623
15624 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
15625
15626 * expr.c (do_store_flag): Remove last argument. Simplify code
15627 to avoid duplication of tests already done by can_compare_p.
15628 (expand_expr_real_1): Adjust caller.
15629
15630 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
15631
15632 * optabs.c (can_compare_p): Test the predicate of a
15633 cbranch and cstore pattern.
15634
15635 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
15636
15637 * expr.c (convert_move): Use emit_store_flag instead of
15638 "emulating" it.
15639
15640 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
15641
15642 * config/i386/i386.c (ix86_compare_emitted): Remove.
15643 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
15644 ix86_compare_op0 like ix86_compare_emitted used to be handled.
15645 * config/i386/i386.h (ix86_compare_emitted): Remove.
15646 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
15647 instead of ix86_compare_emitted.
15648 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
15649
15650 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
15651
15652 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
15653 Add t-sysroot-suffix to tmake_file.
15654 * config/print-sysroot-suffix.sh: New file.
15655 * config/t-sysroot-suffix: New file.
15656
15657 2009-04-07 Ben Elliston <bje@au.ibm.com>
15658
15659 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
15660 as the latter produces a warning when the target does not support
15661 infinity.
15662
15663 2009-04-07 Ben Elliston <bje@au.ibm.com>
15664
15665 * dfp.c: Replace type punning assignments with memcpy throughout.
15666 * Makefile.in (dfp.o-warn): Remove.
15667
15668 2009-04-07 Alan Modra <amodra@bigpond.net.au>
15669
15670 PR target/39634
15671 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
15672 Include soft-fp/t-softfp after rs6000/t-linux64.
15673
15674 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
15675
15676 * stor-layout.c (set_sizetype): Use the full precision of their
15677 machine mode for bitsize types.
15678
15679 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
15680
15681 * config/i386/i386.md: Revert 2 accidental checkins.
15682
15683 2009-04-06 Joey Ye <joey.ye@intel.com>
15684 Xuepeng Guo <xuepeng.guo@intel.com>
15685 H.J. Lu <hongjiu.lu@intel.com>
15686
15687 Atom pipeline model, tuning and insn selection.
15688 * config.gcc (atom): Add atom config options and target.
15689
15690 * config/i386/atom.md: New.
15691
15692 * config/i386/i386.c (atom_cost): New cost.
15693 (m_ATOM): New macro flag.
15694 (initial_ix86_tune_features): Set m_ATOM.
15695 (x86_accumulate_outgoing_args): Likewise.
15696 (x86_arch_always_fancy_math_387): Likewise.
15697 (processor_target): Add Atom cost.
15698 (cpu_names): Add Atom cpu name.
15699 (override_options): Set Atom ISA.
15700 (ix86_issue_rate): New case PROCESSOR_ATOM.
15701 (ix86_adjust_cost): Likewise.
15702
15703 * config/i386/i386.h (TARGET_ATOM): New target macro.
15704 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
15705 (TARGET_OPT_AGU): New target option.
15706 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
15707 (processor_type): Add PROCESSOR_ATOM.
15708
15709 * config/i386/i386.md (cpu): Add new value "atom".
15710 (use_carry, movu): New attr.
15711 (atom.md): Include atom.md.
15712 (adddi3_carry_rex64): Set attr "use_carry".
15713 (addqi3_carry): Likewise.
15714 (addhi3_carry): Likewise.
15715 (addsi3_carry): Likewise.
15716 (*addsi3_carry_zext): Likewise.
15717 (subdi3_carry_rex64): Likewise.
15718 (subqi3_carry): Likewise.
15719 (subhi3_carry): Likewise.
15720 (subsi3_carry): Likewise.
15721 (x86_movdicc_0_m1_rex64): Likewise.
15722 (*x86_movdicc_0_m1_se): Likewise.
15723 (x86_movsicc_0_m1): Likewise.
15724 (*x86_movsicc_0_m1_se): Likewise.
15725 (*adddi_1_rex64): Emit add insn as much as possible.
15726 (*addsi_1): Likewise.
15727 (return_internal): Set atom_unit.
15728 (return_internal_long): Likewise.
15729 (return_pop_internal): Likewise.
15730 (*rcpsf2_sse): Set atom_sse_attr attr.
15731 (*qrt<mode>2_sse): Likewise.
15732 (*prefetch_sse): Likewise.
15733
15734 * config/i386/i386-c.c (ix86_target_macros_internal): New case
15735 PROCESSOR_ATOM.
15736 (ix86_target_macros_internal): Likewise.
15737
15738 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
15739 (*prefetch_sse_rex): Likewise.
15740 (sse_rcpv4sf2): Likewise.
15741 (sse_vmrcpv4sf2): Likewise.
15742 (sse_sqrtv4sf2): Likewise.
15743 (<sse>_vmsqrt<mode>2): Likewise.
15744 (sse_ldmxcsr): Likewise.
15745 (sse_stmxcsr): Likewise.
15746 (*sse_sfence): Likewise.
15747 (sse2_clflush): Likewise.
15748 (*sse2_mfence): Likewise.
15749 (*sse2_lfence): Likewise.
15750 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
15751 (<sse>_movup<ssemodesuffixf2c>): Likewise.
15752 (avx_movdqu<avxmodesuffix>): Likewise.
15753 (avx_lddqu<avxmodesuffix>): Likewise.
15754 (sse2_movntv2di): Change attr "type" to "ssemov".
15755 (sse2_movntsi): Likewise.
15756 (rsqrtv8sf2): Change attr "type" to "sseadd".
15757 (sse3_addsubv2df3): Set attr "atom_unit".
15758 (sse3_h<plusminus_insn>v4sf3): Likewise.
15759 (*sse2_pmaddwd): Likewise.
15760 (*vec_extractv2di_1_rex64): Likewise.
15761 (*vec_extractv2di_1_avx): Likewise.
15762 (sse2_psadbw): Likewise.
15763 (ssse3_phaddwv8hi3): Likewise.
15764 (ssse3_phaddwv4hi3): Likewise.
15765 (ssse3_phadddv4si3): Likewise.
15766 (ssse3_phadddv2si3): Likewise.
15767 (ssse3_phaddswv8hi3): Likewise.
15768 (ssse3_phaddswv4hi3): Likewise.
15769 (ssse3_phsubwv8hi3): Likewise.
15770 (ssse3_phsubwv4hi3): Likewise.
15771 (ssse3_phsubdv4si3): Likewise.
15772 (ssse3_phsubdv2si3): Likewise.
15773 (ssse3_phsubswv8hi3): Likewise.
15774 (ssse3_phsubswv4hi3): Likewise.
15775 (ssse3_pmaddubsw128): Likewise.
15776 (sse3_pmaddubsw: Likewise.
15777 (ssse3_palignrti): Likewise.
15778 (ssse3_palignrdi): Likewise.
15779
15780 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
15781
15782 * doc/install.texi (Specific): Fix two cross-references to MinGW.
15783
15784 2009-04-06 Richard Guenther <rguenther@suse.de>
15785
15786 PR tree-optimization/28868
15787 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
15788 of which PHI results we inserted.
15789 (insert_into_preds_of_block): Record inserted PHIs.
15790 (eliminate): Eliminate redundant PHI nodes.
15791 (init_pre): Init inserted_phi_names.
15792
15793 2009-04-06 Richard Guenther <rguenther@suse.de>
15794
15795 PR tree-optimization/39643
15796 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
15797 IMAGPART_EXPRs of complex constants.
15798 (execute_fold_all_builtins): If we folded a call queue
15799 TODO_update_address_taken.
15800
15801 2009-04-06 Jan Hubicka <jh@suse.cz>
15802
15803 PR middle-end/39659
15804 * except.c (remove_unreachable_regions): Propagate may_contain_throw
15805 flag.
15806
15807 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
15808
15809 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
15810 delay slot.
15811 (ic_invalidate_array): Likewise.
15812
15813 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
15814
15815 * calls.c (emit_library_call_value_1): Fix a problem with parameter
15816 alignment for library calls.
15817
15818 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
15819
15820 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
15821 (mingw32 tm clause use_gcc_stdint): Set to wrap.
15822 * config/i386/mingw-stdint.h: New file.
15823
15824 2009-04-05 Richard Guenther <rguenther@suse.de>
15825
15826 PR tree-optimization/39648
15827 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
15828 our &A vs. &A[0] IL deficiencies.
15829
15830 2009-04-04 Jan Hubicka <jh@suse.cz>
15831
15832 * except.c (sjlj_find_directly_reachable_regions): Be ready for
15833 removed toplevel regions.
15834 (sjlj_mark_call_sites): Likewise.
15835
15836 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
15837
15838 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
15839 (cygwin tm clause use_gcc_stdint): Set to wrap.
15840 * config/i386/cygwin-stdint.h: New file.
15841
15842 2009-04-04 Richard Guenther <rguenther@suse.de>
15843
15844 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
15845 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
15846 single-argument PHIs if we are in loop-closed SSA form.
15847 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
15848 for the pre-condition.
15849 (slpeel_tree_peel_loop_to_edge): Likewise.
15850 (vect_build_loop_niters): Take an optional sequence to append stmts.
15851 (vect_generate_tmps_on_preheader): Likewise.
15852 (vect_do_peeling_for_loop_bound): Take extra guards for the
15853 pre-condition.
15854 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
15855 the cost model check.
15856 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
15857 guards if we are going to peel. Do not apply versioning in that case.
15858 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
15859 (vect_do_peeling_for_loop_bound): Likewise.
15860 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
15861 loop bound only record extra pre-conditions, do not apply loop
15862 versioning.
15863
15864 2009-04-04 Richard Guenther <rguenther@suse.de>
15865
15866 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
15867 renaming code.
15868
15869 2009-04-04 Jan Hubicka <jh@suse.cz>
15870
15871 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15872 last_basic_block for size of bb->index indexed array.
15873 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
15874 compute_out, link_btr_uses, build_btr_def_use_webs,
15875 build_btr_def_use_webs, migrate_btr_defs): Likewise.
15876
15877 2009-04-04 Jan Hubicka <jh@suse.cz>
15878
15879 * except.c (remove_eh_handler_and_replace): Break out from ...
15880 (remove_eh_handler): ... here.
15881 (bring_to_root): New function.
15882 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
15883 handled ones, bring others to root of tree.
15884
15885 2009-04-04 Jan Hubicka <jh@suse.cz>
15886
15887 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
15888 (all_phis_safe_to_merge): New function.
15889 (update_info): New structure.
15890 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
15891 (cleanup_empty_eh): Update SSA if possible.
15892
15893 2009-04-04 Richard Guenther <rguenther@suse.de>
15894
15895 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
15896 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
15897 (append_vuse): Likewise.
15898
15899 2009-04-04 Jakub Jelinek <jakub@redhat.com>
15900
15901 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
15902 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
15903 instead of REG_UNSAVED for DW_CFA_undefined.
15904 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
15905 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
15906 outermost frame.
15907
15908 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
15909
15910 PR target/39501
15911 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
15912 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
15913 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
15914
15915 2009-04-04 Richard Guenther <rguenther@suse.de>
15916
15917 PR tree-optimization/8781
15918 PR tree-optimization/37892
15919 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
15920 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
15921 (valueize_refs): Call it for *& valueizations.
15922 (shared_reference_ops_from_ref): Rename to ...
15923 (valueize_shared_reference_ops_from_ref): ... this and valueize.
15924 (shared_reference_ops_from_call): Rename to ...
15925 (valueize_shared_reference_ops_from_call): ... this and valueize.
15926 (vn_reference_lookup): Update.
15927 (visit_reference_op_call): Likewise.
15928 * tree-ssa-pre.c (phi_translate_1): Fold *&.
15929 (eliminate): Value-replace the call address in call statements.
15930
15931 2009-04-04 Richard Guenther <rguenther@suse.de>
15932
15933 PR tree-optimization/39636
15934 * tree-ssa-forwprop.c
15935 (forward_propagate_addr_into_variable_array_index): Check for
15936 GIMPLE_ASSIGN before accessing the rhs code.
15937
15938 2009-04-03 Jason Merrill <jason@redhat.com>
15939
15940 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
15941
15942 2009-04-03 Steve Ellcey <sje@cup.hp.com>
15943
15944 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
15945 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
15946 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
15947 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
15948 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
15949 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
15950 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
15951 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
15952 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
15953 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
15954 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
15955 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
15956 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
15957 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
15958 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
15959 Use fr_reg_or_fp01_operand instead of fr_register_operand
15960
15961 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
15962 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
15963 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
15964
15965 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
15966
15967 PR rtl-optimization/39607
15968 PR rtl-optimization/39631
15969
15970 Revert:
15971
15972 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
15973 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
15974 instead of DF_LR_OUT.
15975 * ira-lives.c (process_bb_node_lives): Ditto.
15976 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
15977 instead of DF_LR_{OUT,IN}.
15978 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
15979 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
15980
15981 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
15982
15983 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
15984 (execute_lower_omp): Always run but take the short way out if -fopenmp
15985 is not given.
15986 (gate_lower_omp): Remove, forcing the pass manager to always run the
15987 pass and always set PROP_gimple_lomp.
15988 (pass_lower_omp): Remove gate function.
15989 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
15990 PROP_trees. Instead, require it.
15991 * ipa-cp.c (pass_ipa_cp): Likewise.
15992 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
15993 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
15994 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
15995 and PROP_gimple_leh.
15996
15997 2009-04-03 Richard Guenther <rguenther@suse.de>
15998
15999 PR middle-end/13146
16000 PR tree-optimization/23940
16001 PR tree-optimization/33237
16002 PR middle-end/33974
16003 PR middle-end/34093
16004 PR tree-optimization/36201
16005 PR tree-optimization/36230
16006 PR tree-optimization/38049
16007 PR tree-optimization/38207
16008 PR tree-optimization/38230
16009 PR tree-optimization/38301
16010 PR tree-optimization/38585
16011 PR middle-end/38895
16012 PR tree-optimization/38985
16013 PR tree-optimization/39299
16014 * tree-ssa-structalias.h: Remove.
16015 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
16016 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
16017 (struct vuse_element_d): Remove.
16018 (struct vuse_vec_d): Likewise.
16019 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
16020 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
16021 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
16022 VUSE_ELEMENT_VAR): Likewise.
16023 (struct voptype_d): Likewise.
16024 (NUM_VOP_FREE_BUCKETS): Likewise.
16025 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
16026 (struct stmt_operands_d): Remove.
16027 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
16028 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
16029 VDEF_NUM, VDEF_VECT): Likewise.
16030 (copy_virtual_operands): Remove.
16031 (operand_build_cmp): Likewise.
16032 (create_ssa_artificial_load_stmt): Likewise.
16033 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
16034 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
16035 vuse_index and mayuse_index members. Pack and move done and iter_type
16036 members to the front.
16037 (SSA_OP_VMAYUSE): Remove.
16038 (SSA_OP_VIRTUAL_USES): Adjust.
16039 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
16040 (unlink_stmt_vdef): Declare.
16041 (add_to_addressable_set): Remove.
16042 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
16043 (vrp_visit_stmt): Likewise.
16044 * doc/tree-ssa.texi (Alias analysis): Update.
16045 * doc/invoke.texi (max-aliased-vops): Remove docs.
16046 (avg-aliased-vops): Likewise.
16047 * tree-into-ssa.c (syms_to_rename): Remove.
16048 (need_to_update_vops_p): Likewise.
16049 (need_to_initialize_update_ssa_p): Rename to ...
16050 (update_ssa_initialized_fn): ... this. Track function we are
16051 initialized for.
16052 (symbol_marked_for_renaming): Simplify.
16053 (add_new_name_mapping): Do not set need_to_update_vops_p.
16054 (dump_currdefs): Use SYMS_TO_RENAME.
16055 (rewrite_update_stmt): Always walk all uses/defs.
16056 (dump_update_ssa): Adjust.
16057 (init_update_ssa): Take function argument. Track what we are
16058 initialized for.
16059 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
16060 (create_new_def_for): Initialize for cfun, assert we are initialized
16061 for cfun.
16062 (mark_sym_for_renaming): Simplify.
16063 (mark_set_for_renaming): Do not initialize update-ssa.
16064 (need_ssa_update_p): Simplify. Take function argument.
16065 (name_mappings_registered_p): Assert we ask for the correct function.
16066 (name_registered_for_update_p): Likewise.
16067 (ssa_names_to_replace): Likewise.
16068 (release_ssa_name_after_update_ssa): Likewise.
16069 (update_ssa): Likewise. Use SYMS_TO_RENAME.
16070 (dump_decl_set): Do not print a newline.
16071 (debug_decl_set): Do it here.
16072 (dump_update_ssa): And here.
16073 * tree-ssa-loop-im.c (move_computations): Adjust.
16074 (movement_possibility): Likewise.
16075 (determine_max_movement): Likewise.
16076 (gather_mem_refs_stmt): Likewise.
16077 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
16078 or NAME_MEMORY_TAG.
16079 * tree-complex.c (update_all_vops): Remove.
16080 (expand_complex_move): Adjust.
16081 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
16082 Simplify test for memory referencing statement. Exclude
16083 non-invariant ADDR_EXPRs.
16084 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
16085 * tree-loop-distribution.c (generate_memset_zero): Adjust.
16086 (rdg_flag_uses): Likewise.
16087 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
16088 related code.
16089 (tree_optimize_tail_calls_1): Also split the
16090 edge from the entry block if we have degenerate PHI nodes in
16091 the first basic block.
16092 * tree.c (init_ttree): Remove memory-tag related code.
16093 (tree_code_size): Likewise.
16094 (tree_node_structure): Likewise.
16095 (build7_stat): Re-write to be build6_stat.
16096 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
16097 (SSA_VAR_P): Adjust.
16098 (struct tree_memory_tag): Remove.
16099 (struct tree_memory_partition_tag): Likewise.
16100 (union tree_node): Adjust.
16101 (build7): Re-write to be build6.
16102 * tree-pass.h (pass_reset_cc_flags): Remove.
16103 (TODO_update_address_taken): New flag.
16104 (pass_simple_dse): Remove.
16105 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
16106 * params.h (MAX_ALIASED_VOPS): Remove.
16107 (AVG_ALIASED_VOPS): Likewise.
16108 * omp-low.c (expand_omp_taskreg): Update SSA form.
16109 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
16110 aliases the lhs in a copy stmt.
16111 * tree-ssa-dse.c (struct address_walk_data): Remove.
16112 (memory_ssa_name_same): Likewise.
16113 (memory_address_same): Likewise.
16114 (get_kill_of_stmt_lhs): Likewise.
16115 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
16116 unused stores. Look through PHI nodes into post-dominated regions.
16117 (dse_optimize_stmt): Simplify. Properly remove stores.
16118 (tree_ssa_dse): Compute dominators.
16119 (execute_simple_dse): Remove.
16120 (pass_simple_dse): Likewise.
16121 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
16122 gimple_loaded_syms and gimple_stored_syms computation.
16123 * toplev.c (dump_memory_report): Dump alias and pta stats.
16124 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
16125 (vn_reference_eq): Likewise.
16126 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
16127 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
16128 valueize_vuses): Remove.
16129 (get_def_ref_stmt_vuses): Simplify. Rename to ...
16130 (get_def_ref_stmt_vuse): ... this.
16131 (vn_reference_lookup_2): New function.
16132 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
16133 walking equivalent vuses. Simplify.
16134 (vn_reference_lookup): Likewise.
16135 (vn_reference_insert): Likewise.
16136 (vn_reference_insert_pieces): Likewise.
16137 (visit_reference_op_call): Simplify.
16138 (visit_reference_op_load): Likewise.
16139 (visit_reference_op_store): Likewise.
16140 (init_scc_vn): Remove shared_lookup_vuses initialization.
16141 (free_scc_vn): Remove shared_lookup_vuses freeing.
16142 (sort_vuses, sort_vuses_heap): Remove.
16143 (get_ref_from_reference_ops): Export.
16144 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
16145 vector with single vuse pointer.
16146 (vn_reference_lookup_pieces, vn_reference_lookup,
16147 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
16148 (shared_vuses_from_stmt): Remove.
16149 (get_ref_from_reference_ops): Declare.
16150 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
16151 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
16152 memory-tag related code.
16153 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
16154 (likely_value): Add comment, skip static-chain of call statements.
16155 (surely_varying_stmt_p): Adjust.
16156 (gimplify_and_update_call_from_tree): Likewise.
16157 (execute_fold_all_builtins): Do not rebuild alias info.
16158 (gimplify_and_update_call_from_tree): Properly update VOPs.
16159 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
16160 (copy_ref_info): Remove memory-tag related code.
16161 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
16162 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
16163 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
16164 computation.
16165 * tree-ssa-dom.c (gimple_p): Remove typedef.
16166 (eliminate_redundant_computations): Adjust.
16167 (record_equivalences_from_stmt): Likewise.
16168 (avail_expr_hash): Likewise.
16169 (avail_expr_eq): Likewise.
16170 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
16171 (stmt_makes_single_load): Likewise.
16172 (stmt_makes_single_store): Likewise.
16173 * tree-ssa-alias.c: Rewrite completely.
16174 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
16175 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
16176 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
16177 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
16178 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
16179 Remove public functions.
16180 (pass_reset_cc_flags): Remove.
16181 (pass_build_alias): Move ...
16182 * tree-ssa-structalias.c (pass_build_alias): ... here.
16183 * tree-ssa-alias.c (may_be_aliased): Move ...
16184 * tree-flow-inline.h (may_be_aliased): ... here.
16185 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
16186 count_uses_and_derefs): Move ...
16187 * gimple.c: ... here.
16188 * gimple.h (count_uses_and_derefs): Declare.
16189 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
16190 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
16191 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
16192 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
16193 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
16194 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
16195 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
16196 New functions.
16197 * tree-dfa.c (refs_may_alias_p): Move ...
16198 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
16199 * tree-ssa-alias.h: New file.
16200 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
16201 (statement_sink_location): Likewise.
16202 * opts.c (decode_options): Do not adjust max-aliased-vops or
16203 avg-aliased-vops values.
16204 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
16205 (TV_CALL_CLOBBER): Likewise.
16206 (TV_FLOW_SENSITIVE): Likewise.
16207 (TV_FLOW_INSENSITIVE): Likewise.
16208 (TV_MEMORY_PARTITIONING): Likewise.
16209 (TV_ALIAS_STMT_WALK): New timevar.
16210 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
16211 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
16212 (get_address_description): Remove memory-tag related code.
16213 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
16214 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
16215 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
16216 and immediate uses in statements. Document.
16217 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
16218 (dump_symbols): Remove.
16219 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
16220 * alias.c (get_deref_alias_set): New function split out from ...
16221 (get_alias_set): ... here.
16222 * alias.h (get_deref_alias_set): Declare.
16223 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
16224 type parameter. Remove restrict pointer handling. Create a
16225 ref-all pointer in case type-based alias sets do not conflict.
16226 (vect_analyze_data_refs): Remove SMT related code.
16227 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
16228 (vectorizable_load): Likewise.
16229 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
16230 (DR_SYMBOL_TAG, DR_VOPS): Remove.
16231 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
16232 Ignore vops and SMTs.
16233 (dr_analyze_alias): Likewise..
16234 (free_data_ref): Likewise.
16235 (create_data_ref): Likewise.
16236 (analyze_all_data_dependences): Likewise.
16237 (get_references_in_stmt): Adjust.
16238 * tree-flow-inline.h (gimple_aliases_computed_p,
16239 gimple_addressable_vars, gimple_call_clobbered_vars,
16240 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
16241 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
16242 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
16243 gimple_mem_ref_stats): Remove.
16244 (gimple_vop): New function.
16245 (op_iter_next_use): Remove vuses and mayuses cases.
16246 (op_iter_next_def): Remove vdefs case.
16247 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
16248 (clear_and_done_ssa_iter): Do not set removed fields.
16249 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
16250 Assert we are not iterating over vuses or vdefs if not also
16251 iterating over uses or defs.
16252 (op_iter_init_use): Likewise.
16253 (op_iter_init_def): Likewise.
16254 (op_iter_next_vdef): Remove.
16255 (op_iter_next_mustdef): Likewise.
16256 (op_iter_init_vdef): Likewise.
16257 (compare_ssa_operands_equal): Likewise.
16258 (link_use_stmts_after): Handle vuse operand.
16259 (is_call_used): Use is_call_clobbered.
16260 (is_call_clobbered): Global variables are always call clobbered,
16261 query the call-clobbers bitmap.
16262 (mark_call_clobbered): Ignore global variables.
16263 (clear_call_clobbered): Likewise.
16264 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
16265 virtual operands sanity check.
16266 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
16267 Remove.
16268 (TARGET_MEM_REF): Remove TMR_TAG operand.
16269 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
16270 Remove call-clobber related code.
16271 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
16272 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
16273 partitions or escape reason.
16274 (get_single_def_stmt, get_single_def_stmt_from_phi,
16275 get_single_def_stmt_with_phi): Remove.
16276 (dump_referenced_vars): Tidy.
16277 (get_ref_base_and_extent): Allow bare decls.
16278 (collect_dfa_stats): Adjust.
16279 * graphite.c (rename_variables_in_stmt): Adjust.
16280 (graphite_copy_stmts_from_block): Likewise.
16281 (translate_clast): Likewise.
16282 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
16283 (EXPR_DIES): New.
16284 (translate_vuse_through_block): Use the oracle.
16285 (phi_translate_1): Adjust.
16286 (value_dies_in_block_x): Use the oracle. Cache the outcome
16287 in EXPR_DIES.
16288 (valid_in_sets): Check if the VUSE for
16289 a REFERENCE is available.
16290 (eliminate): Do not remove stmts during elimination,
16291 instead queue and remove them afterwards.
16292 (do_pre): Do not rebuild alias info.
16293 (pass_pre): Run TODO_rebuild_alias before PRE.
16294 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
16295 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
16296 (mark_all_v_defs_stmt): Remove.
16297 (mark_all_v_defs_seq): Adjust.
16298 (sra_replace): Likewise.
16299 (scalarize_use): Likewise.
16300 (scalarize_copy): Likewise.
16301 (scalarize_init): Likewise.
16302 (scalarize_ldst): Likewise.
16303 (todoflags): Remove.
16304 (tree_sra): Do not rebuild alias info.
16305 (tree_sra_early): Adjust.
16306 (pass_sra): Run TODO_update_address_taken before SRA.
16307 * tree-predcom.c (set_alias_info): Remove.
16308 (prepare_initializers_chain): Do not call it.
16309 (mark_virtual_ops_for_renaming): Adjust.
16310 (mark_virtual_ops_for_renaming_list): Remove.
16311 (initialize_root_vars): Adjust.
16312 (initialize_root_vars_lm): Likewise.
16313 (prepare_initializers_chain): Likewise.
16314 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
16315 (may_propagate_copy_into_stmt): Likewise.
16316 (merge_alias_info): Do nothing for now.
16317 (propagate_tree_value_into_stmt): Adjust.
16318 (stmt_may_generate_copy): Likewise.
16319 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
16320 not mark symbols for renaming.
16321 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
16322 with the same statement, make sure to update the new pointed-to one.
16323 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
16324 call statements, do not mark symbols for renaming.
16325 (mark_operand_necessary): Dump something.
16326 (ref_may_be_aliased): New function.
16327 (mark_aliased_reaching_defs_necessary_1): New helper function.
16328 (mark_aliased_reaching_defs_necessary): Likewise.
16329 (mark_all_reaching_defs_necessary_1): Likewise.
16330 (mark_all_reaching_defs_necessary): Likewise.
16331 (propagate_necessity): Do not process virtual PHIs. For
16332 non-aliased loads mark all reaching definitions as necessary.
16333 For aliased loads and stores mark the immediate dominating
16334 aliased clobbers as necessary.
16335 (visited): New global static.
16336 (perform_tree_ssa_dce): Free visited bitmap after propagating
16337 necessity.
16338 (remove_dead_phis): Perform simple dead virtual PHI removal.
16339 (remove_dead_stmt): Properly unlink virtual operands when
16340 removing stores.
16341 (eliminate_unnecessary_stmts): Schedule PHI removal after
16342 stmt removal.
16343 * tree-ssa-ter.c (is_replaceable_p): Adjust.
16344 (process_replaceable): Likewise.
16345 (find_replaceable_in_bb): Likewise.
16346 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
16347 based on the single gimple vop.
16348 (verify_flow_insensitive_alias_info): Remove.
16349 (verify_flow_sensitive_alias_info): Likewise.
16350 (verify_call_clobbering): Likewise.
16351 (verify_memory_partitions): Likewise.
16352 (verify_alias_info): Likewise.
16353 (verify_ssa): Adjust..
16354 (execute_update_addresses_taken): Export. Update SSA
16355 manually. Optimize only when optimizing. Use a local bitmap.
16356 (pass_update_address_taken): Remove TODO_update_ssa, add
16357 TODO_dump_func.
16358 (pass_update_address_taken): Just use TODO_update_address_taken.
16359 (init_tree_ssa): Do not initialize addressable_vars.
16360 (verify_ssa): Verify new VUSE / VDEF properties.
16361 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
16362 Do not call verify_alias_info.
16363 (delete_tree_ssa): Clear the VUSE, VDEF operands.
16364 Do not free the loaded and stored syms bitmaps. Reset the escaped
16365 and callused solutions. Do not free addressable_vars.
16366 Remove memory-tag related code.
16367 (warn_uninitialized_var): Aliases are always available.
16368 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
16369 * lambda-code.c (can_put_in_inner_loop): Adjust.
16370 (can_put_after_inner_loop): Likewise.
16371 (perfect_nestify): Likewise.
16372 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
16373 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
16374 (vectorizable_conversion): Do not mark symbols for renaming.
16375 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
16376 (expand_call_inline): Unlink the calls virtual operands before
16377 replacing it.
16378 (tree_function_versioning): Do not call update_ssa if we are not
16379 updating clones. Simplify.
16380 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
16381 (propagate_with_phi): Likewise..
16382 * tree-outof-ssa.c (create_temp): Remove memory tag and call
16383 clobber code. Assert we are not aliased or global.
16384 * tree-flow.h: Include tree-ssa-alias.h
16385 (enum escape_type): Remove.
16386 (struct mem_sym_stats_d): Likewise.
16387 (struct mem_ref_stats_d): Likewise.
16388 (struct gimple_df): Add vop member. Remove global_var,
16389 call_clobbered_vars, call_used_vars, addressable_vars,
16390 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
16391 escaped and callused members.
16392 (struct ptr_info_def): Remove all members, add points-to solution
16393 member pt.
16394 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
16395 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
16396 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
16397 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
16398 (tree-ssa-alias.o): Likewise.
16399 (toplev.o): Add tree-ssa-alias.h
16400 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
16401 * gimple.c (gimple_set_bb): Fix off-by-one error.
16402 (is_gimple_reg): Do not handle memory tags.
16403 (gimple_copy): Also copy virtual operands.
16404 Delay updating the statement. Do not reset loaded and stored syms.
16405 (gimple_set_stored_syms): Remove.
16406 (gimple_set_loaded_syms): Likewise.
16407 (gimple_call_copy_skip_args): Copy the virtual operands
16408 and mark the new statement modified.
16409 * tree-ssa-structalias.c (may_alias_p): Remove.
16410 (set_uids_in_ptset): Take the alias set to prune with as
16411 parameter. Fold in the alias test of may_alias_p.
16412 (compute_points_to_sets): Compute whether a ptr is dereferenced
16413 in a local sbitmap.
16414 (process_constraint): Deal with &ANYTHING on the lhs, reject all
16415 other ADDRESSOF constraints on the lhs.
16416 (get_constraint_for_component_ref): Assert that we don't get
16417 ADDRESSOF constraints from the base of the reference.
16418 Properly generate UNKNOWN_OFFSET for DEREF if needed.
16419 (struct variable_info): Remove collapsed_to member.
16420 (get_varinfo_fc): Remove.
16421 (new_var_info): Do not set collapsed_to.
16422 (dump_constraint): Do not follow cycles.
16423 (dump_constraint_graph): Likewise.
16424 (build_pred_graph): Likewise.
16425 (build_succ_graph): Likewise.
16426 (rewrite_constraints): Likewise.
16427 (do_simple_structure_copy): Remove.
16428 (do_rhs_deref_structure_copy): Remove.
16429 (do_lhs_deref_structure_copy): Remove.
16430 (collapse_rest_of_var): Remove.
16431 (do_structure_copy): Re-implement.
16432 (pta_stats): New global variable.
16433 (dump_pta_stats): New function.
16434 (struct constraint_expr): Make offset signed.
16435 (UNKNOWN_OFFSET): Define special value.
16436 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
16437 (solution_set_expand): New helper function split out from ...
16438 (do_sd_constraint): ... here.
16439 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
16440 (do_ds_constraint): Likewise.
16441 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
16442 and CALLUSED = *CALLUSED.
16443 (set_union_with_increment): Make inc argument signed.
16444 (type_safe): Remove.
16445 (get_constraint_for_ptr_offset): Handle unknown and negative
16446 constant offsets.
16447 (first_vi_for_offset): Handle offsets before start. Bail
16448 out early for offsets beyond the variable extent.
16449 (first_or_preceding_vi_for_offset): New function.
16450 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
16451 Together with ESCAPED = *ESCAPED this properly computes reachability.
16452 (find_what_var_points_to): New function.
16453 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
16454 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
16455 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
16456 pt_solutions_intersect): New functions.
16457 (compute_call_used_vars): Remove.
16458 (compute_may_aliases): New main entry into PTA computation.
16459 * gimple.h (gimple_p): New typedef.
16460 (struct gimple_statement_base): Remove references_memory_p.
16461 (struct gimple_statement_with_memory_ops_base): Remove
16462 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
16463 members.
16464 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
16465 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
16466 gimple_set_references_memory): Remove.
16467 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
16468 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
16469 New functions.
16470 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
16471 (verify_expr): Allow RESULT_DECL.
16472 (gimple_duplicate_bb): Do not copy virtual operands.
16473 (gimple_duplicate_sese_region): Adjust.
16474 (gimple_duplicate_sese_tail): Likewise.
16475 (mark_virtual_ops_in_region): Remove.
16476 (move_sese_region_to_fn): Do not call it.
16477 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
16478 and pass_simple_dse.
16479 (execute_function_todo): Handle TODO_update_address_taken,
16480 call execute_update_addresses_taken for TODO_rebuild_alias.
16481 (execute_todo): Adjust.
16482 (execute_one_pass): Init dump files early.
16483 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
16484 call-clobbered.
16485 (create_general_new_stmt): Clear vops.
16486 * tree-ssa-reassoc.c (get_rank): Adjust.
16487 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
16488 symbols for renaming.
16489 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
16490 (PARAM_AVG_ALIASED_VOPS): Likewise.
16491 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
16492 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
16493 * tree-ssa-operands.c: Simplify for new virtual operand representation.
16494 (operand_build_cmp, copy_virtual_operands,
16495 create_ssa_artificial_load_stmt, add_to_addressable_set,
16496 gimple_add_to_addresses_taken): Remove public functions.
16497 (unlink_stmt_vdef): New function.
16498
16499 2009-04-03 Alan Modra <amodra@bigpond.net.au>
16500
16501 * config.gcc (powerpc-*-linux*): Merge variants.
16502
16503 2009-04-02 Chao-ying Fu <fu@mips.com>
16504 James Grosbach <james.grosbach@microchip.com>
16505
16506 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
16507 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
16508 cop0_sp_offset.
16509 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
16510 keep_interrupts_masked_p, use_debug_exception_return_p.
16511 (mips_attribute_table): Add interrupt, use_shadow_register_set,
16512 keep_interrupts_masked, use_debug_exception_return.
16513 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
16514 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
16515 New functions.
16516 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
16517 (mips_print_operand): Process COP0 registers to print $0 .. $31
16518 correctly for GAS to process.
16519 (mips_interrupt_extra_call_saved_reg_p): New function.
16520 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
16521 extra registers.
16522 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
16523 (mips_compute_frame_info): Add supports for interrupt context that
16524 includes doubleword accumulators and COP0 registers.
16525 (mips_for_each_saved_acc): New function.
16526 (mips_for_each_saved_gpr_and_fpr): Change the function name from
16527 mips_for_each_saved_reg.
16528 (mips_save_reg): Save accumulators.
16529 (mips_kernel_reg_p): A new for_each_rtx callback.
16530 (mips_expand_prologue): Support interrupt handlers.
16531 (mips_restore_reg): Restore accumulators.
16532 (mips_expand_epilogue): Support interrupt handlers.
16533 (mips_can_use_return_insn): Return false for interrupt handlers.
16534 (mips_epilogue_uses): New function.
16535 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
16536 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
16537 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
16538 cop0_move): New instructions.
16539 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
16540 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
16541 defines.
16542 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
16543 New defines.
16544 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
16545 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
16546 interrupt handlers, we use K0 as the temporary register.
16547 (EPILOGUE_USES): Change to a function call.
16548 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
16549 handlers, we use K0 as the temporary register.
16550
16551 * doc/extend.texi (Function Attributes): Document interrupt,
16552 use_shadow_register_set, keep_interrupts_masked,
16553 use_debug_exception_return for MIPS attributes.
16554
16555 2009-04-03 Alan Modra <amodra@bigpond.net.au>
16556
16557 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
16558 Remove a number of t-files from tmake_file.
16559 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
16560 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
16561 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16562 target_prototype, not TARGET_PROTOTYPE.
16563 (LINK_OS_GNU_SPEC): Define.
16564 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
16565 and darwin-ldoubdle.c.
16566
16567 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16568
16569 PR driver/39293
16570 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
16571 (cpp_options): Ditto.
16572 (default_compilers): Ditto.
16573 (display_help): Ditto.
16574 (process_command): Ditto.
16575 (do_spec_1): Ditto.
16576 (set_input): Use lbasename instead of duplicate code.
16577 (save_temps_prefix): New static for -save-temps=obj.
16578 (save_temps_length): Ditto.
16579
16580 * doc/invoke.texi (-save-temps=obj): Document new variant to
16581 -save-temps switch.
16582
16583 2009-04-02 Jeff Law <law@redhat.com>
16584
16585 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
16586 variable.
16587
16588 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
16589
16590 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
16591 * configure: Regenerated.
16592
16593 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
16594
16595 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
16596 share the argument list.
16597
16598 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
16599
16600 Merge
16601
16602 2009-02-12 Diego Novillo <dnovillo@google.com>
16603
16604 * varpool.c (debug_varpool): New.
16605 * cgraph.h (debug_varpool): Declare.
16606
16607 2009-04-02 Jan Hubicka <jh@suse.cz>
16608
16609 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
16610 pass.
16611
16612 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
16613
16614 * config/i386/i386.c (ix86_abi): Move initialization to ...
16615 (override_options): Here.
16616
16617 2009-04-02 Christian Bruel <christian.bruel@st.com>
16618
16619 * config/sh/sh.c (sh_dwarf_register_span): New function.
16620 (TARGET_DWARF_REGISTER_SPAN): Define.
16621 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
16622
16623 2009-04-02 Ira Rosen <irar@il.ibm.com>
16624
16625 PR tree-optimization/39595
16626 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
16627 interleaved loads group is not greater than the SLP group size.
16628
16629 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
16630
16631 * builtins.c (is_builtin_name): New.
16632 (called_as_built_in): Use is_builtin_name.
16633 * tree.h (is_builtin_name): New.
16634 * varasm.c (incorporeal_function_p): Use is_builtin_name
16635
16636 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
16637
16638 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
16639
16640 2009-04-02 Dodji Seketeli <dodji@redhat.com>
16641
16642 PR c++/26693
16643 * c-decl.c (clone_underlying_type): Move this ...
16644 * c-common.c (set_underlying_type): ... here.
16645 Also, make sure the function properly sets TYPE_STUB_DECL() on
16646 the newly created typedef variant type.
16647 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
16648 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
16649 points.
16650
16651 2009-04-02 Richard Guenther <rguenther@suse.de>
16652
16653 PR tree-optimization/37221
16654 * tree-flow.h (degenerate_phi_result): Declare.
16655 * tree-ssa-dom.c (degenerate_phi_result): Export.
16656 * tree-scalar-evolution.c (analyze_initial_condition): If
16657 the initial condition is defined by a degenerate PHI node
16658 use the degenerate value.
16659
16660 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
16661
16662 PR rtl-optimization/39588
16663 * combine.c (merge_outer_ops): Do not set the constant when this
16664 is not necessary.
16665 (simplify_shift_const_1): Do not modify it either in this case.
16666
16667 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
16668
16669 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
16670 tuning is deprecated if -mtune value is set to an Itanium1 variant.
16671
16672 2009-04-01 Janis Johnson <janis187@us.ibm.com>
16673
16674 PR c/29027
16675 * c-lex.c (interpret_float): Default (no suffix) is double.
16676
16677 2009-04-1 Xinliang David Li <davidxl@google.com>
16678
16679 * config/i386/i386.c (legitimate_constant_p): Recognize
16680 all one vector constant.
16681
16682 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16683
16684 * config/vax/vax.c: Add #includes to silence warnings.
16685 Change #include order to silence two warnings.
16686
16687 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16688
16689 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
16690 (ASM_SPEC): Pass -k to the assembler for PIC code.
16691
16692 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16693
16694 * config.gcc: Add vax-*-linux* to the switch.
16695 * config/vax/linux.h: New file. (TARGET_VERSION,
16696 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
16697
16698 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16699
16700 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
16701 Use predicate macros instead of GET_CODE() == foo.
16702 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
16703 ashlsi3, rotrsi3, <unnamed>): Likewise.
16704
16705 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16706
16707 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
16708 jbbccihi, jbbccisi): Remova trailing whitespace.
16709 * config/vax/constraints.md: Likewise.
16710 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16711 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
16712 * config/vax/predicates.md: Likewise.
16713 * config/vax/vax.c (print_operand_address, vax_output_int_move,
16714 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
16715 * config/vax/vax.h: Likewise.
16716 * config/vax/vax.md (nonlocal_goto): Likewise.
16717
16718 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16719
16720 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
16721 (indirectable_address_p, adjacent_operands_p): Add spaces around
16722 braces.
16723 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
16724
16725 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16726
16727 * config/vax/vax.c (legitimate_constant_address_p,
16728 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
16729 index_term_p, reg_plus_index_p, legitimate_address_p,
16730 vax_mode_dependent_address_p): Update comments to match functions
16731 modified by the recent int->bool conversion.
16732
16733 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16734
16735 * config/vax/builtins.md: Update copyright message.
16736 * config/vax/constraints.md: Likewise.
16737 * config/vax/netbsd-elf.h: Likewise.
16738 * config/vax/predicates.md: Likewise.
16739 * config/vax/vax-protos.h: Likewise.
16740 * config/vax/vax.c: Likewise.
16741 * config/vax/vax.h: Likewise.
16742 * config/vax/vax.md: Likewise.
16743 * config/vax/vax.opt: Likewise.
16744
16745 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16746
16747 * config/vax/builtins.md (ffssi2, ffssi2_internal,
16748 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
16749 * config/vax/constraints.md (B, R): Likewise.
16750 * config/vax/predicates.md (external_memory_operand,
16751 nonimmediate_addsub_di_operand): Likewise.
16752 * config/vax/vax.c (vax_output_int_add): Likewise.
16753 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
16754 untyped_call): Likewise.
16755
16756 2009-04-01 Matt Thomas <matt@3am-software.com>
16757
16758 * config/vax/predicates.md: New file.
16759 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
16760 external_const_operand, nonsymbolic_operand, external_memory_operand,
16761 indirect_memory_operand, indexed_memory_operand,
16762 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
16763 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
16764 predicate.
16765 * config/vax/constraints.md: New file.
16766 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
16767 New constraint.
16768 * config/vax/builtins.md: New file.
16769 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
16770 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
16771 jbbccisi): Define.
16772 * config/vax/vax.opt (mqmath): Add option.
16773 * config/vax/vax.md (isfx): Extend with DI.
16774 (VAXintQH, VAXintQHSD): Define.
16775 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
16776 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
16777 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
16778 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
16779 (movdi): Update constraints and use vax_output_int_move().
16780 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
16781 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
16782 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
16783 nonlocal_goto): New.
16784 (mov<mode>): Extend accepted operand types.
16785 (subdi3_old): Rename from subdi3, change update constraints and use
16786 a new implementation.
16787 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
16788 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
16789 MOVE_RATIO, CLEAR_RATIO): Define.
16790 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
16791 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
16792 (PRINT_OPERAND): Redefine using a function instead of inlined code.
16793 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
16794 (split_quadword_operands): Make static and really allow variable
16795 splitting.
16796 (print_operand_address): Update for PIC generation.
16797 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
16798 indexable_address_p, fixup_mathdi_operand,
16799 vax_expand_addsub_di_operands, adjacent_operands_p): New.
16800 (vax_float_literal, legitimate_constant_p,
16801 indirectable_constant_address_p, index_term_p,
16802 reg_plus_index_p): Return bool instead of int.
16803 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
16804 where needed.
16805 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
16806 generation.
16807 (vax_output_conditional_branch): Indent.
16808 (legitimate_constant_address_p, indirectable_constant_address_p,
16809 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
16810 vax_mode_dependent_address_p): Return bool instead of int, update for
16811 PIC generation.
16812 * config/vax/vax-protos.h (legitimate_constant_address_p,
16813 legitimate_constant_p, legitimate_address_p,
16814 vax_mode_dependent_address_p): Change declaration to bool.
16815 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
16816 vax_expand_addsub_di_operands, vax_output_int_subtract,
16817 vax_output_movmemsi): Declare.
16818 (split_quadword_operands, vax_float_literal): Delete declaration.
16819 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
16820 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
16821 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
16822 ASM_OUTPUT_DWARF_PCREL): Define.
16823 (ASM_SPEC): Change definition to allow PIC generation.
16824
16825 2009-04-01 Steve Ellcey <sje@cup.hp.com>
16826
16827 * doc/sourcebuild.texi: Update front-end requirements.
16828
16829 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16830
16831 PR target/39226
16832 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
16833 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
16834 (booldi3_internal3): Use boolean_or_operator instead of
16835 boolean_operator.
16836
16837 2009-04-01 Joseph Myers <joseph@codesourcery.com>
16838
16839 PR c/39605
16840 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
16841 declarator whose size is not an integer constant expression but
16842 folds to an integer constant, then treat it as a constant
16843 subsequently.
16844
16845 2009-04-01 Richard Guenther <rguenther@suse.de>
16846
16847 * fold-const.c (fold_plusminus_mult_expr): Do not fold
16848 i * 4 + 2 to (i * 2 + 1) * 2.
16849
16850 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16851
16852 PR c/37772
16853 * c-parser.c (c_parser_asm_statement): Skip until close paren and
16854 return if c_parser_asm_string_literal returned NULL.
16855
16856 2009-04-01 Nick Clifton <nickc@redhat.com>
16857
16858 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
16859 already defined.
16860 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
16861 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
16862 other typedefs to avoid conflicts with libgcc2.c. Define labels
16863 to gain 16-bit bit-manipulation functions from libgcc2.c and then
16864 include it.
16865 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
16866 to gain 16-bit trapping arithmetic functions from libgcc2.c and
16867 then include it.
16868
16869 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
16870
16871 * varasm.c (default_function_rodata_section): Declare DOT as
16872 const char*.
16873
16874 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
16875 Andrey Galkin <agalkin@hypercom.com>
16876
16877 PR/39492
16878 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
16879 Make object_name unique for each process.
16880
16881 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16882
16883 PR other/39591
16884 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
16885 addressable variables in the parallel that could go out of scope while
16886 running queued tasks.
16887
16888 2009-04-01 Anatoly Sokolov <aesok@post.ru>
16889
16890 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
16891 (CASE_VALUES_THRESHOLD): Redefine.
16892 * config/avr/avr.c (avr_override_options): Remove initialization of
16893 avr_case_values_threshold variable.
16894 (avr_case_values_threshold): Remove variable. Add new function.
16895 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
16896 * config/avr/avr.opt (mno-tablejump): Remove option.
16897 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
16898
16899 2009-04-01 DJ Delorie <dj@redhat.com>
16900
16901 * varasm.c (default_function_rodata_section): Don't assume
16902 anything about where the first '.' in the section name is.
16903
16904 2009-04-01 Alan Modra <amodra@bigpond.net.au>
16905
16906 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
16907 rs6000_emit_stack_tie.
16908
16909 2009-03-31 Ian Lance Taylor <iant@google.com>
16910
16911 * tree-eh.c (tree_remove_unreachable_handlers): Compare
16912 gimple_code with GIMPLE_RESX, not RESX.
16913
16914 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16915
16916 * c-common.c (c_get_ident): New.
16917 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
16918
16919 2009-04-01 Ben Elliston <bje@au.ibm.com>
16920
16921 * config/rs6000/sysv4.opt (msdata): Improve option description.
16922
16923 2009-03-31 Steve Ellcey <sje@cup.hp.com>
16924
16925 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
16926 (divdf3_internal_lat): Remove.
16927 (divxf3_internal_lat): Remove.
16928 (divxf3_internal_thr): Remove.
16929 (divxf): Use divxf3_internal.
16930 * config/ia64/div.md (divsf3_internal_lat): New.
16931 (divdf3_internal_lat): New.
16932 (divxf3_internal): New.
16933
16934 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16935
16936 PR c/448
16937 * Makefile.in (USE_GCC_STDINT): Define.
16938 (stmp-int-hdrs): Install stdint.h if applicable.
16939 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
16940 if known.
16941 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
16942 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
16943 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
16944 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16945 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16946 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16947 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16948 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16949 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
16950 (c_common_nodes_and_builtins): Initialize
16951 underlying_wchar_type_node. Do not initialize
16952 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
16953 nodes for new types.
16954 (c_stddef_cpp_builtins): Define macros for new types.
16955 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
16956 Remove.
16957 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
16958 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
16959 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
16960 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
16961 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
16962 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
16963 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
16964 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
16965 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
16966 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
16967 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
16968 int16_type_node, int32_type_node, int64_type_node,
16969 uint8_type_node, uint16_type_node, c_uint32_type_node,
16970 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
16971 int_least32_type_node, int_least64_type_node,
16972 uint_least8_type_node, uint_least16_type_node,
16973 uint_least32_type_node, uint_least64_type_node,
16974 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
16975 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
16976 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
16977 uintptr_type_node): Define.
16978 * c-cppbuiltin.c (builtin_define_constants,
16979 builtin_define_type_minmax): New.
16980 (builtin_define_stdint_macros): Define more macros.
16981 (c_cpp_builtins): Define more limit macros.
16982 (type_suffix): New.
16983 (builtin_define_type_max): Define in terms of
16984 builtin_define_type_minmax. Remove is_long parameter. All
16985 callers changed.
16986 * config.gcc (use_gcc_stdint): Define.
16987 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
16988 Add newlib-stdint.h for generic targets.
16989 * config/glibc-stdint.h, config/newlib-stdint.h,
16990 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
16991 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
16992 * config/score/score.h (UINTPTR_TYPE): Define.
16993 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
16994 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
16995 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16996 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16997 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16998 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16999 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17000 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
17001 * config/spu/spu.h (STDINT_LONG32): Define.
17002 * configure.ac (use_gcc_stdint): Substitute.
17003 * configure: Regenerate.
17004 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
17005 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
17006 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
17007 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
17008 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
17009 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
17010 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
17011 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
17012 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
17013 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
17014 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
17015 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
17016 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
17017 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
17018 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
17019 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
17020 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
17021 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
17022 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
17023 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
17024 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
17025 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
17026 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
17027 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
17028 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
17029 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
17030 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
17031 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17032 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
17033
17034 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
17035
17036 * loop-iv.c (suitable_set_for_replacement): Renamed from
17037 simplify_using_assignment; changed to return bool and to accept new
17038 args DEST and SRC. Return true iff we find a source/destination pair
17039 that can be used to make a replacement, and fill SRC and DEST if so.
17040 Remove arg ALTERED. Don't deal with altered regs here. All callers
17041 changed.
17042 (simplify_using_initial_values): Deal with altered regs here and track
17043 more precisely the effect they have on the validity of our expression.
17044
17045 * loop-iv.c (simplify_using_condition): A condition of the form
17046 (EQ REG CONST) can be used to simply make a substitution.
17047 (simplify_using_initial_values): Keep track of conditions we have seen
17048 and keep using them to simplify new expressions, while applying the
17049 same substitutions to them as to the expression.
17050
17051 * simplify-rtx.c (simplify_relational_operation_1): Simplify
17052 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
17053 GEU/LTU reversed.
17054
17055 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
17056 changed. Use this when trying to improve the upper bound.
17057 Generate the comparison by using simplify_gen_relational.
17058
17059 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
17060
17061 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
17062 functions.
17063 (simplify_using_assignment, simplify_using_initial_values): Call
17064 replace_in_expr to make replacements. Call replace_single_def_regs
17065 once on the initial version of the expression.
17066
17067 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17068
17069 PR target/27237
17070 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
17071
17072 2009-03-31 Richard Guenther <rguenther@suse.de>
17073
17074 PR middle-end/31029
17075 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
17076 equality comparisons. Fold C - X CMP X if C % 2 == 1.
17077
17078 2009-03-31 Richard Guenther <rguenther@suse.de>
17079
17080 * tree.h (div_if_zero_remainder): Declare.
17081 * fold-const.c (div_if_zero_remainder): Export.
17082 * tree-ssa-forwprop.c
17083 (forward_propagate_addr_into_variable_array_index): Handle
17084 constant array index addition outside of the variable index.
17085
17086 2009-03-31 Joseph Myers <joseph@codesourcery.com>
17087
17088 PR target/39592
17089 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
17090 define_splits, floatunssi<mode>2): Require x87 conversions from
17091 DImode to be permitted.
17092
17093 2009-03-31 Joseph Myers <joseph@codesourcery.com>
17094
17095 PR preprocessor/15638
17096 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
17097
17098 2009-03-31 Richard Guenther <rguenther@suse.de>
17099
17100 PR middle-end/23401
17101 PR middle-end/27810
17102 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
17103 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
17104 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
17105 a separate statement.
17106 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
17107 (lookup_tmp_var): Likewise.
17108 (is_gimple_formal_tmp_or_call_rhs): Remove.
17109 (is_gimple_reg_or_call_rhs): Rename to ...
17110 (is_gimple_reg_rhs_or_call): ... this.
17111 (is_gimple_mem_or_call_rhs): Rename to ...
17112 (is_gimple_mem_rhs_or_call): ... this.
17113 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
17114 DECL_GIMPLE_REG_P only if is_formal is true.
17115 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
17116 for non-proper post-modify expression gimplification.
17117 (gimplify_self_mod_expr): For post-modify expressions gimplify
17118 the lvalue to a minimal lvalue.
17119 (rhs_predicate_for): Remove formal temp case.
17120 (gimplify_modify_expr_rhs): Likewise.
17121 (gimplify_addr_expr): Use is_gimple_reg.
17122 (gimplify_expr): Remove formal temp cases.
17123 (gimple_regimplify_operands): Likewise.
17124 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
17125 and FILTER_EXPR like constants.
17126 * gimple.c (walk_gimple_op): Fix val_only initialization, use
17127 is_gimple_reg.
17128 (is_gimple_formal_tmp_rhs): Remove.
17129 (is_gimple_reg_rhs): Remove special casing.
17130 (is_gimple_mem_rhs): Fix.
17131 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
17132 (is_gimple_formal_tmp_var): Remove.
17133 (is_gimple_formal_tmp_reg): Likewise.
17134 (is_gimple_min_lval): Allow invariant component ref parts.
17135 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
17136 is_gimple_formal_tmp_reg): Remove declarations.
17137 * tree-cfg.c (verify_expr): Verify that variables with address
17138 taken do not have DECL_GIMPLE_REG_P set.
17139 * tree-mudflap.c (mf_build_check_statement_for): Use
17140 force_gimple_operand instead of gimplify_expr.
17141
17142 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
17143
17144 * modulo-sched.c (sms_schedule_by_order): Pass the actual
17145 schedulable rows to compute_split_row.
17146
17147 2009-03-31 Ben Elliston <bje@au.ibm.com>
17148
17149 PR target/31635
17150 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
17151 OPT_mvrsave.
17152
17153 2009-03-31 Alan Modra <amodra@bigpond.net.au>
17154
17155 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
17156 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
17157 * configure: Regenerate.
17158 * config.in: Regenerate.
17159 * config/rs6000/rs6000.opt (mtls-markers): Add.
17160 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
17161 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
17162 (tls_ld_aix, tls_ld_sysv): Likewise.
17163 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
17164 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
17165
17166 2009-03-31 Alan Modra <amodra@bigpond.net.au>
17167
17168 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
17169
17170 2009-03-30 Jan Hubicka <jh@suse.cz>
17171
17172 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
17173 out of RESX.
17174 (tree_remove_unreachable_handlers): Cleanup EH predecestor
17175 detection and label handling.
17176
17177 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
17178
17179 * ira-int.h (ira_allocno): Rename left_conflicts_num to
17180 left_conflicts_size.
17181 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
17182 ALLOCNO_LEFT_CONFLICTS_SIZE.
17183
17184 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
17185 remove_allocno_from_bucket_and_push,
17186 allocno_spill_priority_compare, push_allocnos_to_stack,
17187 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
17188 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
17189 (setup_allocno_left_conflicts_num): Ditto. Rename to
17190 setup_allocno_left_conflicts_size.
17191 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
17192 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
17193 setup_allocno_left_conflicts_size instead of
17194 setup_allocno_left_conflicts_num.
17195
17196 * ira-build.c (ira_create_allocno): Use
17197 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
17198 ALLOCNO_LEFT_CONFLICTS_NUM.
17199
17200 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
17201
17202 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
17203 instead of DF_LR_OUT.
17204
17205 * ira-lives.c (process_bb_node_lives): Ditto.
17206
17207 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
17208 instead of DF_LR_{OUT,IN}.
17209
17210 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
17211
17212 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
17213
17214 2009-03-30 Jan Hubicka <jh@suse.cz>
17215
17216 * except.c (label_to_region_map): Fix thinko.
17217
17218 2009-03-30 Steve Ellcey <sje@cup.hp.com>
17219
17220 PR middle-end/38237
17221 * tree.h (tree_find_value): New declaration.
17222 * tree.c (tree_find_value): New function.
17223 * varasm.c (assemble_external): Avoid duplicate entries on lists.
17224
17225 2009-03-30 Jakub Jelinek <jakub@redhat.com>
17226
17227 PR debug/39563
17228 * c-decl.c (struct c_binding): Add locus field.
17229 (bind): Add locus argument, set locus field from it.
17230 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
17231 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
17232 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
17233 implicitly_declare, undeclared_variable, lookup_label,
17234 declare_label, c_make_fname_decl, c_builtin_function,
17235 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
17236 bind callers.
17237
17238 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
17239
17240 PR target/38781
17241 * config/i386/i386.c (classify_argument): Check total size of
17242 structure.
17243
17244 2009-03-30 Martin Jambor <mjambor@suse.cz>
17245
17246 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
17247 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
17248 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
17249 respectively.
17250
17251 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
17252 seen_variable_array_ref while also traversing a union.
17253
17254 * tree-inline.c (optimize_inline_calls): Do not call
17255 cgraph_node_remove_callees.
17256 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
17257 (pass_remove_cgraph_callee_edges): New variable.
17258 * passes.c (init_optimization_passes): Add
17259 pass_remove_cgraph_callee_edges after early inlining and before all
17260 late intraprocedural passes.
17261
17262 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
17263
17264 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17265
17266 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
17267 Fix typos in names.
17268
17269 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17270
17271 * combine.c (simplify_comparison): Use have_insn_for.
17272 * dojump.c (do_jump): Likewise.
17273
17274 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17275
17276 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
17277 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
17278 sparc_compare_op0 like sparc_compare_emitted used to be handled.
17279 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
17280 instead of sparc_compare_emitted.
17281 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
17282 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
17283 instead of sparc_compare_emitted.
17284
17285 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17286
17287 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
17288 enter/exit cfglayout mode.
17289 (pass_partition_block): Require it.
17290 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
17291 (combine_instructions): Track basic blocks instead of labels.
17292 (update_cfg_for_uncondjump): New.
17293 (try_combine): Use it. Update jumps after rescanning.
17294 (pass_combine): Require PROP_cfglayout.
17295 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
17296
17297 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17298
17299 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
17300 Provide/destroy PROP_cfglayout respectively.
17301 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
17302 * tree-pass.h (PROP_cfglayout): New.
17303
17304 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
17305
17306 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
17307 fold_convert_const_fixed_from_fixed,
17308 fold_convert_const_fixed_from_int,
17309 fold_convert_const_fixed_from_real, fold_negate_const): Do not
17310 set TREE_CONSTANT_OVERFLOW.
17311 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
17312 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
17313
17314 2009-03-30 Ira Rosen <irar@il.ibm.com>
17315
17316 * tree-vect-loop-manip.c: New file.
17317 * tree-vectorizer.c: Update documentation and included files.
17318 (vect_loop_location): Make extern.
17319 (rename_use_op): Move to tree-vect-loop-manip.c
17320 (rename_variables_in_bb, rename_variables_in_loop,
17321 slpeel_update_phis_for_duplicate_loop,
17322 slpeel_update_phi_nodes_for_guard1,
17323 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
17324 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
17325 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
17326 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
17327 find_loop_location): Likewise.
17328 (new_stmt_vec_info): Move to tree-vect-stmts.c.
17329 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
17330 get_vectype_for_scalar_type, vect_is_simple_use,
17331 supportable_widening_operation, supportable_narrowing_operation):
17332 Likewise.
17333 (bb_in_loop_p): Move to tree-vect-loop.c.
17334 (new_loop_vec_info, destroy_loop_vec_info,
17335 reduction_code_for_scalar_code, report_vect_op,
17336 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
17337 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
17338 (vect_supportable_dr_alignment): Likewise.
17339 * tree-vectorizer.h (tree-data-ref.h): Include.
17340 (vect_loop_location): Declare.
17341 Reorganize function declarations according to the new file structure.
17342 * tree-vect-loop.c: New file.
17343 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
17344 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
17345 * tree-vect-data-refs.c: New file.
17346 * tree-vect-patterns.c (timevar.h): Don't include.
17347 * tree-vect-stmts.c: New file.
17348 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
17349 tree-vect-slp.c, tree-vect-loop.c.
17350 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
17351 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
17352 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
17353 (tree-vect-analyze.o): Remove.
17354 (tree-vect-transform.o): Likewise.
17355 (tree-vect-data-refs.o): Add rule.
17356 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
17357 tree-vect-slp.o): Likewise.
17358 (tree-vect-patterns.o): Remove redundant dependencies.
17359 (tree-vectorizer.o): Likewise.
17360 * tree-vect-slp.c: New file.
17361
17362 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17363
17364 * optc-gen.awk: Warn if an option flag has multiple different
17365 help strings.
17366
17367 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
17368
17369 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
17370 -floop-block): Document dependences on PPL, CLooG and Graphite.
17371
17372 2009-03-30 Joseph Myers <joseph@codesourcery.com>
17373
17374 PR rtl-optimization/323
17375 * c-common.c (c_fully_fold, convert_and_check,
17376 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
17377 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
17378 * c-common.def (EXCESS_PRECISION_EXPR): New.
17379 * c-cppbuiltin.c (builtin_define_float_constants): Define
17380 constants with enough digits for long double.
17381 * c-lex.c (interpret_float): Interpret constant with excess
17382 precision where appropriate.
17383 * c-opts.c (c_common_post_options): Set
17384 flag_excess_precision_cmdline. Give an error for
17385 -fexcess-precision=standard for C++ for processors where the
17386 option is significant.
17387 * c-parser.c (c_parser_conditional_expression): Handle excess
17388 precision in condition.
17389 * c-typeck.c (convert_arguments): Handle arguments with excess
17390 precision.
17391 (build_unary_op): Move excess precision outside operation.
17392 (build_conditional_expr): Likewise.
17393 (build_compound_expr): Likewise.
17394 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
17395 (build_modify_expr): Handle excess precision in RHS.
17396 (convert_for_assignment): Handle excess precision in converted
17397 value.
17398 (digest_init, output_init_element, process_init_element): Handle
17399 excess precision in initializer.
17400 (c_finish_return): Handle excess precision in return value.
17401 (build_binary_op): Handle excess precision in operands and add
17402 excess precision as needed for operation.
17403 * common.opt (-fexcess-precision=): New option.
17404 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
17405 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
17406 For standard excess precision, output explicit conversion to and
17407 truncation from XFmode.
17408 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
17409 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
17410 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
17411 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
17412 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
17413 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
17414 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
17415 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
17416 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
17417 define_splits, sqrt<mode>2): Disable where appropriate for
17418 standard excess precision.
17419 * convert.c (convert_to_real): Do not shorten arithmetic to type
17420 for which excess precision would be used.
17421 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
17422 * doc/invoke.texi (-fexcess-precision=): Document option.
17423 (-mfpmath=): Correct index entry.
17424 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
17425 flag_excess_precision): New.
17426 * langhooks.c (lhd_post_options): Set
17427 flag_excess_precision_cmdline.
17428 * opts.c (common_handle_option): Handle -fexcess-precision=.
17429 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
17430 init_excess_precision): New.
17431 (lang_dependent_init_target): Call init_excess_precision.
17432 * tree.c (excess_precision_type): New.
17433 * tree.h (excess_precision_type): Declare.
17434
17435 2009-03-30 Joseph Myers <joseph@codesourcery.com>
17436
17437 PR c/35235
17438 * c-typeck.c (build_component_ref): Do not copy qualifiers from
17439 non-lvalue to component.
17440
17441 2009-03-29 Joseph Myers <joseph@codesourcery.com>
17442
17443 PR preprocessor/34695
17444 * Makefile.in (c-opts.o): Depend on c-tree.h.
17445 * c-common.c: Move down include of diagnostic.h.
17446 (done_lexing, c_cpp_error): New.
17447 * c-common.h (done_lexing): Declare.
17448 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
17449 (parse_in).
17450 * c-opts.c: Include c-tree.h.
17451 (c_common_init_options): Set preprocessor error callback.
17452 (c_common_handle_option): Do not set preprocessor
17453 inhibit_warnings, warnings_are_errors, warn_system_headers,
17454 pedantic_errors or inhibit_warnings flags.
17455 (c_common_post_options): Do not check cpp_errors (parse_in).
17456 (c_common_finish): Do not output dependencies if there were
17457 errors. Do not check return value of cpp_finish.
17458 * c-ppoutput.c (pp_file_change): Set input_location.
17459 * c-tree.h (c_cpp_error): Declare.
17460 * diagnostic.c (diagnostic_set_info_translated): Also initialize
17461 override_column.
17462 (diagnostic_build_prefix): Check override_column.
17463 * diagnostic.h (diagnostic_info): Add override_column field.
17464 (diagnostic_override_column): Define.
17465
17466 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
17467
17468 * c-common.c (c_expand_expr, c_staticp): Remove.
17469 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
17470 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
17471 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
17472 * c-gimplify.c (gimplify_compound_literal_expr,
17473 optimize_compound_literals_in_ctor): Remove.
17474 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
17475 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
17476 * c-semantics.c (emit_local_var): Remove.
17477
17478 * langhooks-def.h (lhd_expand_expr): Remove.
17479 * langhooks.c (lhd_expand_expr): Remove.
17480 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
17481
17482 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
17483 handling from c-semantics.c; don't call into langhook.
17484 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
17485 * gimplify.c (gimplify_compound_literal_expr,
17486 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
17487 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
17488 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
17489 as was done in c-gimplify.c.
17490 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
17491 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
17492 Move from c-common.h.
17493 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
17494
17495 * tree.c (staticp): Do not call langhook.
17496 * langhooks.c (lhd_staticp): Delete.
17497 * langhooks-def.h (lhd_staticp): Delete prototype.
17498 (LANG_HOOKS_STATICP): Delete.
17499 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
17500
17501 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
17502 instead of DECL_STMTs.
17503
17504 2009-03-29 Joseph Myers <joseph@codesourcery.com>
17505
17506 PR c/456
17507 PR c/5675
17508 PR c/19976
17509 PR c/29116
17510 PR c/31871
17511 PR c/35198
17512 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
17513 void_type_node.
17514 (fold_call_expr): Return a NOP_EXPR from folding rather than the
17515 contained expression.
17516 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
17517 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
17518 conditional expressions for C.
17519 (decl_constant_value_for_optimization): Move from
17520 decl_constant_value_for_broken_optimization in c-typeck.c. Check
17521 whether optimizing and that the expression is a VAR_DECL not of
17522 array type instead of doing such checks in the caller. Do not
17523 check pedantic. Call gcc_unreachable for C++.
17524 * c-common.def (C_MAYBE_CONST_EXPR): New.
17525 * c-common.h (c_fully_fold, c_save_expr,
17526 decl_constant_value_for_optimization): New prototypes.
17527 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
17528 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
17529 EXPR_INT_CONST_OPERANDS): Define.
17530 * c-convert.c (convert): Strip nops from expression.
17531 * c-decl.c (groktypename): Take extra parameters expr and
17532 expr_const_operands. Update call to grokdeclarator.
17533 (start_decl): Update call to grokdeclarator. Add statement for
17534 expressions used in type of decl.
17535 (grokparm): Update call to grokdeclarator.
17536 (push_parm_decl): Update call to grokdeclarator.
17537 (build_compound_literal): Add parameter non_const and build a
17538 C_MAYBE_COSNT_EXPR if applicable.
17539 (grokdeclarator): Take extra parameters expr and
17540 expr_const_operands. Track expressions used in declaration
17541 specifiers and declarators. Fold array sizes and track whether
17542 they are constant expressions and whether they are integer
17543 constant expressions.
17544 (parser_xref_tag): Set expr and expr_const_operands fields in
17545 return value.
17546 (grokfield): Update call to grokdeclarator.
17547 (start_function): Update call to grokdeclarator.
17548 (build_null_declspecs): Set expr and expr_const_operands fields in
17549 return value.
17550 (declspecs_add_type): Handle expressions in typeof specifiers.
17551 * c-parser.c (c_parser_declspecs): Set expr and
17552 expr_const_operands fields for declaration specifiers.
17553 (c_parser_enum_specifier): Likewise.
17554 (c_parser_struct_or_union_specifier): Likewise.
17555 (c_parser_typeof_specifier): Likewise. Update call to
17556 groktypename. Fold expression as needed. Return expressions with
17557 type instead of adding statements.
17558 (c_parser_attributes): Update calls to c_parser_expr_list.
17559 (c_parser_statement_after_labels): Fold expression before passing
17560 to objc_build_throw_stmt.
17561 (c_parser_condition): Fold expression.
17562 (c_parser_asm_operands): Fold expression.
17563 (c_parser_conditional_expression): Use c_save_expr. Update call
17564 to build_conditional_expr.
17565 (c_parser_alignof_expression): Update call to groktypename.
17566 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
17567 original_code. Fold expression argument of va_arg. Create
17568 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
17569 argument to va_arg. Update calls to groktypename. Fold array
17570 index for offsetof. Verify that first argument to
17571 __builtin_choose_expr has integer type.
17572 (c_parser_postfix_expression_after_paren_type): Update calls to
17573 groktypename and build_compound_literal. Handle expressions with
17574 side effects in type name.
17575 (c_parser_postfix_expression_after_primary): Update call to
17576 c_parser_expr_list. Set original_code for calls to
17577 __builtin_constant_p.
17578 (c_parser_expr_list): Take extra parameter fold_p. Fold
17579 expressions if requested.
17580 (c_parser_objc_type_name): Update call to groktypename.
17581 (c_parser_objc_synchronized_statement): Fold expression.
17582 (c_parser_objc_receiver): Fold expression.
17583 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
17584 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
17585 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
17586 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
17587 (struct c_typespec): Add elements expr and expr_const_operands.
17588 (struct c_declspecs): Add elements expr and expr_const_operands.
17589 (groktypename, build_conditional_expr, build_compound_literal):
17590 Update prototypes.
17591 (in_late_binary_op): Declare.
17592 * c-typeck.c (note_integer_operands): New function.
17593 (in_late_binary_op): New variable.
17594 (decl_constant_value_for_broken_optimization): Move to c-common.c
17595 and rename to decl_constant_value_for_optimization.
17596 (default_function_array_conversion): Do not strip nops.
17597 (default_conversion): Do not call
17598 decl_constant_value_for_broken_optimization.
17599 (build_array_ref): Do not fold result.
17600 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
17601 result when operand is a VLA.
17602 (c_expr_sizeof_type): Update call to groktypename. Handle
17603 expressions included in type name. Use C_MAYBE_CONST_EXPR for
17604 result when operand names a VLA type.
17605 (build_function_call): Update call to build_compound_literal.
17606 Only fold result for calls to __builtin_* functions. Strip
17607 NOP_EXPR from INTEGER_CST returned from such functions. Fold
17608 the function designator.
17609 (convert_arguments): Fold arguments. Update call to
17610 convert_for_assignment.
17611 (build_unary_op): Handle increment and decrement of
17612 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
17613 decrement earlier. Fold operand of increment and decrement.
17614 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
17615 built for integer operand. Wrap returns that are INTEGER_CSTs
17616 without being integer constant expressions or that have integer
17617 constant operands without being INTEGER_CSTs.
17618 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
17619 (build_conditional_expr): Add operand ifexp_bcp. Track whether
17620 result is an integer constant expression or can be used in
17621 unevaluated parts of one and avoid folding and wrap as
17622 appropriate. Fold operands before possibly doing -Wsign-compare
17623 warnings.
17624 (build_compound_expr): Wrap result for C99 if operands can be used
17625 in integer constant expressions.
17626 (build_c_cast): Update call to digest_init. Do not ignore
17627 overflow from casting floating-point constants to integers. Wrap
17628 results that could be confused with integer constant expressions,
17629 null pointer constants or floating-point constants.
17630 (c_cast_expr): Update call to groktypename. Handle expressions
17631 included in type name.
17632 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
17633 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
17634 Update calls to convert_for_assignment.
17635 (convert_for_assignment): Take new parameter
17636 null_pointer_constant. Do not strip nops or call
17637 decl_constant_value_for_broken_optimization. Set
17638 in_late_binary_op for conversions to boolean.
17639 (store_init_value): Update call to digest_init.
17640 (digest_init): Take new parameter null_pointer_constant. Do not
17641 call decl_constant_value_for_broken_optimization. pedwarn for
17642 initializers not constant expressions. Update calls to
17643 convert_for_assignment.
17644 (constructor_nonconst): New.
17645 (struct constructor_stack): Add nonconst element.
17646 (really_start_incremental_init, push_init_level, pop_init_level):
17647 Handle constructor_nonconst and nonconst element.
17648 (set_init_index): Call constant_expression_warning for array
17649 designators.
17650 (output_init_element): Fold value. Set constructor_nonconst as
17651 applicable. pedwarn for initializers not constant expressions.
17652 Update call to digest_init. Call constant_expression_warning
17653 where constant initializers are required.
17654 (process_init_element): Use c_save_expr.
17655 (c_finish_goto_ptr): Fold expression.
17656 (c_finish_return): Fold return value. Update call to
17657 convert_for_assignment.
17658 (c_start_case): Fold switch expression.
17659 (c_process_expr_stmt): Fold expression.
17660 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
17661 ensure statement expression is not evaluated in constant expression.
17662 (build_binary_op): Track whether results are integer constant
17663 expressions or may occur in such, disable folding and wrap results
17664 as applicable. Fold operands for -Wsign-compare warnings unless
17665 in_late_binary_op.
17666 (c_objc_common_truthvalue_conversion): Handle results folded to
17667 integer constants that are not integer constant expressions.
17668 * doc/extend.texi: Document when typeof operands are evaluated,
17669 that condition of __builtin_choose_expr is an integer constant
17670 expression, and more about use of __builtin_constant_p in
17671 initializers.
17672
17673 2009-03-29 Richard Guenther <rguenther@suse.de>
17674
17675 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
17676 propagate addresses of array references.
17677
17678 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
17679
17680 * regmove.c (perhaps_ends_bb_p): Remove.
17681 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
17682 from INSN and check that the main loop stays within that basic block.
17683 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
17684 (regmove_forward_pass): Split out from regmove_optimize. Use
17685 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
17686 (regmove_backward_pass): Split out from regmove_optimize. Use
17687 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
17688 (regmove_optimize): Simplify.
17689
17690 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
17691
17692 PR target/39545
17693 * config/i386/i386.c (classify_argument): Ignore flexible array
17694 member in struct and warn ABI change.
17695
17696 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
17697
17698 * config/i386/i386-protos.h (ix86_agi_dependent): New.
17699
17700 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
17701 (ix86_adjust_cost): Updated.
17702
17703 2009-03-29 Jan Hubicka <jh@suse.cz>
17704
17705 PR middle-end/28850
17706 * tree-pass.h (pass_cleanup_eh): New function.
17707 (remove_unreachable_regions): Break code handling RTL
17708 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
17709 that can not be reached by runtime.
17710 (can_be_reached_by_runtime): New function.
17711 (label_to_region_map): New function.
17712 (num_eh_regions): New function.
17713 (rtl_remove_unreachable_regions): New function.
17714 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
17715 (remove_eh_region): New function.
17716 * except.h: Include sbitmap and vecprim.
17717 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
17718 num_eh_regions): Declare.
17719 * passes.c (init_optimization_passes): Schedule cleanup_eh.
17720 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
17721 * tree-eh.c (tree_remove_unreachable_handlers): New function.
17722 (tree_empty_eh_handler_p): New function.
17723 (cleanup_empty_eh): New function.
17724 (cleanup_eh): New function.
17725 (pass_cleanup_eh): New function.
17726
17727 2009-03-29 Jan Hubicka <jh@suse.cz>
17728
17729 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
17730 for removed regions.
17731
17732 2009-03-29 Jan Hubicka <jh@suse.cz>
17733
17734 * except.c (dump_eh_tree): Dump all datastructures.
17735
17736 2009-03-29 Jan Hubicka <jh@suse.cz>
17737
17738 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
17739 (duplicate_eh_regions_1): Likewise.
17740 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
17741 vector; call EH verification.
17742 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
17743 Be ready for region being removed.
17744
17745 2009-03-29 Jan Hubicka <jh@suse.cz>
17746
17747 * bitmap.c (bitmap_last_set_bit): New function.
17748 * bitmap.h (bitmap_last_set_bit): Declare.
17749
17750 2009-03-29 David Ayers <ayers@fsfe.org>
17751
17752 PR objc/27377
17753 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
17754 by calling objc_compare_types and surpress warnings about
17755 incompatible C pointers that are compatible ObjC pointers.
17756
17757 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
17758
17759 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
17760 call initialize_inline_failed.
17761 (initialize_inline_failed): Move it from here ...
17762 * cgraph.c (initialize_inline_failed): ... to here.
17763 (cgraph_create_edge): Call initialize_inline_failed rather than
17764 setting inline_failed directly.
17765
17766 2009-03-29 Ben Elliston <bje@au.ibm.com>
17767
17768 PR target/32542
17769 * sysv4.opt (msdata): Improve comment.
17770 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
17771 * sysv4.h (SVR4_ASM_SPEC): Likewise.
17772
17773 2009-03-29 Ben Elliston <bje@au.ibm.com>
17774
17775 PR target/30451
17776 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
17777 load and store attributes.
17778
17779 2009-03-29 Ben Elliston <bje@au.ibm.com>
17780
17781 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
17782 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
17783 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
17784 * doc/extend.texi (X86 Built-in Functions): Add index entries for
17785 __builtin_infq and __builtin_huge_valq.
17786
17787 2009-03-28 Anatoly Sokolov <aesok@post.ru>
17788
17789 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
17790 atmega8m1 devices.
17791 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
17792 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
17793
17794 2009-03-28 Xinliang David Li <davidxl@google.com>
17795
17796 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
17797 (do_dbg_cnt): New function.
17798
17799 2009-03-28 Jan Hubicka <jh@suse.cz>
17800
17801 Merge from pretty-ipa:
17802
17803 2009-03-27 Jan Hubicka <jh@suse.cz>
17804
17805 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
17806 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
17807 * passes.c (function_called_by_processed_nodes_p): New.
17808 * ipa-pure-const.c (check_call): Fix handling of operands.
17809 (analyze_function): Dump debug output for skipped bodies.
17810 (local_pure_const): Use function_called_by_processed_nodes_p.
17811 * dwarf2out.c (reference_to_unused): Use output.
17812 * passes.c (do_per_function_toporder): Likewise.
17813
17814 2008-11-12 Jan Hubicka <jh@suse.cz>
17815
17816 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
17817 * ipa-pure-const.c (funct_state_d): Add can throw field; make
17818 state_set_in_source enum
17819 (check_decl): Ignore memory tags; do not set fake looping flags;
17820 dump diagnostics.
17821 (check_operand, check_tree, check_rhs_var, check_lhs_var,
17822 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
17823 (check_call, analyze_function): Rewrite.
17824 (check_stmt): New.
17825 (add_new_function): Update call of analyze_function.
17826 (generate_summary): Add call of analyze_function.
17827 (propagate): Propagate can_throw; handle state_set_in_source correctly.
17828 (local_pure_const): New function.
17829 (pass_local_pure_const): New pass.
17830 * ipa-inline.c (inline_transform): Set after_inlining.
17831 * tree-eh.c (stmt_can_throw_external): New.
17832 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
17833 work with aliasing built.
17834 * tree-flow.h (stmt_can_throw_external): New.
17835 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
17836 and local pure/const pass in early and late optimization queue.
17837
17838 2009-03-28 Martin Jambor <mjambor@suse.cz>
17839
17840 * fold-const.c (get_pointer_modulus_and_residue): New parameter
17841 allow_func_align.
17842 (fold_binary): Allow function decl aligment consideration is the
17843 second argument is integer constant one.
17844 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
17845 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
17846 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
17847
17848 2009-03-28 Jan Hubicka <jh@suse.cz>
17849
17850 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
17851 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
17852 * function.h (rtl_data): Add nothrow flag.
17853 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
17854 set DECL_NOTHROW for AVAILABLE functions.
17855
17856 2009-03-28 Jakub Jelinek <jakub@redhat.com>
17857
17858 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
17859 following vector keyword has expansion starting with pixel or bool
17860 keyword, expand vector to __vector and pixel or bool to __pixel or
17861 __bool.
17862
17863 PR c++/39554
17864 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
17865 warn_if_disallowed_function_p): Removed.
17866 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
17867 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
17868 warning_if_disallowed_function_p.
17869 * flags.h (warn_if_disallowed_function_p,
17870 warn_disallowed_functions): Removed.
17871 * common.opt (Wdisallowed-function-list=): Removed.
17872 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
17873
17874 2009-03-28 Richard Guenther <rguenther@suse.de>
17875
17876 PR tree-optimization/38723
17877 * tree-ssa-pre.c (compute_avail): Add all default definitions to
17878 the entry block.
17879
17880 2009-03-28 Jan Hubicka <jh@suse.cz>
17881
17882 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
17883 test introduced by my previous patch.
17884
17885 2009-03-28 Richard Guenther <rguenther@suse.de>
17886
17887 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
17888 the PHIs value undefined.
17889
17890 2009-03-28 Jan Hubicka <jh@suse.cz>
17891
17892 * tree-pass.h (pass_fixup_cfg): New pass.
17893 * ipa-inline.c (inline_transform): Set
17894 always_inline_functions_inlined/after_inlining.
17895 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
17896 (pass_fixup_cfg): New pass.
17897 * passes.c (init_optimization_passes): Add fixup_cfg.
17898
17899 2009-03-28 Richard Guenther <rguenther@suse.de>
17900
17901 PR tree-optimization/38458
17902 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
17903 argument use the arguments copy-of value.
17904
17905 2009-03-28 Richard Guenther <rguenther@suse.de>
17906
17907 PR tree-optimization/38180
17908 * tree-ssa-ccp.c (get_default_value): Simplify.
17909 (likely_value): Likewise.
17910 (surely_varying_stmt_p): Properly handle VOP case.
17911 (ccp_initialize): Likewise.
17912 (ccp_fold): Handle propagating through *&.
17913 (fold_const_aggregate_ref): Also handle decls.
17914
17915 2009-03-28 Jan Hubicka <jh@suse.cz>
17916
17917 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
17918 * cgraph.h (cgraph_node): Likewise.
17919 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
17920 (cgraph_reset_node): Use process flag.
17921 (cgraph_mark_functions_to_output): Likewise.
17922 (cgraph_expand_function): Likewise.
17923 (cgraph_expand_all_functions): Likewise.
17924 (cgraph_output_in_order): Likewise.
17925 * dwarf2out.c (reference_to_unused): Likewise.
17926 * passes.c do_per_function_toporder): Likewise.
17927
17928 2009-03-28 Jan Hubicka <jh@suse.cz>
17929
17930 Bring from lto-branch:
17931
17932 2008-09-03 Doug Kwan <dougkwan@google.com>
17933
17934 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
17935 enums instead of reason strings.
17936 * cgraph.c (cgraph_create_edge): Same.
17937 (cgraph_inline_failed_string): New function.
17938 * cgraph.h (cgraph_inline_failed_t): New enum type.
17939 (cgraph_inline_failed_string): New prototype.
17940 (struct cgraph_edge): Change type of INLINED_FAILED from constant
17941 char pointer to cgraph_inline_failed_t.
17942 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
17943 (cgraph_default_inline_p): Ditto.
17944 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
17945 to cgraph_inline_failed_t pointer.
17946 * cif-code.def: New file.
17947 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
17948 reason string.
17949 (cgraph_check_inline_limits): Change type of REASON to pointer to
17950 cgraph_inline_failed_t. Replace reason strings with enums.
17951 (cgraph_default_inline_p): Ditto.
17952 (cgraph_recursive_inlining_p): Ditto.
17953 (update_caller_keys): Change type of FAILED_REASON to
17954 cgraph_inline_failed_t.
17955 (cgraph_set_inline_failed): Change type of REASON to pointer to
17956 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
17957 convert enums to strings for text output.
17958 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
17959 to be of type cgraph_inline_failed_t. Replace reason strings with
17960 enums. Call cgraph_inline_failed_string to covert enums
17961 to strings for text output.
17962 (cgraph_decide_inlining): Replace reason strings with enums.
17963 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
17964 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
17965 for text output.
17966 * tree-inline.c (expand_call_inline): Change type of REASON
17967 to cgraph_inline_failed_t. Replace reason strings with enums.
17968 Call cgraph_inline_failed_string for text output.
17969 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
17970 (cgraph.o): Ditto.
17971
17972 2009-03-28 Jan Hubicka <jh@suse.cz>
17973
17974 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
17975 cgraph_clone_node): Remove master clone handling.
17976 (cgraph_is_master_clone, cgraph_master_clone): Remove.
17977 * cgraph.h (master_clone): Remove.
17978 (cgraph_is_master_clone, cgraph_master_clone): Remove.
17979 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
17980 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
17981
17982 2009-03-28 Jan Hubicka <jh@suse.cz>
17983
17984 * cgraph.c (cgraph_function_body_availability): Functions declared
17985 inline are always safe to assume that it is not going to be replaced.
17986
17987 2009-03-28 Richard Guenther <rguenther@suse.de>
17988
17989 PR tree-optimization/38513
17990 * tree-ssa-pre.c (eliminate): Remove redundant stores.
17991 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17992 EXC_PTR_EXPR and FILTER_EXPR.
17993 (get_ref_from_reference_ops): Likewise.
17994
17995 2009-03-28 Richard Guenther <rguenther@suse.de>
17996
17997 PR tree-optimization/38968
17998 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
17999 Use FLOOR_MOD_EXPR to compute misalignment.
18000
18001 2009-03-28 Richard Guenther <rguenther@suse.de>
18002
18003 PR tree-optimization/37795
18004 * tree.h (combine_comparisons): Declare.
18005 * fold-const.c (combine_comparisons): Export.
18006 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
18007 comparisons.
18008 (ifcombine_iforif): Use combine_comparisons.
18009
18010 2009-03-28 Jan Hubicka <jh@suse.cz>
18011
18012 * tree-eh.c (inlinable_call_p): New function.
18013 (make_eh_edges): Use it.
18014 (verify_eh_edges): Use it.
18015 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
18016 * except.c (reachable_next_level): Add inlinable_function argument
18017 (sjlj_find_directly_reachable_regions): Update.
18018 (add_reachable_handler): Do not set saw_any_handlers.
18019 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
18020 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
18021 Add new inlinable call parameter.
18022 (can_throw_internal, can_throw_external): Update.
18023 * except.h (can_throw_internal_1, can_throw_external_1,
18024 foreach_reachable_handler): Update declaration.
18025
18026 2009-03-28 Joseph Myers <joseph@codesourcery.com>
18027
18028 * config/arm/t-arm-coff, config/h8300/coff.h,
18029 config/i386/i386-aout.h, config/i386/i386-coff.h,
18030 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
18031 config/pdp11/2bsd.h, config/rs6000/aix41.h,
18032 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
18033 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
18034 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
18035 sys-types.h: Remove.
18036 * Makefile.in: Remove protoize and fixproto support and references
18037 in comments.
18038 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
18039 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
18040 Remove.
18041 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
18042 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
18043 unprotoize$(exeext).
18044 (rest.encap): Don't depend on $(STMP_FIXPROTO)
18045 (.PHONY): Don't depend on proto.
18046 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
18047 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
18048 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
18049 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
18050 build/gen-protos.o, build/scan.o, xsys-protos.h,
18051 build/fix-header$(build_exeext), build/fix-header.o,
18052 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
18053 stmp-install-fixproto): Remove.
18054 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
18055 SYSCALLS.c or fixproto files.
18056 (install-common): Don't install protoize.
18057 (install-headers-tar, install-headers-cpio, install-headers-cp):
18058 Don't depend on $(STMP_FIXPROTO).
18059 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
18060 install fixproto files or write out fixproto settings.
18061 (uninstall): Don't uninstall protoize.
18062 * config.gcc (use_fixproto): Remove.
18063 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
18064 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
18065 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
18066 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
18067 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
18068 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
18069 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
18070 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
18071 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
18072 * config/t-vxworks (STMP_FIXPROTO): Remove.
18073 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
18074 STMP_FIXPROTO): Remove.
18075 * config.in, configure: Regenerate.
18076 * crtstuff.c (gid_t, uid_t): Don't undefine.
18077 * doc/install.texi: Change m68k-coff to m68k-elf in example.
18078 (arm-*-coff, arm-*-aout: Remove target entries.
18079 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
18080 Remove mention of AIX 4.1.
18081 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
18082 * doc/invoke.texi (Running Protoize): Remove.
18083 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
18084 (Protoize Caveats): Remove.
18085 * tsystem.h: Update comments on headers assumed to exist.
18086
18087 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
18088
18089 * genautomata.c: Add a new year to the copyright. Add a new
18090 reference.
18091 (struct insn_reserv_decl): Add comments for member bypass_list.
18092 (find_bypass): Remove.
18093 (insert_bypass): New.
18094 (process_decls): Use insert_bypass.
18095 (output_internal_insn_latency_func): Output all bypasses with the
18096 same input insn in one switch case.
18097
18098 * rtl.def (define_bypass): Describe bypass choice.
18099 * doc/md.texi (define_bypass): Ditto.
18100
18101 2009-03-27 Richard Guenther <rguenther@suse.de>
18102
18103 * gimplify.c (mark_addressable): Export.
18104 * tree-flow.h (mark_addressable): Declare.
18105 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
18106 * tree-ssa.c (verify_phi_args): Verify that address taken
18107 variables have TREE_ADDRESSABLE set.
18108
18109 2009-03-27 Richard Guenther <rguenther@suse.de>
18110
18111 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
18112 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
18113 Do not mark decls TREE_ADDRESSABLE.
18114 (build_fold_addr_expr): Adjust.
18115 (fold_addr_expr): Remove.
18116 (fold_unary): Use build_fold_addr_expr.
18117 (fold_comparison): Likewise.
18118 (split_address_to_core_and_offset): Likewise.
18119 * coverage.c (tree_coverage_counter_addr): Mark the array decl
18120 TREE_ADDRESSABLE.
18121 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
18122 (gimplify_modify_expr_to_memcpy): Mark source and destination
18123 addressable.
18124 * omp-low.c (create_omp_child_function): Mark the object decl
18125 TREE_ADDRESSABLE.
18126 (lower_rec_input_clauses): Mark the var we take the address of
18127 TREE_ADDRESSABLE.
18128 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
18129
18130 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18131
18132 PR middle-end/39315
18133 * cfgexpand.c (expand_one_stack_var_at): Change alignment
18134 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
18135
18136 2009-03-27 Richard Guenther <rguenther@suse.de>
18137
18138 PR tree-optimization/39120
18139 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
18140 constraints.
18141 (handle_lhs_call): Process return constraints. Add escape
18142 constraints if necessary.
18143 (handle_const_call): Fill out return constraints. Make nested
18144 case more precise. Avoid consttmp if possible.
18145 (handle_pure_call): Fill out return constraints. Avoid
18146 callused if possible.
18147 (find_func_aliases): Simplify call handling.
18148
18149 2009-03-27 Richard Guenther <rguenther@suse.de>
18150
18151 PR tree-optimization/39120
18152 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
18153 as a representative.
18154 (solve_graph): Do propagate CALLUSED.
18155 (handle_pure_call): Use a scalar constraint from CALLUSED for
18156 the return value.
18157 (find_what_p_points_to): CALLUSED shall not appear in poins-to
18158 solutions.
18159
18160 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18161
18162 PR c/39323
18163 * c-common.c (handle_aligned_attribute): Properly check alignment
18164 overflow. Use (1U << i) instead of (1 << i).
18165
18166 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
18167
18168 * expr.h (get_mem_align_offset): Updated.
18169
18170 * tree.h (tree_decl_common): Change align to "unsigned int" and
18171 move it before pointer_alias_set.
18172
18173 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18174 Jakub Jelinek <jakub@redhat.com>
18175
18176 PR target/38034
18177 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
18178 gr_register_operand with gr_reg_or_0_operand.
18179 (cmpxchg_rel_di): Likewise.
18180 (sync_lock_test_and_set<mode>): Likewise.
18181
18182 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18183
18184 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
18185 (true_regnum): Likewise.
18186
18187 * rtlanal.c (subreg_info): Moved to ...
18188 * rtl.h (subreg_info): Here. New.
18189 (subreg_get_info): New.
18190
18191 * rtlanal.c (subreg_get_info): Make it extern.
18192
18193 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18194
18195 PR target/39472
18196 * config/i386/i386.c (ix86_abi): New.
18197 (override_options): Handle -mabi=.
18198 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
18199 (ix86_call_abi_override): Likewise.
18200 (init_cumulative_args): Likewise.
18201 (function_arg_advance): Likewise.
18202 (function_arg_64): Likewise.
18203 (function_arg): Likewise.
18204 (ix86_pass_by_reference): Likewise.
18205 (ix86_function_value_regno_p): Likewise.
18206 (ix86_build_builtin_va_list_abi): Likewise.
18207 (setup_incoming_varargs_64): Likewise.
18208 (is_va_list_char_pointer): Likewise.
18209 (ix86_init_machine_status): Likewise.
18210 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
18211 (ix86_function_type_abi): Return enum calling_abi. Rewrite
18212 for 64bit. Replace DEFAULT_ABI with ix86_abi.
18213 (ix86_function_abi): Make it static and return enum calling_abi.
18214 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
18215 with ix86_abi.
18216 (ix86_fn_abi_va_list): Updated.
18217
18218 * config/i386/i386.h (ix86_abi): New.
18219 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
18220 (CONDITIONAL_REGISTER_USAGE): Likewise.
18221 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
18222 (machine_function): Likewise.
18223
18224 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
18225 with ix86_abi.
18226 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
18227 (STACK_BOUNDARY): Likewise.
18228 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
18229
18230 * config/i386/i386.opt (mabi=): New.
18231
18232 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
18233 return enum calling_abi.
18234 (ix86_function_type_abi): Likewise.
18235 (ix86_function_abi): Removed.
18236
18237 * doc/invoke.texi: Document -mabi= option for x86.
18238
18239 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18240
18241 * builtins.c (real_dconstp): Delete.
18242 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
18243
18244 2009-03-27 Dodji Seketeli <dodji@redhat.com>
18245 Jakub Jelinek <jakub@redhat.com>
18246
18247 PR debug/37959
18248 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
18249 (gen_subprogram_die): When a function is explicit, generate the
18250 DW_AT_explicit attribute.
18251 * langhooks.h (struct lang_hooks_for_decls): Add
18252 function_decl_explicit_p langhook.
18253 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
18254 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
18255
18256 2009-03-27 Jakub Jelinek <jakub@redhat.com>
18257
18258 * builtins.c (fold_builtin_memory_op): Optimize memmove
18259 into memcpy if we can prove source and destination don't overlap.
18260
18261 * tree-inline.c: Include gt-tree-inline.h.
18262 (clone_fn_id_num): New variable.
18263 (clone_function_name): New function.
18264 (tree_function_versioning): Use it.
18265 * Makefile.in (GTFILES): Add tree-inline.c.
18266
18267 2009-03-27 Mark Mitchell <mark@codesourcery.com>
18268
18269 * BASE-VER: Change to 4.5.0.
18270
18271 2009-03-27 Xinliang David Li <davidxl@google.com>
18272
18273 PR tree-optimization/39557
18274 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
18275
18276 2009-03-27 Xinliang David Li <davidxl@google.com>
18277
18278 PR tree-optimization/39548
18279 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
18280 candidate check.
18281
18282 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18283
18284 * c-common.c (pointer_int_sum): Use %wd on return from
18285 tree_low_cst.
18286
18287 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
18288
18289 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
18290 on return from tree_low_cst.
18291
18292 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
18293
18294 PR c++/36799
18295 * ginclude/stdarg.h (va_copy): Define also for
18296 __GXX_EXPERIMENTAL_CXX0X__.
18297
18298 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18299
18300 PR c++/35652
18301 * builtins.h (c_strlen): Do not warn here.
18302 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
18303 * c-common.c (pointer_int_sum): Take an explicit location.
18304 Warn about offsets out of bounds.
18305 * c-common.h (pointer_int_sum): Adjust declaration.
18306
18307 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18308
18309 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
18310 markup glitch.
18311
18312 2009-03-26 Jakub Jelinek <jakub@redhat.com>
18313
18314 PR c++/39554
18315 * opts.c (warn_if_disallowed_function_p): Don't assume
18316 get_callee_fndecl must return non-NULL.
18317
18318 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
18319
18320 PR rtl-optimization/39522
18321 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
18322 when reg_reloaded_valid is set.
18323
18324 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18325
18326 * config/spu/divv2df3.c: New file.
18327 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
18328 (DPBIT_FUNCS): Filter out _div_df.
18329
18330 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
18331
18332 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
18333 a jump insn, count that jump in the distance to the loop start.
18334
18335 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
18336
18337 PR target/39523
18338 * config/sh/sh.c (calc_live_regs): Fix condition for global
18339 registers except PIC_OFFSET_TABLE_REGNUM.
18340
18341 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
18342
18343 PR/39518
18344 * doc/invoke.texi (-mconsole): New.
18345 (-mcygwin): New.
18346 (-mno-cygwin): New.
18347 (-mdll): New.
18348 (-mnop-fun-dllimport): New.
18349 (-mthread): New.
18350 (-mwin32): New.
18351 (-mwindows): New.
18352 (sub section "i386 and x86-64 Windows Options"): New.
18353
18354 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
18355
18356 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
18357 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
18358
18359 2009-03-25 Richard Guenther <rguenther@suse.de>
18360
18361 PR middle-end/39497
18362 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
18363 of -Wno-error.
18364
18365 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
18366
18367 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
18368 neither of haifa/selective schedulers are working.
18369
18370 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18371
18372 * doc/invoke.texi (Debugging Options): Fix description of
18373 -fno-merge-debug-strings.
18374
18375 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
18376
18377 * config/cris/libgcc.ver: New version-script.
18378 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
18379
18380 * configure.ac <GAS features, nop mnemonic>: Add pattern
18381 crisv32-*-* for "nop".
18382 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
18383 * configure: Regenerate.
18384
18385 2009-03-24 Ira Rosen <irar@il.ibm.com>
18386
18387 PR tree-optimization/39529
18388 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
18389 mark_sym_for_renaming for the tag copied to the new vector
18390 pointer.
18391
18392 2009-03-24 Arthur Loiret <aloiret@debian.org>
18393
18394 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
18395 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
18396 EXTRA_SPEC_FUNCTIONS.
18397 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
18398 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
18399 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
18400 -march and -mtune options.
18401
18402 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
18403
18404 * config/m68k/t-rtems: Add m5329 multilib.
18405
18406 2009-03-24 Dodji Seketeli <dodji@redhat.com>
18407 Jakub Jelinek <jakub@redhat.com>
18408
18409 PR debug/39524
18410 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
18411 nodes.
18412
18413 2009-03-23 Jakub Jelinek <jakub@redhat.com>
18414
18415 PR c/39495
18416 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
18417 instead of c_parser_expression_conv, if original_code isn't one of the
18418 4 allowed comparison codes, fail.
18419
18420 2009-03-23 Richard Guenther <rguenther@suse.de>
18421
18422 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
18423 * tree.h (struct tree_type): Likewise.
18424 * reload.h (struct insn_chain): Likewise.
18425 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
18426 * function.h (struct function): Likewise.
18427 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
18428
18429 2009-03-23 Jakub Jelinek <jakub@redhat.com>
18430
18431 PR tree-optimization/39516
18432 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
18433
18434 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
18435
18436 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
18437 should be set true if BITS_PER_WORD of target is bigger than 32
18438
18439 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
18440
18441 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
18442 Translate -B-options to -rpath-link. Correct existing
18443 rpath-link and conditionalize on !nostdlib.
18444
18445 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18446
18447 * doc/extend.texi (Function Attributes, Variable Attributes):
18448 Fix typos.
18449 * doc/invoke.texi (Debugging Options, Optimize Options)
18450 (i386 and x86-64 Options, MCore Options): Likewise.
18451
18452 2009-03-20 Jakub Jelinek <jakub@redhat.com>
18453
18454 PR debug/37890
18455 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
18456 it for block local namespace aliases.
18457 (gen_decl_die): Pass context_die to gen_namespace_die.
18458
18459 2009-03-19 Jakub Jelinek <jakub@redhat.com>
18460
18461 PR c/39495
18462 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
18463 minimum or maximum value.
18464
18465 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
18466
18467 * reginfo.c (globalize_reg): Recompute derived reg sets.
18468
18469 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
18470
18471 PR target/39063
18472 * libgcc2.c (mprotect): Do not use signed arguments for
18473 VirtualProtect, use DWORD arguments. Also fix the 'may
18474 be used uninitialized' warning for the np variable.
18475
18476 2009-03-19 Jakub Jelinek <jakub@redhat.com>
18477
18478 PR target/39496
18479 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
18480 functions using regparm calling conventions when not optimizing.
18481 (ix86_function_sseregparm): Similarly for sseregparm calling
18482 conventions.
18483
18484 2009-03-19 Li Feng <nemokingdom@gmail.com>
18485
18486 PR middle-end/39500
18487 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
18488 dependence if the first conflict is after niter iterations.
18489
18490 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
18491
18492 PR middle-end/38609
18493 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
18494 functions with dynamic stack-pointer adjustments.
18495
18496 2009-03-19 Ben Elliston <bje@au.ibm.com>
18497
18498 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
18499 option; change to -msdata=data.
18500
18501 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18502
18503 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
18504 and -fopenmp.
18505
18506 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
18507
18508 PR target/35180
18509 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
18510
18511 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
18512
18513 * doc/invoke.texi (Code Gen Options): Expand discussion of
18514 -fno-common.
18515
18516 2009-03-18 Jakub Jelinek <jakub@redhat.com>
18517
18518 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
18519 * matrix-reorg.c (struct matrix_info): Likewise.
18520 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
18521 * rtl.h (struct mem_attrs): Likewise.
18522 * df.h (struct df): Likewise.
18523 * tree-data-ref.h (struct data_dependence_relation): Likewise.
18524 * ira-int.h (struct ira_allocno): Likewise.
18525 * df-scan.c (struct df_collection_rec): Likewise.
18526 * ira.c (struct equivalence): Likewise.
18527 * function.c (struct temp_slot): Likewise.
18528 * cfgloop.h (struct loop): Likewise.
18529
18530 PR debug/39485
18531 * function.c (use_register_for_decl): When not optimizing, disregard
18532 register keyword for variables with types containing methods.
18533
18534 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
18535
18536 PR middle-end/39447
18537 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
18538 (is_simple_operand): Call contains_component_ref_p before calling data
18539 reference analysis that would fail on COMPONENT_REFs.
18540
18541 * tree-vrp.c (search_for_addr_array): Fix formatting.
18542
18543 2009-03-18 Richard Guenther <rguenther@suse.de>
18544
18545 * tree-vect-transform.c (vect_loop_versioning): Fold the
18546 generated comparisons.
18547 * tree-vectorizer.c (set_prologue_iterations): Likewise.
18548 (slpeel_tree_peel_loop_to_edge): Likewise.
18549
18550 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18551
18552 PR middle-end/37805
18553 * opts.c (print_specific_help): In addition to `undocumented',
18554 accept `separate' and `joined' flags if passed alone. Describe
18555 output by the first matched one of those.
18556 (common_handle_option): Skip over empty strings.
18557 * gcc.c (display_help): Fix help string for `--help='.
18558 * doc/invoke.texi (Option Summary, Overall Options): With
18559 `--help=', classes and qualifiers can both be repeated, but
18560 only the latter can be negated. One should not pass only
18561 negated qualifiers. Fix markup and examples.
18562
18563 Revert
18564 2008-10-14 Jakub Jelinek <jakub@redhat.com>
18565 PR middle-end/37805
18566 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
18567 and -fhelp=separate.
18568
18569 2009-03-17 Jing Yu <jingyu@google.com>
18570
18571 PR middle-end/39378
18572 * function.h (struct rtl_data): Move is_thunk from here...
18573 (struct function): ...to here.
18574 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
18575 * varasm.c (assemble_start_function): Change is_thunk from crtl to
18576 cfun.
18577 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
18578 cfun.
18579 (alpha_does_function_need_gp, alpha_start_function): Likewise.
18580 (alpha_output_function_end_prologue): Likewise.
18581 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
18582 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
18583 (rs6000_output_function_epilogue): Likewise.
18584 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
18585
18586 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
18587
18588 PR target/39482
18589 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
18590 from different units in a single alternative.
18591 (*truncdfsf_i387): Ditto.
18592 (*truncxfsf2_mixed): Ditto.
18593 (*truncxfdf2_mixed): Ditto.
18594
18595 2009-03-17 Jakub Jelinek <jakub@redhat.com>
18596
18597 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
18598 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
18599
18600 PR debug/39474
18601 * tree-ssa-live.c (remove_unused_locals): Don't remove local
18602 unused non-artificial variables when not optimizing.
18603
18604 PR debug/39471
18605 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
18606 DW_TAG_imported_module even if decl is IMPORTED_DECL with
18607 NAMESPACE_DECL in its DECL_INITIAL.
18608
18609 PR middle-end/39443
18610 * optabs.c (set_user_assembler_libfunc): New function.
18611 * expr.h (set_user_assembler_libfunc): New prototype.
18612 * c-common.c: Include libfuncs.h.
18613 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
18614 for memcmp, memset, memcpy, memmove and abort.
18615 * Makefile.in (c-common.o): Depend on libfuncs.h.
18616
18617 PR debug/39412
18618 * dwarf2out.c (gen_inlined_enumeration_type_die,
18619 gen_inlined_structure_type_die, gen_inlined_union_type_die,
18620 gen_tagged_type_instantiation_die): Removed.
18621 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
18622 do nothing.
18623
18624 2009-03-17 Janis Johnson <janis187@us.ibm.com>
18625
18626 PR testsuite/38526
18627 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
18628 its use.
18629 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
18630 (check-parallel-%): Ditto.
18631 (check-consistency): Ditto.
18632
18633 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
18634
18635 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
18636 local variable rhs by NULL_TREE.
18637
18638 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18639
18640 PR target/39477
18641 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
18642
18643 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18644
18645 PR target/39476
18646 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
18647
18648 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18649
18650 PR target/39473
18651 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
18652 for ms->sysv ABI calls only in 64bit mode.
18653
18654 * config/i386/i386.md (untyped_call): Support 32bit.
18655
18656 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
18657
18658 * doc/extend.texi: Replace x86_65 with x86_64.
18659
18660 2009-03-16 Jakub Jelinek <jakub@redhat.com>
18661
18662 PR tree-optimization/39455
18663 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
18664 mismatches for POINTER_TYPE_P (type).
18665 (number_of_iterations_le): Likewise.
18666
18667 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
18668
18669 * config/picochip/picochip.c: Removed profiling support.
18670 * config/picochip/picochip.md: Removed profiling instruction.
18671 * config/picochip/picochip.h: Removed profiling builtin.
18672
18673 2009-03-16 Joseph Myers <joseph@codesourcery.com>
18674
18675 * doc/install.texi (--with-host-libstdcxx): Document.
18676
18677 2009-03-14 Anatoly Sokolov <aesok@post.ru>
18678
18679 PR target/34299
18680 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
18681 generate a warning if the function name does not begin with
18682 "__vector" and the function has either the 'signal' or 'interrupt'
18683 attribute, from here to ...
18684 (avr_declare_function_name): ...here. New function.
18685 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
18686 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
18687
18688 2009-03-14 Jakub Jelinek <jakub@redhat.com>
18689
18690 PR bootstrap/39454
18691 * cse.c (fold_rtx): Don't modify original const_arg1 when
18692 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
18693 separate variable instead.
18694 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
18695 from out of range shift counts.
18696 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
18697
18698 2009-03-13 Catherine Moore <clm@codesourcery.com>
18699
18700 * config/i386/x-mingw32 (host-mingw32.o): Replace
18701 diagnostic.h with $(DIAGNOSTIC_H).
18702
18703 2009-03-12 Jakub Jelinek <jakub@redhat.com>
18704
18705 PR target/39431
18706 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
18707 predicate.
18708 * config/i386/sync.md (sync_compare_and_swap<mode>,
18709 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
18710 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
18711 into a register.
18712 (sync_double_compare_and_swapdi_pic,
18713 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
18714 cmpxchg8b_pic_memory_operand instead of just memory_operand.
18715
18716 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18717
18718 PR target/39445
18719 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
18720
18721 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18722
18723 PR target/39327
18724 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
18725 (avx_addsubv4df3): Likewise.
18726 (*avx_addsubv4sf3): Likewise.
18727 (sse3_addsubv4sf3): Likewise.
18728
18729 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18730
18731 PR target/38824
18732 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
18733
18734 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
18735
18736 PR debug/39432
18737 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
18738 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
18739 registers for allocnos created from user-defined variables.
18740
18741 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18742
18743 PR target/39181
18744 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
18745 of non-integer mode as well.
18746
18747 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
18748
18749 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
18750 for functions for which the parameter types are unknown.
18751
18752 2009-03-11 Jakub Jelinek <jakub@redhat.com>
18753
18754 PR target/39137
18755 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
18756 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
18757 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
18758 * config/i386/i386.c (ix86_local_alignment): For
18759 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
18760 long long variables on the stack to avoid dynamic realignment.
18761 Allow the first argument to be a decl rather than type.
18762 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
18763
18764 2009-03-11 Nick Clifton <nickc@redhat.com>
18765
18766 PR target/5362
18767 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
18768 options.
18769 Add description to mno-lsim option.
18770 * config/mcore/mcore.h: Remove comment about deprecated m4align
18771 option.
18772 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
18773 * doc/invoke.texi: Add description of mno-lsim and
18774 mstack-increment options.
18775
18776 * config/fr30/fr30.opt: Document the -mno-lsim option.
18777 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
18778 and -mno-lsim options.
18779
18780 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18781
18782 * fold-const.c (fold_comparison): Only call fold_inf_compare
18783 if the mode supports infinities.
18784
18785 2009-03-11 Jason Merrill <jason@redhat.com>
18786
18787 PR debug/39086
18788 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
18789 end already did. Notice GIMPLE_CALL modifications of the result.
18790 Don't copy debug information from an ignored decl or a decl from
18791 another function.
18792
18793 2009-03-10 Richard Guenther <rguenther@suse.de>
18794 Nathan Froyd <froydnj@codesourcery.com>
18795
18796 PR middle-end/37850
18797 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
18798 (__divMODE3): Likewise.
18799
18800 2009-03-09 Jakub Jelinek <jakub@redhat.com>
18801
18802 PR tree-optimization/39394
18803 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
18804 DECL_SIZE_UNIT of variable length FIELD_DECLs.
18805
18806 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18807
18808 * recog.c (verfiy_changes): Disallow renaming of hard regs in
18809 inline asms for register asm ("") declarations.
18810
18811 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
18812
18813 * fold-const.c (fold_unary): Fix comment.
18814
18815 2009-03-07 Jan Hubicka <jh@suse.cz>
18816
18817 PR target/39361
18818 * tree-inline.c (setup_one_parameter): Do replacement of const
18819 argument by constant in SSA form.
18820
18821 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18822
18823 PR middle-end/38028
18824 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
18825 determine alignment passed to assign_stack_local.
18826 (assign_parms_unsplit_complex): Likewise.
18827 * except.c (sjlj_build_landing_pads): Likewise.
18828
18829 2009-03-06 Jakub Jelinek <jakub@redhat.com>
18830
18831 PR middle-end/39360
18832 * tree-flow.h (add_referenced_var): Return bool instead of void.
18833 * tree-dfa.c (add_referenced_var): Return result of
18834 referenced_var_check_and_insert call.
18835 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
18836 of referenced_var_check_and_insert.
18837
18838 PR debug/39372
18839 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
18840 (gen_variable_die): Emit DW_AT_location on abstract static variable's
18841 DIE, don't emit it if abstract origin already has it.
18842 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
18843 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
18844
18845 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18846
18847 * genpreds.c (needs_variable): Fix parentheses at variable name
18848 detection.
18849 (write_tm_constrs_h): Indent generated code.
18850
18851 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18852
18853 * doc/extend.texi (Function Attributes): Add documentation
18854 for isr attributes.
18855
18856 2009-03-06 Jakub Jelinek <jakub@redhat.com>
18857
18858 PR debug/39387
18859 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
18860 take locus from its DECL_SOURCE_LOCATION instead of input_location.
18861
18862 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
18863
18864 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
18865 the loop as bad.
18866
18867 2009-03-05 Jakub Jelinek <jakub@redhat.com>
18868
18869 PR debug/39379
18870 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
18871 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
18872
18873 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
18874
18875 * config/i386/i386.md (R8_REG, R9_REG): New constants.
18876 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
18877 constants instead of magic numbers.
18878 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
18879 (QI_REG_P): Ditto.
18880 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
18881 (x86_64_ms_abi_int_parameter_registers): Ditto.
18882 (x86_64_int_return_registers): Ditto.
18883 (ix86_maybe_switch_abi): Ditto.
18884 (ix86_expand_call): Ditto for clobbered_registers array.
18885 (ix86_hard_regno_mode_ok): Ditto.
18886 (x86_extended_QIreg_mentioned_p): Ditto.
18887
18888 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
18889
18890 PR tree-optimization/39349
18891 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
18892
18893 * combine.c (gen_lowpart_for_combine): Use omode when generating
18894 clobber.
18895
18896 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
18897
18898 PR rtl-optimization/39235
18899 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
18900
18901 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
18902
18903 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
18904
18905 2009-03-04 Richard Guenther <rguenther@suse.de>
18906
18907 PR tree-optimization/39362
18908 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
18909 that occur in abnormal PHIs should be varying.
18910
18911 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
18912
18913 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
18914 Extend comments.
18915 (simple_iv): Take loop as an argument instead of statement.
18916 * tree-scalar-evolution.h (simple_iv): Declaration changed.
18917 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
18918 to simple_iv.
18919 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
18920 Ditto.
18921 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
18922 * matrix-reorg.c (analyze_transpose): Ditto.
18923 * tree-data-ref.c (dr_analyze_innermost): Ditto.
18924 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
18925 * tree-predcom.c (ref_at_iteration): Ditto.
18926 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
18927
18928 2009-03-04 Richard Guenther <rguenther@suse.de>
18929
18930 PR tree-optimization/39358
18931 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
18932 escaped_id and callused_id.
18933 (solve_graph): Likewise.
18934
18935 2009-03-04 Richard Guenther <rguenther@suse.de>
18936
18937 PR tree-optimization/39339
18938 * tree-sra.c (try_instantiate_multiple_fields): Make it
18939 no longer ICE on the above.
18940
18941 2009-03-03 Joseph Myers <joseph@codesourcery.com>
18942
18943 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
18944 that fits within Pmode.
18945
18946 2009-03-03 Steve Ellcey <sje@cup.hp.com>
18947
18948 PR middle-end/10109
18949 * tm.texi (LIBCALL_VALUE): Update description.
18950
18951 2009-03-03 Steve Ellcey <sje@cup.hp.com>
18952
18953 PR middle-end/34443
18954 * doc/extend.texi (section): Update description.
18955
18956 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
18957
18958 PR middle-end/39345
18959 * tree-inline.c (remapped_type): New.
18960 (can_be_nonlocal): Call remapped_type instead of remap_type.
18961
18962 2009-03-03 Jakub Jelinek <jakub@redhat.com>
18963
18964 PR fortran/39354
18965 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
18966 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
18967
18968 2009-03-03 Richard Guenther <rguenther@suse.de>
18969
18970 PR middle-end/39272
18971 * tree.c (tree_nonartificial_location): New function.
18972 * tree.h (tree_nonartificial_location): Declare.
18973 * builtins.c (expand_builtin_memory_chk): Provide location
18974 of the call location for artificial function pieces.
18975 (maybe_emit_chk_warning): Likewise.
18976 (maybe_emit_sprintf_chk_warning): Likewise.
18977 (maybe_emit_free_warning): Likewise.
18978 * expr.c (expand_expr_real_1): Likewise.
18979
18980 2009-03-03 Jakub Jelinek <jakub@redhat.com>
18981
18982 PR tree-optimization/39343
18983 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
18984 COMPONENT_REF t has ARRAY_TYPE.
18985
18986 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
18987
18988 PR middle-end/39335
18989 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
18990 when the type precision of the induction variable should be
18991 larger than the type precision of nit.
18992 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
18993 * graphite.c (graphite_loop_normal_form): Same.
18994 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
18995
18996 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
18997
18998 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
18999 (*call_1_rex64_ms_sysv): Use named constants instead of magic
19000 numbers to describe clobbered registers.
19001 (*call_value_0_rex64_ms_sysv): Ditto.
19002 * config/i386/mmx.md (mmx_emms): Ditto.
19003 (mmx_femms): Ditto.
19004
19005 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
19006
19007 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
19008 of ABI_64.
19009
19010 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19011
19012 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
19013 (spu_section_type_flags): New function.
19014
19015 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
19016
19017 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
19018 reg_class_contents of FLOAT_REGS into a temporary.
19019
19020 2009-03-02 Richard Guenther <rguenther@suse.de>
19021 Ira Rosen <irar@il.ibm.com>
19022
19023 PR tree-optimization/39318
19024 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
19025 information to the vectorized statement.
19026
19027 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
19028
19029 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
19030 variable. Use defined names instead of magic constants for REX SSE
19031 registers.
19032
19033 2009-03-01 Richard Guenther <rguenther@suse.de>
19034
19035 PR tree-optimization/39331
19036 * omp-low.c (lower_send_shared_vars): Do not receive new
19037 values for the reference of DECL_BY_REFERENCE parms or results.
19038
19039 2009-03-01 Jan Hubicka <jh@suse.cz>
19040
19041 PR debug/39267
19042 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
19043 BLOCK_NONLOCALIZED_VAR): New macros.
19044 (tree_block): Add nonlocalized_vars.
19045 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
19046 gen_decl_die): Add origin argument. Allow generation of die with
19047 origin at hand only.
19048 (gen_member_die, gen_type_die_with_usage, force_decl_die,
19049 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
19050 of gen_*.
19051 (gen_block_die): Fix checking for unused blocks.
19052 (process_scope_var): Break out from .... ; work with origins only.
19053 (decls_for_scope) ... here; process nonlocalized list.
19054 (dwarf2out_ignore_block): Look for nonlocalized vars.
19055 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
19056 vars.
19057 (dump_scope_block): Dump them.
19058 * tree-inline.c (remap_decls): Handle nonlocalized vars.
19059 (remap_block): Likewise.
19060 (can_be_nonlocal): New predicate.
19061 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
19062
19063 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19064
19065 * configure: Regenerate.
19066
19067 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19068
19069 * optc-gen.awk: No need to duplicate option flags twice.
19070 Reuse help texts for duplicate options which do not have any.
19071
19072 * gcc.c (display_help): Document --version.
19073
19074 * gcc.c (main): If print_help_list and verbose_flag, ensure
19075 driver output comes before subprocess output.
19076
19077 * optc-gen.awk: Assign all remaining fields to help string,
19078 space-separated, for multi-line help in *.opt.
19079
19080 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
19081 -Wno-pedantic-ms-format is for MinGW targets only.
19082
19083 * doc/options.texi (Option file format): Fix bad indentation,
19084 restoring dropped sentence.
19085
19086 2009-02-28 Jan Hubicka <jh@suse.cz>
19087
19088 * tree-inline.c (tree_function_versioning): Output debug info.
19089
19090 2009-02-28 Jan Hubicka <jh@suse.cz>
19091
19092 PR debug/39267
19093 * tree-inline.c (setup_one_parameter): Do not copy propagate
19094 arguments when not optimizing.
19095
19096 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
19097
19098 PR target/39327
19099 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
19100 (avx_addsubv4df3): Likewise.
19101 (*avx_addsubv4sf3): Likewise.
19102 (sse3_addsubv4sf3): Likewise.
19103 (*avx_addsubv2df3): Likewise.
19104 (sse3_addsubv2df3): Likewise.
19105 (avx_unpckhps256): Correct item selectors.
19106 (avx_unpcklps256): Likewise.
19107 (avx_unpckhpd256): Likewise.
19108 (avx_unpcklpd256): Likewise.
19109
19110 2009-02-28 Jan Hubicka <jh@suse.cz>
19111
19112 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
19113 static vars.
19114 (copy_arguments_for_versioning): If var is declared don't declare it.
19115 (tree_function_versioning): First setup substitutions and then copy
19116 args.
19117
19118 2009-02-27 Jan Hubicka <jh@suse.cz>
19119
19120 PR debug/39267
19121 * cgraph.h (varpool_output_debug_info): Remove.
19122 * cgraphunit.c (varpool_output_debug_info): Remove.
19123 * dwarf2out.c (deferred_locations_struct): New struct
19124 (deferred_locations): New type.
19125 (deferred_locations_list): New static var.
19126 (deffer_location): New function.
19127 (gen_variable_die): Use it.
19128 (decls_for_scope): Output info on local static vars.
19129 (dwarf2out_finish): Process deferred locations.
19130 * varpool.c (varpool_output_debug_info): Remove.
19131
19132 2009-02-27 Jan Hubicka <jh@suse.cz>
19133
19134 PR debug/39267
19135 * tree.h (TREE_PROTECTED): Fix comment.
19136 (BLOCK_HANDLER_BLOCK): Remove.
19137 (struct tree_block): Remove handler_block add body_block.
19138 (inlined_function_outer_scope_p): New.
19139 (is_body_block): Remove.
19140 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
19141 * dwarf2out.c (is_inlined_entry_point): Remove.
19142 (add_high_low_attributes): Use inlined_function_outer_scope_p.
19143 (gen_block_die): Use is_inlined_entry_point check. Remove body block
19144 code.
19145 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
19146 * gimplify.c (gimplify_expr): Gimplify body blocks.
19147 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
19148 block with multiple subblocks.
19149 (dump_scope_block): Prettier output; dump more flags and info.
19150 (dump_scope_blocks): New.
19151 (remove_unused_locals): Use dump_scope_blocks.
19152 * tree-flow.h (dump_scope_blocks): Declare.
19153 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
19154 * stmt.c (is_body_block): Remove.
19155 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
19156 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
19157
19158 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
19159
19160 PR middle-end/39308
19161 * graphite.c (graphite_loop_normal_form): Do not call
19162 number_of_iterations_exit from a gcc_assert.
19163
19164 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19165
19166 * config/s390/s390.c (s390_swap_cmp): Look for conditional
19167 jumps if COND is NULL.
19168 (find_cond_jump): New function.
19169 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
19170 * config/s390/s390.md: Remove z10_cobra attribute value.
19171
19172 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
19173
19174 * config/alpha/alpha.h (alpha_expand_mov): Return false if
19175 force_const_mem returns NULL_RTX.
19176
19177 2009-02-26 Jan Hubicka <jh@suse.cz>
19178
19179 PR debug/39267
19180 * cgraph.h (varpool_output_debug_info): Remove.
19181 * cgraphunit.c (varpool_output_debug_info): Remove.
19182 * dwarf2out.c (deferred_locations_struct): New struct
19183 (deferred_locations): New type.
19184 (deferred_locations_list): New static var.
19185 (deffer_location): New function.
19186 (gen_variable_die): Use it.
19187 (decls_for_scope): Output info on local static vars.
19188 (dwarf2out_finish): Process deferred locations.
19189 * varpool.c (varpool_output_debug_info): Remove.
19190
19191 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
19192
19193 PR rtl-optimization/39241
19194 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
19195 to subreg_offset_representable_p.
19196
19197 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
19198
19199 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
19200 execute function prototype. Get f and nregs from max_reg_num
19201 and get_insns. Remove the first backward pass as it's dead,
19202 guard the forward pass by flag_expensive_optimizations.
19203 (rest_of_handle_regmove): Delete.
19204 (pass_regmove): Replace it with regmove_optimize.
19205
19206 2009-02-25 Martin Jambor <mjambor@suse.cz>
19207
19208 PR tree-optimization/39259
19209 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
19210 calls_alloca function flags.
19211 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
19212 calls are detected.
19213
19214 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
19215
19216 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
19217 flags_set_1_rtx, flags_set_1_set): Delete.
19218 (regmove_optimize): Do not call mark_flags_life_zones.
19219
19220 2009-02-24 Julian Brown <julian@codesourcery.com>
19221
19222 PR target/35965
19223 * config/arm/arm.c (require_pic_register): Only set
19224 cfun->machine->pic_reg once per function.
19225
19226 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
19227
19228 * doc/invoke.texi (Link Options): Document an easier way to pass
19229 options that take arguments to the GNU linker using -Xlinker and -Wl.
19230
19231 2009-02-24 Steve Ellcey <sje@cup.hp.com>
19232
19233 PR target/33785
19234 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
19235
19236 2009-02-24 Richard Guenther <rguenther@suse.de>
19237
19238 PR debug/39285
19239 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
19240
19241 2009-02-24 Richard Guenther <rguenther@suse.de>
19242 Zdenek Dvorak <ook@ucw.cz>
19243
19244 PR tree-optimization/39233
19245 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
19246 from converting them to a generic type.
19247
19248 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
19249
19250 PR tree-optimization/39260
19251 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
19252 contains a condition with a real type.
19253 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
19254
19255 2009-02-23 Jason Merrill <jason@redhat.com>
19256
19257 PR c++/38880
19258 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
19259 narrowing_initializer_constant_valid_p.
19260 (narrowing_initializer_constant_valid_p): Don't return
19261 null_pointer_node for adding a pointer to itself.
19262
19263 2009-02-23 Jan Hubicka <jh@suse.cz>
19264
19265 PR c/12245
19266 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
19267 resizing.
19268
19269 2009-02-23 Jan Hubicka <jh@suse.cz>
19270
19271 PR tree-optimization/37709
19272 * tree.c (block_ultimate_origin): Move here from dwarf2out.
19273 * tree.h (block_ultimate_origin): Declare.
19274 * dwarf2out.c (block_ultimate_origin): Move to tree.c
19275 * tree-ssa-live.c (remove_unused_scope_block_p):
19276 Eliminate blocks containig no instructions nor live variables nor
19277 nested blocks.
19278 (dump_scope_block): New function.
19279 (remove_unused_locals): Enable removal of dead blocks by default;
19280 enable dumping at TDF_DETAILS.
19281
19282 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
19283
19284 * config/i386/i386.c (classify_argument): Don't allow COImode
19285 and OImode.
19286 (function_arg_advance_32): Don't allow OImode.
19287 (function_arg_32): Likewise.
19288 (function_value_32): Likewise.
19289 (return_in_memory_32): Likewise.
19290 (function_arg_64): Remove OImode comment.
19291
19292 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
19293
19294 PR target/39261
19295 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19296 ix86_expand_vector_set for V4DImode in 64bit mode only.
19297 (ix86_expand_vector_init_one_var): Likewise.
19298
19299 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
19300
19301 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
19302
19303 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
19304
19305 PR bootstrap/39257
19306 * loop-iv.c: Revert last change.
19307 * emit-rtl.c: Likewise.
19308
19309 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
19310
19311 PR target/39256
19312 * config/i386/i386.c (type_natural_mode): Remove an extra
19313 space in the warning message.
19314 (function_value_32): Handle 32-byte vector modes.
19315 (return_in_memory_32): Likewise.
19316
19317 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
19318
19319 * loop-iv.c (truncate_value): New function.
19320 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
19321 of lowpart_subreg.
19322 (lowpart_subreg): Move to...
19323 * emit-rtl.c: ...here.
19324
19325 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
19326
19327 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
19328 accidental and undocumented change at revision 140860.
19329
19330 2009-02-21 Joseph Myers <joseph@codesourcery.com>
19331
19332 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
19333 take gimple_seq * arguments.
19334 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
19335 types_compatible_p langhook.
19336
19337 2009-02-20 Mark Mitchell <mark@codesourcery.com>
19338 Joseph Myers <joseph@codesourcery.com>
19339
19340 * config/arm/arm.c (arm_builtin_va_list): New function.
19341 (arm_expand_builtin_va_start): Likewise.
19342 (arm_gimplify_va_arg_expr): Likewise.
19343 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
19344 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
19345 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
19346 (va_list_type): New variable.
19347 (arm_mangle_type): Mangle va_list_type appropriately.
19348
19349 2009-02-20 Jakub Jelinek <jakub@redhat.com>
19350
19351 PR middle-end/39157
19352 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
19353 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
19354 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
19355 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
19356 parameter to 1000 for -O1 by default.
19357 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
19358 parameter.
19359 * loop-invariant.c: Include params.h.
19360 (move_loop_invariants): Don't call move_single_loop_invariants on
19361 very large loops.
19362
19363 2009-02-20 Jaka Mocnik <jaka@xlab.si>
19364
19365 * calls.c (emit_library_call_value_1): Use slot_offset instead of
19366 offset when calculating bounds for indexing stack_usage_map. Fixes
19367 a buffer overflow with certain target setups.
19368
19369 2009-02-20 Jakub Jelinek <jakub@redhat.com>
19370
19371 PR target/39240
19372 * calls.c (expand_call): Clear try_tail_call if caller and callee
19373 disagree in promotion of function return value.
19374
19375 2009-02-19 Jakub Jelinek <jakub@redhat.com>
19376
19377 PR target/39175
19378 * c-common.c (c_determine_visibility): If visibility changed and
19379 DECL_RTL has been already set, call make_decl_rtl to update symbol
19380 flags.
19381
19382 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
19383
19384 PR c++/39188
19385 * varasm.c (assemble_variable): Don't check DECL_NAME when
19386 globalizing a variable.
19387
19388 2009-02-19 Joseph Myers <joseph@codesourcery.com>
19389
19390 PR c/38483
19391 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
19392 expression before any __builtin_trap call.
19393 * c-typeck.c (build_function_call): Convert and check function
19394 arguments before generating a call to a trap. Evaluate the
19395 function arguments before the trap.
19396
19397 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
19398
19399 PR target/39228
19400 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
19401 (UNSPEC_FXAM_MEM): New unspec.
19402 (fxam<mode>2_i387_with_temp): New insn and split pattern.
19403 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
19404 memory using fxam<mode>2_i387_with_temp to remove excess precision.
19405
19406 2009-02-19 Richard Guenther <rguenther@suse.de>
19407
19408 PR tree-optimization/39207
19409 PR tree-optimization/39074
19410 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
19411 storedanything_tree): New.
19412 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
19413 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
19414 (build_succ_graph): Add edges from STOREDANYTHING to all
19415 non-direct nodes.
19416 (init_base_vars): Initialize STOREDANYTHING.
19417 (compute_points_to_sets): Free substitution info after
19418 building the succ graph.
19419 (ipa_pta_execute): Likewise.
19420
19421 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
19422 field.
19423 (do_ds_constraint): Do not add to special var or non-pointer
19424 field solutions.
19425 (type_could_have_pointers): Split out from ...
19426 (could_have_pointers): ... here. For arrays use the element type.
19427 (create_variable_info_for): Initialize may_have_pointers.
19428 (new_var_info): Likewise.
19429 (handle_lhs_call): Make the HEAP variable unknown-sized.
19430 (intra_create_variable_infos): Use a type with pointers for
19431 PARM_NOALIAS, make it unknown-sized.
19432
19433 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
19434
19435 PR target/39224
19436 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
19437
19438 2009-02-18 Jason Merrill <jason@redhat.com>
19439
19440 PR target/39179
19441 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
19442 value if DECL_EXTERNAL.
19443 * tree-sra.c (sra_walk_gimple_assign): Likewise.
19444 * target.h (gcc_target::binds_local_p): Clarify "module".
19445 * tree.h (TREE_PUBLIC): Clarify "module".
19446
19447 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
19448
19449 PR target/38891
19450 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
19451 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
19452
19453 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
19454
19455 PR target/39082
19456 * c.opt (Wabi): Support C and ObjC.
19457 (Wpsabi): New.
19458
19459 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
19460
19461 * config/i386/i386.c (classify_argument): Warn once about the ABI
19462 change when passing union with long double.
19463
19464 * doc/invoke.texi: Update -Wabi for warning psABI changes.
19465
19466 2009-02-18 Joseph Myers <joseph@codesourcery.com>
19467
19468 PR c/35447
19469 * c-parser.c (c_parser_compound_statement): Always enter and leave
19470 a scope.
19471
19472 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19473
19474 PR target/34587
19475 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
19476
19477 2009-02-18 Jakub Jelinek <jakub@redhat.com>
19478
19479 PR tree-optimization/36922
19480 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
19481 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
19482 Likewise.
19483
19484 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
19485
19486 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
19487 to 0 for EABI64.
19488
19489 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
19490
19491 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
19492
19493 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
19494
19495 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
19496 tree sharing.
19497
19498 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
19499 Richard Sandiford <rdsandiford@googlemail.com>
19500
19501 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
19502 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
19503 (loongson_biadd): ...this.
19504
19505 2009-02-17 Richard Guenther <rguenther@suse.de>
19506
19507 PR tree-optimization/39202
19508 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
19509 a var make sure to follow existing collapses.
19510
19511 2009-02-17 Richard Guenther <rguenther@suse.de>
19512
19513 PR middle-end/39214
19514 * langhooks.c (lhd_print_error_function): Check for NULL block.
19515
19516 2009-02-17 Richard Guenther <rguenther@suse.de>
19517
19518 PR tree-optimization/39204
19519 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
19520 of the PHI arg.
19521
19522 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
19523
19524 * config/soft-fp/double.h: Update from glibc CVS.
19525
19526 2009-02-17 Richard Guenther <rguenther@suse.de>
19527
19528 PR tree-optimization/39207
19529 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
19530 strict-aliasing warnings for pointers pointing to NULL.
19531
19532 2009-02-16 Joseph Myers <joseph@codesourcery.com>
19533
19534 PR c/35446
19535 * c-parser.c (c_parser_braced_init): Call pop_init_level when
19536 skipping until next close brace.
19537
19538 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
19539
19540 PR target/37049
19541 * config/i386/i386.c (ix86_expand_push): Set memory alignment
19542 to function argument boundary.
19543
19544 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
19545
19546 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
19547 in the lea_add. Reload eventually constraints it properly.
19548 * config/picochip/constraints.md: Remove the target constraint
19549 "b", since it is not needed anymore.
19550
19551 2009-02-16 Jakub Jelinek <jakub@redhat.com>
19552
19553 * gthr-dce.h: Uglify function parameter and local variable names.
19554 * gthr-gnat.h: Likewise.
19555 * gthr-mipssde.h: Likewise.
19556 * gthr-nks.h: Likewise.
19557 * gthr-posix95.h: Likewise.
19558 * gthr-posix.h: Likewise.
19559 * gthr-rtems.h: Likewise.
19560 * gthr-single.h: Likewise.
19561 * gthr-solaris.h: Likewise.
19562 * gthr-tpf.h: Likewise.
19563 * gthr-vxworks.h: Likewise.
19564 * gthr-win32.h: Likewise.
19565
19566 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
19567
19568 PR target/39196
19569 * config/i386/i386.md: Restrict the new peephole2 to move
19570 between MMX/SSE registers.
19571
19572 2009-02-15 Richard Guenther <rguenther@suse.de>
19573
19574 Revert
19575 2009-02-13 Richard Guenther <rguenther@suse.de>
19576
19577 * configure.ac: Enable LFS.
19578 * configure: Re-generate.
19579 * config.in: Likewise.
19580
19581 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19582
19583 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
19584 spu_srqwbyte, spu_srqwbytebc): Define.
19585 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
19586 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
19587 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
19588 "shrqby_<mode>"): New insn-and-split patterns.
19589 * config/spu/spu.c (expand_builtin_args): Determine and return
19590 number of operands using spu_builtin_description data.
19591 (spu_expand_builtin_1): Use it.
19592
19593 2009-02-13 Steve Ellcey <sje@cup.hp.com>
19594
19595 PR target/38056
19596 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
19597 TARGET_CONST_GP.
19598
19599 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
19600
19601 PR target/39149
19602 * config/i386/i386.c (override_options): Correct warning
19603 messages for -malign-loops, -malign-jumps and -malign-functions.
19604
19605 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
19606
19607 PR target/39152
19608 * config/i386/i386.md: Restrict the new peephole2 to move
19609 between the general purpose registers.
19610
19611 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
19612
19613 PR target/39162
19614 * config/i386/i386.c (type_natural_mode): Add a new argument.
19615 Return the original mode and warn ABI change if vector size is 32byte.
19616 (function_arg_advance): Updated.
19617 (function_arg): Likewise.
19618 (ix86_function_value): Likewise.
19619 (ix86_return_in_memory): Likewise.
19620 (ix86_sol10_return_in_memory): Likewise.
19621 (ix86_gimplify_va_arg): Likewise.
19622 (function_arg_32): Don't warn ABX ABI change here.
19623 (function_arg_64): Likewise.
19624
19625 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
19626
19627 * loop-iv.c (implies_p): In the final case, test that operands 0
19628 of the two comparisons match.
19629
19630 * config/bfin/bfin.c (find_prev_insn_start): New function.
19631 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
19632 (find_next_insn_start): Move.
19633
19634 2009-02-13 Richard Guenther <rguenther@suse.de>
19635
19636 * configure.ac: Enable LFS.
19637 * configure: Re-generate.
19638 * config.in: Likewise.
19639
19640 2009-02-13 Joseph Myers <joseph@codesourcery.com>
19641
19642 PR c/35444
19643 * c-parser.c (c_parser_parms_list_declarator): Discard pending
19644 sizes on syntax error after some arguments have been parsed.
19645
19646 2009-02-12 Jakub Jelinek <jakub@redhat.com>
19647
19648 * doc/invoke.texi (-fira): Remove.
19649
19650 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19651
19652 * caller-save.c: Replace regclass.c with reginfo.c in comments.
19653 * recog.c: Likewise.
19654 * rtl.h: Likewise.
19655
19656 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
19657
19658 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
19659 (umul_ppmm): Likewise.
19660 (count_leading_zeros): Likewise.
19661 (count_trailing_zeros): Likewise.
19662 (UMUL_TIME): Likewise.
19663
19664 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19665
19666 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
19667 soft-fp/t-softfp to tmake_file.
19668
19669 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
19670 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
19671 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
19672 IA64_BUILTIN_INFQ]: New.
19673 (ia64_init_builtins): Initialize __builtin_infq,
19674 __builtin_fabsq and __builtin_copysignq if not HPUX.
19675 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
19676 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
19677
19678 * config/ia64/lib1funcs.asm (__divtf3): Define only if
19679 SHARED is defined.
19680 (__fixtfti): Likewise.
19681 (__fixunstfti): Likewise.
19682 (__floattitf): Likewise.
19683
19684 * config/ia64/libgcc-glibc.ver: New.
19685 * config/ia64/t-fprules-softfp: Likewise.
19686 * config/ia64/sfp-machine.h: Likewise.
19687
19688 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
19689 (LIBGCC2_TF_CEXT): Likewise.
19690 (TF_SIZE): Likewise.
19691 (TARGET_INIT_LIBFUNCS): Likewise.
19692
19693 * config/ia64/t-glibc (SHLINB_MAPFILES):
19694 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
19695
19696 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19697
19698 * config/i386/i386.c (construct_container): Rewrite processing
19699 BLKmode with X86_64_SSE_CLASS.
19700
19701 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
19702
19703 PR target/39152
19704 * config/i386/i386.md: Replace simplify_replace_rtx with
19705 replace_rtx in the new peephole2.
19706
19707 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
19708
19709 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
19710 loop unrolling do not happen at -O2.
19711
19712 2009-02-12 Michael Matz <matz@suse.de>
19713
19714 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
19715
19716 2009-02-12 Jakub Jelinek <jakub@redhat.com>
19717
19718 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
19719 for -g3.
19720
19721 2009-02-12 Ben Elliston <bje@au.ibm.com>
19722
19723 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
19724 patterns when updating the back chain. Missed in the 2009-02-10
19725 change.
19726
19727 2009-02-11 Janis Johnson <janis187@us.ibm.com>
19728
19729 * doc/extend.texi (Decimal Floating Types): Update identifier of
19730 draft TR and list of missing support.
19731
19732 2009-02-11 Jakub Jelinek <jakub@redhat.com>
19733
19734 PR middle-end/39154
19735 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
19736 bit to variable length decl's flags, add it also to its
19737 pointer replacement variable.
19738
19739 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
19740 Jakub Jelinek <jakub@redhat.com>
19741
19742 PR target/39118
19743 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
19744 (memory_blockage): New expander.
19745 (*memory_blockage): New insn pattern.
19746 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
19747 instead of general blockage at the end of function prologue when
19748 frame pointer is used to access red zone area. Do not emit blockage
19749 when profiling, it is emitted in generic code.
19750 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
19751 function epilogue when frame pointer is used to access red zone area.
19752
19753 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
19754
19755 PR target/38824
19756 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
19757 by arithmetic with memory operands.
19758 * config/i386/predicates.md (commutative_operator): New.
19759
19760 2009-02-10 Janis Johnson <janis187@us.ibm.com>
19761
19762 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
19763 bulleted lists.
19764
19765 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
19766
19767 * alias.h (record_alias_subset): Declare.
19768 * alias.c (record_alias_subset): Make global.
19769
19770 2009-02-10 Nick Clifton <nickc@redhat.com>
19771
19772 * tree-parloops.c: Change license to GPLv3.
19773 * ipa-struct-reorg.c: Change license to GPLv3.
19774 * ipa-struct-reorg.h: Change license to GPLv3.
19775
19776 2009-02-10 Steve Ellcey <sje@cup.hp.com>
19777
19778 PR c/39084
19779 * c-decl.c (start_struct): Return NULL on error.
19780
19781 2009-02-10 Jakub Jelinek <jakub@redhat.com>
19782
19783 PR middle-end/39124
19784 * cfgloopmanip.c (remove_path): Call remove_bbs after
19785 cancel_loop_tree, not before it.
19786
19787 PR target/39139
19788 * function.h (struct function): Add has_local_explicit_reg_vars bit.
19789 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
19790 VAR_DECLs were seen.
19791 * tree-ssa-live.c (remove_unused_locals): Recompute
19792 cfun->has_local_explicit_reg_vars.
19793 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
19794 copies or clearings if cfun->has_local_explicit_reg_vars.
19795
19796 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
19797
19798 PR target/39118
19799 * config/i386/i386.c (expand_prologue): Emit blockage at the end
19800 of function prologue when frame pointer is used to access
19801 red zone area.
19802
19803 2009-02-10 Richard Guenther <rguenther@suse.de>
19804
19805 PR middle-end/39127
19806 * gimplify.c (gimple_regimplify_operands): Always look if
19807 we need to create a temporary.
19808
19809 2009-02-10 Richard Guenther <rguenther@suse.de>
19810
19811 PR tree-optimization/39132
19812 * tree-loop-distribution.c (todo): New global var.
19813 (generate_memset_zero): Trigger TODO_rebuild_alias.
19814 (tree_loop_distribution): Return todo.
19815
19816 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
19817
19818 PR target/39119
19819 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
19820 (x86_64_reg_class_name): Removed.
19821 (classify_argument): Return 0 if bytes > 32. Return 0 if the
19822 first one isn't X86_64_SSE_CLASS or any other ones aren't
19823 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
19824 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
19825 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
19826 and 3 X86_64_SSEUP_CLASS.
19827 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
19828 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
19829
19830 2009-02-10 Ben Elliston <bje@au.ibm.com>
19831
19832 * config/rs6000/rs6000.md (allocate_stack): Always use an update
19833 form instruction to update the stack back chain word, even if the
19834 user has disabled the generation of update instructions.
19835 (movdi_<mode>_update_stack): New.
19836 (movsi_update_stack): Likewise.
19837 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
19838 always use an update form instruction to update the stack back
19839 chain word.
19840
19841 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
19842
19843 PR middle-end/38953
19844 * graphite.c (if_region_set_false_region): After moving a region in
19845 the false branch of a condition, remove the empty dummy basic block.
19846 (gloog): Remove wrong fix for PR38953.
19847
19848 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19849
19850 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
19851 generation due to implicit sign extension.
19852
19853 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
19854
19855 PR middle-end/38981
19856 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
19857 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
19858
19859 2009-02-09 Richard Guenther <rguenther@suse.de>
19860
19861 PR middle-end/35202
19862 * convert.c (convert_to_real): Disable (float)fn((double)x)
19863 to fnf(x) conversion if errno differences may occur and
19864 -fmath-errno is set.
19865
19866 2009-02-07 Anatoly Sokolov <aesok@post.ru>
19867
19868 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
19869 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
19870 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
19871
19872 2009-02-06 Joseph Myers <joseph@codesourcery.com>
19873
19874 PR c/35434
19875 * c-common.c (handle_alias_attribute): Disallow attribute for
19876 anything not a FUNCTION_DECL or VAR_DECL.
19877
19878 2009-02-06 Janis Johnson <janis187@us.ibm.com>
19879
19880 PR c/39035
19881 * real.c (do_compare): Special-case compare of zero against
19882 decimal float value.
19883
19884 2009-02-06 Joseph Myers <joseph@codesourcery.com>
19885
19886 PR c/36432
19887 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
19888 as indicating flexible array members unless the field itself is
19889 being declarared as the incomplete array.
19890
19891 2009-02-06 Jan Hubicka <jh@suse.cz>
19892
19893 PR tree-optimization/38844
19894 * ipa-inline.c (try_inline): Stop inlining recursion when edge
19895 is already inlined.
19896
19897 2009-02-06 Richard Guenther <rguenther@suse.de>
19898
19899 PR middle-end/38977
19900 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
19901 fork because we may expand it as __gcov_fork.
19902
19903 2009-02-06 Nick Clifton <nickc@redhat.com>
19904
19905 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
19906
19907 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
19908
19909 PR tree-optimization/35659
19910 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
19911 vn_phi_eq): Shortcut if hashcode does not match.
19912 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
19913 NULL operands.
19914 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
19915 and avoid iterative_hash_expr.
19916 (FOR_EACH_VALUE_ID_IN_SET): New.
19917 (value_id_compare): Remove.
19918 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
19919 sort expressions by value id.
19920
19921 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
19922
19923 PR target/38991
19924 * config/sh/predicates.md (general_movsrc_operand): Don't check
19925 the subreg of system registers here.
19926
19927 2009-02-05 Jakub Jelinek <jakub@redhat.com>
19928
19929 PR c++/39106
19930 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
19931 on the copied decl.
19932
19933 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
19934
19935 PR rtl-optimization/39110
19936 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
19937 addresses, not aligned ones.
19938
19939 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
19940 Richard Guenther <rguenther@suse.de>
19941
19942 PR tree-optimization/39100
19943 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
19944 comment says and add edges.
19945
19946 2009-02-05 Joseph Myers <joseph@codesourcery.com>
19947
19948 PR c/35435
19949 * c-common.c (handle_tls_model_attribute): Ignore attribute for
19950 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
19951
19952 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
19953
19954 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
19955 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
19956 register_bb_in_sese, new_sese, free_sese): Moved.
19957 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
19958 outermost_loop_in_scop, build_scop_iteration_domain,
19959 expand_scalar_variables_ssa_name, get_vdef_before_scop,
19960 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
19961 Use loop_in_sese_p instead of loop_in_scop_p.
19962 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
19963 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
19964 (scopdet_basic_block_info): Fix bug in scop detection.
19965 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
19966 eq_loop_to_cloog_loop): Remove.
19967 (nb_loops_around_loop_in_scop, nb_loop
19968 ref_nb_loops): Moved here...
19969 * graphite.h (ref_nb_loops): ... from here.
19970 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
19971 (loop_domain_dim, loop_iteration_vector_dim): Remove.
19972 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
19973 * testsuite/gcc.dg/graphite/scop-19.c: New
19974
19975 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
19976 Hans-Peter Nilsson <hp@axis.com>
19977
19978 PR rtl-optimization/37889
19979 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
19980 Move offset handling from PLUS to before the switch. Use new
19981 arguments when considering SYMBOL_REFs too.
19982 (rtx_addr_can_trap_p): Pass dummy offset and size.
19983 (enum may_trap_p_flags): Remove.
19984 (may_trap_p_1): Pass size from MEM_SIZE.
19985
19986 PR rtl-optimization/38921
19987 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
19988 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
19989 * rtlanal.c (may_trap_after_code_motion_p): Delete.
19990 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
19991
19992 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
19993
19994 AVX Programming Reference (January, 2009)
19995 * config/i386/sse.md (*vpclmulqdq): New.
19996
19997 2009-02-04 Jakub Jelinek <jakub@redhat.com>
19998
19999 PR tree-optimization/38977
20000 PR gcov-profile/38292
20001 * calls.c (special_function_p): Disregard __builtin_ prefix.
20002
20003 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
20004
20005 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
20006 non-indexable addresses even before reload.
20007
20008 2009-02-03 Joseph Myers <joseph@codesourcery.com>
20009
20010 PR c/29129
20011 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
20012 as having variable size. Do not give an error for unnamed
20013 parameters with [*] declarators. Give a warning for type names
20014 with [*] declarators and mark them as variable size.
20015 * c-parser.c (c_parser_sizeof_expression): Do not give an error
20016 for sizeof applied to [*] type names.
20017
20018 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
20019
20020 PR C++/36607
20021 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
20022
20023 2009-02-03 Jakub Jelinek <jakub@redhat.com>
20024
20025 * gcc.c (process_command): Update copyright notice dates.
20026 * gcov.c (print_version): Likewise.
20027 * gcov-dump.c (print_version): Likewise.
20028 * mips-tfile.c (main): Likewise.
20029 * mips-tdump.c (main): Likewise.
20030
20031 2009-02-03 Joseph Myers <joseph@codesourcery.com>
20032
20033 PR c/35433
20034 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
20035 for composite type involving a zero-length array type.
20036
20037 2009-02-03 Jakub Jelinek <jakub@redhat.com>
20038
20039 PR target/35318
20040 * function.c (match_asm_constraints_1): Skip over
20041 initial optional % in the constraint.
20042
20043 PR inline-asm/39059
20044 * c-parser.c (c_parser_postfix_expression): If fixed point is not
20045 supported, don't accept FIXED_CSTs.
20046 * c-decl.c (finish_declspecs): Error if fixed point is not supported
20047 and _Sat is used without _Fract/_Accum. Set specs->type to
20048 integer_type_node for cts_fract/cts_accum if fixed point is not
20049 supported.
20050
20051 2009-02-02 Catherine Moore <clm@codesourcery.com>
20052
20053 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
20054
20055 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
20056
20057 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
20058 (ABI_HAS_64BIT_SYMBOLS): Use it.
20059 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
20060
20061 2009-02-02 Paul Brook <paul@codesourcery.com>
20062
20063 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
20064
20065 2009-02-02 Jakub Jelinek <jakub@redhat.com>
20066
20067 PR inline-asm/39058
20068 * recog.h (asm_operand_ok): Add constraints argument.
20069 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
20070 recurse on matching constraint.
20071 (check_asm_operands): Pass constraints as 3rd argument to
20072 asm_operand_ok. Don't look up matching constraint here.
20073 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
20074 to asm_operand_ok.
20075
20076 2009-02-02 Ben Elliston <bje@au.ibm.com>
20077
20078 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
20079 TARGET_NARROW_VOLATILE_BITFIELD macro names.
20080
20081 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20082
20083 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
20084 information. Remove some obsolete information. Reorganize.
20085
20086 * config/pa/fptr.c: Revert license to GPL 2.
20087 * config/pa/milli64.S: Likewise.
20088
20089 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
20090
20091 PR target/38904
20092 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
20093 LIBRARY name in, instead of hard-coding it.
20094 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
20095 extra target make frag to tmake_files according to EH model.
20096 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
20097 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
20098 frags that define makefile variable EH_MODEL appropriately.
20099 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
20100 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
20101 to "-sjlj" according to type of EH configured.
20102 (LIBGCC_SONAME): Concatenate it to shared library base name.
20103 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
20104 to "_sjlj" according to type of EH configured.
20105 (LIBGCC_SONAME): Concatenate it to shared library base name.
20106 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
20107 (SHLIB_LINK): Add missing semicolon to if-else construct.
20108 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
20109 string value of "pe_dll" command-line option.
20110 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
20111 (SHLIB_SONAME): Use it when overriding t-cygming default.
20112 (SHLIB_IMPLIB): Override t-cygming default.
20113 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
20114 string value of "pe_dll" command-line option.
20115
20116 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
20117
20118 PR target/38952
20119 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
20120 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
20121
20122 2009-01-31 Richard Guenther <rguenther@suse.de>
20123
20124 PR tree-optimization/38937
20125 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
20126 computing the transitive closure.
20127
20128 2009-01-30 Richard Guenther <rguenther@suse.de>
20129
20130 PR tree-optimization/39041
20131 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
20132 Propagate variable indices only if the types match for this stmt.
20133
20134 2009-01-30 Jakub Jelinek <jakub@redhat.com>
20135
20136 PR target/39013
20137 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
20138 inline but never defined.
20139
20140 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
20141
20142 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
20143 (*insv_h_di_reg_extimm): New insn.
20144 (*insv_l<mode>_reg_extimm): New insn.
20145
20146 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
20147
20148 * config/picochip/picochip.c (flag_conserve_stack): set
20149 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
20150 fconserve-stack. Reduce call-overhead used by inliner.
20151
20152 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
20153
20154 PR/38157
20155 * common.opt (flag_conserve_stack): Initialised to zero.
20156
20157 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
20158
20159 PR/39002
20160 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
20161 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
20162 method.
20163
20164 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
20165
20166 * ira-color.c (allocno_reload_assign): Update comments.
20167 * regmove.c (regmove_optimize): Likewise.
20168
20169 * ra.h: Removed.
20170
20171 2009-01-29 Robert Millan <rmh@aybabtu.com>
20172
20173 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
20174 * config/i386/kopensolaris-gnu.h: New file. Undefine
20175 `MD_UNWIND_SUPPORT'.
20176 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
20177
20178 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
20179
20180 PR tree-optimization/39007
20181 * tree-loop-distribution.c (generate_builtin): Use
20182 recompute_dominator to compute the immediate dominator of the
20183 basic block just after the loop.
20184
20185 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20186
20187 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
20188 (ASM_OUTPUT_DWARF_PCREL): Define.
20189
20190 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
20191
20192 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
20193 * doc/passes.texi: Remove entries about regclass, local-alloc, and
20194 global. Modify entries about regmove and IRA.
20195
20196 * ra-conflict.c: Remove the file.
20197
20198 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
20199
20200 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
20201 (pass_regclass_init): Rename to pass_reginfo_init.
20202
20203 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
20204
20205 * toplev.h (flag_ira): Remove.
20206
20207 * caller-save.c (setup_save_areas): Remove flag_ira.
20208
20209 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
20210
20211 * global.c: Remove the file.
20212
20213 * opts.c (decode_options): Remove flag_ira.
20214
20215 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
20216
20217 * regmove.c: Modify file description.
20218 (find_use_as_address, try_auto_increment): Define them only if
20219 AUTO_INC_DEC is defined.
20220 (replacement_quality, replace_in_call_usage, fixup_match_1,
20221 stable_and_no_regs_but_for_p): Remove.
20222 (reg_set_in_bb): Make it static.
20223 (regmove_optimize): Remove flag_ira and code which worked for
20224 !flag_ira.
20225
20226 * local-alloc.c: Remove the file.
20227
20228 * common.opt (fira): Remove.
20229
20230 * ira.c: Include except.h.
20231 (eliminable_regset): Move from global.c.
20232 (mark_elimination): Ditto. Remove flag_ira.
20233 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
20234 equiv_mem_modified, validate_equiv_mem_from_store,
20235 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
20236 contains_replace_regs, memref_referenced_p, memref_used_between_p,
20237 no_equiv, recorded_label_ref): Move from local-alloc.c.
20238 (update_equiv_regs): Ditto. Make it static.
20239 (print_insn_chain, print_insn_chains): Move it from global.c.
20240 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
20241 (build_insn_chain): Ditto. Make it static.
20242 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
20243 Rename to init_live_subregs.
20244 (gate_ira): Remove flag_ira.
20245
20246 * regclass.c: Rename reginfo.c. Change file description.
20247 (FORBIDDEN_INC_DEC_CLASSES): Remove.
20248 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
20249 (init_reg_sets_1): Remove code for evaluation of
20250 reg_class_superclasses and losing_caller_save_reg_set.
20251 (init_regs): Remove init_reg_autoinc.
20252 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
20253 ok_for_base_p_nonstrict): Remove.
20254 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
20255 (pass_regclass_init): Rename to pass_reginfo_init. Modify
20256 corresponding entries.
20257 (dump_regclass, record_operand_costs, scan_one_insn,
20258 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
20259 record_address_regs, auto_inc_dec_reg_p): Remove.
20260 (gt-regclass.h): Rename to gt-reginfo.h.
20261
20262 * rtl.h (dump_global_regs, retry_global_alloc,
20263 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
20264
20265 * Makefile.in (RA_H): Remove.
20266 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
20267 Rename regclass.o to reginfo.o.
20268 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
20269 gt-reginfo.h.
20270 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
20271 (GTFILES): Rename regclass.c to reginfo.c.
20272
20273 * passes.c (init_optimization_passes): Remove pass_local_alloc and
20274 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
20275
20276 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
20277 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
20278 Remove flag_ira.
20279 (finish_spills): Ditto. Remove code for !flag_ira.
20280
20281 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
20282
20283 PR middle-end/35854
20284 * doc/invoke.texi (rtl debug options): Complete rewrite.
20285 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
20286 to auto_inc_dec".
20287 * mode-switching.c (pass_mode_switching): Rename pass from
20288 "mode-sw" to "mode_sw".
20289 * except.c (pass_convert_to_eh_ranges): Rename pass from
20290 "eh-ranges" to "eh_ranges".
20291 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
20292 to "subreg1".
20293
20294
20295 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
20296 Alexander Monakov <amonakov@ispras.ru>
20297
20298 PR middle-end/38857
20299 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
20300 register.
20301 (move_exprs_to_boundary): Change return type and pass through
20302 should_move from move_op. Relax assert. Update usage ...
20303 (schedule_expr_on_boundary): ... here. Use should_move instead of
20304 cant_move.
20305 (move_op_orig_expr_found): Indicate that insn was disconnected from
20306 stream.
20307 (code_motion_process_successors): Do not call after_merge_succs
20308 callback if original expression was not found when traversing any of
20309 the branches.
20310 (code_motion_path_driver): Change return type. Update prototype.
20311 (move_op): Update comment. Add a new parameter (should_move). Update
20312 prototype. Set *should_move based on indication provided by
20313 move_op_orig_expr_found.
20314
20315 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
20316
20317 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
20318 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
20319 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
20320 * config/rs6000/rs6000.c (rs6000_override_options): Default
20321 avoid-indexed-addresses on for Power6, off for everything else.
20322 (avoiding_indexed_address_p): New function.
20323 (rs6000_legitimize_address): Use it.
20324 (rs6000_legitimate_address): Likewise.
20325 * config/rs6000/rs6000.md (movXX_updateX): Likewise
20326
20327 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
20328
20329 PR tree-optimization/38997
20330 * tree-loop-distribution.c (generate_memset_zero): Use
20331 POINTER_PLUS_EXPR for a pointer addition.
20332
20333 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
20334
20335 * config/s390/s390.md (bswap<mode>2): New pattern added.
20336
20337 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
20338
20339 * config/s390/s390.md (*tls_load_31): Added type attribute.
20340
20341 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
20342
20343 * config/s390/s390.md: Fix a few comments.
20344
20345 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
20346
20347 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
20348 (*tm<mode>_full): Fixed z10prop attribute.
20349 (*tst<mode>_extimm): Fixed z10prop attribute.
20350 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
20351 (*tstqiCCT_cconly): Fixed z10prop attribute.
20352 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
20353 (*movsi_larl): Fixed z10prop attribute.
20354 (*movsi_zarch): Fixed z10prop attribute.
20355 (*movsi_eas): Fixed z10prop attribute.
20356 (*movhi): Fixed z10prop attribute.
20357 (*movqi): Fixed z10prop attribute.
20358 (*movstrictqi): Fixed z10prop attribute.
20359 (*mov<mode>): Fixed z10prop attribute.
20360 (*movcc): Fixed z10prop attribute.
20361 (*sethighpartdi_64): Fixed z10prop attribute.
20362 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
20363 (*negdi2_sign_cc): Fixed z10prop attribute.
20364 (*negdi2_sign): Fixed z10prop attribute.
20365 (*absdi2_sign_cc): Fixed z10prop attribute.
20366 (*absdi2_sign): Fixed z10prop attribute.
20367 (*negabsdi2_sign_cc): Fixed z10prop attribute.
20368 (*negabsdi2_sign): Fixed z10prop attribute.
20369 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
20370 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
20371 (doloop_si64): Fixed z10prop attribute.
20372 (doloop_si31): Fixed z10prop attribute.
20373 (doloop_long): Fixed z10prop attribute.
20374 (indirect_jump): Fixed z10prop attribute.
20375 (nop): Fixed z10prop attribute.
20376 (main_base_64): Fixed z10prop attribute.
20377 (reload_base_64): Fixed z10prop attribute.
20378
20379 2009-01-28 Jakub Jelinek <jakub@redhat.com>
20380
20381 PR rtl-optimization/38740
20382 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
20383 if !optimize.
20384 * config/mips/mips.c (mips_reorg): Likewise.
20385
20386 2009-01-28 Richard Guenther <rguenther@suse.de>
20387
20388 PR tree-optimization/38926
20389 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
20390 with the correct value id to a value.
20391 (do_regular_insertion): Use the value number of edoubleprime
20392 for the value number of the expr.
20393
20394 Revert
20395 2008-08-21 Richard Guenther <rguenther@suse.de>
20396
20397 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
20398 a PHI ask VN if it is already available.
20399 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
20400 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
20401
20402 2009-01-28 Jakub Jelinek <jakub@redhat.com>
20403
20404 PR middle-end/38934
20405 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
20406 set to varying whenever max has TREE_OVERFLOW set, similarly
20407 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
20408
20409 2009-01-28 Richard Guenther <rguenther@suse.de>
20410
20411 PR middle-end/38908
20412 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
20413 uninitialized aggregate uses in call arguments.
20414
20415 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
20416
20417 PR tree-optimization/38984
20418 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
20419 the nothing_id variable if -fno-delete-null-pointer-checks.
20420
20421 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
20422
20423 PR target/38988
20424 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
20425 (set_got_offset_rex64): Ditto.
20426
20427 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
20428
20429 PR target/38941
20430 * doc/extend.texi: Improve local variable with asm reg.
20431
20432 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
20433
20434 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
20435 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
20436 was not supplied then set warn_packed_bitfield_compat to the
20437 default value of 1.
20438 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
20439 against 1.
20440
20441 2009-01-27 Richard Guenther <rguenther@suse.de>
20442
20443 PR tree-optimization/38503
20444 * cfgexpand.c (expand_gimple_basic_block): Ignore
20445 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
20446 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
20447 variables that cannot have TBAA applied.
20448 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
20449 statements.
20450
20451 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
20452
20453 PR middle-end/38969
20454 * calls.c (initialize_argument_information): Do not wrap complex
20455 arguments in SAVE_EXPR.
20456
20457 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
20458
20459 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
20460 (INSTALL_LIBGCC): Revert typo commit.
20461
20462 2009-01-26 Richard Guenther <rguenther@suse.de>
20463
20464 PR tree-optimization/38745
20465 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
20466 from special handling.
20467
20468 2009-01-26 Richard Guenther <rguenther@suse.de>
20469
20470 PR tree-optimization/38745
20471 * tree-ssa.c (execute_update_addresses_taken): Do not include
20472 variables that cannot possibly be a register in not_reg_needs.
20473 Do not clear TREE_ADDRESSABLE on vars that may not become
20474 registers.
20475 * tree-ssa.c (update_alias_info_1): Include those in the set
20476 of addressable vars.
20477
20478 2009-01-26 Richard Guenther <rguenther@suse.de>
20479
20480 PR middle-end/38851
20481 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
20482 * tree-ssa-dse.c: Include langhooks.h
20483 (execute_simple_dse): Remove stores with zero size.
20484
20485 2009-01-24 Jakub Jelinek <jakub@redhat.com>
20486
20487 PR c/38957
20488 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
20489 as PLUS_EXPR.
20490
20491 2009-01-24 Julian Brown <julian@codesourcery.com>
20492
20493 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
20494 config/arm/linux-atomic.c.
20495 * config/arm/linux-atomic.c: New.
20496
20497 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
20498
20499 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
20500 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
20501 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
20502
20503 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
20504
20505 PR c/38938
20506 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
20507 properly.
20508
20509 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
20510
20511 PR tree-optimization/38953
20512 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
20513 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
20514 (gloog): Split the exit of the scop when the scop exit is a loop exit.
20515 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
20516 changed the CFG.
20517
20518 2009-01-24 Paul Brook <paul@codesourcery.com>
20519
20520 * config/arm/neon.md (neon_type): Move to arm.md.
20521 (neon_mov<VSTRUCT>): Add neon_type attribute.
20522 * config/arm/arm.md (neon_type): Move to here.
20523 (conds): Add "unconditioal" and use as default for NEON insns.
20524
20525 2009-01-24 Ben Elliston <bje@au.ibm.com>
20526
20527 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
20528 void *' warning from -Wc++-compat.
20529 * Makefile.in (dominance.o-warn): Remove.
20530
20531 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
20532
20533 PR tree-optimization/38932
20534 * fold-const.c (fold_unary_ignore_overflow): New.
20535 * tree.h (fold_unary_ignore_overflow): Declare.
20536 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
20537 * tree-ssa-sccvn.c (visit_reference_op_load,
20538 simplify_unary_expression): Likewise.
20539
20540 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
20541
20542 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
20543 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
20544 regardless of their type.
20545 * c-common.c (handle_packed_attribute): Don't ignore packed on
20546 bitfields.
20547 * c.opt (Wpacked-bitfield-compat): New warning option.
20548 * stor-layout.c (place_field): Warn if offset of a field changed.
20549 * doc/extend.texi (packed): Mention the ABI change.
20550 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
20551 (Warning Options): Add it to the list.
20552
20553 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
20554
20555 * c-opts.c (c_common_post_options): Fix a typo in comments.
20556
20557 2009-01-22 Steve Ellcey <sje@cup.hp.com>
20558
20559 PR middle-end/38615
20560 * gimplify.c (gimplify_init_constructor): Fix promotion of const
20561 variables to static.
20562 * doc/invoke.texi (-fmerge-all-constants): Update description.
20563
20564 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
20565
20566 PR target/38931
20567 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
20568 (*movdi_1_rex64): Use type "mmx" for alternative 5.
20569
20570 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
20571
20572 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
20573 a word boundary.
20574 (LOCAL_ALIGNMENT): Similarly.
20575
20576 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
20577 Joseph Myers <joseph@codesourcery.com>
20578
20579 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
20580 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
20581 * config/arm/arm-tune.md: Regenerate.
20582 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
20583 -march=iwmmxt2.
20584
20585 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
20586
20587 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
20588 version number to five.
20589
20590 2009-01-22 Dodji Seketeli <dodji@redhat.com>
20591
20592 PR c++/38930
20593 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
20594 * c-common.c (set_underlying_type): Likewise.
20595 (is_typedef_decl ): Likewise
20596 * tree.h: Likewise
20597 (set_underlying_type): Likewise.
20598 (is_typedef_type): Likewise.
20599
20600 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
20601
20602 PR middle-end/38587
20603 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
20604 crossing setjmps.
20605
20606 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
20607
20608 PR bootstrap/37660
20609 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
20610 (LIBGCC_SPEC): Don't define.
20611 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
20612
20613 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
20614
20615 PR rtl-optimization/38879
20616 * alias.c (base_alias_check): Unaligned access via AND address can
20617 alias all surrounding object types except those with sizes equal
20618 or wider than the size of unaligned access.
20619
20620 2009-01-21 Dodji Seketeli <dodji@redhat.com>
20621
20622 PR c++/26693
20623 * c-decl.c (clone_underlying_type): Move this ...
20624 * c-common.c (set_underlying_type): ... here.
20625 Also, make sure the function properly sets TYPE_STUB_DECL() on
20626 the newly created typedef variant type.
20627 (is_typedef_decl ): New entry point.
20628 * tree.h: Added a new member member_types_needing_access_check to
20629 struct tree_decl_non_common.
20630 (set_underlying_type): New entry point.
20631 (is_typedef_type): Likewise.
20632
20633 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
20634
20635 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
20636 Check whether two instructions have memory references that
20637 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
20638 are helper functions for traversing.
20639 * alias.h (insn_alias_sets_confilict_p): New prototypes.
20640 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
20641 not to draw dependency edge for instructions with non-conflicting
20642 alias sets.
20643
20644 2009-01-20 Joseph Myers <joseph@codesourcery.com>
20645
20646 PR other/38758
20647 * longlong.h: Update copyright years. Use soft-fp license notice.
20648 Sync __clz_tab declaration with glibc.
20649
20650 2009-01-20 Steve Ellcey <sje@cup.hp.com>
20651
20652 PR target/30687
20653 * doc/extend.texi (syscall_linkage): New.
20654 (version_id): Modify.
20655
20656 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
20657 Richard Guenther <rguenther@suse.de>
20658
20659 PR tree-optimization/38747
20660 PR tree-optimization/38748
20661 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
20662 conversion if the base address is an indirect reference and the
20663 aliasing sets could cause issues.
20664
20665 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
20666
20667 * common.opt (fgraphite, fgraphite-identity): Add comment for
20668 explaining why these options are not documented.
20669
20670 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
20671
20672 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
20673 gimple_call_lhs is NULL.
20674
20675 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
20676
20677 PR target/38868
20678 * emit-rtl.c (adjust_address_1): Make sure memref is never
20679 overwritten.
20680
20681 2009-01-20 Ben Elliston <bje@au.ibm.com>
20682
20683 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
20684 const qualifier from arg parameter. Remove unnecessary cast to char *.
20685 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
20686 const qualifier from arg 2.
20687
20688 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
20689
20690 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
20691
20692 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
20693
20694 PR c/38869
20695 * rtl.h (reinit_regs): New prototype.
20696 * regclass.c: Include ira.h.
20697 (reinit_regs): New.
20698 * Makefile.in (regclass.o): Add ira.h.
20699 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
20700
20701 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
20702
20703 PR target/38736
20704 * c-common.c (handle_aligned_attribute): Use
20705 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
20706 default alignment value.
20707
20708 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
20709
20710 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
20711 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
20712
20713 * doc/extend.texi: Update __attribute__ ((aligned)). Document
20714 __BIGGEST_ALIGNMENT__.
20715
20716 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
20717
20718 2009-01-18 Richard Guenther <rguenther@suse.de>
20719
20720 PR tree-optimization/38819
20721 * tree-flow.h (operation_could_trap_helper_p): Declare.
20722 * tree-eh.c (operation_could_trap_helper_p): Export.
20723 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
20724 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
20725 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
20726 are about to insert a possibly trapping instruction and fail
20727 in this case.
20728
20729 2009-01-18 Andreas Schwab <schwab@suse.de>
20730
20731 * doc/install.texi (Configuration): Remove obsolete paragraph
20732 about use of --with-gnu-ld with --with-gnu-as.
20733
20734 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
20735
20736 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
20737 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
20738 Follow spelling conventions.
20739
20740 2009-01-18 Ben Elliston <bje@au.ibm.com>
20741
20742 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
20743 C++ warning about implicit conversion from void * to struct
20744 bitmap_head_def *.
20745 (bitmap_obstack_free): Likewise for bitmap_element *.
20746 * Makefile.in (bitmap.o-warn): Remove.
20747
20748 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
20749
20750 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
20751
20752 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
20753 Tobias Grosser <tobi.grosser@amd.com>
20754
20755 * graphite.c (graphite_trans_scop_block): Do not block single
20756 nested loops.
20757
20758 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
20759
20760 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
20761 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
20762 test with assertion.
20763
20764 2009-01-16 Richard Guenther <rguenther@suse.de>
20765
20766 PR tree-optimization/38835
20767 PR middle-end/36227
20768 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
20769 and INT + PTR -> (INT)(PTR p+ INT) folding.
20770 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
20771
20772 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
20773
20774 PR target/38554
20775 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
20776 the subreg from a lowpart subreg if it is also casting the value.
20777
20778 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
20779 Tobias Grosser <tobi.grosser@amd.com>
20780
20781 * graphite.c (compare_prefix_loops): New.
20782 (build_scop_canonical_schedules): Rewritten.
20783 (graphite_transform_loops): Move build_scop_canonical_schedules
20784 after build_scop_iteration_domain.
20785
20786 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
20787 Tobias Grosser <tobi.grosser@amd.com>
20788
20789 * graphite.c (add_conditions_to_domain): Add the loops to
20790 the dimension of the iteration domain. Do copy the domain
20791 only when it exists.
20792 (build_scop_conditions_1): Do not call add_conditions_to_domain.
20793 (add_conditions_to_constraints): New.
20794 (can_generate_code_stmt, can_generate_code): Removed.
20795 (gloog): Do not call can_generate_code.
20796 (graphite_transform_loops): Call add_conditions_to_constraints
20797 after building the iteration domain.
20798
20799 2009-01-16 Jakub Jelinek <jakub@redhat.com>
20800
20801 PR tree-optimization/38789
20802 * tree-ssa-threadedge.c
20803 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20804 __builtin_constant_p.
20805
20806 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
20807
20808 * dce.c (delete_unmarked_insns): Reversed the order that insns are
20809 examined before deleting them.
20810
20811 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
20812
20813 * function.c (aggregate_value_p): Correctly extract the function
20814 type from CALL_EXPR_FN lookup.
20815
20816 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
20817
20818 * config/picochip/picochip.c (picochip_override_options): Revert
20819 CFI asm flag disable commited previously.
20820
20821 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
20822 Tobias Grosser <tobi.grosser@amd.com>
20823 Jan Sjodin <jan.sjodin@amd.com>
20824
20825 * graphite.c (scan_tree_for_params): On substractions negate
20826 all the coefficients of the term.
20827 (clast_to_gcc_expression_red): New. Handle reduction expressions
20828 of more than two operands.
20829 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
20830 (get_vdef_before_scop): Handle also the case of default definitions.
20831
20832 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
20833
20834 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
20835 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
20836 Also use them when walking CALL_INSN_FUNCTION_USAGE.
20837
20838 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
20839 Joey Ye <joey.ye@intel.com>
20840
20841 PR middle-end/37843
20842 * cfgexpand.c (expand_stack_alignment): Don't update stack
20843 boundary nor check incoming stack boundary here.
20844 (gimple_expand_cfg): Update stack boundary and check incoming
20845 stack boundary here.
20846
20847 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
20848
20849 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
20850
20851 2009-01-14 Jakub Jelinek <jakub@redhat.com>
20852
20853 PR rtl-optimization/38245
20854 * calls.c (expand_call): Add stack arguments to
20855 CALL_INSN_FUNCTION_USAGE even for pure calls (when
20856 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
20857 in regs and partially in memory or BLKmode arguments.
20858 (emit_library_call_value_1): Add stack arguments to
20859 CALL_INSN_FUNCTION_USAGE even for pure calls (when
20860 ACCUMULATE_OUTGOING_ARGS).
20861 * dce.c: Include tm_p.h.
20862 (find_call_stack_args): New function.
20863 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
20864 argument.
20865 (mark_insn): Call find_call_stack_args for CALL_Ps.
20866 (prescan_insns_for_dce): Walk insns backwards in bb rather than
20867 forwards. Allocate and free arg_stores bitmap if needed, pass it
20868 down to deletable_insn_p, don't mark stores set in arg_stores
20869 bitmap, clear the bitmap at the beginning of each bb.
20870 * Makefile.in (dce.o): Depend on $(TM_P_H).
20871
20872 2009-01-14 Michael Meissner <gnu@the-meissners.org>
20873
20874 PR target/22599
20875 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
20876 to make sure the insn is a conditional test (bug 22599). Reformat a
20877 few long lines.
20878
20879 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
20880
20881 PR middle-end/38431
20882 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
20883 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
20884 (gloog): Do not call cleanup_tree_cfg.
20885 (graphite_transform_loops): Call cleanup_tree_cfg after all
20886 scops have been code generated.
20887
20888 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
20889 * doc/gty.texi (Invoking the garbage collector): Added new node
20890 and section documenting ggc_collect.
20891
20892 2009-01-14 Richard Guenther <rguenther@suse.de>
20893
20894 PR tree-optimization/38826
20895 PR middle-end/38477
20896 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
20897 initialization notes only if we actually emitted a warning.
20898 (intra_create_variable_infos): Add constraints for a result decl
20899 that is passed by hidden reference.
20900 (build_pred_graph): Mark all related variables non-direct on
20901 address-taking.
20902
20903 2009-01-14 Nick Clifton <nickc@redhat.com>
20904
20905 * ira-conflicts.c: Include addresses.h for the definition of
20906 base_reg_class.
20907 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
20908 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
20909
20910 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
20911
20912 PR target/38811
20913 * Makefile.in (ira-lives.o): Add except.h.
20914
20915 * ira-lives.c: Include except.h.
20916 (process_bb_node_lives): Process can_throw_internal.
20917
20918 2009-01-13 Jakub Jelinek <jakub@redhat.com>
20919
20920 PR rtl-optimization/38774
20921 * combine.c (simplify_set): When undoing cc_use change, don't do
20922 PUT_CODE on the newly created comparison, but instead put back the
20923 old comparison.
20924
20925 2009-01-13 Joseph Myers <joseph@codesourcery.com>
20926
20927 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
20928 values. Remove duplicate arm8 entry.
20929
20930 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
20931
20932 PR tree-optimization/38786
20933 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
20934 the SSA_NAME case of expand_scalar_variables_expr.
20935 Set the type of an expression to the type of its assign statement.
20936 (expand_scalar_variables_expr): Also gather the scalar computation
20937 used to index the memory access. Do not pass loop_p.
20938 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
20939 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
20940 the gimple_stmt_iterator where it inserts new code.
20941 Do not pass loop_p.
20942 (copy_bb_and_scalar_dependences): Do not pass loop_p.
20943 (translate_clast): Update call to copy_bb_and_scalar_dependences.
20944
20945 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
20946
20947 * graphite.h (debug_value): Removed.
20948 * graphite.c (debug_value): Removed.
20949
20950 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
20951
20952 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
20953 ldrd/strd with two 32-bit instructions.
20954
20955 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
20956
20957 * config/arm/arm.c (struct processors): Pass for speed down into
20958 cost helper functions.
20959 (const_ok_for_op): Handle COMPARE and inequality nodes.
20960 (arm_rtx_costs_1): Rewrite.
20961 (arm_size_rtx_costs): Update prototype.
20962 (arm_rtx_costs): Pass speed down to helper functions.
20963 (arm_slowmul_rtx_costs): Rework cost calculations.
20964 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
20965 (arm_9e_rtx_costs): Likewise.
20966
20967 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
20968
20969 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
20970 relocations of local symbols wider than UNITS_PER_WORD are not valid.
20971 (alpha_legitimize_address): Do not split local symbols wider than
20972 UNITS_PER_WORD into HIGH/LO_SUM parts.
20973
20974 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
20975
20976 PR bootstrap/38580
20977 * gcc.c (process_command): Replace call to execvp with calls
20978 to pex_one and exit.
20979
20980 2009-01-03 Anatoly Sokolov <aesok@post.ru>
20981
20982 PR target/29141
20983 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
20984 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
20985 variant for devices with 3-byte PC.
20986 (__tablejump_elpm__): New.
20987
20988 2009-01-12 Jakub Jelinek <jakub@redhat.com>
20989
20990 PR c/32041
20991 * c-parser.c (c_parser_postfix_expression): Allow `->' in
20992 offsetof member-designator, handle it as `[0].'.
20993
20994 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20995
20996 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
20997 function when not using named sections on targets with named sections
20998 if branch distance is less than 262132.
20999
21000 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
21001
21002 * combine.c (combine_instructions): Recompute
21003 optimize_this_for_speed_p for each BB in the main combine loop.
21004
21005 2009-01-12 Tomas Bily <tbily@suse.cz>
21006
21007 PR middlend/38385
21008 * tree-loop-distribution.c (prop_phis): New function.
21009 (generate_builtin): Call prop_phis.
21010 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
21011
21012 2009-01-12 Jakub Jelinek <jakub@redhat.com>
21013
21014 PR tree-optimization/38807
21015 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
21016 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
21017
21018 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
21019
21020 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
21021 subreg of op0 to the original op0.
21022
21023 2009-01-11 Laurent GUERBY <laurent@guerby.net>
21024
21025 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
21026
21027 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
21028
21029 PR debug/7055
21030 * mips-tfile.c (parse_def): Fix parsing of def strings
21031 starting with digits.
21032
21033 2009-01-10 Jakub Jelinek <jakub@redhat.com>
21034
21035 PR target/38695
21036 * config/arm/arm.c (arm_is_long_call_p): Don't call
21037 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
21038
21039 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
21040
21041 * regrename.c (regrename_optimize): Fix dumping.
21042 (find_oldest_value_reg): Preserve REG_POINTER.
21043 (copy_hardreg_forward_1): Likewise.
21044
21045 2009-01-09 Diego Novillo <dnovillo@google.com>
21046
21047 * gimple.h (struct gimple_statement_base) <uid>: Document
21048 the restrictions on its use.
21049 (gimple_uid): Tidy.
21050 (gimple_set_uid): Tidy.
21051
21052 2009-01-09 Jakub Jelinek <jakub@redhat.com>
21053
21054 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
21055 zero guard even if align_bytes != 0 and count is smaller than
21056 size_needed.
21057
21058 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
21059
21060 PR rtl-optimization/38495
21061 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
21062 (add_range_and_copies_from_move_list): Print all added ranges.
21063 Add ranges to memory optimized destination.
21064
21065 2009-01-09 Jakub Jelinek <jakub@redhat.com>
21066
21067 PR target/38686
21068 PR target/38708
21069 * config/i386/i386.c (override_options): Reject
21070 -mstringop-strategy=rep_8byte with -m32.
21071 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
21072 to 1. Do count comparison against epilogue_size_needed at compile
21073 time even when count_exp was constant forced into register. For
21074 size_needed don't jump to epilogue, instead just avoid aligning
21075 and invoke the body algorithm. If need_zero_guard, add zero guard
21076 even if count is non-zero, but smaller than size_needed + number of
21077 bytes that could be stored for alignment.
21078 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
21079 to 1. If need_zero_guard, add zero guard even if count is non-zero,
21080 but smaller than size_needed + number of bytes that could be stored
21081 for alignment. Compare size_needed with epilogue_size_needed instead
21082 of desired_align - align, don't adjust size_needed, pass
21083 epilogue_size_needed to the epilogue expanders.
21084
21085 PR c/35742
21086 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
21087
21088 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21089
21090 * pa.c (last_address): Change to unsigned.
21091 (update_total_code_bytes): Change argument to unsigned. Don't
21092 check if insn addresses are set.
21093 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
21094 addresses are not set.
21095 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
21096
21097 2009-01-09 Nick Clifton <nickc@redhat.com>
21098
21099 * config/sh/symbian.c: Replace uses of DECL_INLINE with
21100 DECL_DECLARED_INLINE_P.
21101
21102 2009-01-09 Jakub Jelinek <jakub@redhat.com>
21103
21104 PR middle-end/38347
21105 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
21106 GET_MODE (op0) in operand_subword_force calls.
21107
21108 PR middle-end/38771
21109 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
21110 fold_convert arg0 operands to TREE_TYPE (op0) first.
21111
21112 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
21113
21114 * params.def (ira-max-conflict-table-size): Decrease default value
21115 to 1000.
21116
21117 2009-01-08 Jakub Jelinek <jakub@redhat.com>
21118
21119 PR tree-optimization/37031
21120 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
21121 on parameter_set.
21122 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
21123 allocate it using gc instead of heap, use VEC_quick_push instead of
21124 VEC_safe_push.
21125 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
21126 instead of heap, use VEC_quick_push instead of VEC_safe_push.
21127 * tree-data-ref.h (struct access_matrix): Change matrix to gc
21128 allocated vector from heap allocated.
21129 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
21130 * tree-loop-linear.c (linear_transform_loops): Allocate nest
21131 vector only after perfect_loop_nest_depth call.
21132
21133 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
21134 Jan Sjodin <jan.sjodin@amd.com>
21135
21136 PR tree-optimization/38559
21137 * graphite.c (debug_value, copy_constraint,
21138 swap_constraint_variables, scale_constraint_variable, ): New.
21139 (get_lower_bound, get_upper_bound): Removed.
21140 (graphite_trans_bb_strip_mine): Clean up this code that works
21141 only for constant number of iterations. Fully copy upper and
21142 lower bound constraints, not only the constant part of them.
21143 * graphite.h (debug_value): Declared.
21144
21145 2009-01-08 Ira Rosen <irar@il.ibm.com>
21146
21147 PR tree-optimization/37194
21148 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
21149 Don't add the cost of cost model guard in prologue to scalar
21150 outside cost in case of known number of iterations.
21151
21152 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
21153 Alan Modra <amodra@bigpond.net.au>
21154
21155 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
21156 non-word-aligned REG+CONST addressing.
21157
21158 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
21159
21160 PR target/38706
21161 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
21162 free_after_compilation when outputting a thunk.
21163 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
21164 Do not call free_after_compilation here.
21165
21166 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
21167
21168 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
21169 (ix86_valid_target_attribute_inner_p): Ditto.
21170
21171 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
21172
21173 PR tree-optimization/38492
21174 PR tree-optimization/38498
21175 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
21176 * tree-chrec.h (scev_is_linear_expression): Declared.
21177 * graphite.c (graphite_cannot_represent_loop_niter): New.
21178 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
21179 (graphite_loop_normal_form): Use gcc_assert.
21180 (scan_tree_for_params): Use CASE_CONVERT.
21181 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
21182 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
21183 Use gcc_assert. Discard scops that contain unhandled cases.
21184 (build_scop_conditions): Return a boolean status for unhandled cases.
21185 (strip_mine_profitable_p): Print the loop number, not its depth.
21186 (is_interchange_valid): Pass the depth of the loop nest, don't
21187 recompute it wrongly.
21188 (graphite_trans_bb_block): Same.
21189 (graphite_trans_bb_block): Print tentative of loop blocking.
21190 (graphite_trans_scop_block): Do not print that the loop has been
21191 blocked.
21192 (graphite_transform_loops): Do not handle scops that contain condition
21193 scalar phi nodes.
21194
21195 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
21196
21197 AVX Programming Reference (December, 2008)
21198 * config/i386/avxintrin.h (_mm256_stream_si256): New.
21199 (_mm256_stream_pd): Likewise.
21200 (_mm256_stream_ps): Likewise.
21201
21202 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
21203 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
21204 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
21205 (bdesc_special_args): Add __builtin_ia32_movntdq256,
21206 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
21207 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
21208 (ix86_expand_special_args_builtin): Likewise.
21209
21210 * config/i386/sse.md (AVXMODEDI): New.
21211 (avx_movnt<mode>): Likewise.
21212 (avx_movnt<mode>): Likewise.
21213 (<sse>_movnt<mode>): Remove AVX support.
21214 (sse2_movntv2di): Likewise.
21215
21216 2009-01-07 Richard Guenther <rguenther@suse.de>
21217
21218 PR middle-end/38751
21219 * fold-const.c (extract_muldiv): Remove obsolete comment.
21220 (fold_plusminus_mult_expr): Undo MINUS_EXPR
21221 to PLUS_EXPR canonicalization for the canonicalization.
21222
21223 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
21224
21225 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
21226 hosted cross-compilers generating less efficient code.
21227
21228 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21229
21230 * function.h (rtl_data): Add a dbr_scheduled_p field.
21231 * reorg.c (dbr_schedule): Set it.
21232 (gate_handle_delay_slots): Check it.
21233 * config/mips/mips.c (mips_base_delayed_branch): Delete.
21234 (mips_reorg): Check flag_delayed_branch instead of
21235 mips_base_delayed_branch.
21236 (mips_override_options): Don't set mips_base_delayed_branch
21237 or flag_delayed_branch.
21238
21239 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21240
21241 PR rtl-optimization/38426.
21242 * ira.c (ira): Set current_function_is_leaf earlier.
21243
21244 2009-01-06 Jakub Jelinek <jakub@redhat.com>
21245
21246 PR rtl-optimization/38722
21247 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
21248 too early, only set a flag and modify after last possible
21249 undo_all point.
21250
21251 2009-01-06 Janis Johnson <janis187@us.ibm.com>
21252
21253 PR c/34252
21254 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
21255 * real.c (decimal_single_format): Correct values of emin and emax.
21256 (decimal_double_format): Ditto.
21257 (decimal_quad_format): Ditto.
21258 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
21259 computation of DECnn_MIN and DECnn_MAX for corrected values of
21260 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
21261 __DECnn_MIN__, and adjust its computation for the corrected value
21262 of emin.
21263
21264 2009-01-06 Jan Hubicka <jh@suse.cz>
21265
21266 PR target/38744
21267 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
21268
21269 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
21270
21271 * doc/contrib.texi (Contributors): Slightly adjust the end note.
21272 Add Robert Clark to the list of testers.
21273
21274 2009-01-06 Jan Hubicka <jh@suse.cz>
21275 Kai Tietz <kai.tietz@onevision.com>
21276
21277 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
21278 * config/i386/i386.c (ix86_expand_call): Add clobbers.
21279
21280 2009-01-06 Jan Hubicka <jh@suse.cz>
21281 Kai Tietz <kai.tietz@onevision.com>
21282
21283 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
21284 for w64 ABI.
21285 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
21286 (ix86_nsaved_regs): Count only general purpose regs.
21287 (ix86_nsaved_sseregs): New.
21288 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
21289 to 16 for w64; compute padding and size of sse reg save area.
21290 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
21291 general purpose regs.
21292 (ix86_emit_save_sse_regs_using_mov): New.
21293 (ix86_expand_prologue): Save SSE regs if needed.
21294 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
21295 (ix86_emit_restore_sse_regs_using_mov): New.
21296 (ix86_expand_epilogue): Save SSE regs if needed.
21297
21298 2009-01-06 Jan Hubicka <jh@suse.cz>
21299 Kai Tietz <kai.tietz@onevision.com>
21300
21301 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
21302 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
21303 functions when accumulate outgoing args is off.
21304
21305 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
21306
21307 PR bootstrap/38742
21308 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
21309 before using pseudos_have_intersected_live_ranges_p.
21310
21311 * ira-int.h (ira_assert): Always define.
21312
21313 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
21314
21315 AVX Programming Reference (December, 2008)
21316 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
21317 (_mm256_permute2_pd): Likewise.
21318 (_mm_permute2_ps): Likewise.
21319 (_mm256_permute2_ps): Likewise.
21320 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
21321 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
21322
21323 * config/i386/i386.c (ix86_builtins): Remove
21324 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
21325 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
21326 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
21327 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
21328 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
21329 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
21330 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
21331 __builtin_ia32_vpermil2ps256.
21332 (ix86_init_mmx_sse_builtins): Updated.
21333 (ix86_expand_args_builtin): Likewise.
21334
21335 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21336
21337 * pa.c (output_call): Relocate non-jump insns in the delay slot of
21338 long absolute calls when generating PA 2.0 code.
21339
21340 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
21341
21342 PR rtl-optimization/38583
21343 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
21344
21345 * params.def (ira-max-conflict-table-size): New.
21346
21347 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
21348
21349 * ira.h (ira_conflicts_p): New external definition.
21350
21351 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
21352 table. Report this. Return result of building.
21353 (ira_build_conflicts): Use ira_conflicts_p. Check result of
21354 building conflict table.
21355
21356 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
21357 (ira_color): Use ira_conflicts_p.
21358
21359 * global.c: Include ira.h.
21360 (pseudo_for_reload_consideration_p, build_insn_chain): Use
21361 ira_conflicts_p.
21362
21363 * Makefile.in (global.o): Add ira.h.
21364
21365 * ira-build.c (mark_all_loops_for_removal,
21366 propagate_some_info_from_allocno): New.
21367 (remove_unnecessary_allocnos): Call
21368 propagate_some_info_from_allocno.
21369 (remove_low_level_allocnos): New.
21370 (remove_unnecessary_regions): Add parameter. Call
21371 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
21372 parameter to remove_unnecessary_regions.
21373 (ira_build): Remove all regions but root if the conflict table was
21374 not built. Update conflict hard regs for allocnos crossing calls.
21375
21376 * ira.c (ira_conflicts_p): New global.
21377 (ira): Define and use ira_conflicts_p.
21378
21379 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
21380 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
21381 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
21382
21383 2009-01-06 Ben Elliston <bje@au.ibm.com>
21384
21385 * gengtype-lex.l (YY_NO_INPUT): Define.
21386
21387 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
21388
21389 PR c/34911
21390 * c-common.c (handle_vector_size_attribute): Also reject
21391 BOOLEAN_TYPE types.
21392
21393 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
21394
21395 PR tree-optimization/38492
21396 * graphite.c (rename_map_elt, debug_rename_elt,
21397 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
21398 rename_map_elt_info, eq_rename_map_elts,
21399 get_new_name_from_old_name, bb_in_sese_p): Moved around.
21400 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
21401 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
21402 (sese_build_livein_liveouts): New.
21403 (new_sese, free_sese): New.
21404 (new_scop): Call new_sese.
21405 (free_scop): Call free_sese.
21406 (rename_variables_from_edge, rename_phis_end_scop): Removed.
21407 (register_old_new_names): Renamed register_old_and_new_names.
21408 (register_scop_liveout_renames, add_loop_exit_phis,
21409 insert_loop_close_phis, struct igp,
21410 default_liveout_before_guard, add_guard_exit_phis,
21411 insert_guard_phis, copy_renames): New.
21412 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
21413 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
21414 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
21415 (scop_adjust_phis_for_liveouts): New.
21416 (gloog): Call scop_adjust_phis_for_liveouts.
21417
21418 * graphite.h (struct sese): Documented. Added fields liveout,
21419 num_ver and livein.
21420 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
21421 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
21422 (struct scop): Added field liveout_renames.
21423 (SCOP_LIVEOUT_RENAMES): New.
21424
21425 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
21426
21427 PR tree-optimization/38510
21428 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
21429 (translate_clast): Call recompute_all_dominators before
21430 graphite_verify.
21431 (gloog): Call recompute_all_dominators before graphite_verify.
21432
21433 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
21434 Jan Sjodin <jan.sjodin@amd.com>
21435
21436 PR tree-optimization/38500
21437 * graphite.c (create_sese_edges): Call fix_loop_structure after
21438 splitting blocks.
21439
21440 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
21441
21442 * config.gcc: Add m32r*-*-rtems*.
21443 * config/m32r/rtems.h: New file.
21444
21445 2009-01-05 Ben Elliston <bje@au.ibm.com>
21446
21447 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
21448 (.po.pox): Likewise.
21449 (po/gcc.pot): Likewise.
21450
21451 2009-01-04 David S. Miller <davem@davemloft.net>
21452
21453 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
21454 (STARTING_FRAME_OFFSET): Always set to zero.
21455
21456 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
21457
21458 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
21459 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
21460 fixed-point types, and vectors of the same.
21461
21462 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
21463
21464 * config/mips/sync.md (*mb_barrier): Rename to...
21465 (*memory_barrier): ...this.
21466
21467 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
21468
21469 * doc/extend.texi (Function Attributes): Move @cindex after @item
21470 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
21471 and put in alphabetical order. Fix 'target' name and put in order.
21472 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
21473 typos.
21474
21475 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
21476
21477 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
21478 (memory_barrier): Expand as unspec instead of unspec_volatile.
21479 Remove mem:BLK from insn operands. Use Pmode scratch register.
21480 (*memory_barrier): Define as unspec instead of unspec_volatile.
21481 Use (match_dup 0) as input operand.
21482
21483 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
21484 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
21485 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
21486 scratch register. Remove operand 1.
21487 (*stbar): Define as unspec instead of unspec_volatile.
21488 Use (match_dup 0) as input operand, remove (const_int 8).
21489 (*membar): Define as unspec instead of unspec_volatile.
21490 Use (match_dup 0) as input operand, remove input operand 2.
21491
21492 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
21493 (memory_barrier): Expand as unspec instead of unspec_volatile.
21494 Remove mem:BLK from insn operands. Use Pmode scratch register.
21495 (*memory_barrier): Define as unspec instead of unspec_volatile.
21496 Use (match_dup 0) as input operand.
21497
21498 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
21499 Remove mem:BLK from insn operands. Use Pmode scratch register.
21500 Set volatile flag on operand 0.
21501 (*memory_barrier): New insn pattern.
21502
21503 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
21504 insn operands.
21505 (*memory_barrier): Use (match_dup 0) as input operand.
21506
21507 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
21508 Remove mem:BLK from insn operands. Use Pmode scratch register.
21509 Set volatile flag on operand 0.
21510 (*mb_internal): New insn pattern.
21511
21512 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
21513
21514 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
21515
21516 PR middle-end/38586
21517 * function.c (struct temp_slot): Move to the section of the file
21518 that deals with temp slots. Remove field 'address'.
21519 (temp_slot_address_table): New hash table of address -> temp slot.
21520 (struct temp_slot_address_entry): New struct, items for the table.
21521 (temp_slot_address_compute_hash, temp_slot_address_hash,
21522 temp_slot_address_eq, insert_temp_slot_address): Support functions
21523 for the new table.
21524 (find_temp_slot_from_address): Rewrite to use the new hash table.
21525 (remove_unused_temp_slot_addresses): Remove addresses of temp
21526 slots that have been made available.
21527 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
21528 worker function for remove_unused_temp_slot_addresses.
21529 (assign_stack_temp_for_type): Don't clear the temp slot address list.
21530 Add the temp slot address to the address -> temp slot map.
21531 (update_temp_slot_address): Update via insert_temp_slot_address.
21532 (free_temp_slots): Call remove_unused_temp_slot_addresses.
21533 (pop_temp_slots): Likewise.
21534 (init_temp_slots): Allocate the address -> temp slot map, or empty
21535 the map if it is already allocated.
21536 (prepare_function_start): Initialize temp slot processing.
21537
21538 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
21539
21540 PR middle-end/38584
21541 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
21542 Calculate the size of all stack vars assuming no packing of stack
21543 vars will happen, replacing a quadratic algorithm with a linear one.
21544
21545 2009-01-03 Jakub Jelinek <jakub@redhat.com>
21546
21547 PR target/38707
21548 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
21549 can't be used.
21550
21551 2009-01-03 Diego Novillo <dnovillo@google.com>
21552
21553 * doc/contrib.texi: Update contributions.
21554
21555 2009-01-03 Jakub Jelinek <jakub@redhat.com>
21556
21557 PR c++/38705
21558 * builtins.c (fold_builtin_memory_op): Give up if either operand
21559 is volatile. Set srctype or desttype to non-qualified version
21560 of the other type.
21561
21562 PR c/38700
21563 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
21564 and FUNCTION_DECLs.
21565
21566 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
21567
21568 PR rtl-optimization/35805
21569 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
21570 problem if fast dce is able to remove any instructions.
21571 * dce.c (dce_process_block): Fix dump message.
21572
21573 2009-01-02 Mark Mitchell <mark@codesourcery.com>
21574
21575 PR 33649
21576 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
21577
21578 2009-01-02 Jakub Jelinek <jakub@redhat.com>
21579
21580 PR middle-end/38690
21581 * tree-flow.h (op_code_prio, op_prio): New prototypes.
21582 * tree-pretty-print.c (op_code_prio): New function.
21583 (op_prio): No longer static. Use op_code_prio.
21584 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
21585 Use op_prio and op_code_prio to determine if () should be
21586 printed around operand(s) or not.
21587
21588 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
21589 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
21590 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
21591 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
21592 pp_character instead of pp_string for single letter printing.
21593
21594 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
21595
21596 * doc/extend.texi: Fix '#pragma GCC option' typo.
21597
21598 2009-01-02 Richard Guenther <rguenther@suse.de>
21599
21600 * doc/install.texi (--enable-checking): Mention different
21601 default for stage1.
21602 (--enable-stage1-checking): Document.
21603
21604 2009-01-01 Andrew Pinski <pinskia@gmail.com>
21605
21606 PR middle-end/30142
21607 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
21608 case to be an error.
21609
21610 2009-01-02 Ben Elliston <bje@au.ibm.com>
21611
21612 * config/fp-bit.h (pack_d): Constify argument.
21613 * config/fp-bit.c (makenan): Constify return type. Remove casts.
21614 (isnan): Constify argument.
21615 (isinf): Likewise.
21616 (iszero): Likewise.
21617 (pack_d): Likewise.
21618 (_fpadd_parts): Constify return type.
21619 (_fpmul_parts): Likewise.
21620 (_fpdiv_parts): Likewise.
21621
21622 2009-01-01 Jakub Jelinek <jakub@redhat.com>
21623
21624 PR c/36489
21625 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
21626 warn about overwriting initializer with side-effects or
21627 -Woverride-init if !IMPLICIT.
21628 (output_init_element): Likewise. Pass IMPLICIT down to
21629 add_pending_init.
21630 (process_init_element): Add IMPLICIT argument. Pass it down
21631 to output_init_element.
21632 (push_init_element, pop_init_level, set_designator): Adjust
21633 process_init_element callers.
21634 (set_nonincremental_init, set_nonincremental_init_from_string):
21635 Adjust add_pending_init callers.
21636 (output_pending_init_elements): Adjust output_init_element callers.
21637 * c-tree.h (process_init_element): Adjust prototype.
21638 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
21639 process_init_element callers.
21640
21641 \f
21642 Copyright (C) 2009 Free Software Foundation, Inc.
21643
21644 Copying and distribution of this file, with or without modification,
21645 are permitted in any medium without royalty provided the copyright
21646 notice and this notice are preserved.