]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
bitmap.h (bitmap_ior_and_into): New.
[gcc.git] / gcc / ChangeLog
1 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
2
3 * bitmap.h (bitmap_ior_and_into): New.
4 * bitmap.c (bitmap_ior_and_into): New.
5
6 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
7
8 * domwalk.h (struct dom_walk_data): Remove all callbacks except
9 before_dom_children_before_stmts and after_dom_children_after_stmts.
10 Rename the two remaining callbacks to just before_dom_children and
11 after_dom_children. Remove other GIMPLE statement walking bits.
12 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
13 * graphite.c: Do not include domwalk.h.
14 * tree-into-ssa.c (interesting_blocks): New global.
15 (struct mark_def_sites_global_data): Remove it and names_to_rename.
16 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
17 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
18 now that they're not domwalk callbacks.
19 (rewrite_initialize_block): Rename to...
20 (rewrite_enter_block): ... this, place after called functions. Test
21 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
22 (rewrite_finalize_block): Rename to...
23 (rewrite_leave_block): ... this, place after called functions.
24 (rewrite_update_init_block): Rename to...
25 (rewrite_update_enter_block): ... this, place after called functions.
26 Test interesting_blocks, call rewrite_update_stmt and
27 rewrite_update_phi_arguments.
28 (rewrite_update_fini_block): Rename to...
29 (rewrite_leave_block): ... this, place after called functions.
30 (rewrite_blocks): Remove last argument, simplify initialization of
31 walk_data.
32 (mark_def_sites_initialize_block): Rename to...
33 (mark_def_sites_block): ... this, call mark_def_sites.
34 (mark_def_sites_blocks): Remove argument, simplify initialization of
35 walk_data.
36 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
37 (update_ssa): Likewise.
38 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
39 callback.
40 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
41 (dom_opt_initialize_block): Rename to...
42 (dom_opt_enter_block): ... this, place after called functions. Walk
43 statements here, inline propagate_to_outgoing_edges.
44 (dom_opt_finalize_block): Rename to...
45 (dom_opt_leave_block): ... this, place after called functions.
46 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
47 domwalk callback.
48 (dse_enter_block, dse_record_phi): New.
49 (dse_record_phis): Delete.
50 (dse_finalize_block): Rename to...
51 (dse_leave_block): ... this.
52 (tree_ssa_dse): Simplify initialization of walk_data.
53 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
54 Adjust initialization of walk_data.
55 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
56 * tree-ssa-loop-phiopt.c (get_non_trapping):
57 Adjust initialization of walk_data.
58 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
59 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
60 it's not a domwalk callback.
61 (uncprop_initialize_block): Rename to...
62 (dse_enter_block): ... this, call uncprop_into_successor_phis.
63 (dse_finalize_block): Rename to...
64 (dse_leave_block): ... this.
65 (tree_ssa_uncprop): Simplify initialization of walk_data.
66 * Makefile.in: Adjust dependencies.
67
68 2009-06-27 Richard Earnshaw <rearnsha@arm.com>
69
70 * arm.md (casesi): Fix test for Thumb1.
71 (thumb1_casesi_internal_pic): Likewise.
72 (thumb1_casesi_dispatch): Likewise.
73
74 2009-06-26 Daniel Gutson <dgutson@codesourcery.com>
75
76 * config/arm/arm-cores.def: Added core cortex-m0.
77 * config/arm/arm-tune.md: Regenerated.
78 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
79
80 2009-06-26 DJ Delorie <dj@redhat.com>
81
82 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
83
84 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
85 the scheduler doesn't tag jump insns.
86
87 2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
88
89 * c-decl.c (merge_decls): Re-indent.
90
91 2009-06-26 Janis Johnson <janis187@us.ibm.com>
92
93 PR c/39902
94 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
95 Special-case decimal float constants.
96
97 2009-06-26 Richard Henderson <rth@redhat.com>
98
99 * function.h (struct function): Add cannot_be_copied_reason,
100 and cannot_be_copied_set.
101 * tree-inline.c (has_label_address_in_static_1): Rename from
102 inline_forbidden_p_2; don't set inline_forbidden_reason here.
103 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
104 don't set inline_forbidden_reason.
105 (copy_forbidden): New function, split out of inline_forbidden_p.
106 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
107 (inline_forbidden_p): Use copy_forbidden.
108 (tree_versionable_function_p): Likewise.
109 (inlinable_function_p): Merge into tree_inlinable_function_p.
110 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
111 * ipa-cp.c (ipcp_versionable_function_p): New function.
112 (ipcp_cloning_candidate_p): Use it.
113 (ipcp_node_modifiable_p): Likewise.
114
115 2009-06-26 Olatunji Ruwase <tjruwase@google.com>
116
117 * builtins.c (expand_builtin_alloca): Handle builtin alloca
118 that is marked not to be inlined. Remove flag_mudflap use.
119 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
120 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
121
122 2009-06-26 Steve Ellcey <sje@cup.hp.com>
123
124 PR bootstrap/40338
125 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
126 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
127
128 2009-06-26 Kai Tietz <kai.tietz@onevision.com>
129
130 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
131 shared libgcc.
132 (__mingwthr_remove_key_dtor): Likewise.
133
134 2009-06-26 Richard Guenther <rguenther@suse.de>
135
136 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape
137 handling.
138
139 2009-06-26 Steven Bosscher <steven@gcc.gnu.org>
140
141 PR middle-end/40525
142 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
143 try the non-cond_exec path also.
144
145 2009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
146
147 PR target/40468
148 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
149 (output_cbranch): Use new functions.
150 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
151 Likewise.
152
153 2009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
154 Pat Haugen <pthaugen@us.ibm.com>
155 Revital Eres <ERES@il.ibm.com>
156
157 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
158 Change some of the functions called by macros to being called
159 through a pointer, so debug functions can be inserted if
160 -mdebug=addr or -mdebug=cost.
161 (rs6000_preferred_reload_class_ptr): Ditto.
162 (rs6000_secondary_reload_class_ptr): Ditto.
163 (rs6000_secondary_memory_needed_ptr): Ditto.
164 (rs6000_cannot_change_mode_class_ptr): Ditto.
165 (rs6000_secondary_reload_inner): Ditto.
166 (rs6000_legitimize_reload_address): Ditto.
167 (rs6000_legitimize_reload_address_ptr): Ditto.
168 (rs6000_mode_dependent_address): Ditto.
169 (rs6000_mode_dependent_address_ptr): Ditto.
170
171 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
172 function to return true if the mode allows reg + integer
173 addresses.
174 (virtual_stack_registers_memory_p): New function to return true if
175 the address refers to a virtual stack register.
176 (rs6000_legitimate_offset_address_p): Move code to say whether a
177 mode supports reg+int addressing to reg_offset_addressing_ok_p and
178 call it.
179 (rs6000_legitimate_address_p): Add checks for modes that only can
180 do reg+reg addressing. Start adding VSX support.
181 (rs6000_legitimize_reload_address): Ditto.
182 (rs6000_legitimize_address): Ditto.
183 (rs6000_debug_legitimate_address_p): New debug functions for
184 -mdebug=addr and -mdebug=cost.
185 (rs6000_debug_rtx_costs): Ditto.
186 (rs6000_debug_address_costs): Ditto.
187 (rs6000_debug_adjust_cost): Ditto.
188 (rs6000_debug_legitimize_address): Ditto.
189 (rs6000_legitimize_reload_address_ptr): Point to call normal
190 function or debug function. Make functions called via pointer
191 static.
192 (rs6000_mode_dependent_address_ptr): Ditto.
193 (rs6000_secondary_reload_class_ptr): Ditto.
194 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
195 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
196 into a friendlier error.
197 (rs6000_init_builtins): Add initial VSX support.
198 (rs6000_adjust_cost): Fix some spacing issues.
199
200 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
201 (REG_CLASS_NAMES): Ditto.
202 (REG_CLASS_CONTENTS): Ditto.
203 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
204 pointer, to add -mdebug=addr support.
205 (CANNOT_CHANGE_MODE_CLASS): Ditto.
206 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
207 -mdebug=addr support.
208 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
209 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
210 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
211
212 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
213 16-bit values.
214 (bswapsi*): Set attribute types for load/store. Add combiner
215 patterns to eliminate zero extend on 64-bit.
216 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
217 stdbrx if the hardware supports those instructions.
218
219 2009-06-25 Ian Lance Taylor <iant@google.com>
220
221 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
222 (Link Options): Document -static-libstdc++.
223
224 2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
225
226 PR target/38731
227 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
228 DATA_ALIGNMENT instead.
229
230 2009-06-25 Richard Guenther <rguenther@suse.de>
231
232 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
233 indirect references against the callused/escaped solutions.
234 (call_may_clobber_ref_p_1): Likewise.
235
236 2009-06-25 Martin Jambor <mjambor@suse.cz>
237
238 PR tree-optimization/40493
239 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
240 (enum unscalarized_data_handling): New type.
241 (handle_unscalarized_data_in_subtree): Return what has been done.
242 (load_assign_lhs_subreplacements): Handle left flushes differently.
243 (sra_modify_assign): Use unscalarized_data_handling, simplified
244 condition determining whether to remove the statement.
245
246 2009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
247
248 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
249 excerpt - @ should be doubled for texinfo.
250
251 2009-06-24 Ian Lance Taylor <iant@google.com>
252
253 * config/arc/arc.c: Include "df.h".
254 (arc_attribute_table): Make static. Move higher in file.
255 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
256 (output_shift): Initialize n later to avoid warning.
257 * config/arm/arm.c (arm_attribute_table): Make static. Move
258 higher in file.
259 * config/avr/avr.c (avr_attribute_table): Make static. Move
260 higher in file.
261 (reg_class_tab): Change array type from int to enum reg_class.
262 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
263 LABEL_REF.
264 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
265 (lshrhi3_out): Likewise.
266 (class_likely_spilled_p): Change return type to bool.
267 (avr_rtx_costs): Use local code variable with enum type.
268 * config/avr/avr.md (movmemhi): Use add_reg_note.
269 (andhi3, andsi3): Don't use AS2 with "and".
270 (iorhi3, iorsi3): Don't use AS2 with "or".
271 * config/avr/avr-protos.h (class_likely_spilled_p): Update
272 declaration.
273 * config/crx/crx.c: Include "df.h".
274 (crx_attribute_table): Make static.
275 * config/m32r/m32r.c: Include "df.h".
276 (m32r_attribute_table): Make static. Move higher in file.
277 (pop): Use add_reg_note.
278 (block_move_call): Change 0 to LCT_NORMAL in function call.
279 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
280 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
281 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
282 declare, not just when TREE_CODE is defined.
283 * config/m68hc11/m68hc11.c: Include "expr.h".
284 (m68hc11_attribute_table): Make static. Move higher in file.
285 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
286 function call.
287 (m68hc11_register_indirect_p): Likewise.
288 (m68hc11_function_arg_padding): Change return type to enum
289 direction.
290 (emit_move_after_reload): Use add_reg_note.
291 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
292 (m68hc11_split_logical): Likewise.
293 (m68hc11_rtx_costs): Add local code_and outer_code variables with
294 enum type.
295 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
296 to VOIDmode in function call.
297 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
298 tree is defined.
299 (m68hc11_split_logical): Update declaration.
300 (m68hc11_function_arg_padding): Update declaration.
301 * config/mcore/mcore.c (regno_reg_class): Change form array of int
302 to array of enum reg_class.
303 (mcore_attribute_table): Make static. Move higher in file.
304 (mcore_rtx_costs): Add cast to enum type.
305 * config/mcore/mcore.h (regno_reg_class): Update declaration.
306 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
307 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
308 in file.
309 * config/sh/predicates.md (trapping_target_operand): Rename and to
310 and_expr.
311 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
312 higher in file.
313 * config/spu/spu.c (spu_attribute_table): Make static. Move
314 higher in file.
315 * config/v850/v850.c (v850_attribute_table): Make static. Move
316 higher in file.
317 (v850_rtx_costs): Use local code with enum type.
318 (expand_epilogue): Add cast.
319 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
320
321 2009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
322
323 PR target/40515
324 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
325 -m2a-single-only and -m2a-nofpu.
326 * config/sh/sh.opt: Document m2a generates FPU code.
327
328 2009-06-24 Anatoly Sokolov <aesok@post.ru>
329
330 * defaults.h (CAN_ELIMINATE): Provide default.
331 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
332 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
333 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
334 * config/spu/spu.h (CAN_ELIMINATE): Delete.
335 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
336 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
337 * config/cris/cris.h (CAN_ELIMINATE): Delete.
338 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
339 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
340 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
341
342 2009-06-24 DJ Delorie <dj@redhat.com>
343
344 * mep-ext-cop.cpu: Fix copyright notice.
345 * mep-default: Fix copyright notice.
346 * mep-core: Fix copyright notice.
347 * mep: Fix copyright notice.
348 * mep-ivc2: Fix copyright notice.
349 * mep-c5: Fix copyright notice.
350
351 2009-06-24 Denis Chertykov <chertykov@gmail.com>
352
353 * doc/contrib.texi (Contributors):
354
355 2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
356
357 PR middle-end/40501
358 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
359 src and dst operands if necessary.
360
361 2009-06-23 DJ Delorie <dj@redhat.com>
362
363 Add MeP port.
364 * config.gcc: Add mep support.
365 * recog.c: Resurrect validate_replace_rtx_subexp().
366 * recog.h: Likewise.
367 * config/mep/: Add new port:
368 * config/mep/constraints.md: New file.
369 * config/mep/default.h: New file.
370 * config/mep/intrinsics.h: New file.
371 * config/mep/intrinsics.md: New file.
372 * config/mep/ivc2-template.h: New file.
373 * config/mep/mep-c5.cpu: New file.
374 * config/mep/mep-core.cpu: New file.
375 * config/mep/mep-default.cpu: New file.
376 * config/mep/mep-ext-cop.cpu: New file.
377 * config/mep/mep-intrin.h: New file.
378 * config/mep/mep-ivc2.cpu: New file.
379 * config/mep/mep-lib1.asm: New file.
380 * config/mep/mep-lib2.c: New file.
381 * config/mep/mep-pragma.c: New file.
382 * config/mep/mep-protos.h: New file.
383 * config/mep/mep-tramp.c: New file.
384 * config/mep/mep.c: New file.
385 * config/mep/mep.cpu: New file.
386 * config/mep/mep.h: New file.
387 * config/mep/mep.md: New file.
388 * config/mep/mep.opt: New file.
389 * config/mep/predicates.md: New file.
390 * config/mep/t-mep: New file.
391
392 2009-06-23 Ian Lance Taylor <iant@google.com>
393
394 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
395 from loose_warn into c_loose_warn and from strict_warn into
396 c_strict_warn. Set and substitute warn_cxxflags. Check for
397 --enable-build-with-cxx. Set and substitute
398 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
399 * Makefile.in (CXXFLAGS): New variable.
400 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
401 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
402 the default is the same as $(STRICT_WARN).
403 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
404 (CXX): New variable.
405 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
406 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
407 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
408 (HOST_LIBS): New variable.
409 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
410 (ALL_CXXFLAGS): New variable.
411 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
412 * doc/install.texi (Configuration): Document
413 --enable-build-with-cxx, --with-stage1-ldflags,
414 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
415 * configure: Rebuild.
416
417 2009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
418
419 * config/arm/arm.c (arm_override_options): Fix braces and formatting
420 from previous commit.
421
422 2009-06-23 Ian Lance Taylor <iant@google.com>
423
424 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
425
426 2009-06-23 Ian Lance Taylor <iant@google.com>
427
428 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
429 with ATTRIBUTE_UNUSED.
430
431 2009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
432 Pat Haugen <pthaugen@us.ibm.com>
433 Revital Eres <eres@il.ibm.com>
434
435 * config.in (HAVE_AS_POPCNTD): Add default definition.
436 (HAVE_AS_LWSYNC): Ditto.
437
438 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
439 release number.
440 (gcc_cv_as_powerpc_cmpb): Ditto.
441 (gcc_cv_as_powerpc_dfp): Ditto.
442 (gcc_cv_as_powerpc_vsx): Ditto.
443 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
444 supporting the popcntd/lwsync instructions.
445 (gcc_cv_as_powerpc_lwsync): Ditto.
446 * configure: Regenerate.
447
448 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
449 -mcpu=native and -mcpu=power7.
450 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
451
452 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
453 a variable instead of a mask to reduce the number of mask bits.
454 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
455 (-mbit-word): Ditto.
456 (-mregnames): Ditto.
457 * config/rs6000/rs6000.opt (-mupdate): Ditto.
458 (-mfused-madd): Ditto.
459
460 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
461 2.06 instructions.
462 (-mvsx): New switch for VSX instructions.
463 (-misel): Move from a variable to a mask to allow it to be set by
464 -mcpu=.
465
466 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
467 function declaration to an array declaration.
468 (rs6000_hard_regno_nregs): New external array declaration.
469
470 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
471 files included by rs6000.md.
472
473 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
474 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
475
476 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
477 a target mask.
478 (rs6000_debug_reg): New -mdebug= variables.
479 (rs6000_debug_addr): Ditto.
480 (rs6000_debug_cost): Ditto.
481 (rs6000_pmode): New variable to hold Pmode.
482 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
483 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
484 calculated at compiler start.
485 (rs6000_hard_regno_nregs): Change function to an array which holds
486 HARD_REGNO_NREGS calculated at compiler start.
487 (rs6000_explicit_options): Delete isel field.
488 (rs6000_vector_unit): New array to hold which vector unit
489 supports arithmetic options for a given type.
490 (rs6000_vector_mem): New array to hold which vector unit supports
491 memory reference operations for a given type.
492 (rs6000_vector_align): New array to given the alignment of each
493 vector type.
494 (power7_cost): New basic costs for power7.
495 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
496 (rs6000_hard_regno_nregs_internal): New function, moved from
497 HARD_REGNO_NREGS, to calculate the number of registers each hard
498 register takes for each type.
499 (rs6000_debug_reg_print): New function for -mdebug=reg support.
500 (rs6000_debug_vector_unit): New array, map rs6000_vector to
501 string.
502 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
503 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
504 unit information here so it is calculated once at compiler startup
505 time.
506 (rs6000_override_options): Make -misel a target mask. Add more
507 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
508 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
509 -mdebug=cost.
510 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
511 (rs6000_handle_option): Move -misel from variable to target mask.
512 (rs6000_builtin_mask_for_load): Add VSX support.
513 (rs6000_conditional_register_usage): Ditto.
514 (USE_ALTIVEC_FOR_ARG_P): Ditto.
515 (function_arg_boundary): Ditto.
516 (rs6000_expand_builtin): Ditto.
517 (def_builtin): Make abort message a little friendlier.
518 (rs6000_emit_int_cmove): Add support for 64-bit isel.
519
520 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
521 assembler support the popcntd instruction instead of a vsx
522 instruction to enable power7 support.
523 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
524 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
525 option to the assembler if -mcpu=native.
526 (ASM_CPU_NATIVE_SPEC): Ditto.
527 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
528 ISA 2.06 features.
529 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
530 the lwsync instruction.
531 (enum processor_type): Add PROCESSOR_POWER7.
532 (rs6000_debug_reg): New -mdebug= options.
533 (rs6000_debug_addr): Ditto.
534 (rs6000_debug_cost): Ditto.
535 (rs6000_isel): Delete.
536 (enum rs6000_vector): New enum to say what vector unit we have.
537 (VECTOR_UNIT_*): New macros to say which vector unit has
538 arithmetic operations for a given type.
539 (VECTOR_MEM_*): New macros to say which vector unit has memory
540 operations for a given type.
541 (TARGET_LDBRX): Whether the machine supports the ldbrx
542 instruction.
543 (TARGET_ISEL): Delete, -misel moved to be a mask.
544 (TARGET_ISEL64): New macro for 64-bit isel support.
545 (UNITS_PER_VSX_WORD): New macro.
546 (POINTER_SIZE): Move to be an external variable, rather than
547 calculating whether we are generating 32 ot 64-bit code.
548 (Pmode): Ditto.
549 (STACK_BOUNDARY): Add VSX support.
550 (LOCAL_ALIGNMENT): Ditto.
551 (SLOW_UNALIGNED_ACCESS): Ditto.
552 (VSX_REGNO_P): New macro for VSX support.
553 (VFLOAT_REGNO_P): Ditto.
554 (VINT_REGNO_P): Ditto.
555 (VLOGICAL_REGNO_P): Ditto.
556 (VSX_VECTOR_MODE): Ditto.
557 (VSX_SCALAR_MODE): Ditto.
558 (VSX_MODE): Ditto.
559 (VSX_MOVE_MODE): Ditto.
560 (VSX_REG_CLASS_P): Ditto.
561 (HARD_REGNO_NREGS): Instead of calling a function, use an array
562 lookup.
563 (UNITS_PER_SIMD_WORD): Add VSX support.
564 (MODES_TIEABLE_P): Ditto.
565 (STARTING_FRAME_OFFSET): Ditto.
566 (STACK_DYNAMIC_OFFSET): Ditto.
567 (EPILOGUE_USES): Ditto.
568 (REGNO_REG_CLASS): Move to array lookup.
569 (CLASS_MAX_NREGS): Ditto.
570 (rs6000_vector_reg_class): Add declaration.
571 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
572 overlap with the floating point and Altivec registers.
573
574 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
575
576 * config/rs6000/driver-rs6000.c (asm_names): New static array to
577 give the appropriate asm switches if -mcpu=native.
578 (host_detect_local_cpu): Add support for "asm".
579 (host_detect_local_cpu): Follow GNU code guidelines for name.
580
581 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
582 -mbit-word to a variable instead of being a target mask.
583
584 * config/rs6000/sync.md (lwsync): If the assembler supports it,
585 emit the lwsync instruction instead of emitting the instruction as
586 an integer constant.
587
588 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
589 fixuns_trundfsi2, move expander into rs6000.md.
590
591 * config/rs6000/rs6000.md (cpu): Add power7.
592 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
593 (logical predicate patterns): Change the single instruction
594 primitives that set CR0 to be fast_compare instead of compare.
595 (norsi*): Ditto.
596 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
597 (popcntddi2): Ditto.
598 (popcount<mode>): Ditto.
599 (floating multiply/add insns): Name the floating point
600 multiply/add insns.
601 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
602 (isel_unsigned_<mode>): Ditto.
603 (fixuns_trundfsi2): Move expander here from spe.md.
604 (smindi3): Define if we have -misel on 64-bit systems.
605 (smaxdi3): Ditto.
606 (umindi3): Ditto.
607 (umaxdi3): Ditto.
608
609 2009-06-23 Anatoly Sokolov <aesok@post.ru>
610
611 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
612 extra_objs.
613 * config/avr/avr.c (avr_current_device): New variable.
614 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
615 (avr_arch, mcu_type_s): Move to avr.h.
616 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
617 default_data_section_start fields.
618 (avr_arch): Moved from avr.c.
619 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
620 library_name fields.
621 (avr_current_device, avr_mcu_types, avr_arch_types,
622 avr_device_to_arch, avr_device_to_data_start,
623 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
624 (EXTRA_SPEC_FUNCTIONS): Define.
625 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
626 options mapping. Use device_to_arch and device_to_data_start insted.
627 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
628 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
629 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
630 * config/avr/driver-avr.c: New file.
631 * config/avr/avr-devices.c: New file.
632
633 2009-06-23 Jakub Jelinek <jakub@redhat.com>
634
635 * var-tracking.c (unshare_variable): Force initialized to
636 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
637 (set_variable_part): Likewise.
638 (struct variable_union_info): Remove pos_src field.
639 (vui_vec, vui_allocated): New variables.
640 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
641 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
642 == 1 use a simpler sorting algorithm. Compute pos field right
643 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
644 Avoid quadratic comparison if !flag_var_tracking_uninit.
645 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
646 unshare_variable unconditionally.
647 (dataflow_set_different_2): Removed.
648 (dataflow_set_different): Don't traverse second hash table.
649 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
650 unconditionally to var_reg_set or var_mem_set.
651 (emit_notes_in_bb): Likewise.
652 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
653 unshare_variable.
654 (emit_note_insn_var_location): Don't set initialized to
655 VAR_INIT_STATUS_INITIALIZED early.
656 (vt_finalize): Free vui_vec if needed, clear vui_vec and
657 vui_allocated.
658 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
659
660 * tree-object-size.c (addr_object_size): Instead of checking
661 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
662 are no FIELD_DECLs following it.
663
664 2009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
665
666 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
667 order to match bswaps with signed source operands.
668
669 2009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
670
671 * sdbout.c (sdbout_one_type): Fix braces in switch.
672
673 2009-06-23 Richard Guenther <rguenther@suse.de>
674
675 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
676 member.
677 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
678 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
679 var_callused, callused_tree, var_storedanything, storedanything_tree,
680 var_integer, integer_tree): Remove global variables.
681 (new_var_info): Do not pass new id, append the new var to the
682 global variable vector.
683 (do_ds_constraint): Use is_global_var member of the variable-info.
684 (new_scalar_tmp_constraint_exp): Adjust.
685 (create_function_info_for): Likewise.
686 (create_variable_info_for): Likewise.
687 (find_what_var_points_to): Remove dead code.
688 (init_base_vars): Simplify.
689 (compute_points_to_sets): Adjust.
690
691 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
692
693 * combine.c (try_combine): Dump information about the insns we're
694 combining.
695
696 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
697
698 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
699 check when calling force_to_mode on TRUNCATE's operand.
700
701 2009-06-22 Ian Lance Taylor <iant@google.com>
702
703 * config/rs6000/rs6000.opt: Move msched-epilog before
704 msched-prolog.
705
706 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
707
708 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
709
710 2009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
711
712 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
713 override library linkage flags such as -static-libgcc or
714 -shared-libgcc.
715
716 2009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
717
718 * config/m68k/m68k-devices.def: Add line for MCF5221x.
719
720 2009-06-22 Ian Lance Taylor <iant@google.com>
721
722 * config/linux.opt: Put mglibc ahead of muclibc.
723
724 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
725 for duplicate decls.
726
727 2009-06-22 Matthias Klose <doko@ubuntu.com>
728
729 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
730
731 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
732
733 PR objc/28050
734 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
735 instead of NULL if a parser error occurs.
736
737 2009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
738
739 * dwarf2out.c (dwarf2_debug_hooks): Initialize
740 non-DWARF2_DEBUGGING_INFO version.
741
742 2009-06-22 Kai Tietz <kai.tietz@onevision.com>
743
744 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
745 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
746
747 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
748 (LIBGCC2_TF_CEXT): Define.
749 (TF_SIZE): Define.
750
751 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
752
753 PR target/40463
754 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
755
756 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
757
758 * config/arm/arm.c (arm_override_options): Disable
759 -mcaller-super-interworking and -mcallee-super-interworking.
760 * doc/invoke.texi (ARM Options): Document this.
761
762 2009-06-22 Nathan Sidwell <nathan@codesourcery.com>
763
764 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
765 * config/arm/constraints.md (j): New constraint for movw operands.
766 (N): Remove thumb2 meaning.
767 * config/arm/arm.md (*arm_movw): Delete.
768 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
769 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
770 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
771
772 2009-06-22 Martin Jambor <mjambor@suse.cz>
773
774 PR tree-optimization/40492
775 * tree-sra.c (sra_modify_assign): Pass zero offsets to
776 build_ref_for_offset.
777
778 2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
779
780 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
781 JUMP_TABLE_DATA_P predicates where applicable.
782 * auto-inc-dec.c: Ditto.
783 * builtins.c: Ditto.
784 * caller-save.c: Ditto.
785 * calls.c: Ditto.
786 * cfgcleanup.c: Ditto.
787 * cfglayout.c: Ditto.
788 * cfgrtl.c: Ditto.
789 * combine.c: Ditto.
790 * combine-stack-adj.c: Ditto.
791 * cse.c: Ditto.
792 * cselib.c: Ditto.
793 * dbxout.c: Ditto.
794 * df-scan.c: Ditto.
795 * dse.c: Ditto.
796 * dwarf2asm.c: Ditto.
797 * dwarf2out.c: Ditto.
798 * emit-rtl.c: Ditto.
799 * except.c: Ditto.
800 * explow.c: Ditto.
801 * expmed.c: Ditto.
802 * expr.c: Ditto.
803 * final.c: Ditto.
804 * function.c: Ditto.
805 * fwprop.c: Ditto.
806 * gcse.c: Ditto.
807 * genpreds.c: Ditto.
808 * genrecog.c: Ditto.
809 * ifcvt.c: Ditto.
810 * ira-costs.c: Ditto.
811 * ira-lives.c: Ditto.
812 * jump.c: Ditto.
813 * loop-iv.c: Ditto.
814 * lower-subreg.c: Ditto.
815 * modulo-sched.c: Ditto.
816 * optabs.c: Ditto.
817 * postreload.c: Ditto.
818 * print-rtl.c: Ditto.
819 * recog.c: Ditto.
820 * reginfo.c: Ditto.
821 * regmove.c: Ditto.
822 * reload1.c: Ditto.
823 * reload.c: Ditto.
824 * reorg.c: Ditto.
825 * rtlanal.c: Ditto.
826 * rtl.c: Ditto.
827 * sched-vis.c: Ditto.
828 * sdbout.c: Ditto.
829 * sel-sched-ir.c: Ditto.
830 * simplify-rtx.c: Ditto.
831 * targhooks.c: Ditto.
832 * var-tracking.c: Ditto.
833 * vmsdbgout.c: Ditto.
834
835 2009-06-22 Matthias Klose <doko@ubuntu.com>
836
837 * Makefile.in (install-plugin): Always use DESTDIR.
838
839 2009-06-22 Olivier Hainque <hainque@adacore.com>
840
841 * config/pa/pa.c (output_call): Don't optimize post call jumps
842 into return address adjustments if the call may throw.
843
844 2009-06-21 Richard Earnshaw <rearnsha@arm.com>
845
846 * arm.c (thumb1_output_casesi): New function.
847 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
848 optimizing for size or PIC.
849 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
850 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
851 (casesi): Handle Thumb-1 when optimizing for size or PIC.
852 (thumb1_casesi_internal_pic): New expand rule.
853 (thumb1_casesi_dispatch): New pattern.
854 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
855 thumb-1 mode.
856 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
857 in the text seciton when PIC or optimizing for size.
858 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
859 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
860 preservation properties of code.
861 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
862 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
863 (__gnu_thumb1_case_si): New function.
864 * t-arm (LIB1ASMSRC): Define here.
865 (LIB1ASMFUNCS): Add some common functions.
866 * t-arm-elf (LIB1ASMSRC): Delete.
867 (LIB1ASMFUNCS): Append to existing set.
868 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
869 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
870 * t-symbian (LIB1ASMFUNCS): Likewise.
871 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
872 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
873
874 2009-06-21 Richard Guenther <rguenther@suse.de>
875
876 PR tree-optimization/38729
877 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
878 to loops with a single exit if -fno-expensive-optimizations.
879
880 2009-06-21 Jakub Jelinek <jakub@redhat.com>
881
882 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
883 (dataflow_set): Change vars type from htab_t to shared_hash.
884 (shared_hash_pool, empty_shared_hash): New variables.
885 (vars_clear): Removed.
886 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
887 shared_hash_find_slot_unshare, shared_hash_find_slot,
888 shared_hash_find_slot_noinsert, shared_hash_find): New
889 static inlines.
890 (shared_hash_unshare, shared_hash_destroy): New functions.
891 (unshare_variable): Unshare set->vars if shared, use
892 shared_hash_htab.
893 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
894 (get_init_value, find_src_set_src, dump_dataflow_set,
895 clobber_variable_part, emit_notes_for_differences): Use
896 shared_hash_htab.
897 (dataflow_set_init): Remove second argument, set vars to
898 empty_shared_hash instead of creating a new htab.
899 (dataflow_set_clear): Call shared_hash_destroy and set vars
900 to empty_shared_hash instead of calling vars_clear.
901 (dataflow_set_copy): Don't call vars_copy, instead just share
902 the src htab with dst.
903 (variable_union): Use shared_hash_*, use initially NO_INSERT
904 lookup if set->vars is shared. Don't keep slot cleared before
905 calling unshare_variable. Unshare set->vars if needed.
906 Even ->refcount == 1 vars must be unshared if set->vars is shared
907 and var needs to be modified.
908 (variable_canonicalize): New function.
909 (dataflow_set_union): If dst->vars is empty, just share src->vars
910 with dst->vars and traverse with variable_canonicalize to canonicalize
911 and unshare what is needed.
912 (dataflow_set_different): If old_set and new_set use the same shared
913 htab, they aren't different. If number of htab elements is different,
914 htabs are different. Use shared_hash_*.
915 (dataflow_set_destroy): Call shared_hash_destroy instead of
916 htab_delete.
917 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
918 second argument to dataflow_set_init.
919 (vt_initialize): Likewise. Initialize shared_hash_pool and
920 empty_shared_hash, move bb in/out initialization afterwards.
921 Use variable_htab_free instead of NULL as changed_variables del hook.
922 (variable_was_changed): Change type of second argument to pointer to
923 dataflow_set. When inserting var into changed_variables, bump
924 refcount. Unshare set->vars if set is shared htab and slot needs to
925 be cleared.
926 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
927 lookup if set->vars is shared. Unshare set->vars if needed.
928 Even ->refcount == 1 vars must be unshared if set->vars is shared
929 and var needs to be modified. Adjust variable_was_changed caller.
930 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
931 vars must be unshared if set->vars is shared and var needs to be
932 modified. Adjust variable_was_changed caller.
933 (emit_note_insn_var_location): Don't pool_free var.
934 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
935 instead of 1.
936 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
937 free_alloc_pool on shared_hash_pool.
938
939 2009-06-20 Anthony Green <green@moxielogic.com>
940
941 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
942 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
943
944 2009-06-20 Richard Guenther <rguenther@suse.de>
945
946 * tree-ssa-structalias.c (find_func_aliases): For memset use
947 a constraint from NULL if we memset to zero.
948 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
949 we explicitly handle that do not read from memory.
950 (call_may_clobber_ref_p_1): Properly handle builtins that may
951 set errno.
952
953 2009-06-20 Richard Guenther <rguenther@suse.de>
954
955 PR tree-optimization/40495
956 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
957 (new_scalar_tmp_constraint_exp): New function.
958 (process_constraint): Do not create temporary decls.
959 (process_all_all_constraints): Likewise.
960 (handle_const_call): Likewise.
961 (create_function_info_for): Do not set decl.
962
963 2009-06-19 Ian Lance Taylor <iant@google.com>
964
965 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
966 (rs6000_attribute_table): Make static; move before use.
967
968 2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
969
970 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
971 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
972 Propagate the TREE_READONLY flag without overwriting it.
973 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
974 Propagate the TREE_READONLY flag onto the result.
975 (process_call_operands): Move around. Use correct constant value.
976
977 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
978
979 PR target/40482
980 * config/arm/arm.c (thumb_shiftable_const): Truncate val to
981 32 bits.
982 * config/arm/arm.md: Likewise.
983
984 2009-06-19 Ian Lance Taylor <iant@google.com>
985
986 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
987 to GIMPLE_ERROR_MARK.
988
989 * c-typeck.c (build_conditional_expr): Add op1_original_type and
990 op2_original_type parameters. Warn about using different enum
991 types.
992 * c-parser.c (c_parser_conditional_expression): Pass original
993 types to build_conditional_expr.
994 * c-tree.h (build_conditional_expr): Update declaration.
995
996 2009-06-19 Ian Lance Taylor <iant@google.com>
997
998 * config/i386/i386.c (ix86_function_specific_save): Test that
999 fields match values, rather than testing the values are in a
1000 certain range.
1001
1002 2009-06-19 Richard Guenther <rguenther@suse.de>
1003
1004 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1005 ADDR_EXPR pointers.
1006 (ptr_derefs_may_alias_p): Likewise.
1007 (ptr_deref_may_alias_ref_p_1): New function.
1008 (ptr_deref_may_alias_ref_p): Likewise.
1009 (ref_maybe_used_by_call_p_1): Handle builtins that are not
1010 covered by looking at the ESCAPED solution.
1011 (call_may_clobber_ref_p_1): Likewise.
1012 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1013 Handle NULL_TREE offset. Do not produce redundant constraints.
1014 (process_all_all_constraints): New helper function.
1015 (do_structure_copy): Use it.
1016 (handle_lhs_call): Likewise.
1017 (find_func_aliases): Handle some builtins with pointer arguments
1018 and/or return values explicitly.
1019
1020 2009-06-19 Ian Lance Taylor <iant@google.com>
1021
1022 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1023
1024 2009-06-19 Ian Lance Taylor <iant@google.com>
1025
1026 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1027
1028 2009-06-19 Ian Lance Taylor <iant@google.com>
1029
1030 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1031 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1032 version.
1033
1034 * c-decl.c (finish_decl): If -Wc++-compat, warn about
1035 uninitialized const.
1036
1037 2009-06-19 Ian Lance Taylor <iant@google.com>
1038
1039 * dse.c (struct store_info): Rename bitmap field to bmap. Change
1040 all uses.
1041
1042 * c-decl.c (in_struct, struct_types): Remove.
1043 (struct c_binding): Add in_struct field.
1044 (c_binding_ptr): Define type, along with VEC.
1045 (struct c_struct_parse_info): Define.
1046 (struct_parse_info): New static variable.
1047 (bind): Initialize in_struct field.
1048 (start_struct): Remove enclosing_in_struct and
1049 enclosing_struct_types parameters. Add
1050 enclosing_struct_parse_info parameter. Change all callers. Set
1051 struct_parse_info rather than in_struct and struct_types.
1052 (grokfield): If -Wc++-compat and there is a symbol binding for the
1053 field name, set the in_struct flag and push it on the
1054 struct_parse_info->fields vector.
1055 (warn_cxx_compat_finish_struct): New static function.
1056 (finish_struct): Remove enclosing_in_struct and
1057 enclosing_struct_types parameters. Add
1058 enclosing_struct_parse_info parameter. Change all callers. Don't
1059 set C_TYPE_DEFINED_IN_STRUCT here. Call
1060 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
1061 parameter. Only push on struct_types if warn_cxx_compat.
1062 (finish_enum): Only push on struct_types if warn_cxx_compat.
1063 (declspecs_add_type): Add loc parameter. Change all callers.
1064 Change all error calls to error_at. Pass loc, not input_location,
1065 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
1066 defined in a struct. If -Wc++-compat and parsing a struct, record
1067 that a typedef name was used.
1068 * c-parser.c (c_parser_declspecs): Get location to pass to
1069 declspecs_add_type.
1070 (c_parser_struct_or_union_specifier): Update calls to start_struct
1071 and finish_struct.
1072 * c-tree.h (struct c_struct_parse_info): Declare.
1073 (finish_struct, start_struct): Update declarations.
1074 (declspecs_add_type): Update declaration.
1075
1076 2009-06-19 Ian Lance Taylor <iant@google.com>
1077
1078 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1079 variable with an anonymous type.
1080
1081 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
1082
1083 * see.c: Remove for real.
1084
1085 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
1086
1087 * optabs.h (enum optab_index): Add new OTI_significand.
1088 (significand_optab): Define corresponding macro.
1089 * optabs.c (init_optabs): Initialize significand_optab.
1090 * genopinit.c (optabs): Implement significand_optab using
1091 significand?f2 patterns.
1092 * builtins.c (expand_builtin_mathfn): Handle
1093 BUILT_IN_SIGNIFICAND{,F,L}.
1094 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1095 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1096
1097 * config/i386/i386.md (significandxf2, significand<mode>2): New
1098 expanders to implement significandf, significand and significandl
1099 built-ins as inline x87 intrinsics.
1100
1101 2009-06-18 Anatoly Sokolov <aesok@post.ru>
1102
1103 * config/avr/avr.c (avr_override_options): Remove setting value of
1104 PARAM_INLINE_CALL_COST.
1105
1106 2009-06-18 Richard Henderson <rth@redhat.com>
1107
1108 PR 40488
1109 * tree-pass.h (TDF_ASMNAME): New.
1110 * tree-dump.c (dump_options): Add asmname.
1111 * doc/invoke.texi: Document it.
1112
1113 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1114 (dump_decl_name): ...here.
1115 (dump_function_name): New flags arg; mind TDF_ASMNAME.
1116 (dump_generic_node): Update dump_function_name calls.
1117 (print_call_name): New flags arg; update all dump calls.
1118 * diagnostic.h (print_call_name): Update.
1119 * gimple-pretty-print.c (dump_gimple_call): Update.
1120
1121 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
1122
1123 PR target/40470
1124 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1125
1126 2009-06-18 Diego Novillo <dnovillo@google.com>
1127
1128 * doc/plugins.texi: Document plugin_is_GPL_compatible.
1129 * plugin.c (str_license): Declare.
1130 (try_init_one_plugin): Assert that the symbol
1131 'plugin_is_GPL_compatible' exists.
1132
1133 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
1134
1135 * see.c: Remove.
1136 * Makefile.in (OBJS-common): Remove see.o.
1137 (see.o): Remove.
1138 * common.opt (fsee): Mark as preserved for backward compatibility.
1139 * opts.c (common_handle_option): Add OPT_fsee to the backward
1140 compatibility section.
1141 * passes.c (init_optimization_passes, pass_see): Remove pass.
1142 * timevar.def (TV_SEE): Remove.
1143 * tree-pass.h (pass_see): Remove declaration.
1144 * doc/invoke.texi (-fsee): Remove documentation.
1145
1146 2009-06-18 Martin Jambor <mjambor@suse.cz>
1147
1148 * tree-sra.c: Include statistics.h
1149 (sra_stats): New variable.
1150 (sra_initialize): Clear sra_stats.
1151 (create_access_replacement): Increment sra_stats.replacements.
1152 (get_access_replacement): Do not return twice.
1153 (analyze_all_variable_accesses): Increment statistics counter by the
1154 number of scalarized aggregates.
1155 (generate_subtree_copies): Increment sra_stats.subtree_copies.
1156 (sra_modify_expr): Increment sra_stats.exprs.
1157 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1158 (sra_modify_assign): Increment sra_stats.exprs,
1159 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1160 (perform_intra_sra): Update statistics counters.
1161 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1162
1163 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1164
1165 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1166 (arm_scalar_mode_supported_p): New function.
1167
1168 2009-06-18 Paul Brook <paul@codesourcery.com>
1169 Sandra Loosemore <sandra@codesourcery.com>
1170
1171 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1172 (__extendhfsf2, __truncsfhf2): Define.
1173 * config/arm/fp16.c: New file.
1174 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1175 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1176
1177 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
1178
1179 * doc/extend.texi (Half-Precision): New section.
1180 * doc/invoke.texi (Option Summary): List -mfp16-format.
1181 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
1182 * config/arm/arm.opt (mfp16-format=): New.
1183 * config/arm/arm.c: Include intl.h.
1184 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1185 (TARGET_INVALID_RETURN_TYPE): Redefine.
1186 (TARGET_PROMOTED_TYPE): Redefine.
1187 (TARGET_CONVERT_TO_TYPE): Redefine.
1188 (arm_fp16_format): Define.
1189 (all_fpus): Add entry for neon-fp16.
1190 (fp_model_for_fpu): Likewise.
1191 (struct fp16_format): Declare.
1192 (all_fp16_formats): Define.
1193 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1194 functions.
1195 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1196 and no ldrh.
1197 (arm_legitimate_index_p): Treat HFmode like HImode.
1198 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1199 (coproc_secondary_reload_class): Special-case HFmode.
1200 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1201 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1202 (arm_init_fp16_builtins): New.
1203 (arm_init_builtins): Call it.
1204 (arm_invalid_parameter_type): New.
1205 (arm_invalid_return_type): New.
1206 (arm_promoted_type): New.
1207 (arm_convert_to_type).
1208 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
1209 format.
1210 (arm_emit_fp16_const): New function.
1211 (arm_mangle_type): Mangle __fp16 as "Dh".
1212 * config/arm/arm.h (TARGET_VFPD32): Make it know about
1213 FPUTYPE_NEON_FP16.
1214 (TARGET_NEON_FP16): New.
1215 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1216 (enum fputype): Add FPUTYPE_NEON_FP16.
1217 (enum arm_fp16_format_type): Declare.
1218 (arm_fp16_format): Declare.
1219 (LARGEST_EXPONENT_IS_NORMAL): Define.
1220 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1221 * config/arm/arm-modes.def (HFmode): Define.
1222 * config/arm/vfp.md: (*movhf_vfp): New.
1223 (extendhfsf2): New.
1224 (truncsfhf2): New.
1225 * config/arm/arm.md: (fpu): Add neon_fp16.
1226 (floatsihf2, floatdihf2): New.
1227 (fix_trunchfsi2, fix_trunchfdi2): New.
1228 (truncdfhf2): New.
1229 (extendhfdf2): New.
1230 (movhf): New.
1231 (*arm32_movhf): New.
1232 (*thumb1_movhf): New.
1233 (consttable_2): Add check for HFmode constants.
1234 (consttable_4): Handle HFmode constants.
1235
1236 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
1237
1238 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1239
1240 2009-06-17 Olivier Hainque <hainque@adacore.com>
1241
1242 * collect2.c (main): Use CONST_CAST2 to perform char ** to
1243 const char ** conversion in AIX specific section.
1244
1245 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
1246
1247 * config/i386/i386.c (ix86_special_builtin_type): Remove
1248 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
1249 (bdesc_special_args): Updated.
1250 (ix86_init_mmx_sse_builtins): Likewise.
1251 (ix86_expand_special_args_builtin): Likewise.
1252
1253 2009-06-17 Richard Henderson <rth@redhat.com>
1254
1255 * tree-pretty-print.c (maybe_dump_asm_name): New.
1256 (dump_decl_name): Use it.
1257 (PRINT_FUNCTION_NAME): Merge into...
1258 (dump_function_name): ... here. Use maybe_dump_asm_name.
1259
1260 2009-06-17 Cary Coutant <ccoutant@google.com>
1261
1262 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1263 Change caller.
1264 * debug.c (struct gcc_debug_hooks): Change placeholder for
1265 source_line hook.
1266 (debug_nothing_int_charstar_int): Replaced by...
1267 (debug_nothing_int_charstar_int_bool): ...this.
1268 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1269 source_line prototype.
1270 (debug_nothing_int_charstar_int): Replaced by...
1271 (debug_nothing_int_charstar_int_bool): ...this.
1272 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1273 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1274 Output is_stmt operand when necessary.
1275 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1276 (notice_source_line): Add is_stmt parameter.
1277 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1278 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1279 Change callers.
1280 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1281 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1282
1283 2009-06-17 Ian Lance Taylor <iant@google.com>
1284
1285 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1286 Change all uses.
1287 (struct store_by_pieces_d): Rename from store_by_pieces. Change
1288 call uses.
1289
1290 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
1291
1292 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1293 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1294 tree_strip_sign_nop_conversions and
1295 tree_ssa_strip_useless_type_conversions rather than stripping
1296 the operations here.
1297 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1298 Declare them.
1299 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1300 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1301 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1302 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1303 functions.
1304
1305 2009-06-17 Michael Eager <eager@eagercon.com>
1306
1307 * config/rs6000/constraints.md (register_constraint "d"): New.
1308 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1309 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1310 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1311 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1312 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1313 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1314 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1315 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1316 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1317 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1318 __fctiwz): Same.
1319 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1320 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1321 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1322 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1323 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1324 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1325 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1326 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1327 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1328 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1329 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1330 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1331 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1332 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1333
1334 2009-06-16 Ian Lance Taylor <iant@google.com>
1335
1336 * profile.c (total_num_never_executed): Don't define.
1337 (compute_branch_probabilities): Don't count or print
1338 num_never_executed.
1339 (init_branch_prob): Don't set total_num_never_executed.
1340 (end_branch_prob): Don't print total_num_never_executed.
1341
1342 2009-06-17 David Daney <ddaney@caviumnetworks.com>
1343
1344 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1345
1346 2009-06-17 David Edelsohn <edelsohn@gnu.org>
1347
1348 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1349 (nabstd2_fpr): Same.
1350
1351 2009-06-17 Steve Ellcey <sje@cup.hp.com>
1352
1353 * expr.c (expand_assignment): Change complex type check.
1354
1355 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
1356
1357 * doc/plugins.texi (Building GCC plugins): Added new section.
1358
1359 2009-06-17 Ian Lance Taylor <iant@google.com>
1360
1361 * c-pch.c (get_ident): Don't set size of templ array.
1362 (pch_init): Don't set size of partial_pch array.
1363
1364 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1365 string constant to intialize an array whose size is the length of
1366 the string.
1367
1368 2009-06-17 Richard Guenther <rguenther@suse.de>
1369
1370 PR tree-optimization/40389
1371 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1372 to addressable types.
1373 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1374
1375 2009-06-17 Richard Guenther <rguenther@suse.de>
1376
1377 PR middle-end/40460
1378 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1379 if there is no evolution of left in the loop bail out.
1380 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1381 chrec_fold_multiply.
1382
1383 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
1384 Janis Johnson <janis187@us.ibm.com>
1385
1386 PR target/39254
1387 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1388 for the symbol ref of a constant that is the source of a move
1389 - nor for any other not-obvious-label-ref constants.
1390
1391 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
1392
1393 * plugin.c (position_pass): Skip newly inserted pass during list
1394 traversal to avoid repeated insertion.
1395
1396 2009-06-16 Ian Lance Taylor <iant@google.com>
1397
1398 * vec.h (VEC_stack_alloc): Define different version if
1399 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1400 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1401 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1402 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1403
1404 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1405
1406 * config.gcc (extra_headers): Add ia32intrin.h for x86.
1407
1408 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1409 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1410 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1411 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1412 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1413 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1414 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1415 (bdesc_special_args): Add __builtin_ia32_rdtsc and
1416 __builtin_ia32_rdtscp.
1417 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1418 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1419 and __builtin_ia32_rorhi.
1420 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1421 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1422 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1423 (ix86_expand_args_builtin): Likewise.
1424 (ix86_expand_special_args_builtin): Likewise.
1425
1426 * config/i386/i386.md (UNSPECV_RDTSCP): New.
1427 (UNSPECV_RDTSC): Likewise.
1428 (UNSPECV_RDPMC): Likewise.
1429 (*bsr): Renamed to ...
1430 (bsr): This
1431 (*bsr_rex64): Renamed to ...
1432 (bsr_rex64): This.
1433 (rdpmc): New.
1434 (*rdpmc): Likewise.
1435 (*rdpmc_rex64): Likewise.
1436 (rdtsc): Likewise.
1437 (*rdtsc): Likewise.
1438 (*rdtsc_rex64): Likewise.
1439 (rdtscp): Likewise.
1440 (*rdtscp): Likewise.
1441 (*rdtscp_rex64): Likewise.
1442
1443 * config/i386/ia32intrin.h: New.
1444
1445 * config/i386/x86intrin.h: Include <ia32intrin.h>.
1446
1447 2009-06-16 Ian Lance Taylor <iant@google.com>
1448
1449 * ira-build.c (copy_info_to_removed_store_destinations):
1450 Initialize parent_a.
1451
1452 2009-06-16 Ian Lance Taylor <iant@google.com>
1453
1454 * c-decl.c (grokdeclarator): Change size_varies to bool.
1455
1456 2009-06-16 Ian Lance Taylor <iant@google.com>
1457
1458 * sel-sched.c: Make forward declarations of move_op_hooks and
1459 fur_hooks explicitly extern.
1460
1461 2009-06-16 Ian Lance Taylor <iant@google.com>
1462
1463 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1464 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1465
1466 2009-06-16 Ian Lance Taylor <iant@google.com>
1467
1468 * resource.c (mark_referenced_resources): Change
1469 include_delayed_effects parameter to bool. Change all callers.
1470 (mark_end_of_function_resources): Likewise.
1471 * reorg.c (insn_references_resource_p): Likewise.
1472 (insn_sets_resource_p): Likewise.
1473 * resource.h (mark_referenced_resources): Update declaration.
1474 (mark_end_of_function_resources): Update declaration.
1475
1476 2009-06-16 David Edelsohn <edelsohn@gnu.org>
1477
1478 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1479
1480 2009-06-16 David Edelsohn <edelsohn@gnu.org>
1481
1482 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1483 GCC can bootstrap on AIX with GNU Binutils 2.20.
1484
1485 2009-06-16 Ian Lance Taylor <iant@google.com>
1486
1487 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1488
1489 2009-06-16 Ian Lance Taylor <iant@google.com>
1490
1491 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1492 inline, not extern inline.
1493 (exact_log2): Likewise.
1494 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1495 test CLZ_HWI.
1496 (exact_log2): Likewise, but don't test CTZ_HWI.
1497
1498 2009-06-16 Ian Lance Taylor <iant@google.com>
1499
1500 * bitmap.c (bitmap_clear): Don't declare as inline.
1501 * gimple.c (gimplify_assign): Likewise.
1502 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1503 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1504 (sched_scan_info): Remove duplicate definition.
1505
1506 2009-06-16 Ian Lance Taylor <iant@google.com>
1507
1508 * c-common.c (skip_evaluation): Don't define.
1509 (c_inhibit_evaluation_warnings): Define global variable.
1510 (overflow_warning): Check c_inhibit_evaluation_warnings rather
1511 than skip_evaluation.
1512 (convert_and_check, warn_for_div_by_zero): Likewise.
1513 * c-common.h (skip_evaluation): Don't declare.
1514 (c_inhibit_evaluation_warnings): Declare.
1515 * c-parser.c (c_parser_typeof_specifier): Set
1516 c_inhibit_evaluation_warnings rather than skip_evaluation.
1517 (c_parser_conditional_expression): Likewise.
1518 (c_parser_binary_expression): Likewise.
1519 (c_parser_sizeof_expression): Likewise.
1520 (c_parser_alignof_expression): Likewise.
1521 * c-typeck.c (build_indirect_ref): Check
1522 c_inhibit_evaluation_warnings rather than skip_evaluation.
1523 (build_conditional_expr, build_binary_op): Likewise.
1524
1525 2009-06-16 Richard Guenther <rguenther@suse.de>
1526
1527 * tree-ssa-alias.c (is_escape_site): Remove.
1528 * tree-ssa-alias.h (enum escape_type): Remove.
1529 (is_escape_site): Likewise.
1530 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1531 via casts and asms without deferring to is_escape_site.
1532
1533 2009-06-16 Jakub Jelinek <jakub@redhat.com>
1534
1535 PR middle-end/40446
1536 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1537 use gen_lowpart if op0 has complex mode.
1538
1539 2009-06-16 Richard Guenther <rguenther@suse.de>
1540
1541 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1542 variables add them to ESCAPED.
1543 (find_func_aliases): Do not make all indirectly stored values escaped.
1544
1545 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
1546
1547 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1548 make_decl_one_only.
1549
1550 2009-06-16 Martin Jambor <mjambor@suse.cz>
1551
1552 PR tree-optimization/40432
1553 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1554 check whether we need to force gimple register operand.
1555
1556 2009-06-16 Martin Jambor <mjambor@suse.cz>
1557
1558 PR tree-optimization/40413
1559 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1560 build_ref_for_offset.
1561 (propagate_subacesses_accross_link): Fix a typo in a comment.
1562
1563 2009-06-16 Ira Rosen <irar@il.ibm.com>
1564
1565 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1566 with additional parameter.
1567 * tree-vectorizer.h (enum vect_def_type): Add new value
1568 vect_nested_cycle.
1569 (enum vect_relevant): Add comments.
1570 (vect_is_simple_reduction): Add new argument.
1571 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1572 Detect nested cycles.
1573 (vect_is_simple_reduction): Update documentation, add an argument to
1574 distinguish inner-loop reduction from nested cycle, detect nested
1575 cycles, fix printings and indentation, don't swap operands in case
1576 of nested cycle.
1577 (get_initial_def_for_reduction): Handle subtraction.
1578 (vect_create_epilog_for_reduction): Add new argument to specify
1579 reduction variable.
1580 (vect_finalize_reduction): Handle subtraction, fix comments.
1581 (vectorizable_reduction): Handle nested cycles. In case of nested
1582 cycle keep track of the reduction variable position. Call
1583 vect_is_simple_reduction with additional parameter. Use original
1584 statement code in reduction epilogue for nested cycle. Call
1585 vect_create_epilog_for_reduction with additional parameter.
1586 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1587 inner-loop vectorization.
1588 (vect_recog_widen_sum_pattern): Likewise.
1589 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1590 and reductions.
1591 (vect_mark_stmts_to_be_vectorized): Likewise.
1592 (vect_get_vec_def_for_operand): Handle nested cycles.
1593
1594 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1595
1596 * doc/invoke.texi (Debugging Options): Fix option index entries
1597 for -fdump-statistics, -frandom-seed add entries for
1598 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1599 (FRV Options): Fix entries for -mTLS, -mtls.
1600 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1601 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1602 (M68hc1x Options): Fix @itemx for -mnominmax.
1603 (MCore Options): Fix entry for -mno-lsim.
1604 (MMIX Options): Fix entry for -mabi=mmixware.
1605 (PDP-11 Options): Fix entry for -mbcopy-builtin.
1606
1607 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
1608
1609 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1610 Mention the plugin mode of gengtype.
1611 * doc/gty.texi (Source Files Containing Type Information): Likewise.
1612 * gengtype.c: Updated copyright.
1613 (plugin_files, nb_plugin_files) Added new static variables.
1614 (measure_input_list) Care about plugin_files.
1615 (write_rtx_next): Added early return in plugin mode.
1616 (create_file): Updated copyright year in generated file. Added
1617 asserts.
1618 (oprintf): Added early return if NULL outf.
1619 (get_output_file_with_visibility): Care of plugin_files.
1620 (get_output_file_name): May return null.
1621 (write_local): Added early return.
1622 (put_mangled_filename): Ditto.
1623 (finish_root_table): Added check for base_files.
1624 (write_roots): Care about null when plugins.
1625 (main): Added plugin mode.
1626
1627 2009-06-15 Ian Lance Taylor <iant@google.com>
1628
1629 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1630 * gcov.c (read_count_file): Add braces around variables declared
1631 before label.
1632
1633 * c.opt (Wjump-misses-init): New warning.
1634 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1635 -Wall and -Wc++-compat if not already set.
1636 (c_common_post_options): Clear warn_jump_misses_init if it was not
1637 set.
1638 * c-decl.c (struct c_binding): Change type field to a union with
1639 new label field. Make it the first field in the struct. Update
1640 references to type to use u.type instead.
1641 (struct c_spot_bindings): Define.
1642 (struct c_goto_bindings): Define.
1643 (c_goto_bindings_p): Define, along with VECs.
1644 (struct c_label_vars): Define.
1645 (struct c_scope): Add has_label_bindings field.
1646 (bind_label, set_spot_bindings): New static functions.
1647 (decl_jump_unsafe, update_spot_bindings): New static functions.
1648 (update_label_decls): New static function.
1649 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
1650 Update binding u.label field to shadowed field.
1651 (c_binding_start_stmt_expr): New function.
1652 (c_binding_end_stmt_expr): New function.
1653 (pushdecl): Don't call c_begin_vm_scope.
1654 (make_label): Add defining and p_label_vars parameters. Change
1655 all callers.
1656 (lookup_label): Correct test for whether a label has not yet been
1657 defined. Call bind_label rather than bind.
1658 (warn_about_goto): New static function.
1659 (lookup_label_for_goto): New function.
1660 (declare_label): Call bind_label rather than bind.
1661 (check_earlier_gotos): New static function.
1662 (define_label): Don't give errors about jumping into statement
1663 expressions or scopes of variably modified types. Call
1664 set_spot_bindings and check_earlier_gotos. Call bind_label
1665 instead of bind. Don't set label_context_stack_se or
1666 label_context_stack_vm.
1667 (c_get_switch_bindings): New function.
1668 (c_release_switch_bindings): New function.
1669 (c_check_switch_jump_warnings): New function.
1670 (start_function): Don't set label_context_stack_se or
1671 label_context_stack_vm.
1672 (finish_function): Likewise.
1673 * c-typeck.c (label_context_stack_se): Don't define.
1674 (label_context_stack_vm): Don't define.
1675 (c_finish_goto_label): Call lookup_label_for_goto rather than
1676 lookup_label. Don't give errors about jumping into a statement
1677 expression or the scope of a variably modified type. Don't set
1678 label_context_stack_se or label_context_stack_vm.
1679 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1680 fields. Add bindings field.
1681 (c_start_case): Don't set deleted fields. Set bindings field.
1682 (do_case): Rework order of tests. Don't check blocked_stmt_expr
1683 or blocked_vm. Call c_check_switch_jump_warnings.
1684 (c_finish_case): Don't test blocked_stmt_expr field. Call
1685 c_release_switch_bindings.
1686 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1687 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1688 set label_context_stack_se. Call c_bindings_start_stmt_expr.
1689 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1690 c_switch_stack. Don't walk label_context_stack_se labels. Don't
1691 set label_context_stack_se. Call c_bindings_end_stmt_expr.
1692 (c_begin_vm_scope, c_end_vm_scope): Don't define.
1693 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1694 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1695 (C_DECL_UNJUMPABLE_VM): Don't define.
1696 (C_DECL_UNDEFINABLE_VM): Don't define.
1697 (struct c_label_list): Don't define.
1698 (struct c_label_context_se): Don't define.
1699 (struct c_label_context_vm): Don't define.
1700 (struct c_spot_bindings): Declare.
1701 (c_bindings_start_stmt_expr): Declare.
1702 (c_bindings_end_stmt_expr): Declare.
1703 (lookup_label_for_goto): Declare.
1704 (c_get_switch_bindings, c_release_switch_bindings): Declare.
1705 (c_check_switch_jump_warnings): Declare.
1706 (label_context_stack_se, label_context_stack_vm): Don't declare.
1707 (c_finish_goto_label): Update declaration.
1708 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1709 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1710 (Warning Options): Document -Wjump-misses-init.
1711
1712 2009-06-15 Jakub Jelinek <jakub@redhat.com>
1713
1714 * tree-object-size.c (addr_object_size): Fix a pasto in the last
1715 change.
1716
1717 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
1718
1719 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1720
1721 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
1722
1723 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1724
1725 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
1726
1727 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1728
1729 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
1730
1731 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1732 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1733 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1734 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1735 * dwarf2asm.c (dw2_force_const_mem): Update call to
1736 make_decl_one_only.
1737 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1738 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1739 * langhooks.c (lhd_comdat_group): Remove.
1740 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1741 * tree.h (DECL_COMDAT_GROUP): New.
1742 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1743 (tree_decl_with_vis): Add comdat_group. Remove one_only.
1744 (make_decl_one_only): Change signature.
1745 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1746 make_decl_one_only.
1747 (make_decl_one_only): Change signature.
1748 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1749
1750 2009-06-15 Richard Guenther <rguenther@suse.de>
1751
1752 PR middle-end/40439
1753 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1754
1755 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1756
1757 * tree-ssa-math-opts.c: Remove extra divide.
1758
1759 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1760
1761 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1762
1763 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1764
1765 * passes.c: Add bswap pass.
1766 * tree-pass.h: Add pass_optimize_bswap declaration.
1767 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1768 Include rtl.h, expr.h and optabs.h for optab_handler check.
1769 (struct symbolic_number, pass_optimize_bswap): New definition.
1770 (do_shift_rotate, verify_symbolic_number_p): New functions.
1771 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1772 (gate_optimize_bswap): New function.
1773 * tree.c (widest_int_cst_value): New function.
1774 * tree.h (widest_int_cst_value): Prototype added.
1775
1776 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
1777
1778 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1779 REG_EQUAL/REG_EQUIV notes.
1780
1781 2009-06-14 Richard Guenther <rguenther@suse.de>
1782
1783 PR middle-end/40389
1784 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1785 has its address taken if NRV was applied and it is addressable.
1786 * tree-ssa-structalias.c (get_constraint_for_address_of): New
1787 function split out from ...
1788 (get_constraint_for_1): ... here.
1789 (handle_rhs_call): Use it to mark the return slot escaped if
1790 it is addressable and NRV was applied.
1791
1792 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
1793
1794 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1795 Change first argument type to location_t.
1796 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1797 Do not set input_location.
1798 Use loc instead of input_location throughout.
1799
1800 2009-06-13 Richard Guenther <rguenther@suse.de>
1801
1802 PR tree-optimization/40421
1803 * tree-predcom.c (should_unroll_loop_p): Remove.
1804 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1805
1806 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1807
1808 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1809 Add location argument.
1810
1811 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
1812
1813 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1814 build_decl.
1815 * config/s390/s390.c (s390_build_builtin_va_list): Same.
1816 (s390_gimplify_va_arg): Pass location to create_artificial_label.
1817 * config/spu/spu-protos.h: Add location to
1818 spu_resolve_overloaded_builtin.
1819 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1820 spu_build_builtin_va_list.
1821 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1822 argument. Pass location to build_function_call_vec.
1823 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1824 build_decl.
1825 (emit_fpu_switch): Same.
1826 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1827 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1828 to build_decl and create_artificial_label.
1829 (xtensa_gimplify_va_arg_expr): Same.
1830 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1831 (xstormy16_gimplify_va_arg_expr): Same.
1832 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1833 * config/arm/arm.c (arm_build_builtin_va_list): Same.
1834 * config/mips/mips.c (mips_build_builtin_va_list): Same.
1835 (mips16_build_function_stub): Same.
1836 (mips16_build_call_stub): Same.
1837
1838 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
1839
1840 PR target/40327
1841 * arm/constraints.md (Pa, Pb): New constraints.
1842 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
1843 split pattern to deal with them.
1844
1845 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
1846
1847 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1848 fix index entry for -Xpreprocessor.
1849
1850 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
1851
1852 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1853 Add location argument to build_decl call.
1854 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1855 (rs6000_init_builtins): Same.
1856 (spe_init_builtins): Same.
1857 (rs6000_gimplify_va_arg): Add location argument to
1858 create_artificial_label call.
1859
1860 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
1861
1862 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1863 * combine-stack-adj.c (pass_stack_adjustments): Use it.
1864 * Makefile.in: Fix GGC dependency for gcse.o.
1865
1866 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
1867
1868 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1869 * gimple-pretty-print.c (dump_gimple_stmt): Same.
1870 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1871 created.
1872 * c-parser.c (c_parser_binary_expression): Use current column while
1873 building binary operations.
1874 * common.opt (fshow-column): Enable by default.
1875 * tree-vrp.c (check_array_ref): Use warning_at.
1876 (check_array_bounds): Use location from call back if expr has no
1877 location.
1878 * tree.h: Add location argument to maybe_fold_*.
1879 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1880 (maybe_fold_offset_to_array_ref): Add location argument and use it.
1881 (maybe_fold_offset_to_component_ref): Same.
1882 (maybe_fold_offset_to_reference): Same.
1883 (maybe_fold_offset_to_address): Same.
1884 (maybe_fold_stmt_indirect): Same.
1885 (maybe_fold_stmt_addition): Same.
1886 (fold_stmt_r): Pass location to maybe_fold_*.
1887 (fold_gimple_assign): Same.
1888 * c-tree.h: Add location argument to finish_decl,
1889 default_function_array_conversion, store_init_value.
1890 * c-decl.c (define_label): Use error_at.
1891 (c_make_fname_decl): Pass location to finish_decl.
1892 (finish_decl): New location argument.
1893 (build_compound_literal): Pass location to store_init_value.
1894 (grokdeclarator): Pass location to finish_decl.
1895 (grokfield): Same.
1896 * c-typeck.c (array_to_pointer_conversion): New location argument.
1897 (function_to_pointer_conversion): Same.
1898 (default_function_array_conversion): Same.
1899 (parser_build_unary_op): Pass location to overflow_warning.
1900 (parser_build_binary_op): Same. Use warning_at.
1901 (build_unary_op): Pass location to array_to_pointer_conversion.
1902 (build_c_cast): Pass location to digest_init.
1903 (build_modify_expr): New location argument.
1904 (convert_for_assignment): Same.
1905 (store_init_value): Same.
1906 (digest_init): Same.
1907 (output_init_element): Pass location to digest_init and
1908 array_to_pointer_conversion.
1909 (c_finish_return): Pass location to convert_for_assignment.
1910 * gimplify.c (gimplify_conversion): Pass location to
1911 maybe_fold_offset_to_address.
1912 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1913 to maybe_fold_stmt_addition.
1914 * c-omp.c (c_finish_omp_atomic): Pass new location to
1915 build_modify_expr.
1916 (c_finish_omp_for): Same.
1917 * c-common.c (overflow_warning): New argument.
1918 * c-common.h: New argument to build_modify_expr, overflow_warning.
1919 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1920 finish_decl.
1921 (c_parser_initializer): Pass location to
1922 default_function_array_conversion.
1923 (c_parser_initelt): Same.
1924 (c_parser_initval): Same.
1925 (c_parser_asm_operands): Same.
1926 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
1927 (c_parser_conditional_expression): Same.
1928 (c_parser_binary_expression): Add location info to stack. Use it.
1929 (c_parser_unary_expression): Pass location to
1930 default_function_array_conversion, parser_build_unary_op,
1931 build_indirect_ref, c_parser_postfix_expression_after_primary.
1932 (c_parser_postfix_expression_after_primary): New location argument.
1933 Use it.
1934 (c_parser_expression_conv): Pass location to
1935 default_function_array_conversion.
1936 (c_parser_expr_list): Same.
1937 (c_parser_omp_atomic): Same.
1938 (c_parser_omp_for_loop): Same.
1939 * c-tree.h: (struct c_declarator): Add comment to id_loc.
1940 (build_array_declarator): New argument.
1941 * c-decl.c (build_array_declarator): Add location argument.
1942 (grokdeclarator): Set id_loc for cdk_array.
1943 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1944 build_array_declarator.
1945 * tree.c (build_omp_clause): Add location argument.
1946 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1947 (OMP_CLAUSE_LOCATION): New macro.
1948 (struct tree_omp_clause): Add location field.
1949 (build_omp_clause): Add argument.
1950 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1951 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1952 build_omp_clause.
1953 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1954 (cp_parser_omp_clause_collapse): Same.
1955 (cp_parser_omp_clause_default): Same.
1956 (cp_parser_omp_clause_if): Same.
1957 (cp_parser_omp_clause_nowait): Same.
1958 (cp_parser_omp_clause_num_threads): Same.
1959 (cp_parser_omp_clause_ordered): Same.
1960 (cp_parser_omp_clause_schedule): Same.
1961 (cp_parser_omp_clause_untied): Same.
1962 (cp_parser_omp_for_loop): Same.
1963 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1964 * c-tree.h (c_start_case): Add location argument.
1965 (c_process_expr_stmt): Same.
1966 (c_finish_goto_*): Same.
1967 * tree-parloops.c (initialize_reductions): Pass location to
1968 build_omp_clause.
1969 (create_parallel_loop): Same.
1970 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1971 (gfc_trans_omp_reduction_list): Same.
1972 (gfc_trans_omp_clauses): Same.
1973 (gfc_trans_omp_do): Same.
1974 * c-typeck.c (c_finish_goto_label): Same.
1975 (c_finish_goto_ptr): New location argument.
1976 (c_start_case): Same.
1977 (emit_side_effect_warnings): Same.
1978 (c_process_expr_stmt): Same.
1979 (c_finish_stmt_expr): Same.
1980 (c_finish_omp_clauses): Use error_at instead of error.
1981 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1982 build_omp_clause.
1983 * c-omp.c (c_split_parallel_clauses): New location argument.
1984 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1985 to build_omp_clause.
1986 (convert_local_reference_stmt): Same.
1987 (convert_gimple_call): Same.
1988 * c-common.h (c_split_parallel_clauses): New argument.
1989 * c-parser.c (c_parser_statement_after_labels): Pass location to
1990 c_finish_goto_label.
1991 (c_parser_switch_statement): Pass location to c_start_case.
1992 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1993 and c_process_expr_stmt.
1994 (c_parser_omp_variable_list): Add location argument.
1995 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
1996 (c_parser_omp_clause_default): Same.
1997 (c_parser_omp_clause_if): Same.
1998 (c_parser_omp_clause_num_threads): Same.
1999 (-c_parser_omp_clause_ordered): Same.
2000 (c_parser_omp_clause_reduction): Pass location to
2001 c_parser_omp_variable_list.
2002 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2003 (c_parser_omp_clause_untied): Same.
2004 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2005 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2006
2007 * c-tree.h (check_for_loop_decls, undeclared_variable,
2008 build_component_ref, build_array_ref, build_external_ref,
2009 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2010 build_conditional_expr, build_compound_expr, c_cast_expr,
2011 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2012 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2013 argument.
2014 * c-semantics.c (build_stmt): Same.
2015 (build_case_label): Same.
2016 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2017 (undeclared_variable): New argument.
2018 (make_label): Same.
2019 (lookup_label): Pass location on down.
2020 (define_label): Same.
2021 (finish_decl): Same.
2022 (build_compound_literal): Same.
2023 (finish_struct): Same.
2024 (finish_function): Do not set location here.
2025 (check_for_loop_decls): New argument.
2026 * tree.c (save_expr): Set location.
2027 (build_empty_stmt): New argument.
2028 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2029 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2030 * builtins.c (gimplify_va_arg_expr): Use locations.
2031 (expand_builtin_sync_operation): Same.
2032 * c-typeck.c (build_component_ref): New argument.
2033 (build_array_ref): Same.
2034 (build_external_ref): Same.
2035 (c_expr_sizeof_expr): Same.
2036 (c_expr_sizeof_type): Same.
2037 (parser_build_unary_op): Same.
2038 (build_conditional_expr): Same.
2039 (build_compound_expr): Pass location on down.
2040 (build_compound_expr): New argument.
2041 (build_c_cast): Same.
2042 (c_cast_expr): Same.
2043 (build_asm_expr): Same.
2044 (c_finish_return): Same.
2045 (c_process_expr_stmt): Pass location on down.
2046 (c_finish_stmt_expr): New argument.
2047 (push_clenaup): Same.
2048 (c_finish_omp_parallel): Same.
2049 (c_finish_omp_task): Same.
2050 * gimplify.c (gimplify_call_expr): Pass location on down.
2051 * c-omp.c (c_finish_omp_master): New argument.
2052 (c_finish_omp_critical): Same.
2053 (c_finish_omp_ordered): Same.
2054 (c_finish_omp_barrier): Same.
2055 (-c_finish_omp_taskwait): Same.
2056 (c_finish_omp_atomic): Same.
2057 (c_finish_omp_flush): Same.
2058 * tree-inline.c (copy_tree_body_r): Pass location on down.
2059 (inline_forbidden_p): Remove use of input_location.
2060 * c-gimplify.c (c_build_bind_expr): New argument.
2061 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2062 (c_sizeof_or_alignof_type): New argument.
2063 (c_alignof_expr): Same.
2064 (build_va_arg): Same.
2065 (c_add_case_label): Same.
2066 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2067 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2068 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2069 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2070 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2071 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2072 New argument.
2073 * stub-objc.c (objc_build_selector_expr): Same.
2074 (objc_build_throw_stmt): Same.
2075 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2076 (c_parser_initelt): Same.
2077 (c_parser_compound_statement): Same.
2078 (c_parser_compound_statement_nostart): Same.
2079 (c_parser_label): Same.
2080 (c_parser_statement_after_labels): Same.
2081 (c_parser_if_body): Same.
2082 (c_parser_else_body): Same.
2083 (c_parser_if_statement): Same.
2084 (c_parser_switch_statement): Same.
2085 (c_parser_while_statement): Same.
2086 (c_parser_do_statement): Same.
2087 (c_parser_for_statement): Same.
2088 (c_parser_asm_statement): Same.
2089 (c_parser_conditional_expression): Same.
2090 (c_parser_binary_expression): Same.
2091 (c_parser_cast_expression): Same.
2092 (c_parser_unary_expression): Same.
2093 (c_parser_sizeof_expression): Same.
2094 (c_parser_alignof_expression): Same.
2095 (c_parser_postfix_expression): Same.
2096 (c_parser_expression): Same.
2097 (c_parser_objc_receiver): Same.
2098 (c_parser_omp_variable_list): Same.
2099 (c_parser_omp_structured_block): Same.
2100 (c_parser_omp_atomic): New argument.
2101 (c_parser_omp_barrier): Same.
2102 (c_parser_omp_critical): Same.
2103 (c_parser_omp_flush): Pass location on down.
2104 (c_parser_omp_for_loop): New argument.
2105 (c_parser_omp_for): Same.
2106 (c_parser_omp_master): Same.
2107 (c_parser_omp_ordered): Same.
2108 (c_parser_omp_sections_scope): Same.
2109 (c_parser_omp_sections): Same.
2110 (c_parser_omp_parallel): Same.
2111 (c_parser_omp_single): Same.
2112 (c_parser_omp_task): Same.
2113 (c_parser_omp_taskwait): Pass location on down.
2114 (c_parser_omp_construct): Same.
2115 (c_parser_omp_threadprivate): Same.
2116 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2117 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2118 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2119 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2120 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2121 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2122 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2123 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2124 config/i386/i386.c, stmt.c:
2125 Add location argument to the following function definitions and/or
2126 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2127 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2128 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2129 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2130 do_case, c_finish_bc_stmt, build_compound_literal,
2131 build_function_call.
2132 * c-decl.c (build_compound_literal): Add location argument.
2133 Make all diagnostic calls use location.
2134 (start_struct): Same.
2135 (finish_struct): Same.
2136 (start_enum): Same.
2137 (build_enumerator): Same.
2138 (start_function): Same.
2139 (grokdeclarator): Make all diagnostic calls use location.
2140 (store_parm_decls_oldstyle): Same.
2141 * c-typeck.c (build_function_call): Add location argument.
2142 Make all diagnostic calls use location.
2143 (do_case): Same.
2144 (c_finish_bc_stmt): Same.
2145 * tree-nested.c (get_trampoline_type): Add argument.
2146 Pass location to build_decl.
2147 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2148 * rtl.h (RTL_LOCATION): New.
2149 * c-common.c (c_add_case_label): Add location argument.
2150 Make all diagnostic calls use location.
2151 * c-common.h: Add location argument to make_fname_decl, do_case,
2152 c_add_case_label, build_function_call, resolve_overloaded_builtin.
2153 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2154 Set it appropriately for every case. Pass enum_loc to start_enum
2155 call. Pass value_loc first to build_enumerator. Pass enum_loc to
2156 parser_xref_tag.
2157 (c_parser_struct_or_union_specifier): Save location. Use it for
2158 start_struct, finish_struct, and parser_xref_tag.
2159
2160 2009-06-12 Ian Lance Taylor <iant@google.com>
2161
2162 * fold-const.c (fold_unary): Rename local variable and to and_expr.
2163
2164 * c-opts.c (c_common_handle_option): For -Wc++-compat set
2165 cpp_opts->warn_cxx_operator_names.
2166
2167 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
2168
2169 PR tree-opt/38865
2170 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2171 is returns NULL and OP is a VCE, look through the VCE.
2172
2173 2009-06-12 Ian Lance Taylor <iant@google.com>
2174
2175 PR bootstrap/40430
2176 * collect2.c (main): Use CONST_CAST2 in code inside #if
2177 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2178
2179 2009-06-12 Joey Ye <joey.ye@intel.com>
2180
2181 PR middle-end/39146
2182 * cfgexpand.c (get_decl_align_unit): Update
2183 max_used_stack_slot_alignment with align instead of
2184 stack_alignment_needed.
2185
2186 * function.c (assign_stack_local_1): Update
2187 max_used_stack_slot_alignment with alignment_in_bits instead
2188 of stack_alignment_needed.
2189 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2190 here.
2191
2192 2009-06-12 Jakub Jelinek <jakub@redhat.com>
2193
2194 * dwarf2out.c (last_var_location_insn): New variable.
2195 (dwarf2out_end_epilogue): Clear last_var_location_insn.
2196 (dwarf2out_var_location): Don't record anything after last real
2197 insn. Only change labels if there were any real instructions
2198 in between last note and this one, or if changed sections.
2199
2200 2009-06-11 Richard Henderson <rth@redhat.com>
2201
2202 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2203 note when storing the frame pointer in a register.
2204 (FRP): Don't redefine to nothing for epilogue.
2205 (alpha_expand_epilogue): Mark register and sp restores.
2206 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2207
2208 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2209 when gen_lowpart is needed.
2210
2211 2009-06-11 Richard Henderson <rth@redhat.com>
2212
2213 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2214
2215 * dwarf2out.c (need_data_align_sf_opcode): New.
2216 (div_data_align): Move earlier.
2217 (def_cfa_1, reg_save): Use it.
2218
2219 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
2220
2221 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2222 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2223 (ix86_handle_option): Handle OPT_mcrc32.
2224 (ix86_target_string): Add -mcrc32.
2225 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2226
2227 * config/i386/i386.h (TARGET_CRC32): New.
2228
2229 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2230 (sse4_2_crc32di): Likewise.
2231
2232 * config/i386/i386.opt (mcrc32): New.
2233
2234 * doc/invoke.texi: Document -mcrc32.
2235
2236 2009-06-11 Richard Henderson <rth@redhat.com>
2237
2238 * common.opt (gdwarf-): Accept a version number.
2239 * doc/invoke.texi (gdwarf-): Update docs.
2240 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2241 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2242 version level, and record it.
2243
2244 * dwarf2.h (DW_CIE_VERSION): Remove.
2245 * dwarf2out.c (DWARF_VERSION): Remove.
2246 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2247 (output_call_frame_info): Use CIE version 3 for dwarf3,
2248 or if the return register column is out of range for version 1.
2249 (dwarf_stack_op_name): Add all dwarf3 values.
2250 (DEBUG_PUBTYPES_SECTION): New.
2251 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2252 encoding change for dwarf3.
2253 (output_die) [dw_val_class_die_ref]: Likewise.
2254 (output_compilation_unit_header): Emit correct version for dwarf3.
2255 (output_line_info): Likewise.
2256 (output_pubnames): Update for DWARF_VERSION removal.
2257 (output_aranges): Likewise.
2258 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2259 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2260 (dwarf2out_finish): Likewise.
2261
2262 2009-06-11 David Daney <ddaney@caviumnetworks.com>
2263
2264 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2265 in r148403.
2266
2267 2009-06-11 David Daney <ddaney@caviumnetworks.com>
2268
2269 PR c/39252
2270 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2271 * builtins.c (expand_builtin_unreachable): New function.
2272 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2273 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2274 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2275 successors.
2276 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2277 searching for missing barriers.
2278
2279 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2280
2281 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2282 when -fprofile-generate* was passed.
2283 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2284
2285 2009-06-11 Anthony Green <green@moxielogic.com>
2286
2287 * config/moxie/moxie.md: Define length attribute for all instructions.
2288 (rCC): Define.
2289 (*b<cond:code>): Support limited branch ranges for new PC-relative
2290 branch instructions.
2291 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2292
2293 2009-06-11 Jakub Jelinek <jakub@redhat.com>
2294
2295 * config/i386/i386.c (min_insn_size): Use get_attr_length
2296 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2297 For __asm return 0.
2298
2299 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2300 instead of emit_insn_before.
2301
2302 2009-06-10 Ian Lance Taylor <iant@google.com>
2303
2304 PR bootstrap/40408
2305 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2306 GIMPLE_SWITCH.
2307
2308 2009-06-10 Revital Eres <eres@il.ibm.com>
2309
2310 * passes.c (init_optimization_passes): Reschedule
2311 predictive-commoning pass before complete unroll pass.
2312
2313 2009-06-10 Martin Jambor <mjambor@suse.cz>
2314
2315 * cgraph.c (cgraph_node_can_be_local_p): New function.
2316 (cgraph_make_node_local): New function.
2317 * cgraph.h (cgraph_node_can_be_local_p): Declare.
2318 (cgraph_make_node_local): Declare.
2319
2320 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
2321
2322 * tree.h (tree_base): Add packed_flag and user_align fields.
2323 Decrease size of spare field.
2324 (TYPE_USER_ALIGN): Use user_align from tree_base.
2325 (DECL_USER_ALIGN): Likewise.
2326 (TYPE_PACKED): Use packed_flag from tree_base.
2327 (DECL_PACKED): Likewise.
2328 (tree_type): Delete packed_flag and user_align fields. Widen
2329 precision field. Widen mode field and shuffle fields to align
2330 mode on an 8-bit boundary.
2331 (tree_decl_common): Delete decl_flag_1 and user_align fields.
2332 Renumber decl_flag_* fields. Fix comments. Widen
2333 decl_common_unused field.
2334 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2335 (DECL_EXTERNAL): Likewise.
2336 (DECL_BIT_FIELD): Likewise.
2337 (DECL_NONADDRESSABLE_P): Likewise.
2338 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2339 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2340
2341 2009-06-10 Ian Lance Taylor <iant@google.com>
2342
2343 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2344 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2345 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2346 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2347 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2348 DEF_VEC_ALLOC_FUNC_P.
2349 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2350 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2351 DEF_VEC_ALLOC_FUNC_O.
2352 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2353 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2354 DEF_VEC_ALLOC_FUNC_I.
2355 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2356 (vec_stack_p_reserve_exact_1): Declare.
2357 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2358 (vec_stack_free): Declare.
2359 (VEC_stack_alloc): Define.
2360 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2361 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2362 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2363 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
2364 for void_p.
2365 (stack_vecs): New static variable.
2366 (vec_stack_p_reserve_exact_1): New function.
2367 (vec_stack_o_reserve_1): New static function.
2368 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2369 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2370 (vec_stack_free): New function.
2371 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2372 (VEC_df_ref_stack_alloc): Define.
2373 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
2374 DEF_VEC_ALLOC_P_STACK.
2375 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2376 (struct df_collection_rec): Change _vec fields to VEC. Remove
2377 _use fields.
2378 (df_free_collection_rec): Adjust for new fields.
2379 (df_insn_rescan): Use new df_collection_rec fields.
2380 (df_notes_rescan, df_canonize_collection_rec): Likewise.
2381 (df_ref_create_structure, df_ref_record): Likewise.
2382 (df_get_conditional_uses, df_get_call_refs): Likewise.
2383 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2384 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2385 (df_record_exit_block_uses, df_bb_verify): Likewise.
2386 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
2387 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2388 Remove count parameter. Change return type to void. Change all
2389 callers.
2390 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2391 Remove count parameter. Change return type to void. Change all
2392 callers.
2393 (df_install_refs): Change old_vec parameter to VEC. Remove count
2394 parameter. Change all callers.
2395 (df_install_mws): Change old_vec parameter to VEC. Remove count
2396 parameter. Change all callers.
2397 (df_refs_verify): Change new_rec parameter to VEC. Change call
2398 callers.
2399 (df_mws_verify): Likewise.
2400
2401 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
2402
2403 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2404
2405 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
2406
2407 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2408
2409 2009-06-10 Anthony Green <green@moxielogic.com>
2410
2411 * config/moxie/crti.asm: New file.
2412 * config/moxie/crtn.asm: New file.
2413 * config/moxie/moxie.c: New file.
2414 * config/moxie/moxie.h: New file.
2415 * config/moxie/sfp-machine.h: New file.
2416 * config/moxie/moxie-protos.h: New file.
2417 * config/moxie/t-moxie: Created.
2418 * config/moxie/t-moxie-softfp: Created.
2419 * config/moxie/moxie.md: Created.
2420 * config/moxie/constraints.md: Created.
2421 * config.gcc: Add moxie support.
2422 * doc/md.texi (Machine Constraints): Add moxie constraints.
2423 * doc/contrib.texi (Contributors): Mention moxie port.
2424 * doc/install.texi (Specific): Mention the moxie port.
2425
2426 2009-06-09 Ian Lance Taylor <iant@google.com>
2427
2428 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2429 compiling with C++.
2430 * optabs.c (optab_table): Only use designated initializers if
2431 HAVE_DESIGNATED_INITIALIZERS is defined.
2432 (convert_optab_table): Likewise.
2433 (init_optabs): Always call init_insn_codes if
2434 HAVE_DESIGNATED_INITIALIZERS is not defined.
2435
2436 2009-06-09 Ian Lance Taylor <iant@google.com>
2437
2438 * targhooks.c (default_builtin_vectorized_function): Change fn
2439 parameter to unsigned int.
2440 (default_builtin_vectorized_conversion): Change code parameter to
2441 unsigned int.
2442 (default_builtin_reciprocal): Change fn parameter to unsigned int.
2443 * targhooks.h: Update declarations.
2444 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2445 parameter to unsigned int.
2446
2447 * c-typeck.c (comptypes_check_enum_int): New static function.
2448 (comptypes_internal): Add enum_and_int_p parameter. Change all
2449 callers.
2450 (comp_target_types): Add location parameter. Change all callers.
2451 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2452 Change all callers.
2453 (function_types_compatible_p, type_lists_compatible_p): Likewise.
2454 (build_conditional_expr): Add colon_loc parameter. Change all
2455 callers.
2456 (convert_for_assignment): Add location parameter. Change all callers.
2457 * c-parser.c (c_parser_conditional_expression): Pass location of
2458 colon to build_conditional_expr.
2459 * c-tree.h (build_conditional_expr): Update declaration.
2460
2461 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2462
2463 * graphite.c: Revert previous patch.
2464
2465 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2466
2467 PR bootstrap/40103
2468 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2469
2470 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
2471
2472 * tree-ssa-loop-prefetch.c
2473 (loop_prefetch_arrays): Fixed a portability problem in printf format
2474 string.
2475
2476 2009-06-09 Martin Jambor <mjambor@suse.cz>
2477
2478 PR tree-optimization/40351
2479 * tree-sra.c (propagate_subacesses_accross_link): Check that a
2480 refrence to a potential artifical subaccess can be constructed.
2481
2482 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2483
2484 * config/sh/sh-protos.h (sh_optimization_options): Declare.
2485 (sh_override_options): Likewise.
2486 * config/sh/sh.c: Include params.h.
2487 (sh_optimization_options): New.
2488 (sh_override_options): Likewise.
2489 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2490 (OVERRIDE_OPTIONS): Use sh_override_options.
2491
2492 2009-06-08 Jakub Jelinek <jakub@redhat.com>
2493
2494 * dwarf2out.c (emit_cfa_remember): New variable.
2495 (add_fde_cfi): If emit_cfa_remember, recurse to add
2496 DW_CFA_remember_state first.
2497 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2498 instead just set emit_cfa_remember.
2499
2500 2009-06-08 Jan Hubicka <jh@suse.cz>
2501
2502 PR debug/40126
2503 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2504
2505 2009-06-08 Jan Hubicka <jh@suse.cz>
2506
2507 PR middle-end/39834
2508 * cgraphunit.c (save_inline_function_body): Do not copy transform
2509 hooks for saved inline bodies.
2510 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2511 for given function.
2512
2513 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
2514
2515 * jump.c (returnjump_p): Handle delayed branches. Add missing
2516 function comment.
2517
2518 2009-06-08 Jan Hubicka <jh@suse.cz>
2519
2520 PR middle-end/40102
2521 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2522 original node might've been modified.
2523 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2524
2525 2009-06-08 Jakub Jelinek <jakub@redhat.com>
2526
2527 * tree-object-size.c (addr_object_size): Add OSI argument.
2528 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2529 (compute_builtin_object_size, expr_object_size): Adjust callers.
2530 (plus_stmt_object_size): Call addr_object_size instead of
2531 compute_builtin_object_size.
2532
2533 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
2534 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2535
2536 * tree-ssa-loop-prefetch.c
2537 (gather_memory_references): Introduced a counter for the number of
2538 memory references.
2539 (anything_to_prefetch_p): Introduced a counter for the number of
2540 prefetches.
2541 (is_loop_prefetching_profitable): New function with a cost model
2542 for prefetching.
2543 (loop_prefetch_arrays): Use the new cost model to determine if
2544 prefetching is profitable.
2545 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
2546 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2547 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
2548 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2549 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
2550 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2551
2552 2009-06-08 Michael Matz <matz@suse.de>
2553
2554 PR debug/40012
2555 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2556 partitions use the same.
2557 (expand_one_var): Deal with DECL_RTL sometimes begin set also
2558 for basevars of SSA_NAMEs.
2559 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2560 to not expand them twice.
2561 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2562 multiple places.
2563
2564 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
2565
2566 * common.opt (fcompare-debug=, fcompare-debug-second): New.
2567 (fdump-final-insns=, gtoggle): New.
2568 * doc/invoke.texi: Document them.
2569 * final.c (rest_of_clean_state): Dump final insn stream.
2570 * gcc.c (invoke_as): Hook in -fcompare-debug.
2571 (static_spec_functions): Add compare-debug-dump-opt,
2572 compare-debug-self-opt and compare-debug-auxbase-opt.
2573 (compare_debug, compare_debug_second, compare_debug_opt): New.
2574 (switches_debug_check, n_switches_debug_check): New.
2575 (debug_auxbase_opt, debug_check_temp_file): New.
2576 (process_command): Handle -fno-compare-debug, -fcompare-debug and
2577 -fcompare-debug=*.
2578 (do_self_spec): Handle arguments after switches.
2579 (do_spec_1): Add .gk extension to temp file basenames for compare.
2580 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2581 (cc1_options): Use it instead of normal auxbase computation for
2582 the second compare-debug compilation.
2583 (compare_files): New.
2584 (main): Set up and implement compare debug mode.
2585 (compare_debug_dump_opt_spec_function): New.
2586 (compare_debug_self_opt_spec_function): New.
2587 (compare_debug_auxbase_opt_spec_function): New.
2588 * toplev.c (process_options): Handle flag_gtoggle,
2589 flag_dump_final_insns.
2590 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2591 during -fcompare-debug-second compilation.
2592
2593 2009-06-07 Ian Lance Taylor <iant@google.com>
2594
2595 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2596 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2597
2598 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2599 with no default node. Change warning with %H to warning_at.
2600 Don't clear warn_switch around case checking.
2601 * doc/invoke.texi (Warning Options): Clarify distinction between
2602 -Wswitch and -Wswitch-enum.
2603
2604 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2605
2606 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2607
2608 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2609
2610 * gbl-ctors.h: Add header guard.
2611
2612 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2613
2614 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2615 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2616 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2617 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2618 prototypes for removed functions.
2619 (expressions_equal_p): Move to ...
2620 * tree-ssa-sccvn.h: ... here and ...
2621 * matrix-reorg.c: ... adjust includes.
2622
2623 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2624
2625 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2626
2627 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2628
2629 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2630 (finish_function): Remove erroneous whitespace.
2631
2632 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2633
2634 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2635 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2636
2637 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2638
2639 * errors.c (internal_error): Commentary typo fix.
2640 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2641 * tree-ssa-pre.c: Ditto.
2642
2643 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2644
2645 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2646 them is supposed to hold actual statements.
2647
2648 2009-06-06 Ian Lance Taylor <iant@google.com>
2649
2650 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2651 empty statements can now have attributes.
2652
2653 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
2654
2655 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2656 * config/mips/mips.md: Ditto.
2657
2658 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2659
2660 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2661 _RELOCATABLE.
2662 (__eabi_uconvert): Likewise.
2663
2664 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
2665
2666 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2667 CFI_* definitions with IN_GCC.
2668
2669 2009-06-05 David Edelsohn <edelsohn@gnu.org>
2670
2671 * xcoffout.h (xcoffout_source_line): Update prototype.
2672
2673 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2674
2675 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2676 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2677
2678 2009-06-05 Jakub Jelinek <jakub@redhat.com>
2679
2680 PR middle-end/40340
2681 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2682 inlined_function_outer_scope_p blocks for artificial inlines
2683 even at -g0/-g1.
2684 * tree.c (tree_nonartificial_location): Rewrite using
2685 block_nonartificial_location.
2686
2687 2009-06-05 Revital Eres <eres@il.ibm.com>
2688 Leehod Baruch <leehod@il.ibm.com>
2689
2690 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2691 (expand_expr_real_1): Remove comment.
2692 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2693 Vectorize misaligned access when the target supports it.
2694 (vect_supportable_dr_alignment): Check for unaligned access support.
2695 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2696 and remove asset.
2697
2698 2009-06-05 Julian Brown <julian@codesourcery.com>
2699
2700 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2701 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2702
2703 2009-06-05 Richard Guenther <rguenther@suse.de>
2704
2705 PR bootstrap/40350
2706 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2707 as possibly unused.
2708
2709 2009-06-05 Jakub Jelinek <jakub@redhat.com>
2710
2711 * config/s390/s390.c (global_not_special_regno_p): New static inline.
2712 (save_gprs): Don't tell unwinder when a global register is saved.
2713 (s390_emit_epilogue): Emit needed epilogue unwind info.
2714
2715 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
2716
2717 * dwarf2out.c (deferred_asm_name): New.
2718 (add_name_and_src_coords_attributes): Defer creation of
2719 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2720 computed yet.
2721 (move_linkage_attr): New.
2722 (dwarf2out_finish): Revisit deferrals and emit attributes at the
2723 right place.
2724
2725 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
2726
2727 * tree-nested.c (finalize_nesting_tree_1): Declare the
2728 frame_decl in the binding tree.
2729
2730 2009-06-04 Cary Coutant <ccoutant@google.com>
2731
2732 * basic-block.h (struct basic_block_def): Add discriminator field.
2733 * dbxout.c (dbxout_source_line): Add new parameter. Change all
2734 callers.
2735 * debug.c (do_nothing_debug_hooks): Add additional entry.
2736 (debug_nothing_int_charstar_int): New function.
2737 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2738 (debug_nothing_int_charstar_int): New declaration.
2739 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
2740 discriminator value in .loc directive.
2741 * final.c (last_discriminator): New variable.
2742 (discriminator): New variable.
2743 (final_start_function): Initialize above variables, pass current
2744 discriminator to debug hook.
2745 (notice_source_line): Check for discriminator change.
2746 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2747 * sdbout.c (sdbout_source_line): New parameter.
2748 * tree-cfg.c (struct locus_discrim_map): New structure type.
2749 (discriminator_per_locus): New hash table.
2750 (build_gimple_cfg): Allocate and free discriminator hash table.
2751 (make_edges): Call assign_discriminator.
2752 (locus_map_hash): New function.
2753 (locus_map_eq): New function.
2754 (next_discriminator_for_locus): New function.
2755 (same_line_p): New function.
2756 (assign_discriminator): New function.
2757 (make_cond_expr_edges): Call assign_discriminator.
2758 (make_gimple_switch_edges): Likewise.
2759 (first_non_label_stmt): New function.
2760 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
2761 all callers.
2762 * xcoffout.c (xcoffout_source_line): Add new parameter.
2763
2764 * configure.ac (gcc_cv_as_discriminator): New configury check for
2765 gas support for discriminator.
2766 * configure: Regenerate.
2767 * config.in: Regenerate.
2768
2769 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2770
2771 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2772 val after checking for integers.
2773
2774 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
2775
2776 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2777 X64_REGPARM_MAX.
2778 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2779 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2780 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2781 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2782 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
2783 X64_SSE_REGPARM_MAX.
2784 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2785 X64_SSE_REGPARM_MAX.
2786
2787 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
2788
2789 * gcc.c (report_times_to_file): New.
2790 (execute): Implement it.
2791 (process_command): Support -time=.
2792 * doc/invoke.texi: Document it.
2793
2794 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
2795
2796 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2797 that have value exprs.
2798
2799 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
2800
2801 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2802 declarations for constants until...
2803 (dw2_output_indirect_constant_1): ... this point.
2804
2805 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
2806
2807 PR target/10242
2808 * arm.md (arm_addsi3): Don't try to split an add with an
2809 eliminable register until after reload has completed.
2810
2811 2009-06-03 Ian Lance Taylor <iant@google.com>
2812
2813 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2814 * genattrtab.c (write_length_unit_log): Likewise.
2815 * genchecksum.c (dosum): Likewise.
2816 * gengtype.c (write_rtx_next): Likewise.
2817 (finish_root_table, write_roots): Likewise.
2818 * gimple.c (gimple_ops_offset_): Likewise.
2819 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2820 * config/arc/arc.c (arc_attribute_table): Likewise.
2821 * config/arm/arm.c (arm_attribute_table): Likewise.
2822 * config/avr/avr.c (avr_attribute_table): Likewise.
2823 * config/crx/crx.c (crx_attribute_table): Likewise.
2824 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2825 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2826 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2827 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2828 * config/sh/sh.c (sh_attribute_table): Likewise.
2829 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2830 * config/spu/spu.c (spu_attribute_table): Likewise.
2831 * config/v850/v850.c (v850_attribute_table): Likewise.
2832
2833 * config/alpha/alpha.c (vms_attribute_table): Make static.
2834 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2835 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2836 * config/mips/mips.c (mips_attribute_table): Likewise.
2837
2838 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2839 $(SYSTEM_H).
2840 (cc1-checksum.o): Likewise.
2841
2842 2009-06-03 Steve Ellcey <sje@cup.hp.com>
2843
2844 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2845
2846 2009-06-03 Jakub Jelinek <jakub@redhat.com>
2847
2848 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2849 insn if it is changing sp. Use gen_add3_insn instead of
2850 conditionally gen_addsi3 and gen_adddi3.
2851 (offset_below_red_zone_p): New static inline function.
2852 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2853 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2854 * config/rs6000/ppc-asm.h: Include auto-host.h.
2855 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2856 CFI_RESTORE): Define.
2857 * config/rs6000/crtresxgpr.asm: Add unwind info.
2858 * config/rs6000/crtresxfpr.asm: Likewise.
2859 * config/rs6000/crtresgpr.asm: Likewise.
2860 * config/rs6000/crtresfpr.asm: Likewise.
2861 * config/rs6000/crtsavgpr.asm: Likewise.
2862 * config/rs6000/crtsavfpr.asm: Likewise.
2863
2864 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2865 argument of DWARF2_FRAME_REG_OUT macros.
2866
2867 2009-06-03 Julian Brown <julian@codesourcery.com>
2868
2869 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2870 words or less (including TImode) in core registers.
2871
2872 2009-06-03 Richard Guenther <rguenther@suse.de>
2873
2874 PR middle-end/40328
2875 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2876
2877 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
2878
2879 * statistics.c (statistics_counter_event): Do not record event
2880 in pass dump if its number == -1.
2881 (curr_statistics_hash): Add assert that we never get passes
2882 with static number == -1.
2883
2884 2009-06-03 Richard Guenther <rguenther@suse.de>
2885 Andrey Belevantsev <abel@ispras.ru>
2886
2887 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
2888 non-BLKmode arrays addressable.
2889
2890 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
2891
2892 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2893 * config/m68k/m68k.h: ... here.
2894 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2895 m68k and fido.
2896
2897 2009-06-03 Martin Jambor <mjambor@suse.cz>
2898
2899 PR tree-optimization/40323
2900 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2901 assignment.
2902
2903 2009-06-03 Richard Guenther <rguenther@suse.de>
2904
2905 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2906 consistently.
2907
2908 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
2909
2910 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2911 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2912 JUMP_TABLE_DATA_P where applicable.
2913 * config/sh/sh.c: Ditto.
2914 * config/sh/sh.h: Ditto.
2915 * config/sh/sh.md: Ditto.
2916 * config/sh/symbian.c: Ditto.
2917
2918 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
2919
2920 * config/i386/driver-i386.c (describe_cache): Optimize
2921 concatenation of strings. Use snprintf instead of sprintf.
2922 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
2923 target when not compiling with GCC.
2924
2925 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2926
2927 * config/sh/sh.c: Revert last change.
2928 (sh_expand_epilogue): Emit a blockage insn before the frame
2929 pointer adjustment unconditionally.
2930
2931 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2932
2933 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2934 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2935 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2936 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2937 to COLLECT_GCC_OPTIONS.
2938
2939 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2940
2941 * collect2.c (target_system_root): New variable.
2942 (main): Handle --sysroot=.
2943 (ignore_library): Strip the sysroot from the library path.
2944
2945 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2946
2947 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2948 (collect2.o): Depend on collect2-aix.h.
2949 (collect2-aix.o): New rule.
2950 * collect2-aix.h: New file.
2951 * collect2-aix.c: Likewise.
2952 * collect2.c: Include collect2-aix.h. Don't undefine
2953 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2954 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2955 Use TARGET_AIX_VERSION instead of _AIX51.
2956 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2957 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2958 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2959 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2960 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2961
2962 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2963
2964 * collect2.c (ignore_library): Avoid premature post-increment
2965 and null deference.
2966
2967 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2968
2969 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2970 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2971 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2972 CROSS_DIRECTORY_STRUCTURE too.
2973 (LINK_LIBG_SPEC): Likewise.
2974 (LIB_SPEC): Add %R to sysroot paths.
2975 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2976 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2977 * config/rs6000/aix51.h: As for aix43.h.
2978 * config/rs6000/aix52.h: Likewise.
2979 * config/rs6000/aix53.h: Likewise.
2980 * config/rs6000/aix61.h: Likewise.
2981 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2982 to the beginning of sysroot paths.
2983
2984 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
2985
2986 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2987 INSN_LISTs that are out of the REG_NOTE range.
2988
2989 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
2990
2991 * loop-unroll.c (struct iv_to_split): Add pointer to next.
2992 (struct var_to_expand): Likewise.
2993 (struct opt_info): Add head and tail for linked lists of the above.
2994 (analyze_insn_to_expand_var): Initialize next.
2995 (analyze_iv_to_split_insn): Likewise.
2996 (analyze_insns_in_loop): Create linked lists.
2997 (allocate_basic_variable): Simplify for use without hash table.
2998 (insert_var_expansion_initialization): Likewise, make it type-safer.
2999 (combine_var_copies_in_loop_exit): Likewise.
3000 (apply_opt_in_copies): Walk lists rather than hash tables.
3001 (release_var_copies): Simplified and inlined by hand into...
3002 (free_opt_info): ... this function.
3003
3004 2009-06-02 Richard Guenther <rguenther@suse.de>
3005
3006 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3007 for field decls.
3008
3009 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3010
3011 * cfgexpand.c (gimple_expand_cfg): Discard the source location
3012 only for builtins that are not overridden.
3013
3014 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3015
3016 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3017 label string.
3018
3019 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3020
3021 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3022
3023 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3024
3025 * combine.c (move_deaths): Compare LUIDs within the same BB only.
3026
3027 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
3028
3029 * common.opt (fdump-unnumbered-links): New.
3030 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3031 * print-rtl.c (flag_dump_unnumbered_links): New.
3032 (print_rtx): Test it.
3033
3034 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
3035
3036 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3037 push/pop multiple to 8-byte alignment.
3038
3039 2009-06-01 Jakub Jelinek <jakub@redhat.com>
3040
3041 * config/i386/i386.c (queued_cfa_restores): New static variable.
3042 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3043 functions.
3044 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3045 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3046 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3047 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3048 note unconditionally.
3049 (ix86_emit_restore_regs_using_mov): Likewise.
3050 (ix86_emit_restore_sse_regs_using_mov): Likewise.
3051 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3052 it through to ix86_emit_restore_reg_using_pop.
3053 (ix86_emit_leave): Add RED_OFFSET argument. Call
3054 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
3055 instead of adding REG_CFA_OFFSET note unconditionally.
3056 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3057 the above functions. Call ix86_add_queued_cfa_restore_notes when
3058 needed.
3059
3060 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3061 force output of the label even for dwarf2out_do_cfi_asm.
3062 (add_fde_cfi): If -g2 and above and cfi might change CFA,
3063 force creation of CFI label and chain DW_CFA_set_loc jumping to it
3064 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
3065 caller.
3066 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3067 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3068 dwarf2out_cfi_label callers.
3069 * tree.h (dwarf2out_cfi_label): Adjust prototype.
3070 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3071 Adjust dwarf2out_cfi_label callers.
3072 * config/vax/vax.c (vax_output_function_prologue): Likewise.
3073
3074 * config/i386/i386.h (struct machine_cfa_state,
3075 struct machine_function): Guard with ifndef USED_FOR_TARGET
3076 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3077
3078 PR other/40024
3079 * emutls.c (__emutls_get_address): Change arr->size to mean number
3080 of allocated arr->data entries instead of # of slots + 1.
3081
3082 PR middle-end/40316
3083 * recog.c (peep2_reinit_state): New function.
3084 (peephole2_init_state): Use it at the end of a basic block and also
3085 when seeing a RTX_FRAME_RELATED_P insn.
3086
3087 2009-06-01 Steve Ellcey <sje@cup.hp.com>
3088
3089 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3090 fixuns_truncrfdi2): New.
3091 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3092 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3093 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3094 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3095 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3096 *recip_approx): Remove.
3097 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3098 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3099 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3100 move to div.md.
3101 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3102 setf_exp_rf): New.
3103
3104 2009-06-01 Ian Lance Taylor <iant@google.com>
3105
3106 * attribs.c (register_attribute): Use CONST_CAST.
3107 * collect2.c (main): Use CONST_CAST2.
3108 (scan_prog_file): Likewise.
3109 * gcc.c (process_command, main): Likewise.
3110 * toplev.c (toplev_main): Likewise.
3111
3112 * c-typeck.c (handle_warn_cast_qual): New static function,
3113 partially broken out of build_c_cast.
3114 (build_c_cast): Call handle_warn_cast_qual.
3115 * doc/invoke.texi (Warning Options): Document new effect of
3116 -Wcast-qual.
3117
3118 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
3119
3120 * diagnostic.c (diagnostic_build_prefix): Always print columns.
3121 (diagnostic_report_current_module): Print columns.
3122 * common.opt (flag_show_column): Enable by default.
3123
3124 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
3125
3126 * alias.c (find_base_term): Check for NULL term before returning.
3127
3128 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3129
3130 Revert due to PR40320:
3131 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3132 * calls.c (emit_library_call_value_1): Don't force_operand for move
3133 and push insns.
3134
3135 2009-06-01 Olivier Hainque <hainque@adacore.com>
3136 Eric Botcazou <ebotcazou@adacore.com>
3137
3138 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3139 to be processed as a bitfield for constructor output purposes.
3140 * output.h (initializer_constant_valid_for_bitfield_p): Declare
3141 new function.
3142 * varasm.c (oc_local_state): New type, output_constructor
3143 local state to support communication with helpers.
3144 (oc_outer_state): New type, output_constructor outer state of
3145 relevance in recursive calls.
3146 (output_constructor_array_range): New output_constructor helper,
3147 extracted code for an array range element.
3148 (output_constructor_regular_field): New output_constructor helper,
3149 extracted code for an element that is not a bitfield.
3150 (output_constructor_bitfield): New output_constructor helper,
3151 extracted code for a bitfield element. Accept an OUTER state
3152 argument for recursive processing. Recurse on record or array
3153 CONSTRUCTOR values, possibly past noop conversions.
3154 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
3155 VALUE is a valid constant-valued expression for use in a static
3156 bit-field initializer.
3157 (output_constructor): Rework to use helpers. Accept and honor an
3158 OUTER state argument for recursive calls. Return total size. Be
3159 prepared for nested constructors initializing bitfields.
3160 (output_constant): Feed OUTER in calls to output_constructor.
3161
3162 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
3163
3164 * calls.c (emit_library_call_value_1): Don't force_operand for move
3165 and push insns.
3166
3167 2009-06-01 Nick Clifton <nickc@redhat.com>
3168
3169 * doc/invoke.texi (IA-64 Options): Fix typo.
3170
3171 2009-06-01 Ira Rosen <irar@il.ibm.com>
3172
3173 PR tree-optimization/39129
3174 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
3175 printed message.
3176 (vect_do_peeling_for_loop_bound): Use
3177 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3178 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3179 (vect_loop_versioning): Likewise.
3180 (vect_create_cond_for_alias_checks): Fix indentation.
3181 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
3182 macros.
3183 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
3184 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
3185 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
3186 "control flow in loop".
3187 (vect_estimate_min_profitable_iters): Use
3188 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3189 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3190 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
3191 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
3192 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
3193 statement belongs to a group of strided accesses with the exact code
3194 check.
3195 (vectorizable_load): Likewise.
3196 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
3197 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3198
3199 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
3200
3201 * config/freebsd-stdint.h: New file.
3202 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
3203 Add freebsd-stdint.h to tm_file.
3204
3205 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
3206
3207 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
3208 (thumb2_extendhidi2): Likewise.
3209
3210 2009-05-31 Ian Lance Taylor <iant@google.com>
3211
3212 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
3213
3214 2009-05-31 Ian Lance Taylor <iant@google.com>
3215
3216 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
3217 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
3218 (ipa-reference.o): Depend upon gt-ipa-reference.h.
3219
3220 2009-05-31 Jason Merrill <jason@redhat.com>
3221
3222 * tree-pretty-print.c (print_call_name): Take the callee, not the
3223 call itself. Make non-static. Use dump_function_name for functions.
3224 (dump_generic_node): Adjust.
3225 * diagnostic.h: Declare print_call_name.
3226 * gimple-pretty-print.c (dump_gimple_call): Use it.
3227
3228 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
3229
3230 * config/sh/sh.md (ashldi3_std): New define_expand.
3231 (ashldi3): Use it.
3232
3233 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
3234
3235 PR target/40313
3236 * config/sh/sh.c: Include debug.h.
3237 (sh_expand_epilogue): Emit a blockage insn before the frame
3238 pointer adjustment also when dwarf2out_do_frame returns true.
3239
3240 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
3241
3242 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3243 (thumb2_extendqidi2): New pattern.
3244
3245 2009-05-31 Ira Rosen <irar@il.ibm.com>
3246
3247 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3248 mark phis for renaming.
3249 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3250 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3251 Call mark_sym_for_renaming.
3252 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
3253 * tree-vect-loop.c (vect_transform_loop): Remove
3254 vect_memsyms_to_rename initialization and a call to
3255 mark_set_for_renaming.
3256
3257 2009-05-31 Jakub Jelinek <jakub@redhat.com>
3258
3259 PR middle-end/40304
3260 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3261 frame related even if !set_cfa && style < 0.
3262
3263 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
3264
3265 * config/i386/mingw-tls.c: New file.
3266 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3267 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3268 defining _WIN32 but not __CYGWIN__.
3269
3270 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3271
3272 * configure.ac: Add MPC support.
3273
3274 * config.in, configure: Regenerate.
3275
3276 2009-05-29 Richard Henderson <rth@redhat.com>
3277
3278 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3279 NOTE_INSN_BASIC_BLOCK.
3280 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3281 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3282 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3283 to be deleted.
3284 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3285 add in_use field.
3286 (add_cfi): Disable check redefining cfa away from drap.
3287 (lookup_cfa_1): Add remember argument; handle remember/restore.
3288 (lookup_cfa): Pass remember argument.
3289 (cfa_remember): New.
3290 (compute_barrier_args_size_1): Remove sibcall check.
3291 (dwarf2out_frame_debug_def_cfa): New.
3292 (dwarf2out_frame_debug_adjust_cfa): New.
3293 (dwarf2out_frame_debug_cfa_offset): New.
3294 (dwarf2out_frame_debug_cfa_register): New.
3295 (dwarf2out_frame_debug_cfa_restore): New.
3296 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3297 (dwarf2out_begin_epilogue): New.
3298 (dwarf2out_frame_debug_restore_state): New.
3299 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3300 DW_CFA_restore_state.
3301 (output_cfi_directive): Likewise.
3302 (convert_cfa_to_fb_loc_list): Likewise.
3303 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3304 * dwarf2out.h: Update.
3305 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3306 (copy_insn_1): Early out for null.
3307 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3308 and dwarf2out_frame_debug_restore_state.
3309 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3310 (prologue_insn_hash, epilogue_insn_hash): New.
3311 (free_after_compilation): Adjust freeing accordingly.
3312 (record_insns): Create hash table if needed; push insns into
3313 hash instead of array.
3314 (maybe_copy_epilogue_insn): New.
3315 (contains): Search hash table instead of array.
3316 (sibcall_epilogue_contains): Remove.
3317 (thread_prologue_and_epilogue_insns): Split eh_return insns
3318 and mark them as epilogues.
3319 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3320 scanning in terms of basic blocks.
3321 * insn-notes.def (CFA_RESTORE_STATE): New.
3322 * jump.c (returnjump_p_1): Accept EH_RETURN.
3323 (eh_returnjump_p_1, eh_returnjump_p): New.
3324 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3325 CFA_REGISTER, CFA_RESTORE): New.
3326 * rtl.def (EH_RETURN): New.
3327 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3328
3329 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3330 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3331
3332 * config/i386/i386.c (gen_push): Update cfa state.
3333 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
3334 add a CFA_ADJUST_CFA note.
3335 (ix86_dwarf_handle_frame_unspec): Remove.
3336 (ix86_expand_prologue): Update cfa state.
3337 (ix86_emit_restore_reg_using_pop): New.
3338 (ix86_emit_restore_regs_using_pop): New.
3339 (ix86_emit_leave): New.
3340 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3341 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3342 * config/i386/i386.h (struct machine_cfa_state): New.
3343 (ix86_cfa_state): New.
3344 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3345 (eh_return_internal): Merge from eh_return_<mode>,
3346 use eh_return rtx, split w/ epilogue.
3347
3348 2009-05-29 Ian Lance Taylor <iant@google.com>
3349
3350 * builtins.c (validate_gimple_arglist): Don't use va_arg with
3351 enum type.
3352 * calls.c (emit_library_call_value_1): Likewise.
3353
3354 * c-typeck.c (c_build_va_arg): New function.
3355 * c-tree.h (c_build_va_arg): Declare.
3356 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3357 instead of build_va_arg.
3358
3359 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
3360
3361 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3362 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3363 (ptr_difference_cost): Use affine combinations to compute it.
3364 (difference_cost): Likewise.
3365 (get_computation_cost_at): Compute more accurate cost for addresses
3366 if the ratio is a multiplier allowed in addresses.
3367 For non-addresses, consider that an additional offset or symbol is
3368 added only once.
3369
3370 2009-05-29 Jakub Jelinek <jakub@redhat.com>
3371
3372 * config/i386/i386.c (ix86_decompose_address): Avoid useless
3373 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
3374
3375 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3376 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3377 (prefix_rex): For UNIT_MMX don't imply the prefix by default
3378 if MODE_DI.
3379 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3380 to 1 for TYPE_SSE{IADD1,CVT1}.
3381 (prefix_vex_imm8): Removed.
3382 (length_vex): Only pass 1 as second argument to
3383 ix86_attr_length_vex_default if prefix_extra is 0.
3384 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3385 (length): For prefix vex computation use length_immediate
3386 attribute instead of prefix_vex_imm8.
3387 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3388 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3389 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3390 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3391 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3392 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3393 a space in between the operands.
3394 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
3395 if one operand is 0xff and the other one si, di, bp or sp.
3396 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3397 other one si, di, bp or sp.
3398 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3399 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3400 type and mode attributes.
3401 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3402 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3403 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3404 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3405 prefix_data16 attribute iff MODE_DF.
3406 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3407 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3408 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3409 constm128_operand in length_immediate computation.
3410 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
3411 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3412 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3413 length_immediate attribute to 1.
3414 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3415 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3416 for certain alternatives.
3417 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3418 prefix_data16 attribute if MODE_V1DF.
3419 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3420 length_immediate to 1.
3421 (set_got_rex64, set_rip_rex64): Remove length attribute, set
3422 length_address to 4, set mode attribute to MODE_DI.
3423 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
3424 (fxam<mode>2_i387): Set length attribute to 4.
3425 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3426 *prefetch_3dnow_rex): Override length_address attribute.
3427 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3428 attributes.
3429 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3430 (constm128_operand): Removed.
3431 * config/i386/i386.c (memory_address_length): For
3432 disp && !index && !base in 64-bit mode account for SIB byte if
3433 print_operand_address can't optimize disp32 into disp32(%rip)
3434 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
3435 for fs: or gs: segment.
3436 (ix86_attr_length_immediate_default): When checking if shortform
3437 is possible, truncate immediate to the length of the non-shortened
3438 immediate.
3439 (ix86_attr_length_address_default): Ignore MEM_P operands
3440 with X constraint.
3441 (ix86_attr_length_vex_default): Only check for DImode on
3442 GENERAL_REG_P operands.
3443 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3444 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3445 (sse_cvttps2pi): Clear prefix_rep attribute.
3446 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3447 attribute.
3448 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3449 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3450 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3451 iff operand 2 is const_int_operand.
3452 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3453 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3454 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
3455 instead of vex.
3456 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3457 prefix_data16.
3458 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3459 prefix_data16 attribute for movlpd and movhpd instructions.
3460 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
3461 length_immediate for shufpd instruction.
3462 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3463 (avx_cmpp<avxmodesuffixf2c><mode>3,
3464 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3465 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3466 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
3467 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
3468 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3469 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3470 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3471 prefix_data16 attribute for the first alternative to 1.
3472 (*avx_loadlps): Override length_immediate for the first alternative.
3473 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3474 attributes for second alternative.
3475 (*vec_concatv2sf_sse4_1): Override length_immediate and
3476 prefix_data16 attributes for second alternative.
3477 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3478 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3479 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3480 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3481 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3482 prefix_data16 and length_immediate to 1.
3483 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3484 to 1.
3485 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
3486 prefix_extra attribute for variants that don't have 0f prefix alone.
3487 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
3488 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3489 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3490 *sse4_1_pextrd): Set length_immediate to 1.
3491 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
3492 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3493 to 1.
3494 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3495 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3496 length_immediate to 1 for second alternative.
3497 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3498 prefix_extra and length_immediate attributes for the first
3499 alternative.
3500 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3501 first alternative.
3502 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
3503 to 1 for the first and third alternative.
3504 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3505 alternative.
3506 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3507 attribute.
3508 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3509 attribute to 0.
3510 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3511 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3512 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3513 *avx_psign<mode>3): Set prefix_extra attribute to 1.
3514 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3515 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3516 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3517 ssse3_psign<mode>3): Override prefix_rex attribute.
3518 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
3519 (ssse3_palignrti): Override length_immediate to 1.
3520 (ssse3_palignrdi): Override length_immediate to 1, override
3521 prefix_rex attribute.
3522 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
3523 (sse4a_extrqi): Override length_immediate to 2.
3524 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
3525 (sse4a_insertq): Override prefix_data16 to 0.
3526 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3527 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3528 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3529 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3530 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3531 and length_immediate to 1.
3532 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3533 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3534 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3535 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3536 and length_immediate to 1.
3537 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3538 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3539 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3540 avx_ptest256): Override prefix_extra to 1.
3541 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3542 Override prefix_data16 and length_immediate to 1.
3543 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3544 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3545 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3546 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3547 prefix_data16 to 0 and prefix_extra to 2.
3548 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3549 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3550 attribute.
3551 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3552 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3553 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3554 and prefix_extra to 2.
3555 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3556 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3557 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3558 avx_vpermilvar<mode>3,
3559 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3560 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3561 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3562 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3563 Override prefix_extra to 1.
3564 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3565 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3566 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3567 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3568 prefix_extra and length_immediate to 1.
3569 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3570 modrm to 0.
3571 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3572 to 1 for the first alternative.
3573 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3574 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3575 cases.
3576 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3577 *movv2sf_internal_avx, *movv2sf_internal): Override
3578 prefix_rep attribute for certain alternatives.
3579 (*mov<mode>_internal): Override prefix_rep or prefix_data16
3580 attributes for certain alternatives.
3581 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3582 attributes for certain alternatives.
3583 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3584 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3585 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3586 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3587 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3588 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3589 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3590 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3591 length_immediate to 1 if operand 2 is const_int_operand.
3592 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
3593 *vec_extractv2si_1): Set length_immediate attribute to 1.
3594 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3595 using old 3DNOW insn rather than SSE/3DNOW_A.
3596 (mmx_emms, mmx_femms): Clear modrm attribute.
3597
3598 2009-05-29 Martin Jambor <mjambor@suse.cz>
3599
3600 * tree-sra.c: New implementation of SRA.
3601
3602 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3603 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3604 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3605 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3606 (SRA_MAX_STRUCTURE_COUNT): Removed.
3607 (SRA_FIELD_STRUCTURE_RATIO): Removed.
3608 * doc/invoke.texi (sra-max-structure-size): Removed.
3609 (sra-field-structure-ratio): Removed.
3610
3611 2009-05-29 Jakub Jelinek <jakub@redhat.com>
3612
3613 PR middle-end/40291
3614 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3615 before expansion.
3616
3617 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
3618
3619 PR rtl-optimization/40101
3620 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3621 seqno. Adjust comment.
3622 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
3623 inserting bookkeeping before a jump, the jump is not scheduled.
3624 When no positive seqno found, provide a value. Add comment.
3625
3626 2009-05-29 Richard Guenther <rguenther@suse.de>
3627
3628 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3629 short-cutting on the first component.
3630
3631 2009-05-29 Jakub Jelinek <jakub@redhat.com>
3632
3633 PR middle-end/39958
3634 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3635 for trees other than decls/types.
3636
3637 2009-05-29 Richard Guenther <rguenther@suse.de>
3638
3639 * tree-ssa-operands.c (get_expr_operands): Do not handle
3640 INDIRECT_REFs in the handled-component case. Remove
3641 unused get_ref_base_and_extent case.
3642 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3643 tree_low_cst and host_integerp where possible.
3644 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3645 codes for equivalence.
3646 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3647
3648 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
3649
3650 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3651 to tmake_file for i[34567]86-*-cygwin*.
3652
3653 2009-05-29 Jakub Jelinek <jakub@redhat.com>
3654
3655 PR target/40017
3656 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3657 (altivec_categorize_keyword, init_vector_keywords,
3658 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3659 similar to bool.
3660
3661 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
3662
3663 * tree.c (handle_dll_attribute): Check if node is
3664 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3665
3666 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
3667
3668 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3669 component.
3670 (thumb2_zero_extendqidi2): Likewise.
3671
3672 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3673
3674 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3675 instead of gen_movrt.
3676 * config/sh/sh.md (movrt): Remove.
3677
3678 2009-05-28 Steve Ellcey <sje@cup.hp.com>
3679
3680 * doc/invoke.texi (IA-64 Options):
3681 Add -msdata, -mfused-madd, -mno-inline-float-divide,
3682 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3683 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3684 -msched-prefer-non-control-spec-insns,
3685 -msched-stop-bits-after-every-cycle,
3686 -msched-count-spec-in-critical-path,
3687 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
3688 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
3689 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3690 and -msched-spec-verbose.
3691
3692 2009-05-28 Joseph Myers <joseph@codesourcery.com>
3693
3694 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
3695 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3696 error if used.
3697 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3698
3699 2009-05-28 Richard Guenther <rguenther@suse.de>
3700
3701 * tree-ssa-alias.c (ao_ref_init): New function.
3702 (ao_ref_base): Likewise.
3703 (ao_ref_base_alias_set): Likewise.
3704 (ao_ref_alias_set): Likewise.
3705 (refs_may_alias_p_1): Change signature.
3706 (refs_may_alias_p): Adjust.
3707 (refs_anti_dependent_p): Likewise.
3708 (refs_output_dependent_p): Likewise.
3709 (call_may_clobber_ref_p_1): Change signature.
3710 (call_may_clobber_ref_p): Adjust.
3711 (stmt_may_clobber_ref_p_1): New function split out from ...
3712 (stmt_may_clobber_ref_p): ... here.
3713 (maybe_skip_until): Adjust signature.
3714 (get_continuation_for_phi): Likewise.
3715 (walk_non_aliased_vuses): Likewise.
3716 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3717 (ao_ref_init): Declare.
3718 (ao_ref_base): Likewise.
3719 (ao_ref_alias_set): Likewise.
3720 (stmt_may_clobber_ref_p_1): Likewise.
3721 (walk_non_aliased_vuses): Adjust.
3722 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3723 (get_ref_from_reference_ops): remove.
3724 (vn_reference_lookup_2): Adjust signature.
3725 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
3726 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3727 (vn_reference_lookup): Adjust.
3728 (vn_reference_insert): Likewise.
3729 (vn_reference_insert_pieces): Adjust signature.
3730 (visit_reference_op_call): Adjust.
3731 * tree-ssa-pre.c (get_expr_type): Simplify.
3732 (phi_translate_1): Adjust.
3733 (compute_avail): Likewise.
3734 (translate_vuse_through_block): Do not re-build trees.
3735 (value_dies_in_block_x): Likewise.
3736 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3737 fields.
3738 (vn_reference_lookup_pieces): Adjust declaration.
3739 (vn_reference_insert_pieces): Likewise.
3740
3741 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
3742
3743 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3744 with checking disabled.
3745
3746 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
3747
3748 PR target/37216
3749
3750 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
3751 macro definition for support of three-operand format aligned
3752 .comm directive in assembler on cygwin/pe/mingw target OS.
3753 * configure: Regenerate.
3754 * config.h: Regenerate.
3755
3756 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
3757 aligned form of .comm directive if -mpe-aligned-commons is in effect.
3758 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
3759
3760 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
3761 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
3762
3763 2009-05-28 Ira Rosen <irar@il.ibm.com>
3764
3765 PR tree-optimization/40254
3766 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3767 in analysis of basic blocks.
3768
3769 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
3770
3771 PR middle-end/33699
3772 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
3773 * target-def.h (TARGET_CONST_ANCHOR): New macro.
3774 (TARGET_INITIALIZER): Use it.
3775 * cse.c (CHEAPER): Move it up to the other macros.
3776 (insert): Rename this ...
3777 (insert_with_costs): ... to this. Add cost parameters. Update
3778 function comment.
3779 (insert): New function. Call insert_with_costs.
3780 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3781 find_reg_offset_for_const, try_const_anchors): New functions.
3782 (cse_insn): Call try_const_anchors. Adjust cost of src_related
3783 when using a const-anchor. Call insert_const_anchors.
3784 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
3785 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3786
3787 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
3788
3789 * tree-inline.c (remap_decls): Enable nonlocalized variables
3790 when not optimizing.
3791
3792 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
3793
3794 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3795 Simplify other tests involving optimize.
3796
3797 2009-05-27 Tom Tromey <tromey@redhat.com>
3798
3799 * unwind-dw2.c (_Unwind_DebugHook): New function.
3800 (uw_install_context): Call _Unwind_DebugHook.
3801
3802 2009-05-27 Tom Tromey <tromey@redhat.com>
3803
3804 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3805
3806 2009-05-27 Ian Lance Taylor <iant@google.com>
3807
3808 * Makefile.in (LINKER, LINKER_FLAGS): Define.
3809 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3810 (ALL_LINKERFLAGS): Define.
3811 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3812 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3813 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3814 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3815 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3816 $(LINKER_FOR_BUILD).
3817 (build/gcov-iov$(build_exeext)): Likewise.
3818
3819 2009-05-27 Julian Brown <julian@codesourcery.com>
3820
3821 * gcse.c (target.h): Include.
3822 (can_assign_to_reg_without_clobbers_p): Check that the target allows
3823 copy of argument to a pseudo register.
3824
3825 2009-05-27 Diego Novillo <dnovillo@google.com>
3826
3827 * tree-ssa-live.c (dump_scope_block): Document arguments.
3828 (dump_scope_blocks): Document.
3829 (debug_scope_blocks): New.
3830 * tree-flow.h (debug_scope_blocks): Declare.
3831
3832 2009-05-21 Denis Chertykov <denisc@overta.ru>
3833
3834 * doc/contrib.texi (Contributors): Add myself to the list.
3835
3836 2009-05-27 Olivier Hainque <hainque@adacore.com>
3837
3838 * expr.c (target_align): New function. Alignment the TARGET of an
3839 assignment may be assume to have.
3840 (highest_pow2_factor_for_target): Use it instead of relying on
3841 immediate tree attributes of TARGET, not necessarily honored when
3842 intermediate bitfields are involved.
3843
3844 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
3845
3846 PR target/40266
3847 * config/i386/driver-i386.c (host_detect_local_cpu): Support
3848 AVX, SSE4, AES, PCLMUL and POPCNT.
3849
3850 2009-05-27 Diego Novillo <dnovillo@google.com>
3851
3852 * tree-pretty-print.c (dump_location): New.
3853 (dump_generic_node): Call it.
3854 Factor code to handle BLOCK nodes ...
3855 (dump_block_node): ... here.
3856
3857 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
3858
3859 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3860 with it.
3861 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3862 included.
3863 * gcc-plugin.h: Include config.h and system.h.
3864 (IN_GCC): Define if not defined.
3865
3866 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
3867
3868 PR middle-end/40249
3869 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3870 with -fno-inline.
3871
3872 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
3873
3874 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3875 applicable.
3876 * config/m32r/m32r.h: Ditto.
3877 * config/m32r/m32r.md: Ditto.
3878 * config/m32r/predicates.md: Ditto.
3879
3880 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
3881
3882 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3883
3884 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
3885
3886 * doc/plugins.texi
3887 (Loading plugins): typo.
3888 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3889 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3890 (Interacting with the GCC Garbage Collector): Added new section.
3891 (Giving information about a plugin): Added new section for
3892 PLUGIN_INFO.
3893 * ggc.h (ggc_register_root_tab): Added declaration.
3894 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3895 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3896 (register_callback): Improved comment in declaration.
3897 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3898 (extra_root_vec) Added static variable for dynamic roots registration.
3899 (ggc_register_root_tab) Added new routine.
3900 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3901 PLUGIN_GGC_MARKING event.
3902 * ggc-zone.c: Include plugin.h.
3903 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3904 * ggc-page.c: Include plugin.h.
3905 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3906 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3907 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3908 (register_callback): check lack of callbacks for
3909 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3910 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3911 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3912 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3913 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3914 dependency on plugin.h.
3915 (plugin.o): Added dependency on ggc.h...
3916
3917 2009-05-26 Richard Guenther <rguenther@suse.de>
3918
3919 PR middle-end/40248
3920 Revert
3921 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3922 with mismatched comparison modes.
3923
3924 * expr.c (expand_expr_real_1): Expand the operand of a
3925 VIEW_CONVERT_EXPR in its natural mode.
3926
3927 2009-05-26 Ian Lance Taylor <iant@google.com>
3928
3929 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3930 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3931 (ALL_COMPILERFLAGS): Define.
3932 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3933 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3934 (collect2$(exeext), collect2.o): Likewise.
3935 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3936 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3937 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3938 (libbackend.o, intl.o, cppdefault.o): Likewise.
3939 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3940 (build/%.o): Use $(COMPILER_FOR_BUILD).
3941 (build/gen%$(build_exeext)): Likewise.
3942 (build/gcov-iov$(build_exeext)): LIkewise.
3943 * config/t-darwin (darwin.o): Use $(COMPILER).
3944 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3945 * config/t-sol2 (sol2-c.o): Likewise.
3946 (sol2.o): Likewise.
3947 * config/t-vxworks (vxworks.o): Likewise.
3948 * config/x-darwin (host-darwin.o): Likewise.
3949 * config/x-hpux (host-hpux.o): Likewise.
3950 * config/x-linux (host-linux.o): Likewise.
3951 * config/x-solaris (host-solaris.o): Likewise.
3952 * config/alpha/x-alpha (driver-alpha.o): Likewise.
3953 * config/arm/t-arm (arm-c.o): Likewise.
3954 * config/arm/t-pe (pe.o): Likewise.
3955 * config/arm/t-wince-pe (pe.o): Likewise.
3956 * config/i386/t-cygming (winnt.o): Likewise.
3957 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3958 * config/i386/t-cygwin (cygwin1.o): Likewise.
3959 (cygwin2.o): Likewise.
3960 * config/i386/t-i386 (i386-c.o): Likewise.
3961 * config/i386/t-interix (winnt.o): Likewise.
3962 * config/i386/t-netware (netware.o): Likewise.
3963 * config/i386/t-nwld (nwld.o): Likewise.
3964 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3965 * config/i386/x-i386 (driver-i386.o): Likewise.
3966 * config/i386/x-cygwin (host-cygwin.o): Likewise.
3967 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3968 * config/ia64/t-ia64 (ia64-c.o): Likewise.
3969 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3970 * config/mips/x-native (driver-native.o): Likewise.
3971 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3972 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3973 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3974 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3975 * config/score/t-score-elf (score7.o): Likewise.
3976 (score3.o): Likewise.
3977 * config/sh/t-sh (sh-c.o): Likewise.
3978 * config/sh/t-symbian (sh-c.o): Likewise.
3979 (symbian.o): Likewise.
3980 * config/spu/t-spu-elf (spu-c.o): Likewise.
3981 * config/v850/t-v850 (v850-c.o): Likewise.
3982 * config/v850/t-v850e (v850-c.o): Likewise.
3983
3984 2009-05-26 Richard Guenther <rguenther@suse.de>
3985
3986 PR tree-optimization/40122
3987 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3988 VECTOR_CSTs if possible.
3989 (fold_gimple_assign): Likewise.
3990
3991 2009-05-26 Richard Guenther <rguenther@suse.de>
3992
3993 PR middle-end/40252
3994 * fold-const.c (fold_binary): Use the correct types for building
3995 rotates.
3996
3997 2009-05-26 Richard Guenther <rguenther@suse.de>
3998
3999 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
4000 redundant calls to merge_alias_info.
4001 (bump_vector_ptr): Likewise.
4002 * tree-ssa-copy.c (merge_alias_info): Remove.
4003 (replace_exp_1): Remove call to merge_alias_info.
4004 (propagate_tree_value): Likewise.
4005 (fini_copy_prop): Propagate points-to info.
4006 * tree-flow.h (merge_alias_info): Remove.
4007
4008 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4009
4010 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
4011
4012 2009-05-25 Jan Hubicka <jh@suse.cz>
4013
4014 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4015 * cgraph.h (struct inline_summary): New filed self_wize,
4016 size_inlining_benefit, self_time and time_inlining_benefit.
4017 (struct cgraph_global_info): Replace insns by time ans size fields.
4018 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4019 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4020 (ipcp_update_callgraph): Do not touch function bodies.
4021 * ipa-inline.c: Include except.h
4022 (MAX_TIME): New constant.
4023 (overall_insns): Remove.
4024 (leaf_node_p): New.
4025 (overall_size, max_benefit): New static variables.
4026 (cgraph_estimate_time_after_inlining): New function.
4027 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4028 (cgraph_clone_inlined_nodes): Update size.
4029 (cgraph_mark_inline_edge): Update size.
4030 (cgraph_estimate_growth): Use size info.
4031 (cgraph_check_inline_limits): Check size.
4032 (cgraph_default_inline_p): Likewise.
4033 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4034 (cgraph_decide_recursive_inlining): Check size.
4035 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4036 and times.
4037 (cgraph_decide_inlining): Likewise.
4038 (cgraph_decide_inlining_incrementally): Likewise; honor
4039 PARAM_EARLY_INLINING_INSNS.
4040 (likely_eliminated_by_inlining_p): New predicate.
4041 (estimate_function_body_sizes): New function.
4042 (compute_inline_parameters): Use it.
4043 * except.c (must_not_throw_labels): New function.
4044 * except.h (must_not_throw_labels): Declare.
4045 * tree-inline.c (init_inline_once): Kill inlining_weigths
4046 * tree-ssa-structalias.c: Avoid uninitialized warning.
4047 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4048 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4049 (PARAM_INLINE_CALL_COST): Remove.
4050 (PARAM_EARLY_INLINING_INSNS): New.
4051
4052 2009-05-25 Richard Guenther <rguenther@suse.de>
4053
4054 PR tree-optimization/36327
4055 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
4056 callback for reference translation or lookup at the point of may-defs.
4057 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
4058 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
4059 for union COMPONENT_REFs.
4060 (vn_reference_lookup_3): New callback. Lookup from memset
4061 and CONSTRUCTOR assignment, translate through struct copies.
4062 (vn_reference_lookup_pieces): Make sure to not free the
4063 passed operands array. Adjust walk_non_aliased_vuses call.
4064 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
4065 make sure we do not leak memory.
4066
4067 2009-05-25 Richard Guenther <rguenther@suse.de>
4068
4069 * tree-ssa-alias.h (dump_points_to_solution): Declare.
4070 * tree-inline.c (expand_call_inline): Reset the escaped and
4071 callused solutions.
4072 * tree-ssa-structalias.c (pass_build_ealias): New.
4073 * tree-pass.h (pass_build_ealias): Declare.
4074 * passes.c (init_optimization_passes): Add PTA during
4075 early optimizations.
4076 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
4077 and CALLUSED solutions.
4078 (dump_points_to_solution): New function, split out from ...
4079 (dump_points_to_info_for): ... here.
4080 * tree-parloops.c (parallelize_loops): Reset the escaped and
4081 callused solutions.
4082
4083 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4084
4085 PR bootstrap/40027
4086 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
4087 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
4088
4089 2009-05-25 Ira Rosen <irar@il.ibm.com>
4090
4091 PR tree-optimization/40238
4092 * tree-vect-stmts.c (vect_init_vector): Insert initialization
4093 statements after basic block's labels.
4094 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
4095 to free the allocated memory.
4096
4097 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
4098
4099 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
4100 return address with a USE.
4101
4102 2009-05-24 Richard Guenther <rguenther@suse.de>
4103
4104 PR middle-end/40233
4105 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
4106 array type from the main variant of the inner type.
4107
4108 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4109
4110 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
4111 definition to bool (from int) to un-break build.
4112 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
4113
4114 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
4115
4116 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
4117 discard_stmt_changes): Delete.
4118 * tree-ssa-operands.c (scb_stack): Delete.
4119 (init_ssa_operands): Do not initialize it.
4120 (fini_ssa_operands): Do not free it.
4121 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
4122
4123 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
4124 update_stmt, remove the others. Fix comments.
4125 * tree-dfa.c (optimize_stack_restore): Likewise.
4126 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
4127 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
4128 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4129 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
4130 Likewise.
4131 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
4132 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
4133 (dom_opt_finalize_block): Likewise, adjusting access to
4134 stmts_to_rescan.
4135 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
4136 (stmts_to_rescan): Change item type to gimple.
4137 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
4138
4139 2009-05-24 Ira Rosen <irar@il.ibm.com>
4140
4141 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
4142 * tree-pass.h (pass_slp_vectorize): New pass.
4143 * params.h (SLP_MAX_INSNS_IN_BB): Define.
4144 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
4145 * tree-vectorizer.c (timevar.h): Include.
4146 (user_vect_verbosity_level): Declare.
4147 (vect_location): Fix comment.
4148 (vect_set_verbosity_level): Update user_vect_verbosity_level
4149 instead of vect_verbosity_level.
4150 (vect_set_dump_settings): Add an argument. Ignore user defined
4151 verbosity if dump flags require higher level of verbosity. Print to
4152 stderr only for loop vectorization.
4153 (vectorize_loops): Update call to vect_set_dump_settings.
4154 (execute_vect_slp): New function.
4155 (gate_vect_slp): Likewise.
4156 (struct gimple_opt_pass pass_slp_vectorize): New.
4157 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
4158 access its members.
4159 (vec_info_for_bb): New function.
4160 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
4161 (VECTORIZATION_ENABLED): New macro.
4162 (SLP_ENABLED, SLP_DISABLED): Likewise.
4163 (vect_is_simple_use): Add bb_vec_info argument.
4164 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
4165 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
4166 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
4167 vect_schedule_slp, vect_analyze_slp): Likewise.
4168 (vect_analyze_stmt): Add slp_tree argument.
4169 (find_bb_location): Declare.
4170 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4171 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
4172 (vect_analyze_loop_operations, vect_analyze_loop,
4173 get_initial_def_for_induction, vect_create_epilog_for_reduction,
4174 vect_finalize_reduction, vectorizable_reduction,
4175 vectorizable_live_operation, vect_transform_loop): Likewise.
4176 * tree-data-ref.c (dr_analyze_innermost): Update comment,
4177 skip evolution analysis if analyzing a basic block.
4178 (dr_analyze_indices): Likewise.
4179 (initialize_data_dependence_relation): Skip the test whether the
4180 object is invariant for basic blocks.
4181 (compute_all_dependences): Skip dependence analysis for data
4182 references in basic blocks.
4183 (find_data_references_in_stmt): Don't fail in case of invariant
4184 access in basic block.
4185 (find_data_references_in_bb): New function.
4186 (find_data_references_in_loop): Move code to
4187 find_data_references_in_bb and add a call to it.
4188 (compute_data_dependences_for_bb): New function.
4189 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
4190 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
4191 that STEP is 0.
4192 (vect_analyze_data_ref_dependence): Check for interleaving in case of
4193 unknown dependence in basic block and fail in case of dependence in
4194 basic block.
4195 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
4196 dependence instances from either loop or basic block vectorization
4197 info.
4198 (vect_compute_data_ref_alignment): Check if it is loop vectorization
4199 before calling nested_in_vect_loop_p.
4200 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
4201 dependence instances from either loop or basic block vectorization
4202 info.
4203 (vect_verify_datarefs_alignment): Likewise.
4204 (vect_enhance_data_refs_alignment): Adjust function calls.
4205 (vect_analyze_data_refs_alignment): Likewise.
4206 (vect_analyze_group_access): Fix printing. Skip different checks if
4207 DR_STEP is 0. Keep strided stores either in loop or basic block
4208 vectorization data structure. Fix indentation.
4209 (vect_analyze_data_ref_access): Fix comments, allow zero step in
4210 basic blocks.
4211 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
4212 dependence instances from either loop or basic block vectorization
4213 info.
4214 (vect_analyze_data_refs): Update comment. Call
4215 compute_data_dependences_for_bb to analyze basic blocks.
4216 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
4217 case of loop vectorization. In case of basic block vectorization use
4218 data-ref itself as a base.
4219 (vect_create_data_ref_ptr): In case of basic block vectorization:
4220 don't advance the pointer, add new statements before the current
4221 statement. Adjust function calls.
4222 (vect_supportable_dr_alignment): Support only aligned accesses in
4223 basic block vectorization.
4224 * common.opt (ftree-slp-vectorize): New flag.
4225 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
4226 (vect_pattern_recog_1): Likewise.
4227 * tree-vect-stmts.c (process_use): Likewise.
4228 (vect_init_vector): Add new statements in the beginning of the basic
4229 block in case of basic block SLP.
4230 (vect_get_vec_def_for_operand): Adjust function calls.
4231 (vect_finish_stmt_generation): Likewise.
4232 (vectorizable_call): Add assert that it is loop vectorization, adjust
4233 function calls.
4234 (vectorizable_conversion, vectorizable_assignment): Likewise.
4235 (vectorizable_operation): In case of basic block SLP, take
4236 vectorization factor from statement's type and skip the relevance
4237 check. Adjust function calls.
4238 (vectorizable_type_demotion): Add assert that it is loop
4239 vectorization, adjust function calls.
4240 (vectorizable_type_promotion): Likewise.
4241 (vectorizable_store): Check for outer loop only in case of loop
4242 vectorization. Adjust function calls. For basic blocks, skip the
4243 relevance check and don't advance pointers.
4244 (vectorizable_load): Likewise.
4245 (vectorizable_condition): Add assert that it is loop vectorization,
4246 adjust function calls.
4247 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
4248 that it is not reduction, get vector type, call only supported
4249 functions, skip loop specific parts.
4250 (vect_transform_stmt): Check for outer loop only in case of loop
4251 vectorization.
4252 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
4253 (vect_is_simple_use): Fix comment, add new argument, fix conditions
4254 for external definition.
4255 * passes.c (pass_slp_vectorize): New pass.
4256 * tree-vect-slp.c (find_bb_location): New function.
4257 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
4258 check for patterns only in loops.
4259 (vect_build_slp_tree): Add argument, adjust function calls, fail in
4260 case of multiple types in basic block SLP.
4261 (vect_mark_slp_stmts_relevant): New function.
4262 (vect_supported_load_permutation_p): Fix comment.
4263 (vect_analyze_slp_instance): Add argument. In case of basic block
4264 SLP, take vectorization factor from statement's type, check that
4265 unrolling factor is 1. Adjust function call. Save SLP instance in
4266 either loop or basic block vectorization structure. Return FALSE,
4267 if SLP failed.
4268 (vect_analyze_slp): Add argument. Get strided stores groups from
4269 either loop or basic block vectorization structure. Return FALSE
4270 if basic block SLP failed.
4271 (new_bb_vec_info): New function.
4272 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
4273 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
4274 (vect_schedule_slp): Add argument. Get SLP instances from either
4275 loop or basic block vectorization structure. Set vectorization factor
4276 to be 1 for basic block SLP.
4277 (vect_slp_transform_bb): New function.
4278 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
4279
4280 2009-05-23 Mark Mitchell <mark@codesourcery.com>
4281
4282 * final.c (shorten_branches): Do not align labels for jump tables.
4283 (final_scan_insn): Use JUMP_TABLE_DATA_P.
4284
4285 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
4286
4287 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
4288 Remove outdated reference to flow.c and fix nits.
4289 * doc/gccint.texi: Tweak RTL description.
4290 * doc/rtl.texi: Likewise.
4291
4292 2009-05-23 Denis Chertykov <chertykov@gmail.com>
4293
4294 * config/avr/avr.c: Change my email address.
4295 * config/avr/avr.h: Likewise.
4296 * config/avr/avr.md: Likewise.
4297 * config/avr/avr-protos.h: Likewise.
4298 * config/avr/libgcc.S: Likewise.
4299
4300 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4301
4302 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
4303 (spu_split_load, spu_split_store): Change return type to int.
4304 (spu_split_convert): Declare.
4305 * config/spu/predicates.md (spu_mem_operand): Remove.
4306 (spu_mov_operand): Update.
4307 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
4308 * config/spu/spu.c (regno_aligned_for_load): Remove.
4309 (reg_aligned_for_addr, spu_expand_load): Define.
4310 (spu_expand_extv): Reimplement and handle MEM.
4311 (spu_expand_insv): Handle MEM.
4312 (spu_sched_reorder): Handle insn's with length 0.
4313 (spu_legitimate_address_p): Reimplement.
4314 (store_with_one_insn_p): Return TRUE for any mode with size
4315 larger than 16 bytes.
4316 (address_needs_split): Define.
4317 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
4318 operands.
4319 (spu_convert_move): Define.
4320 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
4321 (spu_split_store): Change all MEM's to TImode.
4322 (spu_init_expanders): Preallocate registers that correspond to
4323 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
4324 mark_reg_pointer.
4325 (spu_split_convert): Define.
4326 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
4327 (_move<mode>, _movdi, _movti): Update predicate and condition.
4328 (load, store): Change to define_split.
4329 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
4330 extend<mode>ti2.
4331 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
4332 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
4333 define_insn_and_split of lshr<mode>3.
4334 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
4335 (<v>ashr<mode>3_imm): Define.
4336 (extv, extzv, insv): Allow MEM operands.
4337 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
4338 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
4339 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
4340 (_spu_convert2): Change to define_insn_and_split and remove the
4341 corresponding define_peephole2.
4342 (stack_protect_set, stack_protect_test, stack_protect_test_si):
4343 Change predicates to memory_operand.
4344
4345 2009-05-22 Mark Mitchell <mark@codesourcery.com>
4346
4347 * config/arm/thumb2.md: Add 16-bit multiply instructions.
4348
4349 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4350
4351 PR tree-optimization/40219
4352 * tree.c (iterative_hash_expr): Make sure the builtin function is
4353 a normal builtin function and not a front end or back end builtin
4354 before indexing into the built_in_decls array.
4355
4356 2009-05-22 Richard Guenther <rguenther@suse.de>
4357
4358 PR middle-end/38964
4359 * alias.c (write_dependence_p): Do not use TBAA for answering
4360 anti-dependence or output-dependence.
4361 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4362 (emit_pointer_definition): Remove.
4363 (emit_alias_warning): Likewise.
4364 (find_what_var_points_to): Remove TBAA pruning code.
4365 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
4366 violations.
4367 (compute_points_to_sets): Remove code computing the set of
4368 dereferenced pointers.
4369 * tree-data-ref.c (dr_may_alias_p): Properly use the split
4370 oracle for querying anti and output dependencies.
4371 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4372 if TBAA may be applied.
4373 (refs_anti_dependent_p): New function.
4374 (refs_output_dependent_p): Likewise.
4375 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4376 (refs_output_dependent_p): Likewise.
4377 * doc/tree-ssa.texi (Memory model): New section.
4378 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4379 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4380 * cfgexpand.c (expand_gimple_basic_block): Do not handle
4381 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4382 * expr.c (expand_expr_real_1): Likewise.
4383 * gimple-low.c (lower_stmt): Likewise.
4384 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4385 (dump_gimple_cdt): Remove.
4386 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4387 (gimple_size): Likewise.
4388 (walk_gimple_op): Likewise.
4389 (is_gimple_stmt): Likewise.
4390 (walk_stmt_load_store_addr_ops): Likewise.
4391 (gimple_build_cdt): Remove.
4392 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4393 * gimple.h (gimple_cdt_new_type): Remove.
4394 (gimple_cdt_new_type_ptr): Likewise.
4395 (gimple_cdt_set_new_type): Likewise.
4396 (gimple_cdt_location): Likewise.
4397 (gimple_cdt_location_ptr): Likewise.
4398 (gimple_cdt_set_location): Likewise.
4399 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4400 * tree-cfg.c (remove_useless_stmts_1): Do not handle
4401 GIMPLE_CHANGE_DYNAMIC_TYPE.
4402 (verify_types_in_gimple_stmt): Likewise.
4403 * tree-inline.c (estimate_num_insns): Likewise.
4404 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4405 (copy_decl_to_var): Likewise.
4406 (copy_result_decl_to_var): Likewise.
4407 * tree-pretty-print.c (dump_generic_node): Do not handle
4408 CHANGE_DYNAMIC_TYPE_EXPR.
4409 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4410 * tree-ssa-operands.c (get_expr_operands): Likewise.
4411 * tree-ssa-structalias.c (struct variable_info): Remove
4412 no_tbaa_pruning member.
4413 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4414 (unify_nodes): Do not copy it.
4415 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4416 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4417 (set_uids_in_ptset): Do not check it.
4418 (find_what_var_points_to): Likewise.
4419 (compute_tbaa_pruning): Remove.
4420 (compute_points_to_sets): Do not call it.
4421 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4422 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4423 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4424 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4425 (DECL_NO_TBAA_P): Likewise.
4426 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4427 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4428 (expand_omp_atomic_pipeline): Do not set it.
4429 * print-tree.c (print_node): Do not dump it.
4430 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4431 redundant check.
4432
4433 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4434
4435 PR target/39856
4436 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4437 for clobber.
4438
4439 2009-05-22 Mark Mitchell <mark@codesourcery.com>
4440
4441 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4442 non-external.
4443
4444 2009-05-22 Ben Elliston <bje@au.ibm.com>
4445
4446 * Makefile.in (bversion.h, s-bversion): New targets.
4447 (TOPLEV_H): Add bversion.h.
4448 * toplev.h: Include "bversion.h".
4449 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4450 the __format__ attribute only if compiling with the same version
4451 of GCC as the sources (the "build version").
4452
4453 2009-05-22 Ben Elliston <bje@au.ibm.com>
4454
4455 * c-format.c (handle_format_attribute): Fix comment typo.
4456
4457 2009-05-21 Steve Ellcey <sje@cup.hp.com>
4458
4459 PR target/37846
4460 * config/ia64/ia64.opt (mfused-madd): New.
4461 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4462 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4463 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4464 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4465 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4466 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4467 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4468 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
4469 instruction if !TARGET_FUSED_MADD.
4470 (fpma, fpms): Remove colon from name.
4471
4472 2009-05-22 Richard Guenther <rguenther@suse.de>
4473
4474 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4475 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
4476 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4477 TARGET_MEM_REF.
4478 (create_expression_by_pieces): Only convert if necessary.
4479 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4480 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4481
4482 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
4483
4484 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4485 regular pattern from a template and rename it ...
4486 (*extzv_truncsi_exts): ... to this.
4487
4488 2009-05-21 Richard Guenther <rguenther@suse.de>
4489
4490 * cgraph.h (struct cgraph_node): Remove inline_decl member.
4491 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4492 (cgraph_default_inline_p): Likewise.
4493 (cgraph_decide_inlining_incrementally): Likewise.
4494
4495 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
4496 Uros Bizjak <ubizjak@gmail.com>
4497
4498 * config/i386/cpuid.h (bit_MOVBE): New.
4499
4500 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4501
4502 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4503 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4504 (ix86_handle_option): Handle OPT_mmovbe.
4505 (ix86_target_string): Add -mmovbe.
4506 (pta_flags): Add PTA_MOVBE.
4507 (processor_alias_table): Add PTA_MOVBE to "atom".
4508 (override_options): Handle PTA_MOVBE.
4509
4510 * config/i386/i386.h (TARGET_MOVBE): New.
4511
4512 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4513 (*bswapsi_movbe): New.
4514 (*bswapdi_movbe): Likewise.
4515 (bswapdi2): Renamed to ...
4516 (*bswapdi_1): This.
4517 (bswapdi2): New expander.
4518
4519 * config/i386/i386.opt (mmovbe): New.
4520
4521 * doc/invoke.texi: Document -mmovbe.
4522
4523 2009-05-21 Taras Glek <tglek@mozilla.com>
4524
4525 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4526 * gcc-plugin.h (plugin_init): Updated signature.
4527 * gcc-plugin.h (plugin_name_args): Moved to this header.
4528 * doc/plugins.texi (plugin_init): Updated documention to reflect
4529 API change.
4530 * doc/plugins.texi (plugin_name_args): Added to documention.
4531
4532 2009-05-21 Mark Mitchell <mark@codesourcery.com>
4533
4534 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4535 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4536
4537 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
4538
4539 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4540 JUMP_TABLE_DATA_P predicates where applicable.
4541 * config/i386/predicates.md: Ditto.
4542 * config/i386/sse.md: Ditto.
4543
4544 2009-05-21 Jakub Jelinek <jakub@redhat.com>
4545
4546 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4547 operand2 -128 override length_immediate attribute to 1.
4548 * config/i386/predicates.md (constm128_operand): New predicate.
4549
4550 * config/i386/i386.c (memory_address_length): Handle %r12
4551 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
4552 also check REGNO.
4553 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4554 mode look through optional ZERO_EXTEND and SUBREG.
4555 * config/i386/i386.md (R12_REG): New define_constant.
4556 (prefix_data16): For sse unit set also for MODE_TI insns.
4557 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
4558 insns set if operand 1 is ext_QIreg_operand.
4559 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
4560 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4561 immediate.
4562 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4563 mode from MODE_DI to MODE_SI.
4564 (movdi_1_rex64): Override modrm and length_immediate attributes
4565 only for movabs (TYPE_IMOV, alternative 2).
4566 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4567 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4568 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4569 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4570 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4571 prefix_rex attribute if DImode.
4572 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4573 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4574 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4575 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4576 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4577 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4578 Likewise. For TYPE_IMOV clear length_immediate attribute.
4579 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4580 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4581 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4582 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4583 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4584 or one operand TYPE_ISHIFT.
4585 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4586 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4587 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4588 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4589 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4590 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4591 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4592 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4593 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4594 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4595 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4596 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4597 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4598 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4599 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4600 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4601 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4602 set mode attribute, don't override length attribute.
4603 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4604 to 1.
4605 (return_internal_long): Set length attribute to 2 instead of 1.
4606 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4607 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4608 prefix_rex attribute.
4609 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4610 New predicates.
4611 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
4612
4613 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4614
4615 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4616
4617 2009-05-20 Ian Lance Taylor <iant@google.com>
4618
4619 * tree.c (build_tree_list_vec_stat): New function.
4620 (ctor_to_vec): New function.
4621 (build_nt_call_vec): New function.
4622 (build_call_array): Change args to be a const pointer.
4623 (build_call_vec): New function.
4624 * tree.h (build_nt_call_vec): Declare.
4625 (build_tree_list_vec_stat): Declare.
4626 (build_tree_list_vec): Define.
4627 (build_call_array): Update declaration.
4628 (build_call_vec): Declare.
4629 (ctor_to_vec): Declare.
4630 * c-common.c (tree_vector_cache): New static variable.
4631 (make_tree_vector): New function.
4632 (release_tree_vector): New function.
4633 (make_tree_vector_single): New function.
4634 (make_tree_vector_copy): New function.
4635 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4636 (make_tree_vector_single, make_tree_vector_copy): Declare.
4637 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4638 (c_parser_expr_list): Don't manage cache here, instead call
4639 make_tree_vector.
4640 (c_parser_release_expr_list): Remove static function.
4641 (c_parser_vec_to_tree_list): Remove static function.
4642 (c_parser_attributes): Call build_tree_list_vec instead of
4643 c_parser_vec_to_tree_list. Call release_tree_vector instead of
4644 c_parser_release_expr_list.
4645 (c_parser_postfix_expression_after_primary): Likewise.
4646 (c_parser_objc_keywordexpr): Likewise.
4647
4648 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
4649
4650 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4651 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4652 TARGET_CONVERT_TO_TYPE.
4653 * hooks.c (hook_tree_const_tree_null): Define.
4654 * hooks.h (hook_tree_const_tree_null): Declare.
4655 * target.h (struct gcc_target): Add invalid_parameter_type,
4656 invalid_return_type, promoted_type, and convert_to_type fields.
4657 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4658 (TARGET_INVALID_RETURN_TYPE): Define.
4659 (TARGET_PROMOTED_TYPE): Define.
4660 (TARGET_CONVERT_TO_TYPE): Define.
4661 (TARGET_INITIALIZER): Update for new fields.
4662 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4663 (grokparms): Check targetm.invalid_parameter_type.
4664 * c-typeck.c (default_conversion): Check targetm.promoted_type.
4665 * c-convert.c (convert): Check targetm.convert_to_type.
4666
4667 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
4668
4669 * config/mips/mips.md (*extenddi_truncate<mode>,
4670 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
4671 defintions.
4672 (*extendhi_truncateqi): New define_insn_and_sptit.
4673
4674 2009-05-20 Jakub Jelinek <jakub@redhat.com>
4675
4676 PR middle-end/40204
4677 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
4678 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
4679
4680 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
4681
4682 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4683 the operand of VIEW_CONVERT_EXPR.
4684
4685 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
4686
4687 * config/i386/driver-i386.c (host_detect_local_cpu): Check
4688 extended family and model for Intel processors. Support Intel Atom.
4689
4690 2009-05-20 Olivier Hainque <hainque@adacore.com>
4691
4692 * gstab.h (stab_code_type): Define, to be used instead of the
4693 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
4694 notice.
4695 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4696 occurrences by stab_code_type.
4697 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4698
4699 2009-05-20 Martin Jambor <mjambor@suse.cz>
4700
4701 * tree-flow.h (insert_edge_copies_seq): Undeclare.
4702 (sra_insert_before): Likewise.
4703 (sra_insert_after): Likewise.
4704 (sra_init_cache): Likewise.
4705 (sra_type_can_be_decomposed_p): Likewise.
4706 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4707 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4708 (sra_insert_before): Likewise.
4709 (sra_insert_after): Likewise.
4710 (sra_init_cache): Likewise.
4711 (insert_edge_copies_seq): Made static and moved upwards.
4712
4713 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4714 case.
4715
4716 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4717
4718 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4719 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4720 simple copies.
4721
4722 2009-05-20 Richard Guenther <rguenther@suse.de>
4723
4724 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4725 with mismatched comparison modes.
4726
4727 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4728
4729 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
4730 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4731 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4732 with shifts for Thumb2.
4733 (orsi_notsi): New for orn.
4734 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4735 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4736 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4737 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4738 Don't invert remainder for IOR.
4739
4740 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
4741
4742 PR tree-optimization/40087
4743 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4744 number_of_iterations_ne): Rename never_infinite argument.
4745 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4746 number_of_iterations_le): Handle pointer-type ivs when
4747 exit_must_be_taken is false.
4748 (number_of_iterations_cond): Do not always assume that
4749 exit_must_be_taken if the control variable is a pointer.
4750
4751 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4752
4753 * c-typeck.c (build_binary_op): Allow % on integal vectors.
4754 * doc/extend.texi (Vector Extension): Document that % is allowed too.
4755
4756 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
4757
4758 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4759 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4760
4761 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4762
4763 PR c/40172
4764 * c.opt (Wlogical-op): Disabled by default.
4765 * c-opt (c_common_post_options): Do not enable Wlogical-op with
4766 Wextra.
4767 * doc/invoke.texi (Wlogical-op): Likewise.
4768
4769 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
4770
4771 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4772 into CASE_CONVERT.
4773 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4774 Propagate the type of the first operand.
4775 <ASSERT_EXPR>: Simplify.
4776 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4777 Rewrite using the RHS code as discriminant.
4778 <NOP_EXPR>: Turn into CASE_CONVERT.
4779 <PLUS_EXPR>: Propagate the type of the first operand.
4780
4781 2009-05-19 Steve Ellcey <sje@cup.hp.com>
4782
4783 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4784 (ia64_dconst_0_375): New.
4785 * config/ia64/ia64.c (ia64_override_options): Remove
4786 -minline-sqrt-min-latency warning.
4787 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4788 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4789 * config/ia64/ia64.md (*sqrt_approx): Remove.
4790 (sqrtsf2): Remove #if 0.
4791 (sqrtsf2_internal_thr): Rewrite and move to div.md.
4792 (sqrtdf): Remove assert.
4793 (sqrtdf2_internal_thr): Rewrite and move to div.md.
4794 (sqrtxf2): Remove #if 0.
4795 (sqrtxf2_internal_thr): Rewrite and move to div.md.
4796 * div.md (sqrt_approx_rf): New.
4797 (sqrtsf2_internal_thr): New implementation.
4798 (sqrtsf2_internal_lat): New.
4799 (sqrtdf2_internal_thr: New implementation.
4800 (sqrtxf2_internal): New implementation.
4801
4802 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
4803 Hans-Peter Nilsson <hp@axis.com>
4804
4805 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4806 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4807 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4808 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4809 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4810 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4811 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4812 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4813 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4814 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4815 * c-common.c: ...from here.
4816
4817 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4818
4819 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
4820
4821 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4822
4823 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4824
4825 2009-05-19 Ben Elliston <bje@au.ibm.com>
4826
4827 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4828 assignments with memcpy calls.
4829 (add_fdes): Likewise.
4830 (binary_search_unencoded_fdes): Likewise.
4831 (linear_search_fdes): Eliminate type puns.
4832
4833 2009-05-19 Richard Guenther <rguenther@suse.de>
4834
4835 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4836 not falsely claim to have propagated into all uses.
4837
4838 2009-05-19 Ben Elliston <bje@au.ibm.com>
4839
4840 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4841 version to v3.0.
4842
4843 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4844
4845 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4846 * config/sh/sh.c (sh_legitimate_address_p): Make static.
4847 (TARGET_LEGITIMATE_ADDRESS_P): New.
4848 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4849 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4850
4851 2009-05-18 Dodji Seketeli <dodji@redhat.com>
4852
4853 PR debug/40109
4854 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
4855 child of the containing namespace's DIE.
4856
4857 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
4858
4859 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
4860 *zero_extendhi_truncqi): Move after the zero_extend patterns.
4861 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
4862 extend patterns.
4863
4864 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
4865
4866 PR target/39942
4867 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
4868 gen_align with gen_pad.
4869 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
4870 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
4871
4872 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4873 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4874
4875 * config/i386/i386.md (align): Renamed to ...
4876 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4877 ASM_OUTPUT_MAX_SKIP_PAD.
4878
4879 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
4880
4881 * config.gcc: Fix variable syntax.
4882
4883 PR target/39531
4884 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4885 before calling exact_log2.
4886 (output_iorsi3): Likewise.
4887 (output_xorsi3): Likewise.
4888
4889 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
4890
4891 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4892 for the none zero constant operand except for EQ and NE
4893 comprisons even when the first operand is R0.
4894
4895 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
4896
4897 * config/s390/2064.md: Remove trailing whitespaces.
4898 * config/s390/2084.md: Likewise.
4899 * config/s390/constraints.md: Likewise.
4900 * config/s390/fixdfdi.h: Likewise.
4901 * config/s390/libgcc-glibc.ver: Likewise.
4902 * config/s390/s390-modes.def: Likewise.
4903 * config/s390/s390-protos.h: Likewise.
4904 * config/s390/s390.c: Likewise.
4905 * config/s390/s390.h: Likewise.
4906 * config/s390/s390.md: Likewise.
4907 * config/s390/tpf-unwind.h: Likewise.
4908
4909 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4910
4911 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4912
4913 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
4914
4915 M68K TLS support.
4916 * configure.ac (m68k-*-*): Check if binutils support TLS.
4917 * configure: Regenerate.
4918 * config/m68k/predicates.md (symbolic_operand): Extend comment.
4919 * config/m68k/constraints.md (Cu): New constraint.
4920 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4921 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4922 (movsi): Handle TLS symbols.
4923 (addsi3_5200): Handle XTLS symbols, indent.
4924 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4925 (m68k_tls_reference_p): Declare.
4926 (m68k_legitimize_address): Declare.
4927 (m68k_unwrap_symbol): Declare.
4928 * config/m68k/m68k.opt (mxtls): New option.
4929 * config/m68k/m68k.c (ggc.h): Include.
4930 (m68k_output_dwarf_dtprel): Implement hook.
4931 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4932 (m68k_expand_prologue): Load GOT pointer when function needs it.
4933 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4934 (m68k_legitimate_constant_address_p): Same.
4935 (m68k_decompose_address): Handle TLS references.
4936 (m68k_get_gp): New static function.
4937 (enum m68k_reloc): New contants.
4938 (TLS_RELOC_P): New macro.
4939 (m68k_wrap_symbol): New static function.
4940 (m68k_unwrap_symbol): New function.
4941 (m68k_final_prescan_insn_1): New static function.
4942 (m68k_final_prescan_insn): New function.
4943 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4944 functions.
4945 (legitimize_pic_address): Handle TLS references..
4946 (m68k_tls_get_addr, m68k_get_tls_get_addr)
4947 (m68k_libcall_value_in_a0_p)
4948 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4949 (m68k_call_m68k_read_tp): Helper variables and functions for ...
4950 (m68k_legitimize_tls_address): Handle TLS references.
4951 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4952 New functions.
4953 (m68k_legitimize_address): Handle TLS symbols.
4954 (m68k_get_reloc_decoration): New static function.
4955 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4956 UNSPEC_RELOC32.
4957 (m68k_output_dwarf_dtprel): Implement hook.
4958 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4959 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4960 m68k_call_* routines.
4961 (sched_attr_op_type): Handle TLS symbols.
4962 (gt-m68k.h): Include.
4963 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4964 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4965
4966 2009-05-18 Martin Jambor <mjambor@suse.cz>
4967
4968 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4969 (visit_store_addr_for_mod_analysis): New function.
4970 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4971 (determine_cst_member_ptr): Use gimple_assign_single_p.
4972 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4973 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4974 operands. Don't check number of operands of a NOP_EXPR.
4975
4976 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
4977
4978 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4979
4980 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
4981
4982 PR c/40172
4983 * c-common.c (warn_logical_operator): Don't warn if one of
4984 expression isn't always true or false.
4985
4986 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
4987
4988 * config/i386/biarch32.h: New file.
4989 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
4990
4991 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
4992
4993 * config/mips/mips.md (*zero_extend<mode>_trunchi,
4994 *zero_extend<mode>_truncqi): Merge these into ...
4995 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4996 Name the pattern following this as *zero_extendhi_truncqi.
4997
4998 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
4999
5000 PR middle-end/39301
5001 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
5002 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
5003 (output_info): Make field HOST_WIDEST_INT.
5004 (print_statistics): Use HOST_WIDEST_INT_PRINT.
5005 (dump_bitmat_statistics): Same.
5006
5007 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
5008
5009 * config.gcc (use_gcc_stdint): Set to wrap.
5010 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5011 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5012 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5013 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5014 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5015 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5016 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5017 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5018
5019 2009-05-16 Joseph Myers <joseph@codesourcery.com>
5020
5021 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
5022 tune_64.
5023 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
5024 Move definitions earlier.
5025 (OPT_ARCH64, OPT_ARCH32): Define.
5026 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
5027 and tune_64.
5028
5029 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
5030
5031 PR target/40153
5032 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
5033 implies.
5034
5035 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
5036
5037 * arm.md (movdi2): Copy non-reg values to DImode registers.
5038
5039 2009-05-16 Jakub Jelinek <jakub@redhat.com>
5040
5041 PR target/39942
5042 * final.c (label_to_max_skip): New function.
5043 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
5044 CODE_LABEL_NUMBER <= max_labelno.
5045 * output.h (label_to_max_skip): New prototype.
5046 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
5047 (ix86_avoid_jump_mispredicts): ... this. Don't define if
5048 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
5049 Handle CODE_LABELs with >= 16 byte alignment or with
5050 max_skip == (1 << align) - 1.
5051 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
5052 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
5053
5054 PR target/39942
5055 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
5056 .p2align 3 if MAX_SKIP is smaller than 7.
5057 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
5058
5059 2009-05-15 Ian Lance Taylor <iant@google.com>
5060
5061 * alias.c (struct alias_set_entry_d): Rename from struct
5062 alias_set_entry. Change all uses.
5063 * except.c (struct call_site_record_d): Rename from struct
5064 call_site_record. Change all uses.
5065 * except.h (struct eh_region_d): Rename from struct eh_region.
5066 Change all uses.
5067 * gcse.c (struct hash_table_d): Rename from struct hash_table.
5068 Change all uses.
5069 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
5070 ivtype_map_elt. Change all uses.
5071 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
5072 Change all uses.
5073 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
5074 * graphite.h (struct name_tree_d): Rename from struct name_tree.
5075 Change all uses.
5076 (struct sese_d): Rename from struct sese. Change all uses.
5077 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
5078 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
5079 * optabs.h (struct optab_d): Rename from struct optab. Change all
5080 uses.
5081 (struct convert_optab_d): Rename from struct convert_optab.
5082 Change all uses.
5083 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
5084 ipa_opt_pass. Change all uses.
5085 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
5086 all uses.
5087
5088 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
5089 defined as a typedef.
5090 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
5091 defined as a tag.
5092
5093 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
5094
5095 PR 16302
5096 * fold-const.c (make_range,build_range_check,merge_ranges): Move
5097 declaration to...
5098 (merge_ranges): Returns bool.
5099 * tree.h (make_range): .. to here.
5100 (build_range_check): Likewise.
5101 (merge_ranges): Likewise. Renamed from merge_ranges.
5102 * c-typeck.c (parser_build_binary_op): Update calls to
5103 warn_logical_operator.
5104 * c-common.c (warn_logical_operator): Add new warning.
5105 * c-common.h (warn_logical_operator): Update declaration.
5106
5107 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
5108
5109 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
5110
5111 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5112
5113 * doc/install.texi: Document MPC requirements, flags etc.
5114
5115 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
5116 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
5117 Evaluate constant arguments.
5118 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
5119 (fold_builtin_1): Likewise, also evaluate constant arguments.
5120 Remove superfluous break.
5121 (do_mpc_ckconv): New.
5122 * real.h: Include mpc.h.
5123 * toplev.c (print_version): Output MPC version info if available.
5124
5125 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
5126
5127 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
5128
5129 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
5130
5131 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
5132 only once.
5133
5134 2009-05-15 Jan Hubicka <jh@suse.cz>
5135
5136 * doc/invoke.texi (max-early-inliner-iterations): New flag.
5137 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
5138 (try_inline): Fix return value.
5139 (cgraph_decide_inlining_incrementally): Honor new value.
5140 (cgraph_early_inlining): Handle indirect inlining.
5141 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
5142
5143 2009-05-15 Jan Hubicka <jh@suse.cz>
5144
5145 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
5146 * cgraphunit.c (cgraph_finalize_function): Set it.
5147 (cgraph_expand_function): Use it.
5148
5149 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
5150
5151 * real.c (encode_ieee_half): Define.
5152 (decode_ieee_half): Define.
5153 (ieee_half_format): Define.
5154 (arm_half_format): Define.
5155 * real.h (ieee_half_format): Declare.
5156 (arm_half_format): Declare.
5157
5158 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
5159
5160 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
5161 swapped, and reversed optabs exist before trying to use them.
5162
5163 2009-05-15 Paul Brook <paul@codesourcery.com>
5164 Sandra Loosemore <sandra@codesourcery.com>
5165
5166 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
5167 loads. Allow PRE_DEC.
5168 (output_move_neon): Handle PRE_DEC.
5169 (arm_print_operand): Add 'A' for neon structure loads.
5170 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
5171 * config/arm/neon.md (neon_mov): Update comment.
5172 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
5173 calls.
5174 (Um): New constraint.
5175
5176 2009-05-15 Jan Hubicka <jh@suse.cz>
5177
5178 Revert the following patch until testsuite fallout is fixed:
5179 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5180 * cgraph.h (struct inline_summary): New filed self_wize,
5181 size_inlining_benefit, self_time and time_inlining_benefit.
5182 (struct cgraph_global_info): Replace insns by time ans size fields.
5183 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5184 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5185 (ipcp_update_callgraph): Do not touch function bodies.
5186 * ipa-inline.c: Include except.h
5187 (MAX_TIME): New constant.
5188 (overall_insns): Remove
5189 (overall_size, max_benefit): New static variables.
5190 (cgraph_estimate_time_after_inlining): New function.
5191 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5192 (cgraph_clone_inlined_nodes): Update size.
5193 (cgraph_mark_inline_edge): Update size.
5194 (cgraph_estimate_growth): Use size info.
5195 (cgraph_check_inline_limits): Check size.
5196 (cgraph_default_inline_p): Likewise.
5197 (cgraph_edge_badness): Compute badness based on benefit and size cost.
5198 (cgraph_decide_recursive_inlining): Check size.
5199 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5200 and times.
5201 (cgraph_decide_inlining): Likewise.
5202 (cgraph_decide_inlining_incrementally): Likewise; honor
5203 PARAM_EARLY_INLINING_INSNS.
5204 (likely_eliminated_by_inlining_p): New predicate.
5205 (estimate_function_body_sizes): New function.
5206 (compute_inline_parameters): Use it.
5207 * except.c (must_not_throw_labels): New function.
5208 * except.h (must_not_throw_labels): Declare.
5209 * tree-inline.c (init_inline_once): Kill inlining_weigths
5210 * tree-ssa-structalias.c: Avoid uninitialized warning.
5211 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5212 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5213 (PARAM_INLINE_CALL_COST): Remove.
5214 (PARAM_EARLY_INLINING_INSNS): New.
5215
5216 2009-05-15 Richard Guenther <rguenther@suse.de>
5217
5218 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
5219 not TODO_update_ssa.
5220
5221 2009-05-15 Richard Guenther <rguenther@suse.de>
5222
5223 PR tree-optimization/39999
5224 * gimple.h (gimple_expr_type): Use the expression type looking
5225 through useless conversions.
5226 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
5227 (vn_nary_op_insert_stmt): Likewise.
5228 (simplify_binary_expression): Likewise.
5229
5230 2009-05-15 Richard Guenther <rguenther@suse.de>
5231
5232 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5233 New options, enabled by default.
5234 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5235 Document.
5236 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
5237 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
5238 * tree-ssa-structalias.c (gate_tree_pta): New function.
5239 (pass_build_alias): Use it.
5240
5241 2009-05-15 Joseph Myers <joseph@codesourcery.com>
5242
5243 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5244 recurse on an invariant address if a conversion from a pointer
5245 type to a wider integer type is involved.
5246
5247 2009-05-15 Jan Hubicka <jh@suse.cz>
5248
5249 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5250 * cgraph.h (struct inline_summary): New filed self_wize,
5251 size_inlining_benefit, self_time and time_inlining_benefit.
5252 (struct cgraph_global_info): Replace insns by time ans size fields.
5253 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5254 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5255 (ipcp_update_callgraph): Do not touch function bodies.
5256 * ipa-inline.c: Include except.h
5257 (MAX_TIME): New constant.
5258 (overall_insns): Remove
5259 (overall_size, max_benefit): New static variables.
5260 (cgraph_estimate_time_after_inlining): New function.
5261 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5262 (cgraph_clone_inlined_nodes): Update size.
5263 (cgraph_mark_inline_edge): Update size.
5264 (cgraph_estimate_growth): Use size info.
5265 (cgraph_check_inline_limits): Check size.
5266 (cgraph_default_inline_p): Likewise.
5267 (cgraph_edge_badness): Compute badness based on benefit and size cost.
5268 (cgraph_decide_recursive_inlining): Check size.
5269 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5270 and times.
5271 (cgraph_decide_inlining): Likewise.
5272 (cgraph_decide_inlining_incrementally): Likewise; honor
5273 PARAM_EARLY_INLINING_INSNS.
5274 (likely_eliminated_by_inlining_p): New predicate.
5275 (estimate_function_body_sizes): New function.
5276 (compute_inline_parameters): Use it.
5277 * except.c (must_not_throw_labels): New function.
5278 * except.h (must_not_throw_labels): Declare.
5279 * tree-inline.c (init_inline_once): Kill inlining_weigths
5280 * tree-ssa-structalias.c: Avoid uninitialized warning.
5281 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5282 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5283 (PARAM_INLINE_CALL_COST): Remove.
5284 (PARAM_EARLY_INLINING_INSNS): New.
5285 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
5286 (inline-call-cost): Remove.
5287 (early-inlining-insns): New.
5288
5289 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
5290
5291 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
5292 for bounds.
5293 (print_int_cst_bounds_in_octal_p): Likewise.
5294 (dbxout_type): Adjust calls to above functions. Be prepared to deal
5295 with subtypes.
5296 * dwarf2out.c (base_type_die): Likewise.
5297 (is_subrange_type): Delete.
5298 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
5299 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
5300 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
5301 if the destination type is boolean.
5302 (build_range_check): Do not special-case subtypes.
5303 (fold_sign_changed_comparison): Likewise.
5304 (fold_unary): Likewise.
5305 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
5306 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
5307 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
5308 * tree.c (subrange_type_for_debug_p): New predicate based on the
5309 former is_subrange_type.
5310 * tree.h (subrange_type_for_debug_p): Declare.
5311 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
5312 (convert_affine_scev): Remove call to above function.
5313 (chrec_convert_aggressive): Likewise.
5314 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
5315 false for conversions involving subtypes.
5316 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
5317 (vrp_val_min): Likewise.
5318 (needs_overflow_infinity): Likewise.
5319 (extract_range_from_unary_expr): Likewise.
5320
5321 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
5322
5323 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5324 * config/frv/frv.c: Likewise.
5325 * config/s390/s390.c: Likewise.
5326 * config/sparc/sparc.h: Likewise.
5327 * config/i386/i386.h: Likewise.
5328 * config/i386/i386.c: Likewise.
5329 * config/crx/crx.c: Likewise.
5330 * config/m68hc11/m68hc11.h: Likewise.
5331 * config/iq2000/iq2000.c: Likewise.
5332 * config/mn10300/mn10300.h: Likewise.
5333 * config/mn10300/mn10300.c: Likewise.
5334 * config/m68k/m68k.c: Likewise.
5335 * config/rs6000/rs6000.c: Likewise.
5336 * config/rs6000/xcoff.h: Likewise.
5337 * config/rs6000/linux64.h: Likewise.
5338 * config/rs6000/sysv4.h: Likewise.
5339 * config/score/score3.c: Likewise.
5340 * config/score/score7.c: Likewise.
5341 * config/score/score.c: Likewise.
5342 * config/arm/arm.md: Likewise.
5343 * config/mips/mips.c: Likewise.
5344 * config/mips/mips.md: Likewise.
5345 * config/bfin/bfin.h: Likewise.
5346 * config/pa/pa.c: Likewise.
5347 * config/pa/constraints.md: Likewise.
5348
5349 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
5350 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
5351 * config/pdp11/pdp11.h: Use memory_address_p instead.
5352
5353 2009-05-14 Ian Lance Taylor <iant@google.com>
5354
5355 * passes.c (finish_optimization_passes): Change i to int.
5356 * plugin.c (plugins_active_p): Change event to int.
5357 (dump_active_plugins): Likewise.
5358 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
5359 Add cast.
5360 * tree.c (tree_range_check_failed): Change c to unsigned int.
5361 (omp_clause_range_check_failed): Likewise.
5362 (build_common_builtin_nodes): Change mode to int. Add cast.
5363 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5364 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5365
5366 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5367 ++ or -- with a variable of enum type.
5368
5369 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5370
5371 PR driver/40144
5372 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5373
5374 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5375
5376 * store-motion.c: Do not include params.h
5377 * Makefile.in: Fix dependencies for various files.
5378
5379 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
5380
5381 * auto-inc-dec.c: Fix pass description, remove apparent
5382 accidental duplication.
5383
5384 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
5385
5386 PR middle-end/40147
5387 * ipa-utils.h (memory_identifier_string): Moved to ...
5388 * tree.h (memory_identifier_string): Here. Add GTY(()).
5389
5390 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
5391
5392 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5393 in the former documentation of...
5394 (GO_IF_LEGITIMATE_ADDRESS): ... this.
5395 * ira-conflicts.c (get_dup_num): Use address_operand.
5396 * targhooks.c (default_legitimate_address_p): New.
5397 * targhooks.h (default_legitimate_address_p): New.
5398 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5399 Call hook.
5400 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5401 * target.h (struct target): Add legitimate_address_p.
5402 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5403 (TARGET_INITIALIZER): Include it.
5404
5405 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5406 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5407 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5408 (TARGET_LEGITIMATE_ADDRESS_P): New.
5409
5410 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5411 (REG_OK_STRICT_P): Delete.
5412 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5413 (frv_legitimate_address_p_1): ... this.
5414 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5415 (frv_legitimate_address_p_1): ... the renamed old
5416 frv_legitimate_address_p.
5417 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5418 (TARGET_LEGITIMATE_ADDRESS_P): New.
5419
5420 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5421 * config/s390/s390-protos.h (legitimate_address_p): Remove.
5422 * config/s390/s390.c (legitimate_address_p): Rename to...
5423 (s390_legitimate_address_p): ... this, make static.
5424 (legitimize_address): Adjust call.
5425 (TARGET_LEGITIMATE_ADDRESS_P): New.
5426 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5427
5428 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5429 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5430 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5431 (TARGET_LEGITIMATE_ADDRESS_P): New.
5432
5433 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5434 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5435 * config/spu/spu.c (spu_legitimate_address): Rename to...
5436 (spu_legitimate_address_p): ... this, make static.
5437 (TARGET_LEGITIMATE_ADDRESS_P): New.
5438
5439 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5440 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5441 * config/sparc/sparc.c (legitimate_address_p): Rename to...
5442 (sparc_legitimate_address_p): ... this, make static and return bool.
5443 (legitimize_address): Adjust call.
5444 (TARGET_LEGITIMATE_ADDRESS_P): New.
5445
5446 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5447 * config/i386/i386-protos.h (legitimate_address_p): Remove.
5448 * config/i386/i386.c (legitimate_address_p): Rename to...
5449 (ix86_legitimate_address_p): ... this, make static.
5450 (constant_address_p): Move after it, adjust call.
5451 (TARGET_LEGITIMATE_ADDRESS_P): New.
5452
5453 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5454 * config/avr/avr-protos.h (legitimate_address_p): Remove.
5455 * config/avr/avr.c (legitimate_address_p): Rename to...
5456 (avr_legitimate_address_p): ... this, make static.
5457 (legitimize_address): Adjust call.
5458 (TARGET_LEGITIMATE_ADDRESS_P): New.
5459
5460 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5461 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5462 * config/crx/crx.c (crx_legitimate_address_p): Make static.
5463 (TARGET_LEGITIMATE_ADDRESS_P): New.
5464
5465 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5466 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5467 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5468 (TARGET_LEGITIMATE_ADDRESS_P): New.
5469
5470 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5471 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5472 Remove.
5473 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5474 Make static.
5475 (TARGET_LEGITIMATE_ADDRESS_P): New.
5476
5477 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5478 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5479 Remove.
5480 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5481 Rename to...
5482 (m68hc11_legitimate_address_p): ... this, make static.
5483 (go_if_legitimate_address_internal): Rename to...
5484 (m68hc11_legitimate_address_p_1): ... this.
5485 (legitimize_address): Adjust call.
5486 (TARGET_LEGITIMATE_ADDRESS_P): New.
5487
5488 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5489 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5490 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
5491 (TARGET_LEGITIMATE_ADDRESS_P): New.
5492
5493 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5494 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5495 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5496 (mn10300_legitimate_address_p): ... this, make static.
5497 (TARGET_LEGITIMATE_ADDRESS_P): New.
5498
5499 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5500 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5501 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5502 (TARGET_LEGITIMATE_ADDRESS_P): New.
5503
5504 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5505 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5506 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5507 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5508 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5509 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5510 (rs6000_legitimate_address_p): ... this, make static.
5511 (TARGET_LEGITIMATE_ADDRESS_P): New.
5512 (REG_MODE_OK_FOR_BASE_P): Delete.
5513 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5514
5515 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5516 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5517 Delete.
5518 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5519 static, adjust types.
5520 (TARGET_LEGITIMATE_ADDRESS_P): New.
5521
5522 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5523 * config/score/score.c (score_address_p): Rename to...
5524 (score_legitimate_address_p): ... this.
5525 (TARGET_LEGITIMATE_ADDRESS_P): New.
5526 * config/score/score3.c (score3_address_p): Rename to...
5527 (score3_legitimate_address_p): ... this.
5528 * config/score/score7.c (score7_address_p): Rename to...
5529 (score7_legitimate_address_p): ... this.
5530
5531 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5532 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5533 GO_IF_LEGITIMATE_ADDRESS): Delete.
5534 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5535 thumb2_legitimate_address_p): Delete.
5536 (arm_legitimate_address_p): Rename to...
5537 (arm_legitimate_address_outer_p): ... this.
5538 * config/arm/constraints.md ("Uq"): Adjust call.
5539 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
5540 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5541 to...
5542 (arm_legitimate_address_outer_p): ... this.
5543 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5544 static.
5545 (TARGET_LEGITIMATE_ADDRESS_P): New.
5546
5547 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5548 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5549 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5550 (TARGET_LEGITIMATE_ADDRESS_P): New.
5551
5552 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5553 * config/vax/vax-protos.h (legitimate_address_p): Remove.
5554 * config/vax/vax.c (legitimate_address_p): Rename to...
5555 (vax_legitimate_address_p): ... this, make static.
5556 (TARGET_LEGITIMATE_ADDRESS_P): New.
5557
5558 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5559 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5560 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5561 (TARGET_LEGITIMATE_ADDRESS_P): New.
5562
5563 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5564 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5565 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5566 (mmix_legitimate_address_p): ... this, make static.
5567 (TARGET_LEGITIMATE_ADDRESS_P): New.
5568
5569 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5570 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5571 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5572 (TARGET_LEGITIMATE_ADDRESS_P): New.
5573
5574 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
5575
5576 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5577 of MODE_COMPLEX_INT.
5578
5579 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5580
5581 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5582 LCT_NORMAL in function call.
5583 * mips-tdump.c (print_file_desc): Add cast to enum type.
5584 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5585 (mark_stabs): Add casts to enum types.
5586 (parse_stabs_common): Add casts to enum types.
5587
5588 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5589
5590 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5591 Check for invalid values of LETTER.
5592
5593 2009-05-13 Taras Glek <tglek@mozilla.com>
5594
5595 * attribs.c (register_attribute): moved out attribute registration
5596 into register_attribute.
5597 * doc/plugins.texi: Documented register_attribute and
5598 PLUGIN_ATTRIBUTES.
5599 * gcc-plugin.h: Added forward decl for register_attribute.
5600 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5601 * plugin.c (register_callback, invoke_plugin_callbacks): Added
5602 PLUGIN_ATTRIBUTES boilerplate.
5603
5604 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
5605
5606 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
5607 values even in sentinel and empty entries.
5608 (ms_printf_flag_specs): Likewise.
5609 (ms_scanf_flag_specs): Likewise.
5610 (ms_strftime_flag_specs): Likewise.
5611 (ms_print_char_table): Likewise.
5612 (ms_scan_char_table): Likewise.
5613 (ms_time_char_table): Likewise.
5614
5615 2009-05-13 Doug Kwan <dougkwan@google.com>
5616
5617 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5618
5619 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
5620
5621 * config/mips/mips.md (store): Add attributes for QI and HI.
5622 Update comment.
5623 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5624 (truncdi<mode>2): ... this new pattern.
5625
5626 2009-05-13 Brad Hards <bradh@kde.org>
5627
5628 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5629
5630 2009-05-14 Jakub Jelinek <jakub@redhat.com>
5631 Ben Elliston <bje@au.ibm.com>
5632
5633 PR middle-end/40035
5634 * dse.c (check_mem_read_rtx): Guard against width == -1.
5635
5636 2009-05-13 Michael Matz <matz@suse.de>
5637
5638 PR middle-end/39976
5639 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5640 (trivially_conflicts_p): New function.
5641 (insert_backedge_copies): Use it.
5642
5643 2009-05-13 Janis Johnson <janis187@us.ibm.com>
5644
5645 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5646 (handle_stdc_pragma): Use new enum constant names.
5647 (handle_pragma_float_const_decimal64): Ditto.
5648
5649 2009-05-13 Ian Lance Taylor <iant@google.com>
5650
5651 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5652 tree.def.
5653
5654 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
5655
5656 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5657 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5658 multilibs.
5659 * config/m68k/m68k.h (FL_UCLINUX): Define.
5660
5661 2009-05-13 Jan Hubicka <jh@suse.cz>
5662
5663 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5664
5665 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5666
5667 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5668 unless -fschedule-insns is specified.
5669
5670 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5671
5672 PR target/39561
5673 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5674 TARGET_EXPAND_CBRANCHDI4.
5675 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5676 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5677 (cmpeqdi): Fix comment.
5678
5679 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
5680
5681 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5682 (sh_legitimate_address_p): Likewise.
5683 * config/sh/sh.c (sh_legitimate_index_p): New.
5684 (sh_legitimate_address_p): Likewise.
5685 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5686 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5687 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5688 (MAYBE_BASE_REGISTER_RTX_P): New macro.
5689 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5690 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5691 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5692 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5693 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5694
5695 2009-05-12 Jan Hubicka <jh@suse.cz>
5696
5697 * tree-inline.c (estimate_operator_cost): Add operands;
5698 when division happens by constant, it is cheap.
5699 (estimate_num_insns): Loads and stores are not having cost of 0;
5700 EH magic stuff is cheap; when computing runtime cost of switch,
5701 use log2 base of amount of its cases; builtin_expect has cost of 0;
5702 compute cost for moving return value of call.
5703 (init_inline_once): Initialize time_based flags.
5704 * tree-inline.h (eni_weights_d): Add time_based flag.
5705
5706 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5707
5708 * df-core.c: Update head documentation.
5709
5710 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5711
5712 PR bootstrap/40118
5713 * rs6000.c (rs6000_generate_compare): Use op1b instead of
5714 shadowing exisiting variable op1.
5715
5716 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
5717
5718 PR target/37179
5719 * config/i386/driver-i386.c (processor_signatures): New enum.
5720 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5721 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5722 processor signature to detect geode processor.
5723
5724 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5725
5726 Revert:
5727
5728 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5729
5730 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5731 causes spurious differences between trunk and cond-optab branch.
5732
5733 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
5734
5735 * dojump.c (compare_from_rtx): Delete.
5736 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
5737 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
5738 if the comparison does not satisfy the predicate; test predicates for
5739 operands 2 and 3 of a cstore pattern. Don't try cstore optab
5740 further if one existing pattern fails.
5741 * expr.h (compare_from_rtx): Delete.
5742 (prepare_operand): Declare it.
5743 * optabs.c: Change "lib call" to "libcall" throughout.
5744 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
5745 HAVE_conditional_trap, emit_cmp_insn): Delete.
5746 (can_compare_p): Delete cmp_optab case.
5747 (prepare_float_lib_cmp): Return an rtx and a machine mode.
5748 Accept other parameters by value.
5749 (prepare_operand): Make non-static.
5750 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
5751 other parameters by value. Try to widen operands here based on
5752 an optab_methods argument and looking at cbranch_optab.
5753 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5754 loop. Use cbranch_optab directly.
5755 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
5756 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5757 assertion.
5758 (emit_conditional_move, emit_conditional_add): Inline what's needed
5759 of compare_from_rtx, using new prepare_cmp_insn for the rest.
5760 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5761 with COMPARE. Move cmov_optab and cstore_optab above
5762 with cbranch_optab, move cmp_optab down with ucmp_optab,
5763 remove tst_otpab. Do not initialize trap_rtx.
5764 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
5765 for trap code. Do not check HAVE_conditional_trap. Use
5766 prepare_cmp_insn. Accept no predicate for operand 3.
5767 * optabs.h (OTI_cmp): Mark as used only for libcalls.
5768 (OTI_ctrap, ctrap_optab): New.
5769 (tst_optab): Delete.
5770 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5771 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5772 with lookup of ctrap_optab.
5773 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5774 Delete.
5775 (ctrap_optab): New.
5776
5777 * combine.c (combine_simplify_rtx, simplify_set): Do not
5778 special case comparing against zero for cc0 machines.
5779 * simplify-rtx.c (simplify_binary_operation_1): Never remove
5780 COMPARE on cc0 machines.
5781 (simplify_relational_operation): Return a new expression when
5782 a COMPARE could be removed.
5783 * final.c (final_scan_insn): Compare cc_status values
5784 against LHS of a (compare FOO (const_int 0)) cc0 source.
5785 Also check if cc_status.value is the full compare.
5786
5787 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5788 (cstoreMM4): Document.
5789 (conditional_trap): Document ctrapMM4 instead.
5790 (sync_compare_and_swapMM): Refer to cbranchcc4.
5791 (Dependent Patterns): Eliminate obsolete information referring to
5792 the old jump optimization phase.
5793 (Canonicalization): Include cbranchcc4 case, omit canonicalization
5794 of compares with 0 on cc0 machines.
5795 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5796 avoiding references to cc0. Remove text about storing operands
5797 in cmpMM.
5798 * doc/tm.texi (Condition Codes): Include blurb on different
5799 condition code representations, separate into subsections for
5800 CC0, MODE_CC and conditional execution.
5801
5802 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5803 alpha_emit_setcc): Accept operands and a machine mode.
5804 * config/alpha/alpha.c (alpha_emit_conditional_branch):
5805 Get code/op0/op1 from operands, use machine mode argument
5806 instead of alpha_compare.fp_p. Emit the branch here.
5807 (alpha_emit_setcc): Likewise, and return boolean.
5808 (alpha_emit_conditional_move): Likewise. Assert that
5809 cmp_op_mode == cmp_mode, and simplify accordingly.
5810 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5811 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5812 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5813 Delete.
5814 (stack probe test): Use cbranchdi4.
5815 * config/alpha/predicates.md (alpha_cbranch_operator): New.
5816
5817 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
5818 * config/arc/arc.h (movsicc, movsfcc): Use it.
5819 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5820 (cbranchsi4, cstoresi4): New.
5821 (cmpsi, bCC and sCC expanders): Remove.
5822
5823 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5824 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5825 * config/arm/predicates.md (arm_comparison_operator): Only include
5826 floating-point operators if there is a hardware floating-point unit.
5827 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5828 deferring to cbranch_cc and cstore_cc respectively.
5829 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5830 cbranch_cc, cstore_cc): New.
5831 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
5832 arm_compare_op1.
5833 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5834
5835 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5836 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5837 as an argument.
5838 (adjust_insn_length): Adjust calls.
5839 (avr_reorg): Handle (compare (foo) (const_int 0)).
5840 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5841 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5842 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5843 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5844 (bCC): Remove.
5845 (cbranchqi4, cbranchhi4, cbranchsi4): New.
5846 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5847
5848 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5849 (cbranchsi4, cstorebi4, cstoresi4): New.
5850 (movbisi): This insn is duplicate, split it to zero_extend.
5851 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
5852 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
5853 (bfin_optimize_loop): Use cbranch expander.
5854 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
5855 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
5856 (bfin_bimode_comparison_operator): ... this.
5857 (bfin_direct_comparison_operator): New.
5858
5859 * config/cris/cris.c (cris_normal_notice_update_cc): Look
5860 inside (compare FOO (const_int 0)).
5861 (cris_rtx_costs): Handle ZERO_EXTRACT.
5862 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
5863 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
5864 (*tstdi_v32): Delete.
5865 (*cmpdi_non_v32): Add M alternative for operand 1.
5866 (cmpsi, cmp<mode>): Make private.
5867 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
5868 with COMPARE.
5869 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
5870
5871 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
5872 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5873 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
5874 (cc_reg_operand): New.
5875 (any_cond): Delete.
5876 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5877 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5878 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5879 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5880 crx_expand_scond): Delete.
5881
5882 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5883 (cbranchsi4): New.
5884 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5885 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5886
5887 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5888 cstoresi4, cstoresf4, cstoredf4): New.
5889 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5890 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5891 Receive the entire operands array.
5892 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5893 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5894 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5895 Get test/op0/op1 from the operands array.
5896 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5897
5898 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5899 (h8300_expand_store): New.
5900 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5901 (const_int 0)).
5902 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
5903 (h8300_expand_store): New.
5904 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5905 or do not try to produce (set (cc0) REG).
5906 (peepholes): Wrap arguments with COMPARE. Add a peephole to
5907 change a compare into a move to a scratch register. Disable some
5908 peepholes when comparing with zero.
5909 (tstsi, tsthi, tstsi, cmpqi): Make private.
5910 (cmphi): Delete.
5911 (bCC, sCC): Delete.
5912 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5913 cstoresi4): New.
5914
5915 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5916 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5917 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5918 (ix86_emit_i387_log1p): Use cbranchxf2.
5919 (ix86_expand_setcc): Return void.
5920 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5921 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5922 cmp<MODEF>, cmpcc): Remove.
5923 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5924 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5925 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
5926 (sCC and bCC expanders): Remove.
5927 (stack_protect_test): Use cbranchcc4.
5928
5929 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5930 Delete.
5931 (ia64_expand_compare): Accept three rtx by reference and return void.
5932 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5933 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
5934 from *expr. Update *expr with the BImode comparison to do.
5935 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5936 cmptf, bCC, sCC, conditional_trap): Delete.
5937 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
5938 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5939 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5940 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5941 * config/ia64/predicates.md (ia64_cbranch_operator): New.
5942
5943 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5944 type of last argument.
5945 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5946 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5947 use machine mode argument instead of branch_type. Remove dead
5948 code for floating-point comparisons.
5949 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5950 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5951 Remove.
5952 (cbranchsi4, cstoresi4): New.
5953 * config/iq2000/predicates.md (reg_or_const_operand): New.
5954
5955 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5956 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5957 (b<code>_op): Rewrite to...
5958 (bcc_op): ... this, using match_operator.
5959 (s<code>_op): Rewrite to...
5960 (scc_op): ... this, using match_operator.
5961 (s<code>_24_op): Rewrite to...
5962 (scc_op_24): ... this, using match_operator.
5963 (s<code>_<mode>): Rewrite to...
5964 (cstore<mode>4): ... this, using match_operator.
5965 (s<code>_<mode>_24): Rewrite to...
5966 (cstore<mode>4_24): ... this, using match_operator.
5967 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5968 m32c_unpend_compare, m32c_expand_scc): Delete.
5969 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5970 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5971 (m32c_expand_movcc): Change NE to EQ if necessary.
5972 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5973
5974 * config/m32r/m32r-protos.h (gen_cond_store): New.
5975 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5976 (gen_cond_store): New, from sCC patterns.
5977 (m32r_expand_block_move): Use cbranchsi4.
5978 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5979 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5980 (cbranchsi4, cstoresi4): New.
5981
5982 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5983 Delete.
5984 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
5985 (m68hc11_notice_update_cc): Look into a compare with 0.
5986 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5987 Delete.
5988 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5989 cmphi, cmpqi, bCC): Delete.
5990 (cbranchsi4, cbranchhi4, cbranchqi4): New.
5991 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5992 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5993 sets with COMPARE.
5994
5995 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5996 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5997 * config/m68k/constraints.md (H): New.
5998 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5999 the define_insn below.
6000 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
6001 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
6002 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
6003 patterns): Wrap RHS with COMPARE.
6004 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
6005 (*cmpdi_internal): Name this pattern.
6006 (cmpdi): Change to define_insn.
6007 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
6008 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
6009 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
6010 predicate.
6011 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
6012 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
6013 (conditional_trap): Change to...
6014 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
6015 (*conditional_trap): Use the ordered_comparison_operator and
6016 const1_operand predicates.
6017 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
6018 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
6019 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
6020 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
6021
6022 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
6023 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
6024 (mcore_gen_compare): New.
6025 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
6026 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
6027 (mcore_gen_compare): ... this.
6028 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
6029 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
6030 (stack probe pattern): Use cbranchsi4.
6031
6032 * config/mips/predicates.md (mips_cstore_operator): New.
6033 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
6034 * config/mips/mips.md (any_cond): Delete.
6035 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
6036 always succeed.
6037 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
6038 fixuns_truncsfdi2): Use cbranch patterns.
6039 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
6040 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
6041 Adjust call to mips_expand_conditional_branch.
6042 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
6043 cstore<GPR:mode>4.
6044 * config/mips/mips-protos.h (mips_expand_conditional_branch,
6045 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
6046 * config/mips/mips.c (cmp_operands): Delete.
6047 (mips_emit_compare): Get comparison operands from *op0/*op1.
6048 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
6049 that it succeeds. Use op0/op1 instead of cmp_operands.
6050 (mips_expand_conditional_branch, mips_expand_conditional_move,
6051 mips_expand_conditional_trap): Likewise.
6052 (mips_block_move_loop): Use cbranch patterns.
6053 * config/mips/mips.h (cmp_operands): Delete.
6054
6055 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
6056 (mmix_gen_compare_reg): Just return a register in the right CC mode.
6057 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
6058 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
6059 (*cmpcc_folded): Rename to...
6060 (*cmpdi_folded): this.
6061 (*cmpcc): Rename to...
6062 (*cmps): ... this.
6063 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
6064 (bCC): Remove.
6065 (cbranchdi4): New.
6066 (cbranchdf4): New. Handle invalid comparisons here.
6067 * config/mmix/predicates.md (float_comparison_operator): New.
6068
6069 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
6070 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
6071 * config/mn10300/mn10300.md (tst): Delete.
6072 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
6073 Name these patterns and wrap RHS in a compare.
6074 (*cmpsi): Make this pattern private. Include tst.
6075 (*cmpsf): Make this pattern private.
6076 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
6077 (compare with zero peepholes): Likewise.
6078 (bCC): Remove.
6079 (cbranchsi4, cbranchsf4): New.
6080 (casesi): Use cbranchsi4.
6081
6082 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
6083 hppa_branch_type): Delete.
6084 (return_addr_rtx): Use cbranchsi4.
6085 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
6086 Emit CCFPmode comparison here.
6087 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
6088 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
6089 hppa_branch_type): Delete.
6090 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
6091 (movsicc, movdicc): Remove references to hppa_compare_op0,
6092 hppa_compare_op1 and compare_from_rtx.
6093 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
6094 (casesi): Use cbranchsi4.
6095
6096 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
6097 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
6098 * config/pdp11/pdp11.md (register_or_const0_operand): New.
6099 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
6100 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
6101 (bCC): Delete.
6102 (cbranchdf4, cbranchhi4, cbranchqi4): New.
6103 (*branch, *branch_inverted): New.
6104
6105 * config/picochip/picochip.md (cbranchhi4): Use
6106 ordered_comparison_operator.
6107 (cmphi, bCC): Remove.
6108
6109 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
6110 (trap_comparison_operator): Delete.
6111 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
6112 rs6000_emit_cbranch): Accept mode and operands.
6113 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
6114 rs6000_compare_fp_p): Delete.
6115 (rs6000_generate_compare): Accept mode and comparison. Extract code
6116 and op0/op1 from there. Replace references to rs6000_compare_op0
6117 and rs6000_compare_op1.
6118 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
6119 extract result from passed operands.
6120 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
6121 extract loc from passed operands.
6122 (rs6000_emit_cmove): Likewise.
6123 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
6124 rs6000_compare_fp_p): Delete.
6125 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
6126 (cbranch<GPR>4, cbranch<FP>4): New.
6127 (cstore<mode>4): New. Consolidate here all choices about when to use
6128 portable or specialized sCC sequences.
6129 (stack_protect_test): Use cbranchsi4.
6130 (conditional_trap): Replace with ctrap<GPR>4.
6131 (conditional trap insn): Replace trap_comparison_operator with
6132 ordered_comparison_operator.
6133
6134 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
6135 (s390_emit_prologue): Use ctrap.
6136 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
6137 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
6138 New predicates replacing...
6139 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
6140 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
6141 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
6142 (add<mode>cc): Do not use s390_compare_op0/op1.
6143 (s<code>): Change to...
6144 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
6145 (seq): Change to...
6146 (cstorecc4): ... this. Handle EQ or NE equally.
6147 (*sne): Un-privatize for use in cstorecc4.
6148 (b<code>): Change to...
6149 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
6150 (conditional_trap): Replace with...
6151 (ctrap<GPR>4, ctrap<FP>4): ... these.
6152 (stack_protect): Use cbranchcc4.
6153
6154 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
6155 * config/score/score-protos.h (score_gen_cmp): Delete.
6156 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
6157 (score_block_move-loop): Use cbranchsi4.
6158 * config/score/score.md (cbranchsi4): New.
6159 (cmpsi, bCC): Delete.
6160 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
6161 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6162 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
6163 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6164 * config/score/score3.h (score3_gen_cmp): Delete.
6165 * config/score/score7.h (score7_gen_cmp): Delete.
6166
6167 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
6168 (sh_emit_scc_to_t): ... this. Return void.
6169 (from_compare): Rename to...
6170 (sh_emit_compare_and_branch): ... this.
6171 (sh_emit_compare_and_set): New.
6172 (sh_expand_t_scc): Accept operands.
6173 * config/sh/predicates.md (sh_float_comparison_operator): New.
6174 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
6175 (prepare_scc_operands): Rename to...
6176 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
6177 arguments.
6178 (sh_emit_cheap_store_flag): New.
6179 (sh_emit_set_t_insn): New.
6180 (from_compare): Rename to...
6181 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
6182 handling of TARGET_SH2E floating point to avoid recursive call.
6183 Generate branch here.
6184 (sh_emit_compare_and_set): New.
6185 (sh_expand_t_scc): Get op0/op1 from arguments.
6186 (sh_emit_cheap_store_flag): New.
6187 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
6188 cases.
6189 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6190 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
6191 (movsicc, movdicc): Do nothing when it recreated operands from
6192 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
6193 prepare_scc_operands (now sh_emit_scc_to_t).
6194 (udivdi3): Use cstoresi4.
6195 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
6196 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
6197 (cbranchint4_media, cbranchfp4_media): New.
6198 (casesi): Use cbranchdi4.
6199 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
6200 Delete.
6201 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
6202 (movnegt): Remove second operand.
6203 (cbranchsf4, cbranchdf4): New.
6204 (stack_protect): Use cbranchdi4/cbranchsi4.
6205
6206 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
6207 (gen_compare_reg): Accept comparison, extract part of it to...
6208 (gen_compare_reg_1): ... this.
6209 (gen_compare_operator): Delete.
6210 (gen_v9_scc): Accept separate destination, comparison code and arms.
6211 Do not use sparc_compare_op0/sparc_compare_op1.
6212 (emit_scc_insn, emit_conditional_branch_insn): New.
6213 (emit_v9_brxx): Make static. Remove useless assertion.
6214 (sparc_emit_float_lib_cmp): Return RTL instead of calling
6215 emit_cmp_insn.
6216 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
6217 * config/sparc/sparc-protos.h (gen_compare_reg,
6218 sparc_emit_float_lib_cmp): Adjust prototype.
6219 (emit_scc_insn, emit_conditional_branch_insn): New.
6220 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6221 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
6222 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
6223 iterators to the top.
6224 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
6225 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
6226 snedi_special_trunc): Delete.
6227 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
6228 and snedi_special_trunc.
6229 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
6230 cbranchdi4, cbranch<F:mode>4): New.
6231 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
6232 here. Use gen_compare_reg instead of gen_compare_operator.
6233 (conditional_trap): Replace with...
6234 (ctrapsi4, ctrapdi4): ... this.
6235 (stack_protect_test): Use cbranchcc4.
6236
6237 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
6238 argument to rtx.
6239 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
6240 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
6241 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
6242 from operands[0] or operands[3] depending on is_set.
6243 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
6244 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
6245 cmpdf, bCC), sCC: Remove.
6246 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
6247 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
6248 cstoredf4): New.
6249 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
6250 spu_emit_branch_or_set.
6251
6252 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
6253 Add two arguments.
6254 * config/stormy16/stormy16.h (xstormy16_compare_op0,
6255 xstormy16_compare_op1): Delete.
6256 * config/stormy16/stormy16.c (xstormy16_compare_op0,
6257 xstormy16_compare_op1): Delete.
6258 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
6259 Adjust calls.
6260 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
6261 (cmphi, cmpsi, bCC): Remove.
6262
6263 * config/v850/v850.md (tstsi, cmpsi): Fold into...
6264 (*cmpsi): ... this one.
6265 (cbranchsi4, cstoresi4): New.
6266 (bCC expanders): Delete.
6267 (sCC insns): Fold into...
6268 (*setcc): ... this one.
6269 (casesi): Do not use gen_cmpsi and gen_bgtu.
6270 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
6271 (movsicc): Simplify.
6272 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
6273
6274 * config/vax/vax-protos.h (cond_name): New.
6275 (vax_output_conditional_branch): Remove.
6276 * config/vax/vax.c (cond_name): New.
6277 (vax_output_conditional_branch): Remove.
6278 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
6279 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
6280 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
6281 (bit<VAXint>): Wrap source with (compare).
6282 (b<code> and following unnamed pattern): Rename to *branch and
6283 *branch_reversed. Change macroization to match_operator.
6284 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
6285
6286 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
6287 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
6288 Change last argument to machine_mode.
6289 (xtensa_expand_scc): Add machine_mode argument.
6290 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
6291 (gen_conditional_move, xtensa_expand_conditional_branch,
6292 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
6293 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
6294 Adjust operand numbers.
6295 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
6296 Delete.
6297 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
6298 (cmpsi, cmpsf, b<code>, s<code>): Delete.
6299 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
6300
6301 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
6302
6303 * optabs.c (prepare_cmp_insn): Temporarily disable test that
6304 causes spurious differences between trunk and cond-optab branch.
6305
6306 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
6307
6308 PR target/37137
6309 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
6310
6311 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
6312
6313 * tree.c (iterative_hash_pointer): Delete.
6314 (iterative_hash_expr): Short-circuit handling of NULL pointer.
6315 Hash UIDs and versions of SSA names. Don't special-case built-in
6316 function declarations.
6317
6318 2009-05-11 Ian Lance Taylor <iant@google.com>
6319
6320 PR bootstrap/40103
6321 * graphite.c: Force -Wc++-compat to only be a warning before
6322 #including "cloog/cloog.h".
6323
6324 2009-05-11 Martin Jambor <mjambor@suse.cz>
6325
6326 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
6327
6328 2009-05-11 Jan Hubicka <jh@suse.cz>
6329
6330 * tree-ssa-loop-ivcanon.c: Include target.h
6331 (struct loop_size): new structure.
6332 (constant_after_peeling): New predicate.
6333 (tree_estimate_loop_size): New function.
6334 (estimated_unrolled_size): Rewrite for new estimates.
6335 (try_unroll_loop_completely): Use new estimates.
6336 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
6337
6338 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
6339
6340 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
6341 libcpp interface change.
6342 (spu_macro_to_expand): Likewise.
6343
6344 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
6345
6346 PR tree-optimization/40026
6347 * gimplify.c (gimplify_init_constructor): Change initial conditional
6348 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
6349 optimize_compound_literals_in_ctor.
6350
6351 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
6352
6353 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
6354 New devices.
6355 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
6356
6357 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
6358
6359 * tree-vect-data-refs.c (vect_analyze_group_access): Use
6360 HOST_WIDE_INT for gap.
6361
6362 2009-05-11 Ira Rosen <irar@il.ibm.com>
6363
6364 PR tree-optimization/40074
6365 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6366 account in group size and step comparison.
6367
6368 2009-05-11 Richard Guenther <rguenther@suse.de>
6369
6370 * passes.c (init_optimization_passes): Strip now incorrect comment.
6371 (execute_function_todo): Do not set PROP_alias.
6372 * tree-pass.h (PROP_alias): Remove.
6373 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6374 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6375 * tree-nrv.c (pass_return_slot): Likewise.
6376 * tree-object-size.c (pass_object_sizes): Likewise.
6377 * tree-ssa-dom.c (pass_dominator): Likewise.
6378 (pass_phi_only_cprop): Likewise.
6379 * tree-ssa-dse.c (pass_dse): Likewise.
6380 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6381 (pass_cselim): Likewise.
6382 * tree-ssa-pre.c (pass_pre): Likewise.
6383 (pass_fre): Likewise.
6384 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6385 * tree-ssa-sink.c (pass_sink_code): Likewise.
6386 * tree-stdarg.c (pass_stdarg): Likewise.
6387 * tree-tailcall.c (pass_tail_calls): Likewise.
6388 * tree-vrp.c (pass_vrp): Likewise.
6389
6390 2009-05-10 Ian Lance Taylor <iant@google.com>
6391
6392 * basic-block.h (enum profile_status): Break out of struct
6393 control_flow_graph.
6394 * cgraph.h (struct inline_summary): Break out of struct
6395 cgraph_local_info.
6396 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6397 of struct cgraph_order_sort.
6398 * combine.c (enum undo_kind): New enum, broken out of struct undo.
6399 * cse.c (struct branch_path): Break out of struct
6400 cse_basic_block_data.
6401 * except.h (enum eh_region_type): Break out of struct eh_region.
6402 * gcc.c (enum add_del): Break out of struct modify_target.
6403 * genrecog.c (enum decision_type): Break out of struct decision_test.
6404 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6405 ggc_pch_data.
6406 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6407 * regmove.c (enum match_use): New enum, broken out of struct match.
6408 * sched-int.h (enum post_call_group): New enum, broken out of
6409 struct deps.
6410 (struct deps_reg): Break out of struct deps.
6411 * target.h (struct asm_int_op): Break out of struct gcc_target.
6412 * tree-eh.c (struct goto_queue_node): Break out of struct
6413 leh_tf_state.
6414 * tree-inline.h (enum copy_body_cge_which): Break out of
6415 copy_body_data.
6416 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6417
6418 * c-decl.c (in_struct, struct_types): New static variables.
6419 (pushtag): Add loc parameter. Change all callers.
6420 (lookup_tag): Add ploc parameter. Change all callers.
6421 (check_compound_literal_type): New function.
6422 (parser_xref_tag): Add loc parameter. Change all callers. If
6423 -Wc++-compat, warn about struct/union/enum types defined within a
6424 struct or union.
6425 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6426 and loc parameters. Change all callers. Change error calls to
6427 error_at, using loc. For a redefinition, if the location of the
6428 original definition is known, report it. Set in_struct and
6429 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
6430 (finish_struct): Add new parameters enclosing_in_struct and
6431 enclosing_struct_types. Change all callers. Set
6432 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6433 in the struct. If in a struct, add this struct to struct_types.
6434 (start_enum): Add loc parameter. Change all callers. Use
6435 error_at for errors, using loc. For a redefinition, if the
6436 location of the original definition is known, report it. If in a
6437 struct, add this enum type to struct_types. If -Wc++-compat warn
6438 if in sizeof, typeof, or alignof.
6439 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6440 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
6441 (c_parser_enum_specifier): Get enum location for start_enum.
6442 (c_parser_struct_or_union_specifier): Get struct location for
6443 start_struct. Save in_struct and struct_types status between
6444 start_struct and finish_struct.
6445 (c_parser_cast_expression): Get location of cast.
6446 (c_parser_alignof_expression): Get location of type.
6447 (c_parser_postfix_expression): Likewise.
6448 (c_parser_postfix_expression_after_paren_type): Add type_loc
6449 parameter. Change all callers. Call check_compound_literal_type.
6450 Use type_loc for error about variable size type.
6451 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6452 of an enum constant from an enum type defined in a struct or union.
6453 (c_cast_expr): Add loc parameter. Change all callers. If
6454 -Wc++-compat, warn about defining a type in a cast.
6455 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6456 (start_enum, start_struct, finish_struct): Update declarations.
6457 (parser_xref_tag, c_cast_expr): Update declarations.
6458 (check_compound_literal_type): Declare.
6459
6460 2009-05-11 Ben Elliston <bje@au.ibm.com>
6461
6462 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6463 for recent libcpp interface change.
6464 (rs6000_macro_to_expand): Likewise.
6465
6466 2009-05-10 Michael Matz <matz@suse.de>
6467
6468 PR target/40031
6469 * config/arm/arm.c (require_pic_register): Emit on entry edge,
6470 not at entry of function.
6471
6472 2009-05-10 Richard Guenther <rguenther@suse.de>
6473
6474 PR tree-optimization/40081
6475 Revert
6476 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6477 using the main variant of the element type. Do not fiddle with
6478 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6479
6480 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6481 structs with volatile fields.
6482
6483 2009-05-10 Jan Hubicka <jh@suse.cz>
6484
6485 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6486 (estimate_move_cost): Assert that it does not get called for
6487 VOID_TYPE_P.
6488 (estimate_num_insns): Skip VOID types in argument handling.
6489 (optimize_inline_calls): Delete unreachable blocks and verify that
6490 callgraph is valid.
6491
6492 2009-05-10 Jan Hubicka <jh@suse.cz>
6493
6494 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6495 * cgraph.c (cgraph_mark_address_taken_node): New function.
6496 (dump_cgraph_node): Dump new flag.
6497 * cgraph.h (struct cgraph_node): Add address_taken.
6498 (cgraph_mark_address_taken_node): New function.
6499 * ipa.c (cgraph_postorder): Prioritize functions with address taken
6500 since new direct calls can be born.
6501
6502 2009-05-10 Joseph Myers <joseph@codesourcery.com>
6503
6504 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6505 tok->val.node.node.
6506
6507 2009-05-10 Jan Hubicka <jh@suse.cz>
6508
6509 PR middle-end/40084
6510 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6511 argument; rewrite.
6512 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6513 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6514 * tree-inline.c (copy_bb): Set frequency correctly.
6515 (fold_marked_statements): Update call to
6516 cgraph_update_edges_for_call_stmt.
6517
6518 2009-05-10 Joseph Myers <joseph@codesourcery.com>
6519
6520 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6521 identifiers in diagnostics.
6522 * config/arm/arm.c (arm_handle_fndecl_attribute,
6523 arm_handle_isr_attribute): Likewise.
6524 * config/avr/avr.c (avr_handle_progmem_attribute,
6525 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
6526 * config/bfin/bfin.c (handle_int_attribute,
6527 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6528 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6529 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6530 Likewise.
6531 * config/darwin.c (darwin_handle_kext_attribute,
6532 darwin_handle_weak_import_attribute): Likewise.
6533 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6534 h8300_handle_eightbit_data_attribute,
6535 h8300_handle_tiny_data_attribute): Likewise.
6536 * config/i386/i386.c (ix86_handle_cconv_attribute,
6537 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
6538 * config/i386/winnt.c (ix86_handle_shared_attribute,
6539 ix86_handle_selectany_attribute): Likewise.
6540 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6541 * config/m32c/m32c.c (function_vector_handler): Likewise.
6542 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6543 m68hc11_handle_fntype_attribute): Likewise.
6544 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6545 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6546 * config/mips/mips.c (mips_insert_attributes,
6547 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6548 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6549 rs6000_handle_struct_attribute): Likewise.
6550 * config/sh/sh.c (sh_insert_attributes,
6551 sh_handle_resbank_handler_attribute,
6552 sh_handle_interrupt_handler_attribute,
6553 sh2a_handle_function_vector_handler_attribute,
6554 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6555 Likewise.
6556 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6557 * config/spu/spu.c (spu_handle_fndecl_attribute,
6558 spu_handle_vector_attribute): Likewise.
6559 * config/stormy16/stormy16.c
6560 (xstormy16_handle_interrupt_attribute): Likewise.
6561 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6562 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6563
6564 2009-05-10 Joseph Myers <joseph@codesourcery.com>
6565
6566 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
6567 (pp_translate_identifiers): New.
6568 (pp_identifier): Only conditionally translate identifier to locale
6569 character set.
6570 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6571 (pp_base_tree_identifier): Only conditionally translate identifier
6572 to locale character set.
6573 * c-pretty-print.c (M_): Define.
6574 (pp_c_type_specifier, pp_c_primary_expression): Mark English
6575 fragments for conditional translation with M_.
6576 * tree-pretty-print.c (maybe_init_pretty_print): Disable
6577 identifier translation.
6578
6579 2009-05-10 Richard Guenther <rguenther@suse.de>
6580
6581 PR tree-optimization/40081
6582 * tree-sra.c (instantiate_element): Instantiate scalar replacements
6583 using the main variant of the element type. Do not fiddle with
6584 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6585
6586 2009-05-09 Jan Hubicka <jh@suse.cz>
6587
6588 PR middle-end/40080
6589 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6590 indirect calls; verify cgraph afterwards.
6591
6592 2009-05-09 Jan Hubicka <jh@suse.cz>
6593
6594 PR bootstrap/40082
6595 * ipa.c (update_inlined_to_pointer): New function.
6596 (cgraph_remove_unreachable_nodes): Use it.
6597
6598 2009-05-09 Jan Hubicka <jh@suse.cz>
6599
6600 * tree-eh.c (struct leh_state): Remove prev_try.
6601 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6602 not track prev_try.
6603 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
6604 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6605 remove_eh_handler_and_replace, foreach_reachable_handler,
6606 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6607 * except.h (struct eh_region): Remove eh_region_u_cleanup.
6608 (gen_eh_region_cleanup): Update prototype.
6609
6610 2009-05-09 Jan Hubicka <jh@suse.cz>
6611
6612 PR middle-end/40043
6613 * except.c (copy_eh_region): Always set prev_try.
6614 (redirect_eh_edge_to_label): Find outer try.
6615 (foreach_reachable_handler): When looking for prev try
6616 handle case where previous try is not going to be taken.
6617
6618 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
6619
6620 PR tree-optimization/40049
6621 * tree-vect-stmts.c (vectorizable_operation): If the machine has
6622 only vector/vector shifts, convert the type of the constant to the
6623 appropriate type to avoid building incorrect trees, which
6624 eventually have problems with garbage collection.
6625
6626 2009-05-08 Joseph Myers <joseph@codesourcery.com>
6627
6628 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6629 -1 for complex floating-point types if honoring signed zeros.
6630
6631 2009-05-08 Jan Hubicka <jh@suse.cz>
6632
6633 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6634 argument; handle correctly when profile is absent.
6635 (build_cgraph_edges): Update.
6636 (rebuild_cgraph_edges): Update.
6637 * cgraph.c: Do not include varray.h.
6638 (cgraph_set_call_stmt_including_clones): New function.
6639 (cgraph_create_edge_including_clones): Likewise
6640 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
6641 (cgraph_update_edges_for_call_stmt): Handle clones.
6642 (cgraph_remove_node): Handle clone tree.
6643 (cgraph_remove_node_and_inline_clones): New function.
6644 (dump_cgraph_node): Dump clone tree.
6645 (cgraph_clone_node): Handle clone tree.
6646 (clone_function_name): Bring here from tree-inline.c.
6647 (cgraph_create_virtual_clone): New function.
6648 * cgraph.h (ipa_replace_map): Move here from ipa.h.
6649 (cgraph_clone_info): New function.
6650 (strut cgraph_node): Add clone_info and new clone tree pointers.
6651 (cgraph_remove_node_and_inline_clones,
6652 cgraph_set_call_stmt_including_clones,
6653 cgraph_create_edge_including_clones,
6654 cgraph_create_virtual_clone): Declare.
6655 (cgraph_function_versioning): Use VEC argument.
6656 (compute_call_stmt_bb_frequency): Update prototype.
6657 (cgraph_materialize_all_clones): New function.
6658 * ipa-cp.c (ipcp_update_cloned_node): Remove.
6659 (ipcp_create_replace_map): Update to VECtors.
6660 (ipcp_update_callgraph): Use virtual clones.
6661 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6662 (ipcp_update_profiling): Do not update local profiling.
6663 (ipcp_insert_stage): Use VECtors and virtual clones.
6664 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6665 (clone_of_p): New function.
6666 (cgraph_preserve_function_body_p): Use clone tree.
6667 (cgraph_optimize): Materialize clones.
6668 (cgraph_function_versioning): Update for VECtors.
6669 (save_inline_function_body): Use clone tree.
6670 (cgraph_materialize_clone): New function.
6671 (cgraph_materialize_all_clones): Likewise.
6672 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6673 * ipa.c: Include gimple.h.
6674 (cgraph_remove_unreachable_nodes): Use clone tree.
6675 * ipa-prop.c (ipa_note_param_call): Update call to
6676 compute_call_stmt_bb_frequencycall.
6677 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
6678 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
6679 (copy_bb): Handle updating of clone tree; add new edge when new call
6680 appears.
6681 (expand_call_inline): Be strict about every call having edge.
6682 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6683 (delete_unreachable_blocks_update_callgraph): New function.
6684 (tree_function_versioning): Use VECtors; always remove unreachable
6685 blocks and fold conditionals.
6686 * tree-inline.h: Do not include varray.h.
6687 (tree_function_versioning): Remove.
6688 * Makefile.in (GTFILES): Remove tree-inline.c
6689 * passes.c (do_per_function): Do only functions having body.
6690 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6691 tree.
6692
6693 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
6694 Andrew Morrow <acm@google.com>
6695
6696 PR c/36892
6697 * c-common.c (c_common_attribute_table): Permit deprecated
6698 attribute to take an optional argument.
6699 (handle_deprecated_attribute): If the optional argument to
6700 __attribute__((deprecated)) is not a string ignore the attribute
6701 and emit a warning.
6702
6703 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6704 * c-typeck.c (build_component_ref): Likewise.
6705 (build_external_ref): Likewise.
6706
6707 * toplev.c (warn_deprecated_use): Add an attribute argument.
6708 Emit the message associated with __attribute__((deprecated)).
6709
6710 * toplev.h (warn_deprecated_use): Updated.
6711
6712 * doc/extend.texi: Document new optional parameter to
6713 __attribute__((deprecated))
6714
6715 2009-05-08 Michael Eager <eager@eagercon.com>
6716
6717 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6718 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6719
6720 2009-05-08 Richard Guenther <rguenther@suse.de>
6721
6722 PR tree-optimization/40062
6723 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6724 Avoid exponential behavior.
6725
6726 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
6727
6728 PR rtl-optimization/33928
6729 PR 26854
6730 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6731 process_uses, build_single_def_use_links): New.
6732 (update_df): Update use_def_ref.
6733 (forward_propagate_into): Use get_def_for_use instead of use-def
6734 chains.
6735 (fwprop_init): Call build_single_def_use_links and let it initialize
6736 dataflow.
6737 (fwprop_done): Free use_def_ref.
6738 (fwprop_addr): Eliminate duplicate call to df_set_flags.
6739 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
6740 df_rd_simulate_one_insn): New.
6741 (df_rd_bb_local_compute_process_def): Update head comment.
6742 (df_chain_create_bb): Use the new RD simulation functions.
6743 * df.h (df_rd_simulate_artificial_defs_at_top,
6744 df_rd_simulate_one_insn): New.
6745 * opts.c (decode_options): Enable fwprop at -O1.
6746 * doc/invoke.texi (-fforward-propagate): Document this.
6747
6748 2009-05-08 Joseph Myers <joseph@codesourcery.com>
6749
6750 PR c/24581
6751 * c-typeck.c (build_binary_op): Handle arithmetic between one real
6752 and one complex operand specially.
6753 * tree-complex.c (some_nonzerop): Do not identify a real value as
6754 zero if flag_signed_zeros.
6755
6756 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
6757
6758 PR rtl-optimization/33928
6759 * loop-invariant.c (record_use): Fix && vs. || mishap.
6760
6761 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
6762
6763 PR rtl-optimization/33928
6764 * loop-invariant.c (struct use): Add addr_use_p.
6765 (struct def): Add n_addr_uses.
6766 (struct invariant): Add cheap_address.
6767 (create_new_invariant): Set cheap_address.
6768 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
6769 (record_uses): Pass df_ref to record_use.
6770 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6771 used only as such.
6772
6773 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6774
6775 * config/sh/sh.c: Do not include c-pragma.h.
6776
6777 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
6778
6779 * config/spu/spu.c: Remove include of c-common.h.
6780
6781 2009-05-07 Janis Johnson <janis187@us.ibm.com>
6782
6783 PR c/39037
6784 * c-common.h (mark_valid_location_for_stdc_pragma,
6785 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6786 clear_float_const_decimal64, float_const_decimal64_p): New.
6787 * c.opt (Wunsuffixed-float-constants): New.
6788 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6789 unsuffixed float constant, handle new warning.
6790 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6791 * c-decl.c (c_scope): New flag float_const_decimal64.
6792 (set_float_const_decimal64, clear_float_const_decimal64,
6793 float_const_decimal64_p): New.
6794 (push_scope): Set new flag.
6795 * c-parser.c (c_parser_translation_unit): Mark when it's valid
6796 to use STDC pragmas.
6797 (c_parser_external_declaration): Ditto.
6798 (c_parser_compound_statement_nostart): Ditto.
6799 * c-pragma.c (valid_location_for_stdc_pragma,
6800 mark_valid_location_for_stdc_pragma,
6801 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6802 handle_pragma_float_const_decimal64): New.
6803 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6804 * cp/semantics.c (valid_location_for_stdc_pragma_p,
6805 set_float_const_decimal64, clear_float_const_decimal64,
6806 float_const_decimal64_p): New dummy functions.
6807 * doc/extend.texi (Decimal Float): Remove statement that the
6808 pragma, and suffix for double constants, are not supported.
6809 * doc/invoke.texi (Warning Options): List new option.
6810 (-Wunsuffixed-float-constants): New.
6811
6812 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
6813
6814 * config/i386/i386.c: Do not include c-common.h.
6815
6816 2009-05-07 Mark Heffernan <meheff@google.com>
6817
6818 * doc/invoke.texi (Debugging Options): Document change of debugging
6819 dump location.
6820 * opts.c (decode_options): Make dump_base_name relative to
6821 aux_base_name directory.
6822
6823 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
6824
6825 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6826 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6827
6828 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
6829
6830 * Makefile.in (install-plugin): Simplify a bit.
6831
6832 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
6833
6834 * Makefile.in (OBJS-common): Add regcprop.o.
6835 (regcprop.o): New.
6836 * timevar.def (TV_CPROP_REGISTERS): New.
6837 * regrename.c (regrename_optimize): Return 0.
6838 (rest_of_handle_regrename): Delete.
6839 (pass_rename_registers): Point to regrename_optimize.
6840 (struct value_data_entry, struct value_data,
6841 kill_value_one_regno, kill_value_regno, kill_value,
6842 set_value_regno, init_value_data, kill_clobbered_value,
6843 kill_set_value, kill_autoinc_value, copy_value,
6844 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6845 replace_oldest_value_reg, replace_oldest_value_addr,
6846 replace_oldest_value_mem, copyprop_hardreg_forward_1,
6847 debug_value_data, validate_value_data): Move...
6848 * regcprop.c: ... here.
6849 (rest_of_handle_cprop): Delete.
6850 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6851
6852 2009-05-07 Jakub Jelinek <jakub@redhat.com>
6853
6854 PR middle-end/40057
6855 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
6856 GEN_INT for 1 << bitnum.
6857 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
6858 build_int_cst_type.
6859
6860 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
6861
6862 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
6863 Remove wrong description of "nand" operation.
6864
6865 2009-05-06 Richard Guenther <rguenther@suse.de>
6866 Adam Nemet <anemet@caviumnetworks.com>
6867
6868 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
6869 comment. Add that if LHS is not a gimple register, then RHS1 has
6870 to be a single object (GIMPLE_SINGLE_RHS).
6871
6872 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
6873
6874 * expr.c (get_def_for_expr): Move it up in the file.
6875 (store_field): When expanding a bit-field store, look at the
6876 defining gimple stmt for the masking conversion.
6877
6878 2009-05-06 Janis Johnson <janis187@us.ibm.com>
6879
6880 PR middle-end/39986
6881 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6882 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6883 32-bit memcpy into long.
6884
6885 2009-05-06 Jakub Jelinek <jakub@redhat.com>
6886
6887 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6888 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6889 new_reg_loc_descr.
6890 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6891 instead of appending DW_OP_deref*.
6892
6893 2009-05-06 Michael Matz <matz@suse.de>
6894
6895 PR middle-end/40021
6896 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6897 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6898
6899 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
6900
6901 * Makefile.in (install-plugin): Fix srcdir handling.
6902
6903 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
6904
6905 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6906 when processing for not_regs_needed bitmap.
6907 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6908 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
6909 handling it for rhs.
6910
6911 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6912
6913 * config/i386/i386.md (unnamed inc/dec peephole): Use
6914 optimize_insn_for_size_p instead of optimize_size.
6915 * config/i386/predicates.md (incdec_operand): Likewise.
6916 (aligned_operand): Likewise.
6917 * config/i386/sse.md (divv8sf3): Likewise.
6918 (sqrtv8sf2): Likewise.
6919
6920 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6921
6922 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6923
6924 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6925
6926 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
6927
6928 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6929 ssemodesuffixf2c with avxmodesuffixf2c.
6930
6931 2009-05-06 Joseph Myers <joseph@codesourcery.com>
6932
6933 PR c/40032
6934 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
6935
6936 2009-05-05 Jakub Jelinek <jakub@redhat.com>
6937
6938 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6939 (struct tree_base): Adjust spacing for 8 bit boundaries.
6940 (struct tree_decl_common): Add decl_by_reference_flag bit.
6941 (DECL_BY_REFERENCE): Adjust.
6942 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6943 print DECL_BY_REFERENCE bit.
6944 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6945 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6946 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6947 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
6948 unconditionally.
6949
6950 PR middle-end/39666
6951 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6952 range of the type, but default label is missing, add it with one
6953 of the existing labels instead of adding a new label for it.
6954
6955 2009-05-05 Joseph Myers <joseph@codesourcery.com>
6956
6957 * dwarf.h: Remove.
6958
6959 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
6960
6961 * Makefile.in (enable_plugin, plugin_includedir): New.
6962 (install): Depend on install-plugin.
6963 (PLUGIN_HEADERS): New.
6964 (install-plugin): New.
6965 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6966
6967 2009-05-05 Richard Guenther <rguenther@suse.de>
6968
6969 PR tree-optimization/40022
6970 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6971 the only vuse.
6972 (phivn_valid_p): Fix tuplification error, simplify.
6973 (phiprop_insert_phi): Add dumps.
6974 (propagate_with_phi): Simplify.
6975
6976 2009-05-05 Richard Guenther <rguenther@suse.de>
6977
6978 PR middle-end/40023
6979 * builtins.c (gimplify_va_arg_expr): Properly build the address.
6980
6981 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
6982
6983 * tree.h (strip_float_extensions): Remove duplicate declaration.
6984 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6985 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6986 block_ultimate_origin): Rearrange the declarations line to match the
6987 comment that indicates the .c file which the functions are defined.
6988 (dwarf2out_*, set_decl_rtl): Add comment.
6989 (get_base_address): Adjust comment.
6990 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6991 declarations line and add comment.
6992 (is_builtin_name): Add blank after function name, for clarity.
6993
6994 2009-05-04 Joseph Myers <joseph@codesourcery.com>
6995
6996 * attribs.c (decl_attributes): Use %qE for identifiers in
6997 diagnostics.
6998 * cgraphunit.c (verify_cgraph_node): Translate function names to
6999 locale character set in diagnostics.
7000 * coverage.c (get_coverage_counts): Use %qE for identifiers in
7001 diagnostics.
7002 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
7003 Document that functions are named in UTF-8.
7004 * expr.c (expand_expr_real_1): Translate function names to locale
7005 character set in diagnostics.
7006 * gimplify.c (omp_notice_variable, omp_is_private,
7007 gimplify_scan_omp_clauses): Use %qE for identifiers in
7008 diagnostics.
7009 * langhooks.c (lhd_print_error_function): Translate function names
7010 to locale character set.
7011 * langhooks.h (decl_printable_name): Document that return value is
7012 in internal character set.
7013 * stmt.c: Include pretty-print.h
7014 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
7015 diagnostics.
7016 (resolve_operand_name_1): Translate named operand name to locale
7017 character set.
7018 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
7019 diagnostics.
7020 * toplev.c (announce_function): Translate function names to locale
7021 character set.
7022 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
7023 (default_tree_printer): Use pp_identifier or translate identifiers
7024 to locale character set. Mark "<anonymous>" for translation.
7025 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
7026 for identifiers in diagnostics.
7027 * tree.c (handle_dll_attribute): Use %qE for identifiers in
7028 diagnostics.
7029 * varasm.c (output_constructor): Use %qE for identifiers in
7030 diagnostics.
7031
7032 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
7033
7034 * configure.ac: use ` ` instead of $()
7035 * configure: Regenerate.
7036
7037 2009-05-05 Ben Elliston <bje@au.ibm.com>
7038
7039 * config/pa/linux-atomic.c: Eliminate conditional include of
7040 errno.h on non-LP64 systems to simplify build requirements.
7041
7042 2009-05-04 Joseph Myers <joseph@codesourcery.com>
7043
7044 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
7045 diagnostics.
7046 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
7047 and pass value to identifier_to_locale.
7048 (warn_variable_length_array): Make name a tree.
7049 (grokdeclarator): Separate diagnostic texts for named and unnamed
7050 declarators. Use %qE for named declarators.
7051 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
7052 diagnostics.
7053 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
7054 identifiers in diagnostics.
7055 * c-typeck.c (push_member_name, start_init): Pass identifiers to
7056 identifier_to_locale. Mark "anonymous" strings for translation.
7057
7058 2009-05-04 Michael Eager <eager@eagercon.com>
7059
7060 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
7061 address for DImode/DFmode only if double-precision FP regs.
7062
7063 2009-05-04 Michael Eager <eager@eagercon.com>
7064
7065 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
7066 TARGET_SINGLE_FLOAT check.
7067
7068 2009-05-04 Michael Eager <eager@eagercon.com>
7069
7070 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
7071
7072 2009-05-04 Michael Eager <eager@eagercon.com>
7073
7074 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
7075 * config/rs6000/t-xilinx: New
7076
7077 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
7078
7079 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
7080 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
7081 * gcc/explow.c (memory_address): Use target hook.
7082 * gcc/targhooks.c (default_legitimize_address): New.
7083 * gcc/targhooks.h (default_legitimize_address): New.
7084 * gcc/target.h (legitimize_address): New.
7085 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
7086 (TARGET_INITIALIZER): Include it.
7087 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
7088
7089 * config/bfin/bfin-protos.h (legitimize_address): Remove.
7090 * config/bfin/bfin.c (legitimize_address): Remove.
7091 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
7092 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
7093 Remove.
7094 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
7095 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
7096
7097 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
7098 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
7099 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
7100 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
7101 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
7102 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
7103 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
7104 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
7105 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
7106 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
7107 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
7108 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
7109 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
7110 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
7111 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
7112 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
7113 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
7114 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
7115 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
7116 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
7117 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
7118 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
7119 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
7120
7121 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
7122 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
7123 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
7124 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
7125 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
7126 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
7127 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
7128 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
7129 (thumb_legitimize_address): Delete.
7130 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
7131 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
7132 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
7133 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
7134 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
7135 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
7136 Delete.
7137 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
7138 Delete.
7139
7140 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
7141 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
7142 * config/m32r/m32r.c (m32r_legitimize_address): New.
7143 * config/m68k/m68k.c (m68k_legitimize_address): New.
7144 * config/score/score.c (score_legitimize_address): Standardize.
7145 * config/score/score3.c (score3_legitimize_address): Standardize.
7146 * config/score/score3.h (score3_legitimize_address): Adjust.
7147 * config/score/score7.c (score7_legitimize_address): Standardize.
7148 * config/score/score7.h (score7_legitimize_address): Adjust.
7149 * config/sh/sh.c (sh_legitimize_address): New.
7150 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
7151
7152 * gcc/config/s390/s390.c (legitimize_address): Rename to...
7153 (s390_legitimize_address): ... this.
7154 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
7155 (sparc_legitimize_address): ... this.
7156 * gcc/config/i386/i386.c (legitimize_address): Rename to...
7157 (ix86_legitimize_address): ... this.
7158 * gcc/config/avr/avr.c (legitimize_address): Rename to...
7159 (avr_legitimize_address): ... this.
7160 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
7161 (mn10300_legitimize_address): ... this.
7162 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
7163 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
7164 (alpha_expand_mov): Adjust call.
7165
7166 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
7167 * config/spu/spu.c (spu_legitimize_address): Likewise.
7168 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
7169 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
7170
7171 2009-05-04 Joseph Myers <joseph@codesourcery.com>
7172
7173 * intl.c (locale_encoding, locale_utf8): New.
7174 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
7175 * intl.h (locale_encoding, locale_utf8): Declare.
7176 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
7177 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
7178 New.
7179 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
7180 argument.
7181 (pp_tree_identifier): Define to call pp_base_tree_identifier.
7182 (pp_base_tree_identifier): Declare as function.
7183 (identifier_to_locale): Declare.
7184 * Makefile.in (pretty-print.o): Update dependencies.
7185 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
7186
7187 2009-05-04 Richard Guenther <rguenther@suse.de>
7188
7189 PR middle-end/40015
7190 * builtins.c (fold_builtin_memory_op): Do not decay to element
7191 type if the size matches the whole array.
7192
7193 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
7194
7195 * expmed.c (synth_mult): When trying out a shift, pass the result
7196 of a signed shift.
7197
7198 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
7199
7200 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
7201 (shiftsub1_cost): New.
7202 (init_expmed): Compute shiftsub1_cost.
7203 (synth_mult): Optimize multiplications by constants of the form
7204 -(2^^m-1) for some constant positive integer m.
7205
7206 2009-05-03 Richard Guenther <rguenther@suse.de>
7207
7208 PR c/39983
7209 * c-typeck.c (array_to_pointer_conversion): Do not built
7210 ADDR_EXPRs of arrays of pointer-to-element type.
7211 * c-gimplify.c (c_gimplify_expr): Revert change fixing
7212 up wrong ADDR_EXPRs after-the-fact.
7213 * c-common.c (strict_aliasing_warning): Strip pointer
7214 conversions for obtaining the original type.
7215 * builtins.c (fold_builtin_memset): Handle array types.
7216 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
7217 and array types
7218
7219 2009-05-03 Richard Guenther <rguenther@suse.de>
7220
7221 PR middle-end/23329
7222 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
7223 Do not lose casts from array types with unknown extent to array
7224 types with known extent.
7225 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
7226 alias set compatibility.
7227
7228 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
7229
7230 * flags.h (extra_warnings): Delete.
7231 * toplev.c (process_options): Handle Wuninitialized here.
7232 * opts.c (extra_warnings): Delete.
7233 (set_Wextra): Delete.
7234 (common_handle_option): -Wextra can be handled automatically.
7235 * c-opts.c (c_common_handle_option): Delete obsolete code.
7236 (c_common_post_options): Simplify comment.
7237 * common.opt (W): Add Var.
7238 (Wextra): Add Var.
7239 (Wuninitialized): Initialize to -1.
7240
7241 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
7242 Richard Guenther <rguenther@suse.de>
7243
7244 * expr.c (get_def_for_expr): New function.
7245 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
7246 SSA rather than trees.
7247 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
7248 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
7249
7250 2009-05-03 Joseph Myers <joseph@codesourcery.com>
7251
7252 * c-common.c (reswords): Add _Imaginary.
7253 * c-common.c (enum rid): Add RID_IMAGINARY.
7254
7255 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
7256
7257 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
7258 Patch by Richard Guenther.
7259
7260 2009-05-03 Anatoly Sokolov <aesok@post.ru>
7261
7262 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
7263 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7264 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
7265 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
7266 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
7267 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
7268 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
7269 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
7270 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
7271 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
7272 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
7273 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
7274 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
7275 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
7276 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
7277 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
7278 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
7279 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
7280
7281 2009-05-02 Richard Guenther <rguenther@suse.de>
7282
7283 PR tree-optimization/39940
7284 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
7285 doing so.
7286
7287 2009-05-02 Richard Guenther <rguenther@suse.de>
7288
7289 PR middle-end/40001
7290 * tree-ssa.c (execute_update_addresses_taken): Properly check
7291 if we can mark a variable DECL_GIMPLE_REG_P.
7292 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
7293 back to the end of the function.
7294 (is_gimple_reg_type): Remove complex type special casing.
7295 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
7296 if not optimizing.
7297
7298 2009-05-02 Ben Elliston <bje@au.ibm.com>
7299
7300 * doc/collect2.texi (Collect2): Document search path behaviour
7301 when configured with --with-ld.
7302
7303 2009-05-02 Jan Hubicka <jh@suse.cz>
7304
7305 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
7306 parameter; update callers.
7307 (coalesce_cost_edge): EH edges are costier because they needs
7308 splitting even if not critical and even more costier when there are
7309 multiple EH predecestors.
7310
7311 2009-05-02 Jan Hubicka <jh@suse.cz>
7312
7313 * except.c (remove_eh_handler_and_replace): Handle updating after
7314 removing TRY blocks.
7315
7316 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
7317
7318 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
7319
7320 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
7321
7322 * varasm.c: Do not include c-pragma.h.
7323 * attribs.c: Do not incude c-common.h.
7324
7325 2009-05-01 Michael Matz <matz@suse.de>
7326
7327 * calls.c (initialize_argument_information): Handle SSA names like
7328 decls with a non MEM_P DECL_RTL.
7329
7330 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
7331
7332 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
7333 * ipa-utils.c: Likewise.
7334 * ipa-type-escape.c: Likewise.
7335 * cgraphunit.c Do not include c-common.h.
7336 * ipa-pure-const.c: Likewise.
7337 * tree-if-conv.c: Likewise.
7338 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
7339 * ipa-struct-reorg.c: Likewise.
7340 * tree-nomudflap.c: Likewise.
7341 * tree-ssa-structalias.c: Likewise.
7342
7343 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
7344
7345 * store-motion.c: Many cleanups to make this pass a first-class
7346 citizen instead of an appendix to gcse load motion. Add TODO list
7347 to make this pass faster/cleaner/better.
7348
7349 (struct ls_expr): Post gcse.c-split cleanups.
7350 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
7351 "stores" field to "avail_stores".
7352 (pre_ldst_mems): Rename to store_motion_mems.
7353 (pre_ldst_table): Rename to store_motion_mems_table.
7354 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
7355 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
7356 (ldst_entry): Rename to st_expr_entry, update users.
7357 (free_ldst_entry): Rename to free_st_expr_entry, update users.
7358 (free_ldst_mems): Rename to free_store_motion_mems, update users.
7359 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7360 update caller.
7361 (first_ls_expr): Rename to first_st_expr, update users.
7362 (next_ls_expr): Rename to next_st_expr, update users.
7363 (print_ldst_list): Rename to print_store_motion_mems. Print names of
7364 fields properly for store motion instead of names inherited from load
7365 motion in gcse.c.
7366 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7367 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
7368 are done with it.
7369
7370 (ae_kill): Rename to st_kill, update users.
7371 (ae_gen): Rename to st_avloc, update users.
7372 (transp): Rename to st_transp, update users.
7373 (pre_insert_map): Rename to st_insert_map, update users.
7374 (pre_delete_map): Rename to st_delete_map, update users.
7375 (insert_store, build_store_vectors, free_store_memory,
7376 one_store_motion_pass): Update for abovementioned changes.
7377
7378 (gcse_subst_count, gcse_create_count): Remove.
7379 (one_store_motion_pass): New statistics counters "n_stores_deleted"
7380 and "n_stores_created", local variables.
7381
7382 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7383 use for_each_rtx.
7384
7385 (regvec, compute_store_table_current_insn): Remove.
7386 (reg_set_info, reg_clear_last_set): Remove.
7387 (compute_store_table): Use DF caches instead of local dataflow
7388 solvers.
7389
7390 2009-05-01 Joseph Myers <joseph@codesourcery.com>
7391
7392 * c-objc-common.c (c_tree_printer): Print identifiers with
7393 pp_identifier, not pp_string. Mark "({anonymous})" for
7394 translation.
7395 * c-pretty-print.c (pp_c_ws_string): New.
7396 (pp_c_cv_qualifier, pp_c_type_specifier,
7397 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7398 pp_c_storage_class_specifier, pp_c_function_specifier,
7399 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7400 pp_c_primary_expression, pp_c_postfix_expression,
7401 pp_c_unary_expression, pp_c_shift_expression,
7402 pp_c_relational_expression, pp_c_equality_expression,
7403 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7404 use pp_string and pp_c_ws_string in place of pp_identifier and
7405 pp_c_identifier for non-identifiers. Mark English strings for
7406 translation.
7407 * c-pretty-print.h (pp_c_ws_string): Declare.
7408
7409 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
7410 Roland McGrath <roland@redhat.com>
7411
7412 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
7413 (ENABLE_LD_BUILDID): New configuration option.
7414 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7415 (LINK_BUILDID_SPEC): New macro.
7416 (init_spec): If defined, prepend it between LINK_EH_SPEC and
7417 link_spec.
7418 * doc/install.texi: Document --enable-linker-build-id option.
7419 * configure: Rebuild.
7420 * config.in: Rebuild.
7421
7422 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
7423
7424 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7425 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7426 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
7427 MIPS_GP_SAVE_AREA_SIZE.
7428 * config/mips/mips.c (struct mips_frame_info): Update comment
7429 before arg_pointer_offset and hard_frame_pointer_offset.
7430 (mips_compute_frame_info): Update diagram before function: to
7431 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7432 indicate the position of frame_pointer_rtx with -fstack-protector and
7433 to show args_size. Don't allocate cprestore area for leaf functions
7434 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
7435 cprestore_size.
7436 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7437
7438 2009-04-30 Michael Matz <matz@suse.de>
7439
7440 PR tree-optimization/39955
7441 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
7442
7443 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
7444
7445 * ira.c (setup_cover_and_important_classes): Use safe macro
7446 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7447 directly.
7448 * genpreds.c (write_tm_preds_h): Output suitable definition of
7449 REG_CLASS_FOR_CONSTRAINT.
7450
7451 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
7452
7453 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7454 instead of an int.
7455 * bitmap.c (bitmap_descriptor): Likewise.
7456 * ggc-common.c (loc_descriptor): Likewise.
7457 * varray.c (varray_descriptor): Likewise.
7458 * vec.c (vec_descriptor): Likewise.
7459
7460 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
7461
7462 * Makefile.in (dce.o): Add $(EXCEPT_H).
7463 * dce.c: Include except.h and delete redundant vector definitions.
7464 (deletable_insn_p): Return false for non-call insns that can throw
7465 if DF is running.
7466
7467 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
7468
7469 * gcse.c (ae_gen): Remove.
7470 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7471 and make non-static function to make it available in store-motion.c.
7472 Update call sites with search-and-replace.
7473 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7474 extract_mentioned_regs, extract_mentioned_regs_helper,
7475 find_moveable_store, compute_store_table, load_kills_store, find_loads,
7476 store_killed_in_insn, store_killed_after, store_killed_before,
7477 build_store_vectors, insert_insn_start_basic_block, insert-store,
7478 remove_reachable_equiv_notes, replace_store_insn, delete_store,
7479 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7480 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7481 * store-motion.c: ...new file. Also copy data structures from gcse.c
7482 and clean up to remove parts not used by store motion.
7483 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7484 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7485
7486 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7487
7488 PR target/38571
7489 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7490 when optimizing for size.
7491
7492 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
7493
7494 * gcse.c (gcse_constant_p): Fix typo in last change.
7495
7496 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
7497
7498 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7499
7500 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
7501
7502 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7503
7504 2009-04-29 James E. Wilson <wilson@codesourcery.com>
7505
7506 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7507 CONST_HIGH_PART result.
7508
7509 2009-04-29 Anatoly Sokolov <aesok@post.ru>
7510
7511 * config/avr/avr.c (initial_elimination_offset): Rename to
7512 avr_initial_elimination_offset.
7513 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7514 change return type to bool.
7515 (avr_can_eliminate): New function.
7516 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7517 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7518 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
7519 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
7520 avr_initial_elimination_offset.
7521 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7522 (avr_initial_elimination_offset): Define.
7523
7524 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
7525 Steven Bosscher <steven@gcc.gnu.org>
7526
7527 PR rtl-optimization/39938
7528 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7529 * cfgrtl.c: Include insn-attr.h.
7530 (rest_of_pass_free_cfg): New function.
7531 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7532 * resource.c (init_resource_info): Remove call to df_analyze.
7533
7534 2009-04-29 Richard Guenther <rguenther@suse.de>
7535
7536 PR target/39943
7537 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7538 allow conversion to signed integers.
7539
7540 2009-04-29 Richard Guenther <rguenther@suse.de>
7541
7542 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7543 shifts of floating point vectors if the shift amount is
7544 a constant multiple of the element size.
7545
7546 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
7547 Michael Matz <matz@suse.de>
7548
7549 PR middle-end/39927
7550 PR bootstrap/39929
7551 * tree-outof-ssa.c (emit_partition_copy): New function.
7552 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7553 insert_part_to_rtx_on_edge): Perform the partition base var
7554 copy using emit_partition_copy.
7555 (insert_value_copy_on_edge): Convert constants to the right mode.
7556 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7557 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7558
7559 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7560
7561 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7562 scan backwards to try to find a constant to initialize it.
7563
7564 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7565 insn before the loop_end instruction, don't look past labels.
7566
7567 2009-04-29 Richard Guenther <rguenther@suse.de>
7568
7569 PR middle-end/39937
7570 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7571 loose type conversions.
7572 (forward_propagate_addr_expr): Fix tuplification bug. Remove
7573 stmts only if there are no uses of its definition.
7574
7575 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7576
7577 * config/bfin/bfin.h (splitting_loops): Declare.
7578 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7579 Reorder bit definitions to be ascending.
7580 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7581 * config/bfin/bfin.c (splitting_loops): New variable.
7582 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7583 (struct loop_info): Remove members INIT and LOOP_INIT.
7584 (bfin_optimize_loop): Don't set them. Reorder the code that generates
7585 the LSETUP sequence. Allow LC to be loaded from any register, but
7586 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
7587 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7588 set to 1.
7589 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7590 of reload_completed.
7591
7592 From Jie Zhang:
7593 * config/bfin/bfin.md (movsi_insn): Refine constraints.
7594
7595 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
7596
7597 * Makefile.in (PLUGIN_VERSION_H): New.
7598 (OBJS-common): Remove plugin-version.o.
7599 (plugin.o): Depend on (PLUGIN_VERSION_H).
7600 (plugin-version.o): Remove.
7601 * configure: Regenerate
7602 * configure.ac: Create plugin-version.h.
7603 * gcc-plugin.h (plugin_gcc_version): Remove.
7604 (plugin_default_version_check): Change signature.
7605 * plugin-version.c: Remove.
7606 * plugin.c: Include plugin-version.h.
7607 (str_plugin_gcc_version_name): Remove.
7608 (try_init_one_plugin): Pass gcc version to plugin_init.
7609 (plugin_default_version_check): Both gcc and plugin versions are now
7610 arguments.
7611
7612 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7613
7614 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7615 problematic last insns. Test for TYPE_CALL rather than CALL_P.
7616 Remove special case testing for last insn of inner loops. Don't fail
7617 if the loop ends with a jump, emit an extra nop instead.
7618
7619 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7620 DREGS rather than comparing directly. Remove code that tries to
7621 account for latencies.
7622
7623 2009-04-29 Richard Guenther <rguenther@suse.de>
7624
7625 PR tree-optimization/39941
7626 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7627 eliminating an indirect call.
7628
7629 2009-04-29 Richard Guenther <rguenther@suse.de>
7630
7631 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7632 parameter. Allow invariants as base if !require_lvalue.
7633 (verify_gimple_assign_single): Adjust.
7634
7635 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7636
7637 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7638 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
7639 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7640 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
7641 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7642 a VEC_SELECT.
7643 * config/bfin/bfin.c (bfin_expand_builtin,
7644 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
7645
7646 2009-04-28 Richard Guenther <rguenther@suse.de>
7647
7648 * tree-vect-loop.c (get_initial_def_for_induction): Use
7649 correct types for pointer increment.
7650
7651 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7652
7653 * toplev.c (print_version): Update GMP version string calculation.
7654
7655 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
7656
7657 PR rtl-optimization/39938
7658 * resource.c (init_resource_info): Add call to df_analyze.
7659
7660 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
7661
7662 * config/alpha/alpha.md (usegp): Cast the result of
7663 alpha_find_lo_sum_using_gp to enum attr_usegp.
7664 * config/alpha/alpha.c (override_options): Remove end-of-structure
7665 marker element from cpu_table. Use array size of cpu_table to handle
7666 -mcpu and -mtune options.
7667 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7668
7669 2009-04-28 Joseph Myers <joseph@codesourcery.com>
7670
7671 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7672 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
7673 tune_32 and tune_64.
7674 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7675 support on PowerPC.
7676 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7677 * config/rs6000/option-defaults.h: ... here. New file.
7678 (OPT_64, OPT_32): Define.
7679 (MASK_64BIT): Define to 0 if not already defined.
7680 (OPT_ARCH64, OPT_ARCH32): Define.
7681 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7682 and tune_64.
7683
7684 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7685
7686 * config/arm/arm.c (arm_override_options): Emit error on using
7687 fpa with AAPCS.
7688
7689 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
7690
7691 PR rtl-optimization/39914
7692 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7693 registers for allocnos created from user-defined variables only
7694 when not optimizing.
7695
7696 2009-04-28 Richard Guenther <rguenther@suse.de>
7697
7698 PR middle-end/39937
7699 * fold-const.c (fold_binary): Use distribute_real_division only
7700 on float types.
7701
7702 2009-04-28 Steve Ellcey <sje@cup.hp.com>
7703
7704 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7705 add hpux-stdint.h to tm_file.
7706 (hppa[12]*-*-hpux11*): Ditto.
7707 (ia64*-*-hpux*): Ditto.
7708 * config/hpux-stdint.h: New.
7709 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
7710 __STDC_EXT__ for all compiles.
7711 * config/pa/pa-hpux.h: Ditto.
7712 * config/pa/pa-hpux10.h: Ditto.
7713 * config/pa/pa-hpux11.h: Ditto.
7714
7715 2009-04-28 Catherine Moore <clm@codesourcery.com>
7716
7717 * debug.h (set_name): Add comment.
7718
7719 2009-04-28 Andrew Pinski <pinskia@gmail.com>
7720
7721 PR target/39929
7722 * config/darwin.c (machopic_gen_offset): Check
7723 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7724 * config/arm/arm.c (require_pic_register): Likewise.
7725
7726 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
7727
7728 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7729 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7730 m32c_promote_prototypes): Delete.
7731
7732 2009-04-28 Michael Matz <matz@suse.de>
7733
7734 PR middle-end/39922
7735 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7736 constants.
7737
7738 2009-04-28 Richard Guenther <rguenther@suse.de>
7739
7740 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7741
7742 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7743
7744 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7745 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7746 * config/arm/arm-tune.md: Regenerate.
7747
7748 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
7749
7750 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7751 block if there are complex incoming edges.
7752 (sel_merge_blocks): Remove useless assert.
7753 (sel_redirect_edge_and_branch): Check that edge was redirected.
7754 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7755 (sel_find_rgns): Delete declaration.
7756 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7757 the region when it is not a preheader.
7758
7759 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
7760
7761 PR c/39323
7762 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7763
7764 2009-04-28 Richard Guenther <rguenther@suse.de>
7765
7766 * tree.h (SSA_NAME_VALUE): Remove.
7767 (struct tree_ssa_name): Remove value_handle member.
7768 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7769 array for jump threading.
7770 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7771 SSA_NAME_VALUEs.
7772 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7773 * tree-flow.h (threadedge_initialize_values): Declare.
7774 (threadedge_finalize_values): Likewise.
7775 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7776 (SSA_NAME_VALUE): Define.
7777 (threadedge_initialize_values): New function.
7778 (threadedge_finalize_values): Likewise.
7779 * tree-ssa-dom.c (ssa_name_values): New global variable.
7780 (SSA_NAME_VALUE): Define.
7781 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
7782
7783 2009-04-28 Ira Rosen <irar@il.ibm.com>
7784
7785 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7786 Use REPORT_VECTORIZED_LOCATIONS instead
7787 REPORT_VECTORIZED_LOOPS.
7788 * tree-vectorizer.c (vect_verbosity_level): Make static.
7789 (vect_loop_location): Rename to vect_location.
7790 (vect_set_verbosity_level): Update comment.
7791 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7792 and vect_location.
7793 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7794 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7795 instead REPORT_UNVECTORIZED_LOOPS.
7796 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7797 and vect_loop_def to vect_external_def and vect_internal_def.
7798 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7799 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
7800 REPORT_UNVECTORIZED_LOCATIONS.
7801 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7802 and vect_used_in_loop and to vect_unused_in_scope and
7803 vect_used_in_scope.
7804 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7805 (vect_verbosity_level): Remove declaration.
7806 (vect_analyze_operations): Likewise.
7807 (vect_analyze_stmt): Declare.
7808 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7809 REPORT_UNVECTORIZED_LOCATIONS.
7810 (vect_get_loop_niters): Fix indentation.
7811 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7812 (vect_analyze_loop_operations): New function.
7813 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7814 vect_analyze_operations.
7815 (vect_is_simple_reduction): Use new names.
7816 (vectorizable_live_operation, vect_transform_loop): Likewise.
7817 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7818 to specify whether the data references can be a part of interleaving
7819 chain.
7820 (vect_analyze_data_ref_dependence): Use new names.
7821 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7822 (vect_create_addr_base_for_vector_ref): Remove redundant code.
7823 * tree-vect-patterns.c (widened_name_p): Use new names.
7824 (vect_recog_dot_prod_pattern): Likewise.
7825 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7826 (process_use, vect_mark_stmts_to_be_vectorized,
7827 vect_model_simple_cost, vect_model_store_cost,
7828 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7829 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7830 vectorizable_operation, vectorizable_type_demotion,
7831 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7832 vectorizable_condition): Likewise.
7833 (vect_analyze_operations): Split into vect_analyze_loop_operations
7834 and ...
7835 (vect_analyze_stmt): ... new function.
7836 (new_stmt_vec_info): Use new names.
7837 (vect_is_simple_use): Use new names and fix comment.
7838 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7839 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7840
7841 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
7842
7843 PR target/39911
7844 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7845 and integer modes for x87 operands. Do not ICE for unsupported size,
7846 generate error instead. Generate error for unsupported operand types.
7847 ['z']: Do not handle HImode memory operands specially. Warning
7848 for floating-point operands. Fallthru to 'Z' for unsupported operand
7849 types. Do not ICE for unsupported size, generate error instead.
7850 (output_387_binary_op): Use %Z to output operands.
7851 (output_fp_compare): Ditto.
7852 (output_387_reg_move): Ditto.
7853
7854 2009-04-28 Ben Elliston <bje@au.ibm.com>
7855
7856 PR c++/35652
7857 Revert:
7858
7859 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7860
7861 * builtins.c (c_strlen): Do not warn here.
7862 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7863 * c-common.c (pointer_int_sum): Take an explicit location.
7864 Warn about offsets out of bounds.
7865 * c-common.h (pointer_int_sum): Adjust declaration.
7866
7867 2009-04-27 Ian Lance Taylor <iant@google.com>
7868
7869 * collect2.c (is_ctor_dtor): Change type of ret field in struct
7870 names to symkind.
7871 * dce.c (run_fast_df_dce): Change type of old_flags to int.
7872 * df-core.c (df_set_flags): Change return type to int. Change
7873 type of old_flags to int.
7874 (df_clear_flags): Likewise.
7875 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7876 (df_get_conditional_uses): Likewise.
7877 * df.h (df_set_flags, df_clear_flags): Update declarations.
7878 * dwarf2out.c (struct indirect_string_node): Change type of form
7879 field to enum dwarf_form.
7880 (AT_string_form): Change return type to enum dwarf_form.
7881 * fixed-value.c (fixed_compare): Add cast to enum type.
7882 * fwprop.c (update_df): Change 0 to VOIDmode.
7883 * gensupport.c: Change 0 to UNKNOWN.
7884 * gimple.h (gimple_cond_code): Add cast to enum type.
7885 * haifa-sched.c (reemit_notes): Add cast to enum type.
7886 * hooks.c (hook_int_void_no_regs): Remove function.
7887 * hooks.h (hook_int_void_no_regs): Remove declaration.
7888 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7889 * predict.c (combine_predictions_for_insn): Add casts to enum type.
7890 * real.c (real_arithmetic): Add cast to enum type.
7891 (real_compare): Likewise.
7892 * target.h (struct gcc_target): Change return type of
7893 branch_target_register_class to enum reg_class.
7894 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7895 default_branch_target_register_class.
7896 * targhooks.c (default_branch_target_register_class): New function.
7897 * targhooks.h (default_branch_target_register_class): Declare.
7898 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
7899 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7900 cast to int.
7901 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7902 ERROR_MARK.
7903 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7904 vect_uninitialized_def. Change 0 to ERROR_MARK.
7905 * tree-vect-stmts.c (supportable_widening_operation): Don't
7906 initialize icode1 and icode2.
7907 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
7908 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7909 and to STD_C89.
7910 (cmn_err_flag_specs): Change 0 to STD_C89.
7911 (cmn_err_char_table): Likewise.
7912 * config/arm/arm.c (get_arm_condition_code): Change type of code
7913 to enum arm_cond_code.
7914 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7915 (IWMMXT_BUILTIN2): Likewise.
7916 (neon_builtin_type_bits): Don't define typedef.
7917 (neon_builtin_datum): Change type of bits field to int.
7918 (arm_expand_neon_args): Add cast to enum type.
7919 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7920 TLS_MODEL_NONE.
7921 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
7922 casts to enum type.
7923 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7924 MIPS_FP_COND_f.
7925 * config/mips/mips.md (jal_macro): Return enum constant.
7926 (single_insn): Likewise.
7927 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7928 CODE_FOR_nothing.
7929 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7930 casts to enum type.
7931 * config/s390/s390.c (s390_tune_flags): Change type to int.
7932 (s390_arch_flags): Likewise.
7933 (s390_handle_arch_option): Change flags field of struct pta to int.
7934 * config/s390/s390.h (s390_tune_flags): Update declaration.
7935 (s390_arch_flags): Likewise.
7936 * config/sh/sh.c (prepare_move_operands): Compare
7937 tls_symbolic_operand result with enum constant.
7938 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7939 (sh_expand_prologue): Add cast to enum type.
7940 (sh_expand_epilogue): Likewise.
7941 (tls_symbolic_operand): Change return type to enum tls_model.
7942 (fpscr_set_from_mem): Add cast to enum type.
7943 (legitimize_pic_address): Compare tls_symbolic_operand result with
7944 enum constant.
7945 (sh_target_reg_class): Change return type to enum reg_class.
7946 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7947 PROCESSOR_xxx.
7948 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7949 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
7950 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7951 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7952 (delayed_branch, tls_call_delay): Likewise.
7953 (eligible_for_sibcall_delay): Likewise.
7954 (eligible_for_return_delay): Likewise.
7955 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7956 (spu_expand_builtin_1): Likewise.
7957
7958 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7959 for all types of conversions.
7960 (output_init_element): Issue -Wc++-compat warning if needed when
7961 initializing a bitfield with enum type.
7962 * c-parser.c (c_parser_expression): Set original_type to
7963 original_type of right hand operand of comman operator.
7964
7965 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7966
7967 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7968 grammar nits.
7969 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
7970 * doc/cpp.texi (Standard Predefined Macros)
7971 (Implementation-defined behavior): Likewise.
7972 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
7973 * doc/gimple.texi (GIMPLE Exception Handling)
7974 (@code{GIMPLE_ASSIGN}): Likewise.
7975 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
7976 * doc/invoke.texi (Warning Options, Optimize Options)
7977 (AVR Options, Darwin Options): Likewise.
7978 (Optimize Options): Reformulate -fwhole-program description.
7979 * doc/loop.texi (Lambda): Likewise.
7980 * doc/md.texi (Output Template, Define Constraints)
7981 (Standard Names, Insn Splitting): Likewise.
7982 * doc/options.texi (Option properties): Likewise.
7983 * doc/passes.texi (Tree-SSA passes): Likewise.
7984 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7985 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7986 (File Names and DBX): Likewise.
7987 * doc/trouble.texi (Incompatibilities): Likewise.
7988
7989 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
7990
7991 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7992 instruction is correct.
7993
7994 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
7995
7996 Allow non-constant arguments to conversion intrinsics.
7997 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7998 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7999 * spu.c (print_operand): Handle 'v' and 'w'.
8000 (exp2_immediate_p, spu_gen_exp2): Define.
8001 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
8002 spu_convtf_1): Update parameter descriptions.
8003 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
8004 * constraints.md ('v', 'w'): New.
8005 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
8006 Remove.
8007 (i2f, I2F): New define_mode_attr.
8008 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
8009 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
8010 fixuns_truncv4sfv4si2): Update to use mode attribute.
8011 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
8012 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
8013 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
8014 patterns for combine.
8015
8016 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
8017
8018 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
8019 (cprop, hoist, pre, store_motion): New debug counters.
8020 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
8021 is not an RTL pass anymore.
8022 (pass_profiling): Remove extern decl for pass removed in 2005.
8023 (pass_gcse, pass_jump_bypass): Remove.
8024 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
8025 to 0 for clean state.
8026 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
8027 * cse.c (gate_handle_cse_after_global_opts,
8028 rest_of_handle_cse_after_global_opts): New functions.
8029 (pass_cse_after_global_opts): New pass, does local CSE.
8030 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
8031 (TV_CPROP): New timevar.
8032 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
8033 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
8034 (gcse_main, recompute_all_luids): Remove.
8035 (compute_hash_table_work): Call max_reg_num instead of reading
8036 max_gcse_regno.
8037 (cprop_jump): Don't set run_jump_opt_after_gcse.
8038 (constprop_register): Always allow to alter jumps.
8039 (cprop_insn): Likewise.
8040 (do_local_cprop): Likewise.
8041 (local_cprop_pass): Likewise. Return non-zero if something changed.
8042 (cprop): Remove function, fold interesting bits into one_cprop_pass.
8043 (find_implicit_sets): Add note about missed optimization opportunity.
8044 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
8045 pass_rtl_cprop execute function.
8046 Don't bother tracking the pass number, each pass gets its own dumpfile
8047 now anyway.
8048 Always allow to alter jumpsand bypass jumps.
8049 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
8050 will just find no suitable set.
8051 (pre_edge_insert): Fix dumping, this function is for PRE only.
8052 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
8053 pass_rtl_pre execute function.
8054 (hoist_code): Return non-zero if something changed. Keep track of
8055 substitutions and insertions for statistics gathering similar to PRE.
8056 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
8057 called from the pass_rtl_hoist execute function. Show pass statistics.
8058 (compute_store_table): Use max_reg_num directly instead of using the
8059 formerly global max_gcse_regno.
8060 (build_store_vectors): Likewise.
8061 (replace_store_insn): Fix dumping.
8062 (store_motion): Rename to ...
8063 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
8064 pass, called from the pass_rtl_store_motion execute function. Keep
8065 track of substitutions and insertions for statistics gathering similar
8066 to PRE.
8067 (bypass_jumps): Remove, fold interesting bits into ...
8068 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
8069 from the pass_rtl_cprop execute function.
8070 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
8071 pass_jump_bypass): Remove.
8072 (gate_handle_gcse, rest_of_handle_gcse): Remove.
8073 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
8074 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
8075 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
8076 (gate_rtl_store_motion, execute_rtl_store_motion,
8077 pass_rtl_store_motion): New.
8078 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
8079 make it clear that -fcse-skip-blocks is a no-op for backward compat.
8080 * passes.c (init_optimization_passes): Remove pass_gcse and
8081 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
8082 and cse_after_global_opts in place of pass_gcse. Schedule cprop
8083 instead of pass_jump_bypass.
8084
8085 2009-04-27 Richard Guenther <rguenther@suse.de>
8086
8087 PR middle-end/39928
8088 * gimplify.c (gimplify_expr): If we are required to create
8089 a temporary make sure it ends up as register.
8090
8091 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
8092
8093 PR target/39903
8094 * config/i386/i386.c (construct_container): Don't call
8095 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
8096 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
8097
8098 2009-04-27 Michael Matz <matz@suse.de>
8099
8100 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
8101 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
8102 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
8103 (dump_replaceable_exprs): Take a bitmap.
8104 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
8105 array.
8106 (expand_gimple_basic_block): Likewise.
8107 * tree-ssa-ter.c (struct temp_expr_table_d): Make
8108 replaceable_expressions member a bitmap.
8109 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
8110 (mark_replaceable): Likewise.
8111 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
8112 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
8113
8114 2009-04-27 Richard Guenther <rguenther@suse.de>
8115
8116 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
8117 (verify_stmts): Dispatch to gimple/type verification code.
8118 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
8119 issue with call argument types.
8120
8121 2009-04-27 Michael Matz <matz@suse.de>
8122
8123 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
8124 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
8125 to above.
8126
8127 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8128 Eric Botcazou <ebotcazou@adacore.com>
8129
8130 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
8131 a label's basic block.
8132 (mark_target_live_regs): Tidy and rework obsolete comments.
8133 Change back DF problem to LIVE. If a label starts a basic block,
8134 assume that all registers that used to be live then still are.
8135 (init_resource_info): If a label starts a basic block, set its
8136 BLOCK_FOR_INSN accordingly.
8137 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
8138
8139 2009-04-27 Richard Guenther <rguenther@suse.de>
8140
8141 * tree-flow-inline.h (function_ann): Remove.
8142 (get_function_ann): Likewise.
8143 * tree-dfa.c (create_function_ann): Remove.
8144 * tree-flow.h (struct static_var_ann_d): Remove.
8145 (struct function_ann_d): Likewise.
8146 (union tree_ann_d): Remove fdecl member.
8147 (function_ann_t): Remove.
8148 (function_ann, get_function_ann, create_function_ann): Remove
8149 declarations.
8150
8151 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
8152
8153 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
8154
8155 2009-04-27 Jan Hubicka <jh@suse.cz>
8156
8157 * ipa-pure-const.c (struct funct_state_d): New fields
8158 state_previously_known, looping_previously_known; remove
8159 state_set_in_source.
8160 (analyze_function): Use new fields.
8161 (propagate): Avoid assumption that state_set_in_source imply
8162 nonlooping.
8163
8164 * tree-ssa-loop-niter.c (finite_loop_p): New function.
8165 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
8166 * cfgloop.h (finite_loop_p): Declare.
8167
8168 2009-04-26 Michael Matz <matz@suse.de>
8169
8170 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
8171
8172 2009-04-26 Michael Matz <matz@suse.de>
8173
8174 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
8175 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
8176 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
8177 pass_mark_used_blocks): Remove.
8178 * tree-optimize.c (pass_free_datastructures,
8179 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
8180 * passes.c (init_optimization_passes): Don't call
8181 pass_mark_used_blocks, remove dead code.
8182
8183 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
8184
8185 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
8186 * tree-ssa-live.h (register_ssa_partition): Likewise.
8187
8188 2009-04-26 Michael Matz <matz@suse.de>
8189
8190 Expand from SSA.
8191 * builtins.c (fold_builtin_next_arg): Handle SSA names.
8192 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
8193 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
8194 SSA names.
8195 (compare_pairs): Swap cost comparison.
8196 (coalesce_ssa_name): Don't use change_partition_var.
8197 * tree-nrv.c (struct nrv_data): Add modified member.
8198 (finalize_nrv_r): Set it.
8199 (tree_nrv): Use it to update statements.
8200 (pass_nrv): Require PROP_ssa.
8201 * tree-mudflap.c (mf_decl_cache_locals,
8202 mf_build_check_statement_for): Use make_rename_temp.
8203 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
8204 * alias.c (find_base_decl): Handle SSA names.
8205 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
8206 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
8207 * rtl.h (set_reg_attrs_for_parm): Declare.
8208 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
8209 to "optimized", remove unused locals at finish.
8210 (execute_free_datastructures): Make global, call
8211 delete_tree_cfg_annotations.
8212 (execute_free_cfg_annotations): Don't call
8213 delete_tree_cfg_annotations.
8214
8215 * ssaexpand.h: New file.
8216 * expr.c (toplevel): Include ssaexpand.h.
8217 (expand_assignment): Handle SSA names the same as register variables.
8218 (expand_expr_real_1): Expand SSA names.
8219 * cfgexpand.c (toplevel): Include ssaexpand.h.
8220 (SA): New global variable.
8221 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
8222 (SSAVAR): New macro.
8223 (set_rtl): New helper function.
8224 (add_stack_var): Deal with SSA names, use set_rtl.
8225 (expand_one_stack_var_at): Likewise.
8226 (expand_one_stack_var): Deal with SSA names.
8227 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
8228 before unique numbers.
8229 (expand_stack_vars): Use set_rtl.
8230 (expand_one_var): Accept SSA names, add asserts for them, feed them
8231 to above subroutines.
8232 (expand_used_vars): Expand all partitions (without default defs),
8233 then only the local decls (ignoring those expanded already).
8234 (expand_gimple_cond): Remove edges when jumpif() expands an
8235 unconditional jump.
8236 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
8237 or remove abnormal edges. Ignore insns setting the LHS of a TERed
8238 SSA name.
8239 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
8240 members of SA; deal with PARM_DECL partitions here; expand
8241 all PHI nodes, free tree datastructures and SA. Commit instructions
8242 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
8243 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
8244 info and statements at start, collect garbage at finish.
8245 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
8246 (VAR_ANN_PARTITION) Remove.
8247 (change_partition_var): Don't declare.
8248 (partition_to_var): Always return SSA names.
8249 (var_to_partition): Only accept SSA names.
8250 (register_ssa_partition): Only check argument.
8251 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
8252 member.
8253 (delete_var_map): Don't free it.
8254 (var_union): Only accept SSA names, simplify.
8255 (partition_view_init): Mark only useful SSA names as used.
8256 (partition_view_fini): Only deal with SSA names.
8257 (change_partition_var): Remove.
8258 (dump_var_map): Use ssa_name instead of partition_to_var member.
8259 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
8260 basic blocks.
8261 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
8262 (struct _elim_graph): New member const_dests; nodes member vector of
8263 ints.
8264 (set_location_for_edge): New static helper.
8265 (create_temp): Remove.
8266 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
8267 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
8268 (new_elim_graph): Allocate const_dests member.
8269 (clean_elim_graph): Truncate const_dests member.
8270 (delete_elim_graph): Free const_dests member.
8271 (elim_graph_size): Adapt to new type of nodes member.
8272 (elim_graph_add_node): Likewise.
8273 (eliminate_name): Likewise.
8274 (eliminate_build): Don't take basic block argument, deal only with
8275 partition numbers, not variables.
8276 (get_temp_reg): New static helper.
8277 (elim_create): Use it, deal with RTL temporaries instead of trees.
8278 (eliminate_phi): Adjust all calls to new signature.
8279 (assign_vars, replace_use_variable, replace_def_variable): Remove.
8280 (rewrite_trees): Only do checking.
8281 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
8282 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
8283 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
8284 contains_tree_r, MAX_STMTS_IN_LATCH,
8285 process_single_block_loop_latch, analyze_edges_for_bb,
8286 perform_edge_inserts): Remove.
8287 (expand_phi_nodes): New global function.
8288 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
8289 functions, initialize new parameter, remember partitions having a
8290 default def.
8291 (finish_out_of_ssa): New global function.
8292 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
8293 don't reset in_ssa_p here, don't disable TER when mudflap.
8294 (pass_del_ssa): Remove.
8295 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
8296 partition members.
8297 (execute_free_datastructures): Declare.
8298 * Makefile.in (SSAEXPAND_H): New variable.
8299 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
8300 * basic-block.h (commit_one_edge_insertion): Declare.
8301 * passes.c (init_optimization_passes): Move pass_nrv and
8302 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
8303 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
8304 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
8305 (redirect_branch_edge): Deal with super block when expanding, split
8306 out jump patching itself into ...
8307 (patch_jump_insn): ... here, new static helper.
8308
8309 2009-04-26 Michael Matz <matz@suse.de>
8310
8311 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
8312 beyond num_ssa_names.
8313 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
8314 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
8315
8316 2009-04-26 Jakub Jelinek <jakub@redhat.com>
8317
8318 PR inline-asm/39543
8319 * fwprop.c (forward_propagate_asm): New function.
8320 (forward_propagate_and_simplify): Propagate also into __asm, if it
8321 doesn't increase the number of referenced registers.
8322
8323 PR c/39889
8324 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
8325
8326 2009-04-26 Jakub Jelinek <jakub@redhat.com>
8327
8328 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
8329 note_nonlocal_vla_type for nonlocal VLAs.
8330 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
8331 contains_remapped_vars, remap_vla_decls): New functions.
8332 (convert_nonlocal_reference_stmt): If not optimizing, call
8333 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
8334 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
8335 if it wasn't found in var_map.
8336 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
8337 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
8338 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
8339 declare_vars.
8340 * gimplify.c (nonlocal_vlas): New variable.
8341 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
8342 referenced VLAs.
8343 (gimplify_body): Create and destroy nonlocal_vlas.
8344
8345 * dwarf2out.c (loc_descr_plus_const): New function.
8346 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
8347 mem_loc_descriptor, loc_descriptor_from_tree_1,
8348 descr_info_loc, gen_variable_die): Use it.
8349
8350 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
8351 !TREE_STATIC VAR_DECLs.
8352 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
8353 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
8354 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
8355 DECL_BY_REFERENCE is valid.
8356 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
8357 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
8358 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
8359 Copy DECL_BY_REFERENCE.
8360 (struct nesting_copy_body_data): New type.
8361 (nesting_copy_decl): New function.
8362 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8363 if they have variable length.
8364
8365 2009-04-26 Michael Matz <matz@suse.de>
8366
8367 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8368 mark new temporaries for renaming.
8369
8370 2009-04-26 Joseph Myers <joseph@codesourcery.com>
8371
8372 PR c/39581
8373 * c-decl.c (global_bindings_p): Return negative value.
8374 (c_variable_size): New. Based on variable_size from
8375 stor-layout.c.
8376 (grokdeclarator): Call c_variable_size not variable_size.
8377
8378 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
8379
8380 * config/i386/i386.c (print_operand) ['z']: Fix typo.
8381
8382 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
8383
8384 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8385 Redefine it to just use mingw/include.
8386 (ASM_SPEC): Rules for -m32 and -m64.
8387 (LINK_SPEC): Use Likewise.
8388 (SPEC_32): New define.
8389 (SPEC_64): Likewise.
8390 (SUB_LINK_SPEC): Likewise.
8391 (MULTILIB_DEFAULTS): New define.
8392 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8393 Add multilib options.
8394 (MULTILIB_DIRNAMES): Likewise.
8395 (MULTILIB_OSDIRNAMES): Likewise.
8396 (LIBGCC): Likewise.
8397 (INSTALL_LIBGCC): Likewise.
8398
8399 2009-04-26 Joseph Myers <joseph@codesourcery.com>
8400
8401 PR c/39556
8402 * c-tree.h (enum c_inline_static_type): New.
8403 (record_inline_static): Declare.
8404 * c-decl.c (struct c_inline_static, c_inline_statics,
8405 record_inline_static, check_inline_statics): New.
8406 (pop_file_scope): Call check_inline_statics.
8407 (start_decl): Call record_inline_static instead of pedwarning
8408 directly for static in inline function.
8409 * c-typeck.c (build_external_ref): Call record_inline_static
8410 instead of pedwarning directly for static referenced in inline
8411 function.
8412
8413 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
8414
8415 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8416 not new but only being rescanned.
8417 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8418 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8419 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8420 record_set_info, compute_set, grealloc): Remove.
8421 (recompute_all_luids): New function.
8422 (gcse_main): Don't compute sets, and don't do related memory
8423 allocations/free-ing. If something changed before the end of the
8424 pass, update LUIDs using recompute_all_luids.
8425 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
8426 (free_gcse_mem): Don't free it either.
8427 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8428 Use the df insn LUIDs.
8429 (load_killed_in_block): Likewise.
8430 (compute_hash_table_work): Don't compute reg_set_in_block.
8431 (compute_transp): Use DF_REG_DEF_CHAINs.
8432 (local_cprop_pass): Don't use compute_sets and related functions.
8433 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8434 Use get_max_uid() instead of max_cuid.
8435 (insert_insn_end_basic_block, pre_insert_copy_insn,
8436 update_ld_motion_stores): Don't try to
8437 keep reg_set tables up to date.
8438 (pre_insert_copies): Use df insn LUIDs.
8439 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8440 (reg_set_info): Don't use extra bitmap argument.
8441 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
8442 information to compute regs_set_in_block.
8443 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8444 (bypass_jumps): Don't use compute_sets and friends.
8445
8446 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8447
8448 PR testsuite/39710
8449 * opts.c (undocumented_msg): Do not leave blank even with
8450 ENABLE_CHECKING.
8451
8452 2009-04-25 Joseph Myers <joseph@codesourcery.com>
8453
8454 * c-decl.c (build_enumerator): Allow values folding to integer
8455 constants but not integer constant expressions with a pedwarn if
8456 pedantic.
8457
8458 2009-04-25 Joseph Myers <joseph@codesourcery.com>
8459
8460 PR c/39582
8461 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8462 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8463 type is an integer constant.
8464
8465 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
8466
8467 PR target/39897
8468 * config/i386/i386.c (print_operand) ['z']: Revert handling of
8469 HImode operands.
8470
8471 2009-04-25 Joseph Myers <joseph@codesourcery.com>
8472
8473 PR c/39564
8474 * c-decl.c (grokdeclarator): Diagnose declarations of functions
8475 with variably modified return type and no storage class
8476 specifiers, except for the case of nested functions. Distinguish
8477 extern declarations of functions with variably modified return
8478 types from those of objects with variably modified types.
8479
8480 2009-04-25 Jan Hubicka <jh@suse.cz>
8481
8482 * tree.c (list_equal_p): New function.
8483 * tree.h (list_equal_p): Declare.
8484 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8485 basic_block_def, basic_block, const_basic_block): New.
8486 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8487 (redirect_eh_edge): New function.
8488 (make_eh_edge_update_phi): EH edges are not abnormal.
8489 * except.c: Include tree-flow.h.
8490 (list_match): New function.
8491 (eh_region_replaceable_by_p): New function.
8492 (replace_region): New function.
8493 (hash_type_list): New function.
8494 (hash_eh_region): New function.
8495 (eh_regions_equal_p): New function.
8496 (merge_peers): New function.
8497 (remove_unreachable_regions): Verify EH tree when checking;
8498 merge peers.
8499 (copy_eh_region_1): New function.
8500 (copy_eh_region): New function.
8501 (push_reachable_handler): New function.
8502 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8503 regions without label but with live RESX.
8504 * except.h (redirect_eh_edge_to_label): New.
8505 * tree-flow.h (redirect_eh_edge): New.
8506 * coretypes.h (edge_def, edge, const_edge, basic_block_def
8507 basic_block_def, basic_block, const_basic_block): Remove.
8508 * Makefile.in (except.o): Add dependency on tree-flow.h
8509 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8510 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8511 Remove.
8512
8513 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
8514
8515 PR bootstrap/39645
8516 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8517 on the destination of memcpy.
8518
8519 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
8520
8521 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8522 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8523 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8524
8525 2009-04-25 Jan Hubicka <jh@suse.cz>
8526
8527 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8528 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8529 to be reached by different label than left.
8530 (update_eh_edges): Update comment; remove edge_to_remove if possible
8531 and return true if suceeded.
8532 (cleanup_empty_eh): Accept sharing map; handle shared regions.
8533 (cleanup_eh): Compute sharing map.
8534 * except.c (remove_eh_handler_and_replace): Add argument if we should
8535 update regions.
8536 (remove_unreachable_regions): Update for label sharing.
8537 (label_to_region_map): Likewise.
8538 (get_next_region_sharing_label): New function.
8539 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8540 prev_try pointers.
8541 (remove_eh_handler): Update.
8542 (remove_eh_region_and_replace_by_outer_of): New function.
8543 * except.h (struct eh_region): Add next_region_sharing_label.
8544 (remove_eh_region_and_replace_by_outer_of,
8545 get_next_region_sharing_label): Declare.
8546 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8547
8548 2009-04-25 Jan Hubicka <jh@suse.cz>
8549
8550 * tree-cfg.c (split_critical_edges): Split also edges where we can't
8551 insert code even if they are not critical.
8552
8553 2009-04-25 Jan Hubicka <jh@suse.cz>
8554
8555 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8556 (gimple_can_remove_branch_p): EH edges won't remove branch by
8557 redirection.
8558 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8559 updating of non-abnormal EH edges.
8560 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8561 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8562 (split_critical_edges): Split also edges where emitting code on them
8563 will lead to splitting later.
8564
8565 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
8566 H.J. Lu <hongjiu.lu@intel.com>
8567
8568 PR target/39590
8569 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8570 the configured assembler supports fildq and fistpq mnemonics.
8571 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8572 * configure: Regenerated.
8573 * config.in: Ditto.
8574
8575 * config/i386/i386.c (print_operand): Handle 'Z'.
8576 ['z']: Remove handling of special fild/fist suffixes.
8577 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8578 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8579 suffix of fild insn.
8580 (*floatsi<mode>2_vector_mixed): Ditto.
8581 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8582 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8583 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8584 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8585 * config/i386/gas.h (GAS_MNEMONICS): Remove.
8586
8587 2009-04-25 Ben Elliston <bje@au.ibm.com>
8588
8589 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8590 the source of a set operation.
8591
8592 2009-04-25 Anatoly Sokolov <aesok@post.ru>
8593
8594 * target.h (struct gcc_target): Add case_values_threshold field.
8595 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8596 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8597 * targhooks.c (default_case_values_threshold): New function.
8598 * targhooks.h (default_case_values_threshold): Declare function.
8599 * stmt.c (expand_case): Use case_values_threshold target hook.
8600 * expr.h (case_values_threshold): Remove declartation.
8601 * expr.c (case_values_threshold): Remove function.
8602 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8603
8604 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8605 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8606 (avr_case_values_threshold): Declare as static.
8607 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8608
8609 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8610 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8611 (mn10300_case_values_threshold): New function.
8612
8613 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8614
8615 * ira.c (setup_cover_and_important_classes): Add enum cast.
8616
8617 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
8618
8619 * genpreds.c (write_enum_constraint_num): Output definition of
8620 CONSTRAINT_NUM_DEFINED_P macro.
8621 * ira.c (setup_cover_and_important_classes): Use
8622 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8623
8624 2009-04-24 DJ Delorie <dj@redhat.com>
8625
8626 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8627 __SH2A_SINGLE_ONLY__ also.
8628
8629 2009-04-24 Steve Ellcey <sje@cup.hp.com>
8630
8631 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8632 (movdf_internal): Ditto.
8633 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8634 SFmode and DFmode constants.
8635 (ia64_print_operand): Add 'G' format for printing
8636 floating point constants.
8637
8638 2009-04-24 Richard Guenther <rguenther@suse.de>
8639
8640 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8641 from unsigned additions.
8642
8643 2009-04-24 Joseph Myers <joseph@codesourcery.com>
8644
8645 * c-typeck.c (set_init_index): Allow array designators that are
8646 not integer constant expressions with a pedwarn if pedantic.
8647
8648 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8649
8650 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8651 zero if no overlap in nonzero bits between the operands.
8652
8653 2009-04-24 Ian Lance Taylor <iant@google.com>
8654
8655 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8656 (record_dead_and_set_regs): Likewise.
8657 * df.h (struct df_mw_hardreg): Change flags field to int.
8658 (struct df_base_ref): Likewise.
8659 (struct df): Change changeable_flags field to int.
8660 * df-scan.c (df_defs_record): Change clobber_flags to int.
8661 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8662 constants rather than #define macros.
8663 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8664 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8665 (enum dwarf_calling_convention): Likewise.
8666 (enum dwarf_line_number_x_ops): Likewise.
8667 (enum dwarf_call_frame_info): Likewise.
8668 (enum dwarf_source_language): Likewise.
8669 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8670 (add_calling_convention_attribute): Likewise.
8671 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8672 (combine_comparisons): Change compcode to int. Add cast to enum type.
8673 * genrecog.c (maybe_both_true_2): Change c to int.
8674 (write_switch): Likewise. Add cast to enum type.
8675 * gimplify.c (gimplify_omp_for): Handle return values from
8676 gimplify_expr using MIN rather than bitwise or.
8677 (gimplify_expr): Add cast to enum type.
8678 * ipa-prop.c (update_jump_functions_after_inlining): Change
8679 IPA_BOTTOM to IPA_JF_UNKNOWN.
8680 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8681 Add casts to enum type.
8682 (setup_cover_and_important_classes): Change cl to int. Add casts
8683 to enum type.
8684 (setup_class_translate): Change cl and mode to int.
8685 (ira_init_once): Change mode to int.
8686 (free_register_move_costs): Likewise.
8687 (setup_prohibited_mode_move_regs): Add casts to enum type.
8688 * langhooks.c (add_builtin_function_common): Rework assertion that
8689 value fits bitfield.
8690 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8691 * omega.c (omega_do_elimination): Avoid math on enum types.
8692 * optabs.c (expand_vec_shift_expr): Remove casts to int.
8693 * opts.c (set_debug_level): Change 2 to enum constant. Use new
8694 int local to handle integral_argment value.
8695 * regmove.c (try_auto_increment): Change PUT_MODE to
8696 PUT_REG_NOTE_KIND.
8697 * reload.c (push_secondary_reload): Add casts to enum type.
8698 (secondary_reload_class, find_valid_class): Likewise.
8699 * reload1.c (emit_input_reload_insns): Likewise.
8700 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8701 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8702 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8703 constant.
8704 * tree.c (build_common_builtin_nodes): Add casts to enum type.
8705 * tree-complex.c (complex_lattice_t): Typedef to int rather than
8706 enum type.
8707 (expand_complex_libcall): Add casts to enum type.
8708 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8709 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8710 with ERROR_MARK, not NUM_TREE_CODES.
8711 (vect_create_epilog_for_reduction): Likewise.
8712 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
8713 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8714 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8715 enum machine_mode.
8716 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8717 vect_unused_in_loop. Change 0 to loop_vect.
8718 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8719 * var-tracking.c (get_init_value): Change return type to enum
8720 var_init_status.
8721 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8722 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8723 arm_fp_model.
8724 (arm_override_options): Add casts to enum type.
8725 (arm_emit_tls_decoration): Likewise.
8726 * config/i386/i386.c (ix86_function_specific_restore): Add casts
8727 to enum type.
8728 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8729 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8730 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8731 enum type.
8732 * config/s390/s390.c (code_for_builtin_64): Change to array of
8733 enum insn_code.
8734 (code_for_builtin_31): Likewise.
8735 (s390_expand_builtin): Change code_for_builtin to enum insn_code
8736 const *.
8737 * config/sparc/sparc.c (sparc_override_options): Change value
8738 field in struct code_model to enum cmodel. In initializer change
8739 0 to NULL and add cast to enum type.
8740
8741 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8742 Change all callers. Issue a -Wc++-compat warning using
8743 lhs_origtype if necessary.
8744 (convert_for_assignment): Issue -Wc++-compat warnings about
8745 invalid conversions to enum type on assignment.
8746 * c-common.h (build_modify_expr): Update declaration.
8747
8748 2009-04-24 Nick Clifton <nickc@redhat.com>
8749
8750 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8751 (function_arg_advance): Likewise.
8752 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8753 5th alternative.
8754
8755 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
8756
8757 * config/s390/constraints.md ('I', 'J'): Fix condition.
8758
8759 2009-04-24 Diego Novillo <dnovillo@google.com>
8760
8761 * gengtype-parse.c (parse_error): Add newline after message.
8762
8763 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
8764
8765 * config/i386/sse.md (avxmodesuffixs): Removed.
8766 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8767 (*avx_pinsr<ssevecsize>): This.
8768
8769 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
8770
8771 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8772 follow chains of regs with a single definition, and allow expressions
8773 that are function_invariant_p.
8774 (simple_rhs_p): Allow expressions that are function_invariant_p.
8775
8776 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
8777
8778 PR middle-end/39867
8779 * fold-const.c (fold_cond_expr_with_comparison): When folding
8780 > and >= to MAX, make sure the MAX uses the same type as the
8781 comparison's operands.
8782
8783 2009-04-24 Nick Clifton <nickc@redhat.com>
8784
8785 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8786 addressing for DImode accesses.
8787 (frv_print_operand_address): Handle PLUS case.
8788 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8789
8790 2009-04-24 Jakub Jelinek <jakub@redhat.com>
8791
8792 PR rtl-optimization/39794
8793 * alias.c (canon_true_dependence): Add x_addr argument.
8794 * rtl.h (canon_true_dependence): Adjust prototype.
8795 * cse.c (check_dependence): Adjust canon_true_dependence callers.
8796 * cselib.c (cselib_invalidate_mem): Likewise.
8797 * gcse.c (compute_transp): Likewise.
8798 * dse.c (scan_reads_nospill): Likewise.
8799 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
8800 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8801 canon_base_addr of the group, plus optional offset.
8802 (struct group_info): Rename canon_base_mem to
8803 canon_base_addr.
8804 (get_group_info): Set canon_base_addr to canon_rtx of base, not
8805 canon_rtx of base_mem.
8806
8807 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
8808
8809 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8810 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8811
8812 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8813
8814 * config/spu/spu-builtins.h: Delete file.
8815
8816 * config/spu/spu.h (enum spu_builtin_type): Move here from
8817 spu-builtins.h.
8818 (struct spu_builtin_description): Likewise. Add GTY marker.
8819 Do not use enum spu_function_code or enum insn_code.
8820 (spu_builtins): Add extern declaration.
8821
8822 * config/spu/spu.c: Do not include "spu-builtins.h".
8823 (enum spu_function_code, enum spu_builtin_type_index,
8824 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8825 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8826 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8827 unsigned_V2DI_type_node): Move here from spu-builtins.h.
8828 (spu_builtin_types): Make static. Add GTY marker.
8829 (spu_builtins): Add extern declaration with GTY marker.
8830 Include "gt-spu.h".
8831
8832 * config/spu/spu-c.c: Do not include "spu-builtins.h".
8833 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8834 Check programmatically whether all parameters are scalar.
8835
8836 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8837
8838 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
8839
8840 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8841 assignment from the constructor either if the target is volatile.
8842
8843 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
8844
8845 * config/arm/arm.md (insv): Do not share operands[0].
8846
8847 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
8848
8849 * config/vxlib-tls.c (active_tls_threads): Delete.
8850 (delete_hook_installed): New.
8851 (tls_delete_hook): Don't delete the delete hook.
8852 (tls_destructor): Delete it here.
8853 (__gthread_set_specific): Adjust installing the delete hook.
8854 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
8855 __gthread_leave_tsd_dtor_context.
8856
8857 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
8858
8859 * c-format.c (gcc_tdiag_char_table): Add support for %E.
8860
8861 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
8862
8863 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
8864 enum type.
8865 (alpha_rtx_costs): Ditto.
8866 (emit_unlikely_jump): Use add_reg_note.
8867 (emit_frame_store_1): Ditto.
8868 (alpha_expand_prologue): Ditto.
8869 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8870 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
8871
8872 2009-04-23 Nick Clifton <nickc@redhat.com>
8873
8874 * config/v850/v850.md (epilogue): Remove suppressed code.
8875 (return): Rename to return_simple and remove test of frame size.
8876 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8877 to gen_return_simple.
8878
8879 2009-04-22 Jing Yu <jingyu@google.com>
8880
8881 PR testsuite/39781
8882 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8883
8884 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8885
8886 PR C/31499
8887 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8888 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
8889 value is a VECTOR_CST, the element type is the element type of the
8890 vector.
8891
8892 2009-04-22 DJ Delorie <dj@redhat.com>
8893
8894 * config/m32c/m32c.h: Update GTY annotations to new syntax.
8895
8896 2009-04-22 Jakub Jelinek <jakub@redhat.com>
8897
8898 * alias.c (find_base_term): Move around LO_SUM case, so that
8899 CONST falls through into PLUS/MINUS handling.
8900
8901 PR c/39855
8902 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8903 into 0, use omit_one_operand.
8904
8905 2009-04-23 Ben Elliston <bje@au.ibm.com>
8906
8907 * config/rs6000/linux-unwind.h (get_regs): Remove type
8908 puns. Change the type of `pc' to an array of unsigned ints and
8909 update all users. Constify frame24.
8910
8911 2009-04-22 DJ Delorie <dj@redhat.com>
8912
8913 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8914 declarations before code.
8915 (current_function_special_page_vector): Likewise.
8916 (m32c_expand_insv): Silence a warning.
8917
8918 2009-04-21 Taras Glek <tglek@mozilla.com>
8919
8920 * alias.c: Update GTY annotations to new syntax.
8921 * basic-block.h: Likewise.
8922 * bitmap.h: Likewise.
8923 * c-common.h: Likewise.
8924 * c-decl.c: Likewise.
8925 * c-parser.c: Likewise.
8926 * c-pragma.c: Likewise.
8927 * c-tree.h: Likewise.
8928 * cfgloop.h: Likewise.
8929 * cgraph.h: Likewise.
8930 * config/alpha/alpha.c: Likewise.
8931 * config/arm/arm.h: Likewise.
8932 * config/avr/avr.h: Likewise.
8933 * config/bfin/bfin.c: Likewise.
8934 * config/cris/cris.c: Likewise.
8935 * config/darwin.c: Likewise.
8936 * config/frv/frv.c: Likewise.
8937 * config/i386/i386.c: Likewise.
8938 * config/i386/i386.h: Likewise.
8939 * config/i386/winnt.c: Likewise.
8940 * config/ia64/ia64.h: Likewise.
8941 * config/iq2000/iq2000.c: Likewise.
8942 * config/mips/mips.c: Likewise.
8943 * config/mmix/mmix.h: Likewise.
8944 * config/pa/pa.c: Likewise.
8945 * config/pa/pa.h: Likewise.
8946 * config/rs6000/rs6000.c: Likewise.
8947 * config/s390/s390.c: Likewise.
8948 * config/sparc/sparc.c: Likewise.
8949 * config/xtensa/xtensa.c: Likewise.
8950 * cselib.h: Likewise.
8951 * dbxout.c: Likewise.
8952 * dwarf2out.c: Likewise.
8953 * except.c: Likewise.
8954 * except.h: Likewise.
8955 * fixed-value.h: Likewise.
8956 * function.c: Likewise.
8957 * function.h: Likewise.
8958 * gimple.h: Likewise.
8959 * integrate.c: Likewise.
8960 * optabs.c: Likewise.
8961 * output.h: Likewise.
8962 * real.h: Likewise.
8963 * rtl.h: Likewise.
8964 * stringpool.c: Likewise.
8965 * tree-data-ref.c: Likewise.
8966 * tree-flow.h: Likewise.
8967 * tree-scalar-evolution.c: Likewise.
8968 * tree-ssa-address.c: Likewise.
8969 * tree-ssa-alias.h: Likewise.
8970 * tree-ssa-operands.h: Likewise.
8971 * tree.c: Likewise.
8972 * tree.h: Likewise.
8973 * varasm.c: Likewise.
8974 * varray.h: Likewise.
8975 * vec.h: Likewise.
8976 * coretypes.h: Do not define GTY macro if it is already defined.
8977 * doc/gty.texi: Update GTY documentation to new syntax.
8978 * gengtype-lex.l: Enforce attribute-like syntax for GTY
8979 annotations on structs.
8980 * gengtype-parse.c: Likewise.
8981
8982 2009-04-22 Mark Heffernan <meheff@google.com>
8983
8984 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
8985
8986 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
8987
8988 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8989 where appropriate.
8990
8991 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
8992
8993 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8994 the same as a PLUS without a shift. Increase the cost of a
8995 CONST_INT in MULT.
8996
8997 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8998
8999 * Makefile.in: Update dependencies.
9000 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
9001 * errors.h: Remove bogus comment about compatibility.
9002 (warning): Update declaration.
9003 * genautomata.c: Update all calls to warning.
9004 * gimple.c: Do not include errors.h. Include toplev.h.
9005 * tree-ssa-structalias.c: Do not include errors.h.
9006 * omega.c: Likewise.
9007 * tree-ssa-reassoc.c: Likewise.
9008 * config/spu/spu-c.c: Likewise.
9009 * config/spu/t-spu-elf: Update dependencies.
9010
9011 2009-04-22 Richard Guenther <rguenther@suse.de>
9012
9013 PR tree-optimization/39824
9014 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
9015 make sure the types are compatible.
9016
9017 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9018
9019 PR c++/14875
9020 * c-common.c (c_parse_error): Take a token_flags parameter.
9021 Use token_type for the token type instead.
9022 Pass token_flags to cpp_type2name.
9023 * c-common.h (c_parse_error): Update declaration.
9024 * c-parser.c (c_parser_error): Pass 0 as token flags.
9025
9026 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
9027
9028 PR rtl-optimization/39580
9029 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
9030
9031 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9032
9033 * function.c (expand_function_end): Do not emit a jump to the "naked"
9034 return label for fall-through returns.
9035 * except.c (sjlj_emit_function_exit): Always place the call to the
9036 unregister function at the location installed by expand_function_end.
9037
9038 2009-04-22 Richard Guenther <rguenther@suse.de>
9039
9040 PR tree-optimization/39845
9041 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
9042 (gen_inbound_check): Likewise.
9043
9044 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
9045
9046 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
9047 padding for PPC.
9048 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
9049 * config/vxlib.c (__gthread_once): Add race guard for PPC.
9050
9051 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
9052
9053 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
9054 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
9055 shift counts to avoid out-of-bounds array accesses.
9056
9057 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
9058
9059 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
9060 (Pmode): Move above.
9061
9062 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
9063
9064 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
9065 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
9066 GET_CODE macro. Use IN_RANGE macro where appropriate.
9067 * config/alpha/alpha.h: Ditto.
9068 * config/alpha/alpha.md: Ditto.
9069 * config/alpha/constraints.md: Ditto.
9070 * config/alpha/predicates.md: Ditto.
9071
9072 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
9073
9074 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
9075 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9076 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9077 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9078 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9079 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9080 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9081 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9082 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9083 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9084 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9085 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9086 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9087 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9088 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9089 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9090 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9091 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9092 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9093 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9094 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9095 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9096 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9097 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9098 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9099 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9100 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9101
9102 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
9103
9104 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
9105 references from comments.
9106 * cfgbuild.c: (count_basic_blocks): Delete.
9107 (find_basic_blocks_1): Delete.
9108 (find_basic_blocks): Delete.
9109 * except.c (finish_eh_generation): Make static. Move comment from
9110 except.h here. Remove find_basic_blocks references from comments.
9111 * except.h (finish_eh_generation): Delete.
9112 * basic-block.h (find_basic_blocks): Delete.
9113 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
9114
9115 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
9116
9117 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
9118 (sdbout_parms): Likewise.
9119
9120 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
9121
9122 * config/sh/sh.c (prepare_cbranch_operands): Use
9123 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
9124 (expand_cbranchdi4): Likewise.
9125 (from_compare): Add cast to enum type.
9126 (expand_cbranchsi4): Use add_reg_note.
9127 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
9128 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
9129 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
9130 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9131 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
9132 instead of CODE_FOR_nothing.
9133 (cbranchdi4): Likewise. Fix the order of arguments for
9134 gen_rtx_fmt_ee.
9135 (push_fpscr): Use add_reg_note.
9136 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
9137 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
9138
9139 2009-04-21 Joseph Myers <joseph@codesourcery.com>
9140
9141 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
9142 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9143 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9144 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
9145 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
9146 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
9147 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
9148 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
9149 config/alpha/x-vms, config/arc/t-arc,
9150 config/arm/README-interworking, config/arm/arm-c.c,
9151 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
9152 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
9153 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
9154 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
9155 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
9156 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
9157 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
9158 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
9159 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
9160 config/cris/t-elfmulti, config/crx/t-crx,
9161 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
9162 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
9163 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
9164 config/h8300/t-h8300, config/i386/athlon.md,
9165 config/i386/darwin-libgcc.10.4.ver,
9166 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
9167 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
9168 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
9169 config/i386/t-linux64, config/i386/t-nwld,
9170 config/i386/t-rtems-i386, config/i386/t-sol2-10,
9171 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
9172 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
9173 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
9174 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
9175 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
9176 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
9177 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
9178 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
9179 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
9180 config/m68k/t-uclinux, config/mcore/t-mcore,
9181 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
9182 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
9183 config/mips/crtn.asm, config/mips/irix-crti.asm,
9184 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
9185 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
9186 config/mips/mips-fixed.md, config/mips/sb1.md,
9187 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
9188 config/mips/t-iris6, config/mips/t-isa3264,
9189 config/mips/t-libgcc-mips16, config/mips/t-linux64,
9190 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
9191 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
9192 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
9193 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
9194 config/mn10300/t-linux, config/mn10300/t-mn10300,
9195 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
9196 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
9197 config/picochip/libgccExtras/clzsi2.asm,
9198 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
9199 config/rs6000/darwin-libgcc.10.4.ver,
9200 config/rs6000/darwin-libgcc.10.5.ver,
9201 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
9202 config/rs6000/t-aix43, config/rs6000/t-aix52,
9203 config/rs6000/t-darwin, config/rs6000/t-fprules,
9204 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
9205 config/rs6000/t-lynx, config/rs6000/t-netbsd,
9206 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
9207 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
9208 config/rs6000/t-rtems, config/rs6000/t-spe,
9209 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
9210 config/score/t-score-elf, config/sh/divcost-analysis,
9211 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
9212 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
9213 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
9214 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
9215 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
9216 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
9217 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
9218 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
9219 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
9220 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
9221 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
9222 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
9223 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
9224 limitx.h, version.c, xcoff.h: Add copyright and license notices.
9225 * config/h8300/genmova.sh: Include copyright and license notices
9226 in generated output.
9227 * config/h8300/mova.md: Regenerate.
9228 * doc/install.texi2html: Include word "Copyright" in copyright
9229 notice and use name "Free Software Foundation, Inc.".
9230 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9231 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9232 ChangeLog-2007, ChangeLog-2008: Correct dates.
9233
9234 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
9235
9236 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
9237 NE_EXPR operations as well.
9238 * c-parser.c (c_parser_condition): Do not set location information on
9239 the condition.
9240 (c_parser_conditional_expression): Likewise.
9241 (c_parser_binary_expression): Set location information on operators.
9242 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
9243 TRUTH_NOT_EXPR has been folded.
9244 * fold-const.c (fold_truth_not_expr): Copy location information from
9245 the incoming expression to the outgoing one.
9246 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
9247 recursive calls on the LHS of the operator but pass that of the
9248 operator to recursive calls on the RHS of the operator. Set it
9249 on the COND_EXPR.
9250 (shortcut_cond_expr): Set the locus of the operator on the second
9251 COND_EXPR and that of the expression on the first in degenerate cases.
9252 Pass the locus of the expression to calls to shortcut_cond_r.
9253 Set the locus of the 'then' block on the associated jump, if any.
9254 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
9255 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
9256 expression to call to gimplify_boolean_expr.
9257
9258 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
9259
9260 * config.gcc: Add additional configuration for
9261 i686-w64-mingw* and x86_64-w64-mingw* triplet.
9262 * config/i386/mingw-w64.h: New mingw-w64 specific header.
9263 (CPP_SPEC): Redefine for allowing -municode option.
9264 (STARTFILE_SPEC): Likewise.
9265 * config/i386/t-mingw-w64: New.
9266 * config/i386/mingw-w64.opt: New.
9267 (municode): Add new target option.
9268 * doc/invoke.texi (municode): Add documentation for new option.
9269
9270 2009-04-21 Ian Lance Taylor <iant@google.com>
9271
9272 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9273 Correct test for number of arguments.
9274 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
9275
9276 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
9277
9278 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
9279 argument of emit_library_call.
9280
9281 2009-04-21 Richard Guenther <rguenther@suse.de>
9282
9283 PR middle-end/39829
9284 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
9285 inside VIEW_CONVERT_EXPRs.
9286
9287 2009-04-21 Martin Jambor <mjambor@suse.cz>
9288
9289 * tree-switch-conversion.c (build_constructors): Split a long line.
9290 (constructor_contains_same_values_p): New function.
9291 (build_one_array): Create assigns of constants if possible, do not
9292 call mark_sym_for_renaming, call update_stmt.
9293 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
9294 make_rename_temp. Do not call mark_symbols_for_renaming, call
9295 update_stmt.
9296 (gen_def_assigns): Do not call mark_symbols_for_renaming or
9297 find_new_referenced_vars, call update_stmt.
9298 (gen_inbound_check): Use create_tmp_var and create ssa names manually
9299 instead of calling make_rename_temp. Do not call
9300 find_new_referenced_vars or mark_symbols_for_renaming, call
9301 update_stmt.
9302
9303 2009-04-21 Richard Guenther <rguenther@suse.de>
9304
9305 PR tree-optimization/39827
9306 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
9307 (tree_ssa_phiprop): Pass the correct array size.
9308
9309 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
9310
9311 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
9312
9313 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
9314
9315 PR 16202
9316 * c-typeck.c (lvalue_p): Move declaration ...
9317 * c-common.h (lvalue_p): ... to here.
9318 * c-common.c (candidate_equal_p): New.
9319 (add_tlist): Use it.
9320 (merge_tlist): Use it.
9321 (warn_for_collisions_1): Likewise.
9322 (warning_candidate_p): Accept more candidates.
9323 (verify_tree): A warning candidate can be an expression. Use
9324 candidate_equal_p.
9325
9326 2009-04-21 Ben Elliston <bje@au.ibm.com>
9327
9328 PR target/5267
9329 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
9330 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
9331 options. Remove -mcall-solaris documentation.
9332
9333 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9334
9335 PR c++/13358
9336 * doc/invoke.texi (-Wlong-long): Update description.
9337 * c-lex (interpret_integer): Only warn if there was no previous
9338 overflow and -Wlong-long is enabled.
9339 * c-decl.c (declspecs_add_type): Drop redundant flags.
9340 * c.opt (Wlong-long): Init to -1.
9341 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
9342 and front-end warn_long_long. Wlong-long only depends on other
9343 flags if it is uninitialized.
9344 * c-parser.c (disable_extension_diagnostics): warn_long_long is
9345 the same for CPP and FE.
9346 (restore_extension_diagnostics): Likewise.
9347
9348 2009-04-20 Ian Lance Taylor <iant@google.com>
9349
9350 Fix enum conversions which are invalid in C++:
9351 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
9352 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
9353 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9354 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
9355 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
9356 (dbxout_parms): Likewise.
9357 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
9358 (df_clear_flags): Likewise.
9359 * df-problems.c (df_rd_bb_local_compute_process_def): Change
9360 top_flag parameter to int.
9361 (df_chain_create_bb_process_use): Likewise.
9362 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9363 Remove cast.
9364 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9365 (df_ref_create_structure, df_def_record_1): Likewise.
9366 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9367 (df_notes_rescan): Change 0 to VOIDmode in function call.
9368 (df_get_call_refs, df_insn_refs_collect): Likewise.
9369 (df_bb_regs_collect): Likewise.
9370 (df_entry_block_defs_collect): Likewise.
9371 (df_exit_block_uses_collect): Likewise.
9372 * df.h: Update declarations.
9373 * double-int.c (double_int_divmod): Add cast to enum type.
9374 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9375 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9376 (based_loc_descr): Likewise.
9377 (loc_descriptor_from_tree_1): Change first_op and second_op to
9378 enum dwarf_location_atom. Add cast to enum type.
9379 * expmed.c (init_expmed): Change 0 to SET in function call.
9380 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
9381 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9382 (do_store_flag): Likewise.
9383 * fixed-value.h (struct fixed_value): Change mode to enum
9384 machine_mode.
9385 * function.c (assign_parms): Change 0 to VOIDmode in function call.
9386 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9387 function call.
9388 (insert_insn_decl, insert_decl, insert_state): Likewise.
9389 (automata_list_finish): Likewise.
9390 * genrecog.c (process_define_predicate): Add cast to enum type.
9391 * gensupport.c (init_predicate_table): Add cast to enum type.
9392 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9393 function call.
9394 (gimple_build_call_1, gimple_build_label): Likewise.
9395 (gimple_build_goto, gimple_build_asm_1): Likewise.
9396 (gimple_build_switch_1, gimple_build_cdt): Likewise.
9397 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
9398 (enum fallback): Rename from enum fallback_t.
9399 (fallback_t): Typedef as int.
9400 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9401 GSI_SAME_STMT in function call.
9402 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9403 enum type.
9404 (setup_reg_class_relations): Likewise.
9405 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
9406 (setup_prohibited_class_mode_regs): Add cast to enum type.
9407 (setup_prohibited_mode_move_regs): Likewise.
9408 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
9409 (record_address_regs): Change i to enum reg_class.
9410 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9411 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9412 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9413 (GET_MODE_2XWIDER_MODE): Likewise.
9414 (GET_CLASS_NARROWEST_MODE): Likewise.
9415 * omp-low.c (expand_omp_for): Add cast to enum type.
9416 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9417 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9418 * postreload.c (reload_cse_simplify_operands): Change rclass local
9419 to enum reg_class.
9420 * predict.c (combine_predictions_for_insn): Change best_predictor
9421 and predictor to enum br_predictor.
9422 (combine_predictions_for_bb): Likewise.
9423 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9424 use SET_PREDICT_EXPR_OUTCOME.
9425 * real.c (real_arithmetic): Change icode to code in function call.
9426 * reginfo.c (init_move_cost): Add casts to enum type.
9427 (init_reg_sets_1, init_fake_stack_mems): Likewise.
9428 * regmove.c (regclass_compatible_p): Change class0 and class1 to
9429 enum reg_class.
9430 * reload.c (find_valid_class): Add casts to enum type.
9431 (push_reload): Change 0 to NO_REGS in function call.
9432 (find_reloads): Change this_alternative to array of enum
9433 reg_class. Remove some now-unnecessary casts.
9434 (make_memloc): Change 0 to VOIDmode in function call.
9435 * reload1.c (reload): Change 0 to VOIDmode in function call.
9436 (eliminate_regs_1, elimination_effects): Likewise.
9437 (eliminate_regs_in_insn): Likewise.
9438 (emit_input_reload_insns): Add cast to enum type.
9439 (delete_output_reload): Change 0 to VOIDmode in function call.
9440 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9441 to enum type in function call.
9442 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9443 (SET_PREDICT_EXPR_OUTCOME): Define.
9444 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
9445 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9446 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9447 (dump_function): Likewise.
9448 * tree-dump.h: Update declarations.
9449 * tree-pass.h: Update declarations.
9450 * varasm.c (assemble_integer): Change mclass to enum mode_class.
9451 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9452 enum type.
9453 (arm_rtx_costs_1): Correct parenthesization.
9454 (arm_rtx_costs): Add casts to enum type.
9455 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9456 (vfp_emit_fstmd): Use add_rg_note.
9457 (emit_multi_reg_push, emit_sfm): Likewise.
9458 (thumb_set_frame_pointer): Likewise.
9459 (arm_expand_prologue): Likewise.
9460 (arm_regno_class): Change return type to enum reg_class.
9461 (thumb1_expand_prologue): Use add_reg_note.
9462 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9463 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9464 in function call.
9465 * config/arm/gentune.sh: Add cast to enum type.
9466 * config/arm/arm-tune.md: Rebuild.
9467 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9468 (ix86_split_fp_branch, predict_jump): Likewise.
9469 (ix86_expand_multi_arg_builtin): Change sub_code from enum
9470 insn_code to enum rtx_code.
9471 (ix86_builtin_vectorized_function): Add cast to enum type.
9472 * config/i386/i386.md (truncdfsf2): Change slot to enum
9473 ix86_stack_slot.
9474 (truncxf<mode>2, isinf<mode>2): Likewise.
9475 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9476 enum type.
9477 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9478 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9479 (insert_bundle_state): Change 1 to INSERT in function call.
9480 (ia64_add_bundle_selector_before): Likewise.
9481 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9482 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9483 (restore_stack_nonlocal): Likewise.
9484 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9485 function call.
9486 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9487 function call.
9488 (mips_rtx_costs): Likewise.
9489 (mips_override_options): Add casts to enum type.
9490 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9491 in function call.
9492 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9493 (store_reg, set_reg_plus_d): Likewise.
9494 (hppa_expand_prologue, hppa_profile_hook): Likewise.
9495 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9496 cast to enum type.
9497 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9498 function call.
9499 (emit_unlikely_jump): Use add_reg_note.
9500 (rs6000_emit_allocate_stack): Likewise.
9501 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9502 (output_toc): Change 1 to INSERT in function call.
9503 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9504 (rs6000_initialize_trampoline): Likewise.
9505 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9506 function call.
9507 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9508 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9509 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9510 (save_gprs): Use add_reg_note.
9511 (s390_emit_prologue): Likewise.
9512 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9513 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9514 (sparc_fold_builtin): Add cast to enum type.
9515 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9516 enum insn_code.
9517 (spu_expand_prologue): Use add_reg_note.
9518 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
9519
9520 2009-04-20 Ian Lance Taylor <iant@google.com>
9521
9522 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9523 (c_parser_postfix_expression_after_primary): Get VEC for list of
9524 arguments. Get original types of arguments. Call
9525 build_function_call_vec.
9526 (cached_expr_list_1, cached_expr_list_2): New static variables.
9527 (c_parser_expr_list): Change return type to VEC *. Add
9528 p_orig_types parameter. Change all callers.
9529 (c_parser_release_expr): New static function.
9530 (c_parser_vec_to_tree_list): New static function.
9531 * c-typeck.c (build_function_call): Rewrite to build a VEC and
9532 call build_function_call_vec.
9533 (build_function_call_vec): New function, based on old
9534 build_function_call.
9535 (convert_arguments): Remove nargs and argarray parameters. Change
9536 values to a VEC. Add origtypes parameter.
9537 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
9538 (convert_for_assignment): Add origtype parameter. Change all
9539 callers. If warn_cxx_compat, check for conversion to an enum
9540 type when calling a function.
9541 (store_init_value): Add origtype parameter. Change all callers.
9542 (digest_init): Likewise.
9543 (struct init_node): Add origtype field.
9544 (add_pending_init): Add origtype parameter. Change all callers.
9545 (output_init_element): Likewise.
9546 (output_pending_init_elements): Pass origtype from init_node to
9547 output_init_element.
9548 (process_init_element): Pass origtype from c_expr to
9549 output_init_element.
9550 (c_finish_return): Add origtype parameter. Change all callers.
9551 * c-common.c (sync_resolve_size): Change params to VEC *. Change
9552 caller.
9553 (sync_resolve_params): Likewise.
9554 (sync_resolve_return): Change params to first_param. Change caller.
9555 (resolve_overloaded_builtins): Change params to VEC *. Change
9556 callers. Save first parameter around call to build_function_call_vec.
9557 * c-decl.c (finish_decl): Add origtype parameter. Change all
9558 callers. Call build_function_call_vec rather than
9559 build_function_call for cleanup.
9560 * c-tree.h: Update declarations.
9561 * c-common.h: Update declarations.
9562 * stub-objc.c (objc_rewrite_function_call): Change parameter from
9563 params to first_param.
9564 * target.h (struct gcc_target): Change resolve_overloaded_builtin
9565 params parameter from tree to void *.
9566 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9567 Change arglist parameter to have type void *, and to be a pointer
9568 to a VEC.
9569 * config/rs6000/rs6000-protos.h
9570 (altivec_resolve_overloaded_builtin): Update declaration.
9571 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9572 fnargs parameter to have type void *, and to be a pointer to a
9573 VEC. Call build_function_call_vec instead of
9574 build_function_call.
9575 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
9576
9577 2009-04-20 Joey Ye <joey.ye@intel.com>
9578 Xuepeng Guo <xuepeng.guo@intel.com>
9579 H.J. Lu <hongjiu.lu@intel.com>
9580
9581 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9582
9583 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9584 (IX86_LEA_PRIORITY): Likewise.
9585 (distance_non_agu_define): New function.
9586 (distance_agu_use): Likewise.
9587 (ix86_lea_for_add_ok): Likewise.
9588 (ix86_dep_by_shift_count): Likewise.
9589
9590 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9591 should split for LEA.
9592
9593 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9594 function.
9595 (ix86_dep_by_shift_count): Likewise.
9596
9597 2009-04-20 Richard Guenther <rguenther@suse.de>
9598
9599 * expr.c (handled_component_p): Move ...
9600 * tree.h (handled_component_p): ... here.
9601 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9602 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9603 and REALPART_EXPR to be in one group.
9604
9605 2009-04-20 Richard Guenther <rguenther@suse.de>
9606
9607 * basic-block.h (get_all_dominated_blocks): Declare.
9608 * dominance.c (get_all_dominated_blocks): New function.
9609 * tree-cfg.c (get_all_dominated_blocks): Remove.
9610 (remove_edge_and_dominated_blocks): Adjust.
9611 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9612 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
9613 instead of recursing.
9614
9615 2009-04-20 Doug Kwan <dougkwan@google.com>
9616
9617 * cgraph.h (cgraph_node_ptr): New type for vector functions.
9618 (struct cgraph_node_set_def): New type.
9619 (cgraph_node_set) New type. Also declare vector functions.
9620 (struct cgraph_node_set_element_def): New type.
9621 (cgraph_node_set_element): Ditto.
9622 (cgraph_node_set_iterator): New iterator type.
9623 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9624 cgraph_node_set_remove, dump_cgraph_node_set,
9625 debug_cgraph_node_set): New prototypes.
9626 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9627 cgraph_node_set_size): New inlines.
9628 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9629 including cgraph.h.
9630 (struct ipa_opt_pass): Add struct cgraph_node_set_def
9631 argument to function 'write_summary'.
9632 * ipa.c: Include ggc.h.
9633 (hash_cgraph_node_set_element,
9634 eq_cgraph_node_set_element, cgraph_node_set_new,
9635 cgraph_node_set_add, cgraph_node_set_remove,
9636 cgraph_node_set_find, dump_cgraph_node_set,
9637 debug_cgraph_node_set): New functions.
9638 * Makefile.in (ipa.o): Add dependency on GGC_H.
9639
9640 2009-04-20 Ira Rosen <irar@il.ibm.com>
9641
9642 PR tree-optimization/39675
9643 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
9644 check of the return code of vect_schedule_slp. Check that
9645 stmt_vec_info still exists for the statement, before checking its
9646 vectorization type.
9647
9648 2009-04-20 Michael Matz <matz@suse.de>
9649
9650 * Makefile.in (generated_files): Take out $(simple_generated_c).
9651
9652 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
9653
9654 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
9655 (UINTPTR_TYPE): Likewise.
9656
9657 2009-04-19 Joseph Myers <joseph@codesourcery.com>
9658
9659 PR c/37481
9660 * c-typeck.c (digest_init): Check for initializing an array with a
9661 string literal.
9662
9663 2009-04-19 Joseph Myers <joseph@codesourcery.com>
9664
9665 PR c/19771
9666 * c-semantics.c (pop_stmt_list): Propagate
9667 STATEMENT_LIST_HAS_LABEL to parent statement list.
9668
9669 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
9670
9671 * config/mips/mips.h (mips_tune_attr): New macro.
9672 * config/mips/mips.md (cpu): Use it.
9673
9674 2009-04-19 Joseph Myers <joseph@codesourcery.com>
9675
9676 PR c/38243
9677 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9678 declaring a tag.
9679
9680 2009-04-19 Diego Novillo <dnovillo@google.com>
9681
9682 * toplev.c (compile_file): Move call to coverage_finish ...
9683 * cgraphunit.c (ipa_passes): ... here.
9684 Call cgraph_process_new_functions.
9685 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9686 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9687
9688 2009-04-19 Jan Hubicka <jh@suse.cz>
9689
9690 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9691 cfun.
9692 (dump_cgraph_node): Dump can throw external flag.
9693 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9694
9695 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9696
9697 PR c/32061
9698 PR c++/36954
9699 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9700 * common.opt (Wlogical-op): Move from here...
9701 * c.opt (Wlogical-op): ... to here.
9702 * c-typeck.c (parser_build_binary_op): Update call to
9703 warn_logical_operator.
9704 * c-opts.c (c_common_post_options): Enable warn_logical_op with
9705 extra_warnings.
9706 * c-common.c (warn_logical_op): Update.
9707 * c-common.h (warn_logical_op): Update declaration.
9708
9709 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
9710
9711 * tree.c (protected_set_expr_location): Fix formatting.
9712
9713 2009-04-18 Joseph Myers <joseph@codesourcery.com>
9714
9715 PR c/27676
9716 * c-typeck.c (readonly_warning): new.
9717 (build_unary_op, build_modify_expr): Use readonly_warning for
9718 storing into something readonly but not const-qualified.
9719
9720 2009-04-18 Joseph Myers <joseph@codesourcery.com>
9721
9722 PR c/22367
9723 * c-typeck.c (build_unary_op): Check for taking address of
9724 expression of type void.
9725
9726 2009-04-18 Joseph Myers <joseph@codesourcery.com>
9727
9728 PR c/35210
9729 * c-typeck.c (build_function_call): Check for calling a function
9730 with qualified void return types. Call require_complete_type when
9731 generating a trap.
9732
9733 2009-04-18 Jan Hubicka <jh@suse.cz>
9734
9735 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9736 Set nothrow flag.
9737 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9738 can_throw_external flag.
9739 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9740 * ipa-pure-const.c (ignore_edge): New function.
9741 (propagate): Compute order for NOTHROW computation; set NOTHROWs
9742 only over can_throw_external edges.
9743 (local_pure_const): Add nothrow flag.
9744 * ipa-utils.c (searchc): Add ignore_edge callback.
9745 (ipa_utils_reduced_inorder): Add ignore_edge callback.
9746 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9747 (set_nothrow_function_flags): Update cgraph.
9748 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9749
9750 2009-04-18 Richard Guenther <rguenther@suse.de>
9751
9752 PR middle-end/39804
9753 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9754 (fold_stmt): ... this and ...
9755 (fold_stmt_inplace): ... this.
9756 (fold_stmt_1): Fold references in calls and asms.
9757 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9758
9759 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
9760
9761 * tree-vrp.c (ssa_name_nonzero_p): Remove.
9762 * tree.h: Remove the prototype for ssa_name_nonzero_p.
9763
9764 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
9765
9766 * tree.c (function_args_count): Remove.
9767 * tree.h: Remove the prototype for function_args_count.
9768
9769 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
9770
9771 * tree-iterator.c (expr_only): Remove.
9772 * tree.h: Remove the prototype for expr_only.
9773
9774 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
9775
9776 * reginfo.c (cannot_change_mode_set_regs): Remove.
9777 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9778
9779 2009-04-08 Anatoly Sokolov <aesok@post.ru>
9780
9781 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9782 whether operands 0 and 1 overlaps.
9783
9784 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
9785
9786 PR middle-end/36902
9787 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9788 pointer. Use warning_at instead of warning.
9789 (search_for_addr_array): Likewise.
9790 (check_array_bounds): Likewise.
9791 (check_all_array_refs): Check that the incoming edge is not in the
9792 list of edges to be removed.
9793 (check_all_array_refs): Avoid the temporal pointer.
9794 (vrp_visit_cond_stmt): Fix typo.
9795 (simplify_switch_using_ranges): Handle the case where the switch
9796 index is an integer constant.
9797
9798 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
9799
9800 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9801
9802 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
9803
9804 * doc/extend.texi, doc/invoke.texi: Fix typos.
9805
9806 2009-04-17 Cary Coutant <ccoutant@google.com>
9807
9808 * tree-flow-inline.h (get_lineno): Fix inverted test.
9809
9810 2009-04-17 Diego Novillo <dnovillo@google.com>
9811
9812 * tree-ssa-pre.c (create_expression_by_pieces): Remove
9813 assertion for AVAIL_OUT.
9814
9815 2009-04-17 Mike Frysinger <vapier@gentoo.org>
9816
9817 PR target/38627
9818 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9819 * config/sh/linux-atomic.asm: Likewise.
9820
9821 2009-04-17 Diego Novillo <dnovillo@google.com>
9822
9823 * except.c (debug_eh_tree): New.
9824 (struct eh_region, struct eh_status): Move ...
9825 * except.h: ... here.
9826 (add_type_for_runtime): Declare extern.
9827 (lookup_type_for_runtime): Likewise.
9828 (debug_eh_tree): Declare.
9829 * Makefile.in (GTFILES): List except.h before except.c
9830
9831 2009-04-17 Diego Novillo <dnovillo@google.com>
9832
9833 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
9834 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9835 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9836 (find_vars_r): ... here.
9837 * tree-flow.h (find_referenced_vars_in): Declare.
9838 * tree-ssa-pre.c (create_expression_by_pieces): Assert
9839 that AVAIL_OUT exists for BLOCK.
9840 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9841 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9842 (tree-parloops.o): Likewise.
9843
9844 2009-04-17 Simon Baldwin <simonb@google.com>
9845
9846 * toplev.c (default_tree_printer): Add handling for %E format.
9847
9848 2009-04-17 Diego Novillo <dnovillo@google.com>
9849
9850 * tree-pretty-print.c (dump_generic_node): Add break after
9851 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
9852 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
9853 FUNCTION_TYPE together. Call print_struct_decl when printing
9854 structures and TDF_SLIM is not given.
9855 (print_struct_decl): Fix logic for detecting recursion.
9856
9857 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
9858
9859 PR 31567
9860 * gcc.c (create_at_file): New.
9861 (compile_input_file_p): New.
9862 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
9863 * main.c (main): Update call to toplev_main.
9864 * toplev.c (toplev_main): Change signature. Call expandargv.
9865 * toplev.h (toplev_main): Change signature.
9866
9867 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9868
9869 * dwarf2out.c (field_byte_offset): Use the type size as the field size
9870 if the latter is not constant.
9871
9872 2009-04-17 David Edelsohn <edelsohn@gnu.org>
9873
9874 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9875
9876 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
9877
9878 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9879 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9880
9881 2009-04-17 Richard Guenther <rguenther@suse.de>
9882
9883 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9884 Handle component references view-converting an invariant address.
9885
9886 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
9887
9888 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9889 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9890 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9891 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9892 Use @deftypevr rather than @deftypevar.
9893
9894 2009-04-17 Richard Guenther <rguenther@suse.de>
9895
9896 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
9897 (get_prop_source_stmt): Likewise.
9898 (can_propagate_from): Likewise.
9899
9900 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
9901
9902 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9903 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9904 (--with-multilib-list): Add default value.
9905 * configure: Regenerate.
9906 * Makefile.in (TM_ENDIAN_CONFIG): Define.
9907 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9908 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9909 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9910 Don't add default cpu to multilib list unnecessarily, but do enable
9911 the relevant compiler option..
9912 Add support for --with-multilib-list=<blank> and
9913 --with-multilib-list=!<somelib> to supress unwanted multilibs.
9914 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9915 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9916 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9917 TM_MULTILIB_CONFIG.
9918 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9919 (MULTILIB_OSDIRNAMES): New variable.
9920 * config/sh/t-1e: Delete file.
9921 * config/sh/t-mlib-sh1: Delete file.
9922 * config/sh/t-mlib-sh2: Delete file.
9923 * config/sh/t-mlib-sh2a: Delete file.
9924 * config/sh/t-mlib-sh2a-nofpu: Delete file.
9925 * config/sh/t-mlib-sh2a-single: Delete file.
9926 * config/sh/t-mlib-sh2a-single-only: Delete file.
9927 * config/sh/t-mlib-sh2e: Delete file.
9928 * config/sh/t-mlib-sh3e: Delete file.
9929 * config/sh/t-mlib-sh4: Delete file.
9930 * config/sh/t-mlib-sh4-nofpu: Delete file.
9931 * config/sh/t-mlib-sh4-single: Delete file.
9932 * config/sh/t-mlib-sh4-single-only: Delete file.
9933 * config/sh/t-mlib-sh4a: Delete file.
9934 * config/sh/t-mlib-sh4a-nofpu: Delete file.
9935 * config/sh/t-mlib-sh4a-single: Delete file.
9936 * config/sh/t-mlib-sh4a-single-only: Delete file.
9937 * config/sh/t-mlib-sh4al: Delete file.
9938 * config/sh/t-mlib-sh5-32media: Delete file.
9939 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9940 * config/sh/t-mlib-sh5-64media: Delete file.
9941 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9942 * config/sh/t-mlib-sh5-compact: Delete file.
9943 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9944 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9945 * doc/install.texi (Options specification): Add
9946 --with-multilib-list and --with-endian.
9947
9948 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
9949
9950 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9951 REVISION_c.
9952 (OBJS-common): Add plugin-version.o.
9953 (plugin-version.o): New.
9954 * gcc-plugin.h (plugin_gcc_version): New.
9955 (plugin_default_version_check): New.
9956 (plugin_init_func, plugin_init): Add version argument.
9957 * plugin-version.c: New.
9958 * plugin.c (str_plugin_gcc_version_name): New.
9959 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9960 pass it to the init function.
9961 (plugin_default_version_check): New.
9962
9963 2009-04-17 Richard Guenther <rguenther@suse.de>
9964
9965 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9966 for decl-vs-decl disambiguation.
9967
9968 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
9969
9970 * config/s390/s390.h (s390_tune_attr): New macro definition.
9971 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9972
9973 2009-04-17 Richard Guenther <rguenther@suse.de>
9974
9975 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9976 (fold_stmt_r): Likewise.
9977 (maybe_fold_reference): New function.
9978 (fold_gimple_assign): Handle cases fold_stmt_r did.
9979 (fold_stmt): Do not use fold_stmt_r.
9980 (fold_stmt_inplace): Likewise.
9981
9982 2009-04-17 Richard Guenther <rguenther@suse.de>
9983
9984 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9985 (record_equivalences_from_stmt): Remove useless checks and
9986 simplifications.
9987 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9988 the type is already suitable.
9989
9990 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
9991
9992 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9993
9994 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
9995
9996 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9997 (CMPtype): Define as __gcc_CMPtype.
9998
9999 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
10000
10001 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
10002 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
10003
10004 2009-04-17 Richard Guenther <rguenther@suse.de>
10005
10006 PR tree-optimization/39746
10007 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
10008 special-casing for builtins and static variable use/def.
10009 (call_may_clobber_ref_p_1): Likewise.
10010
10011 2009-04-16 Ian Lance Taylor <iant@google.com>
10012
10013 * df.h: Include "timevar.h".
10014 (struct df_problem): Change tv_id field to timevar_id_t.
10015 * tree-pass.h: Include "timevar.h".
10016 (struct opt_pass): Change tv_id field to timevar_id_t.
10017 * timevar.h (timevar_id_t): Define TV_NONE.
10018 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
10019 TV_NONE rather than tv_id != 0.
10020 (execute_one_pass): Likewise.
10021 * Makefile.in (DF_H): Add $(TIMEVAR_H).
10022 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
10023 dependencies to $(TREE_PASS_H).
10024 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
10025 to TV_NONE.
10026 (pass_branch_target_load_optimize2): Likewise.
10027 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
10028 (pass_outof_cfg_layout_mode): Likewise.
10029 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
10030 (pass_rebuild_cgraph_edges): Likewise.
10031 (pass_remove_cgraph_callee_edges): Likewise.
10032 * df-core.c (pass_df_initialize_opt): Likewise.
10033 (pass_df_initialize_no_opt): Likewise.
10034 (pass_df_finish): Likewise.
10035 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
10036 * except.c (pass_set_nothrow_function_flags): Likewise.
10037 (pass_convert_to_eh_region_ranges): Likewise.
10038 * final.c (pass_compute_alignments): Likewise.
10039 * function.c (pass_instantiate_virtual_regs): Likewise.
10040 (pass_init_function): Likewise.
10041 (pass_leaf_regs): Likewise.
10042 (pass_match_asm_constraints): Likewise.
10043 * gimple-low.c (pass_lower_cf): Likewise.
10044 (pass_mark_used_blocks): Likewise.
10045 * init-regs.c (pass_initialize_regs): Likewise.
10046 * integrate.c (pass_initial_value_sets): Likewise.
10047 * ira.c (pass_ira): Likewise.
10048 * jump.c (pass_cleanup_barriers): Likewise.
10049 * omp-low.c (pass_expand_omp): Likewise.
10050 (pass_lower_omp): Likewise.
10051 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
10052 * recog.c (pass_split_all_insns): Likewise.
10053 (pass_split_after_reload): Likewise.
10054 (pass_split_before_regstack): Likewise.
10055 (pass_split_before_sched2): Likewise.
10056 (pass_split_for_shorten_branches): Likewise.
10057 * reginfo.c (pass_reginfo_init): Likewise.
10058 (pass_subregs_of_mode_init): Likewise.
10059 (pass_subregs_of_mode_finish): Likewise.
10060 * passes.c (pass_postreload): Likewise.
10061 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
10062 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
10063 (pass_warn_function_return): Likewise.
10064 (pass_warn_function_noreturn): Likewise.
10065 * tree-complex.c (pass_lower_complex): Likewise.
10066 (pass_lower_complex_O0): Likewise.
10067 * tree-if-conv.c (pass_if_conversion): Likewise.
10068 * tree-into-ssa.c (pass_build_ssa): Likewise.
10069 * tree-mudflap.c (pass_mudflap_1): Likewise.
10070 (pass_mudflap_2): Likewise.
10071 * tree-nomudflap.c (pass_mudflap_1): Likewise.
10072 (pass_mudflap_2): Likewise.
10073 * tree-nrv.c (pass_return_slot): Likewise.
10074 * tree-object-size.c (pass_object_sizes): Likewise.
10075 * tree-optimize.c (pass_all_optimizations): Likewise.
10076 (pass_early_local_passes): Likewise.
10077 (pass_all_early_optimizations): Likewise.
10078 (pass_cleanup_cfg): Likewise.
10079 (pass_cleanup_cfg_post_optimizing): Likewise.
10080 (pass_free_datastructures): Likewise.
10081 (pass_free_cfg_annotations): Likewise.
10082 (pass_fixup_cfg): Likewise.
10083 (pass_init_datastructures): Likewise.
10084 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
10085 (pass_late_warn_uninitialized): Likewise.
10086 (pass_update_address_taken): Likewise.
10087 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
10088 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
10089 (pass_cse_sincos): Likewise.
10090 (pass_convert_to_rsqrt): Likewise.
10091 * tree-ssa-structalias.c (pass_build_alias): Likewise.
10092 * tree-stdarg.c (pass_stdarg): Likewise.
10093 * tree-tailcall.c (pass_tail_recursion): Likewise.
10094 (pass_tail_calls): Likewise.
10095 * tree-vect-generic.c (pass_lower_vector): Likewise.
10096 (pass_lower_vector_ssa): Likewise.
10097 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
10098
10099 2009-04-16 Joseph Myers <joseph@codesourcery.com>
10100
10101 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
10102 XLR entry.
10103 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
10104 Handle -march=xlr.
10105 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
10106 logical and signext.
10107
10108 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
10109
10110 PR target/39767
10111 * config/sh/predicates.md (arith_operand): Check if the operand
10112 of TRUNCATE is a REG.
10113
10114 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10115
10116 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
10117 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
10118
10119 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10120
10121 * tree-iterator.c (tsi_split_statement_list_after,
10122 tsi_split_statement_list_before): Remove.
10123 * tree-iterator.h: Remove the prototypes for
10124 tsi_split_statement_list_after and tsi_split_statement_list_before.
10125
10126 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10127
10128 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
10129 * tree-ssa-propagate.h: Remove the prototype for
10130 stmt_makes_single_load.
10131
10132 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10133
10134 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
10135 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
10136
10137 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10138
10139 * tree-iterator.c (EXPR_LAST_BODY): Remove.
10140
10141 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10142
10143 * except.c (eh_region_outer_p): Remove.
10144 * except.h: Remove the prototype for eh_region_outer_p.
10145
10146 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
10147
10148 * function.c (current_function_assembler_name): Remove.
10149 * function.h: Remove the prototype for
10150 current_function_assembler_name.
10151
10152 2009-04-16 Ian Lance Taylor <iant@google.com>
10153
10154 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
10155 (add_reg_note): Call alloc_reg_note.
10156 * rtl.h (alloc_reg_note): Declare.
10157 * combine.c (try_combine): Use alloc_reg_note.
10158 (recog_for_combine, move_deaths): Likewise.
10159 (distribute_notes): Use alloc_reg_note and add_reg_note.
10160 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
10161 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
10162 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
10163
10164 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
10165
10166 PR rtl-optimization/39762
10167 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
10168 ira_may_move_out_cost): Add comments about way of their usage.
10169 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
10170
10171 * ira-conflicts.c (process_regs_for_copy): Use function
10172 ira_get_register_move_cost instead of global
10173 ira_register_move_cost.
10174
10175 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
10176 color_pass, move_spill_restore, update_curr_costs): Ditto.
10177
10178 * ira-lives.c (process_single_reg_class_operands): Ditto.
10179
10180 * ira-emit.c (emit_move_list): Ditto.
10181
10182 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
10183 (record_reg_classes): Ditto. Use functions
10184 ira_get_register_move_cost and ira_get_may_move_cost instead of
10185 global vars ira_register_move_cost, ira_may_move_out_cost and
10186 ira_may_move_in_cost.
10187 (record_address_regs): Don't call ira_init_register_move_cost.
10188 Use function ira_get_may_move_cost instead of global
10189 ira_may_move_in_cost.
10190 (process_bb_node_for_hard_reg_moves): Use function
10191 ira_get_register_move_cost instead of global ira_register_move_cost.
10192 (ira_costs): Don't call ira_init_register_move_cost.
10193
10194 2009-04-16 Richard Guenther <rguenther@suse.de>
10195
10196 * tree-cfg.c (verify_gimple_assign_binary):
10197 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
10198 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
10199 (create_general_new_stmt): Note that this function is broken.
10200
10201 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
10202
10203 * common.opt (fhelp): Add Var(help_flag).
10204 * gcc-plugin.h (plugin_info): Add help.
10205 * plugin.c (plugin_name_args): Add help.
10206 (register_plugin_info): Set plugin->help.
10207 (print_help_one_plugin): New.
10208 (print_plugins_help): New.
10209 * plugin.h (print_plugins_help): New.
10210 * toplev.c (toplev_main): Call print_plugins_help if needed.
10211
10212 2009-04-16 Richard Guenther <rguenther@suse.de>
10213
10214 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
10215 (gimple_ior_addresses_taken_1): New function.
10216 (gimple_ior_addresses_taken): Likewise.
10217 * gimple.h (struct gimple_statement_with_ops_base): Remove
10218 addresses_taken member.
10219 (gimple_ior_addresses_taken): Declare.
10220 (gimple_addresses_taken, gimple_addresses_taken_ptr,
10221 gimple_set_addresses_taken): Remove.
10222 * ipa-reference.c (mark_address): New function.
10223 (scan_stmt_for_static_refs): Use it for marking addresses taken.
10224 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
10225 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
10226 (gimple_add_to_addresses_taken): Remove.
10227 (get_tmr_operands): Call mark_address_taken.
10228 (get_asm_expr_operands): Likewise.
10229 (get_expr_operands): Likewise.
10230 (build_ssa_operands): Do not clear the addresses_taken bitmap.
10231 (free_stmt_operands): Do not free it.
10232 * tree-ssa.c (delete_tree_ssa): Likewise.
10233 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
10234
10235 2009-04-16 Richard Guenther <rguenther@suse.de>
10236
10237 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
10238 (walk_stmt_load_store_ops): Likewise.
10239 * gimple.c (get_base_loadstore): New function.
10240 (walk_stmt_load_store_addr_ops): Likewise.
10241 (walk_stmt_load_store_ops): Likewise.
10242 * ipa-pure-const.c (check_op): Simplify.
10243 (check_load, check_store): New functions.
10244 (check_stmt): Use walk_stmt_load_store_ops.
10245 * ipa-reference.c (mark_load): Adjust signature.
10246 (mark_store): Likewise.
10247 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
10248
10249 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
10250
10251 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
10252 (plugin_info): New.
10253 * opts.c (common_handle_option): Don't call print_version.
10254 * plugin.c (plugin_name_args): Add version.
10255 (register_plugin_info): New.
10256 (register_callback): Handle PLUGIN_INFO.
10257 (try_init_one_plugin): New.
10258 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
10259 if failed to init.
10260 (finalize_one_plugin): New.
10261 (finalize_plugins): New.
10262 (print_one_plugin): New.
10263 (print_plugins_versions): New.
10264 * plugin.h (print_plugins_versions): New.
10265 (finalize_plugins): New.
10266 * toplev.c (compile_file): Don't call initialize_plugins.
10267 (print_version): Call print_plugins_versions.
10268 (toplev_main): Call initialize_plugins. Print version if needed.
10269 Call finalize_plugins.
10270
10271 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
10272
10273 * common.opt (fversion): New.
10274 * gcc.c (print_version): New.
10275 (process_command): Don't print the version. Just set print_version.
10276 (main): Print version. Call subprocesses if print_version and
10277 verbose_flag are set.
10278 * opts.c (common_handle_option): Handle OPT_fversion.
10279
10280 2009-04-16 Richard Guenther <rguenther@suse.de>
10281 Ira Rosen <irar@il.ibm.com>
10282
10283 PR tree-optimization/39698
10284 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
10285 type of the reduction variable. Only generate the def if
10286 it is needed.
10287
10288 * omp-low.c (expand_omp_for_generic): When converting to a pointer
10289 make sure to first convert to an integer of the same precision.
10290 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
10291 the type of the evolution correctly in computing the new
10292 induction variable base.
10293
10294 2009-04-16 Richard Guenther <rguenther@suse.de>
10295
10296 PR middle-end/39625
10297 * tree-cfg.c (make_blocks): Split statements with to-be
10298 abnormal SSA names on the lhs.
10299
10300 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
10301
10302 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
10303 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
10304 * c-typeck.c (really_start_incremental_init): Likewise.
10305 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
10306 (TARGET_INITIALIZER): Remove it.
10307 * target.h (struct target): Remove vector_opaque_p.
10308 * tree.c (build_opaque_vector_type): New.
10309 * tree.h (TYPE_VECTOR_OPAQUE): New.
10310 (build_opaque_vector_type): Declare.
10311 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
10312 * config/rs6000/rs6000.c (build_opaque_vector_type,
10313 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
10314 (rs6000_init_builtins): Use build_opaque_vector_type for
10315 opaque_V4SI_type_node.
10316
10317 2009-04-15 Catherine Moore <clm@codesourcery.com>
10318
10319 * debug.h (set_name): Declare.
10320 * dwarf2out.c (dwarf2out_set_name): Declare.
10321 (dwarf2_debug_hooks): Add set_name.
10322 (find_AT_string): New.
10323 (add_AT_string): Call find_AT_string.
10324 (dwarf2out_set_name): New.
10325 * cp/decl.c (grokdeclarator): Call set_name.
10326 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
10327 * debug.c (do_nothing_debug_hooks): Likewise.
10328 * dbxout.c (dbx_debug_hooks): Likewise.
10329 * sdbout.c (sdb_debug_hooks): Likewise.
10330
10331 2009-04-15 Michael Eager <eager@eagercon.com>
10332
10333 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
10334 reg for single-precision FPU.
10335 * config/rs6000/rs6000.md (movsi_internal1): Only for
10336 !TARGET_SINGLE_FPU.
10337 (movsi_internal1_single): New. Add pattern to move SI values to/from
10338 single-precision FP regs.
10339
10340 2009-04-15 Richard Guenther <rguenther@suse.de>
10341
10342 * omp-low.c (lower_rec_input_clauses): Build correct address
10343 expressions.
10344 (expand_omp_for_generic): Fix multiplication type.
10345 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
10346 (generate_memset_zero): Fix types.
10347 * tree-profile.c (prepare_instrumented_value): Correctly
10348 widen a pointer.
10349
10350 2009-04-15 Ian Lance Taylor <iant@google.com>
10351
10352 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
10353 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
10354 for -Wall and for -Wc++-compat.
10355 (c_common_post_options): For C++, set warn_enum_compare if not
10356 already set.
10357 * c-tree.h (struct c_expr): Add field original_type.
10358 (build_external_ref): Update declaration.
10359 * c-parser.c (c_parser_braced_init): Set original_type.
10360 (c_parser_initelt): Likewise.
10361 (c_parser_expr_no_commas): Likewise.
10362 (c_parser_conditional_expression): Likewise.
10363 (c_parser_cast_expression): Likewise.
10364 (c_parser_unary_expression): Likewise. Pull setting of
10365 original_code to top of function.
10366 (c_parser_sizeof_expression): Set original_type.
10367 (c_parser_alignof_expression): Likewise.
10368 (c_parser_postfix_expression): Likewise. Pull setting of
10369 original_code to top of function.
10370 (c_parser_postfix_expression_after_paren_type): Set original_type.
10371 (c_parser_postfix_expression_after_primary): Likewise.
10372 (c_parser_expression): Likewise.
10373 * c-typeck.c (build_external_ref): Add type parameter. Change all
10374 callers.
10375 (c_expr_sizeof_expr): Set original_type field.
10376 (parser_build_unary_op): Likewise.
10377 (parser_build_binary_op): Likewise. Optionally warn about
10378 comparisons of enums of different types.
10379 (digest_init): Set original_type field.
10380 (really_start_incremental_init): Likewise.
10381 (push_init_level, pop_init_level): Likewise.
10382 * doc/invoke.texi (Warning Options): -Wenum-compare now
10383 supported in C.
10384
10385 2009-04-15 Richard Guenther <rguenther@suse.de>
10386
10387 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10388 out a necessary conversion.
10389 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10390 names we didn't value number.
10391 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10392
10393 2009-04-15 Richard Guenther <rguenther@suse.de>
10394
10395 PR tree-optimization/39764
10396 * tree-ssa-ccp.c (get_value): Canonicalize value with
10397 canonicalize_float_value.
10398
10399 2009-04-15 Jan Hubicka <jh@suse.cz>
10400
10401 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10402 Wrong version of patch.
10403
10404 2009-04-15 Jan Hubicka <jh@suse.cz>
10405
10406 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10407
10408 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
10409
10410 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10411 our distinct integral and vector types.
10412
10413 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
10414
10415 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10416 * init.c (build_vtbl_address): Remove call to assemble_external.
10417
10418 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
10419
10420 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10421 output for other floating point modes.
10422
10423 2009-04-14 Diego Novillo <dnovillo@google.com>
10424
10425 * diagnostic.c (diagnostic_report_diagnostic): Do not
10426 warn about loaded plugins for DK_ERROR and DK_WARNING.
10427 * c-decl.c (declspecs_add_type): Move call to
10428 invoke_plugin_callbacks ...
10429 * c-parser.c (c_parser_declspecs): ... here.
10430 * plugin.c (dump_active_plugins): Tidy output.
10431
10432 2009-04-14 Diego Novillo <dnovillo@google.com>
10433 Le-Chun Wu <lcwu@google.com>
10434
10435 * configure.ac: Add --enable-plugin support.
10436 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10437 * Makefile.in (PLUGIN_H): Define.
10438 Export ENABLE_PLUGIN and GMPINC to site.exp.
10439 Add PLUGINLIBS to link command.
10440 Add/modify dependencies for plugin.o and files including plugin.h.
10441 (plugin.o): New.
10442 * config.in: Regenerate.
10443
10444 * opts.c (common_handle_option): Handle OPT_fplugin_ and
10445 OPT_fplugin_arg_.
10446
10447 2009-04-14 Le-Chun Wu <lcwu@google.com>
10448
10449 * tree-pass.h (register_one_dump_file): Add a prototype for
10450 register_one_dump_file.
10451 * toplev.c (compile_file): Call initialize_plugins.
10452 (do_compile): Call invoke_plugin_callbacks.
10453 (toplev_main): Call invoke_plugin_callbacks.
10454 * common.opt: Add -fplugin= and -fplugin-arg-.
10455 * gcc-plugin.h: New public header file for plugins to include.
10456 * plugin.c: New source file.
10457 * plugin.h: New internal header file.
10458 * passes.c (register_one_dump_file): Make it external.
10459
10460 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10461
10462 2009-04-14 Diego Novillo <dnovillo@google.com>
10463
10464 * doc/plugins.texi: New.
10465 * doc/gccint.texi: Add reference to Plugins chapter.
10466 * doc/invoke.texi: Document -fplugin and -fplugin-arg
10467 * diagnostic.c (diagnostic_report_diagnostic): Warn about
10468 loaded plugins, if any.
10469 * timevar.def (TV_PLUGIN_INIT): Define.
10470 (TV_PLUGIN_RUN): Define.
10471 * plugin.c: Include timevar.h
10472 (plugins_active_p): New.
10473 (dump_active_plugins): New.
10474 (debug_active_plugins): New.
10475
10476 2009-04-14 Joseph Myers <joseph@codesourcery.com>
10477
10478 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10479 library paths.
10480 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10481
10482 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
10483
10484 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10485 the same as a minus without a shift.
10486
10487 2009-04-14 Nick Clifton <nickc@redhat.com>
10488
10489 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10490 comparisons with small integers will always produce a short
10491 branch.
10492
10493 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
10494
10495 Merge:
10496 2008-12-19 Diego Novillo <dnovillo@google.com>
10497
10498 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
10499
10500 2009-04-14 Richard Guenther <rguenther@suse.de>
10501
10502 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10503 verification.
10504 (verify_gimple_assign_binary): Likewise. Handle shifts and
10505 rotates correctly.
10506 (verify_gimple_phi): Print the mismatched argument position.
10507 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10508 Fix types.
10509 (vect_update_init_of_dr): Likewise.
10510 * matrix-reorg.c (transform_access_sites): Do what the
10511 comment suggests.
10512 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10513
10514 2009-04-13 Michael Eager <eager@eagercon.com>
10515
10516 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10517 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10518 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
10519 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
10520 remove duplicate config
10521
10522 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10523
10524 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10525 file_name:line_number type locator of the call site.
10526
10527 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
10528
10529 * genautomata.c: Put blank after comma.
10530 (automaton_decls): New.
10531 (struct unit_usage): Add comments to member next.
10532 (store_alt_unit_usage): Keep the list ordered.
10533 (unit_present_on_list_p, equal_alternatives_p): New.
10534 (check_regexp_units_distribution): Check units distribution
10535 correctness correctly.
10536 (main): Don't write automata if error is found. Return correct
10537 exit code.
10538
10539 * config/m68k/cf.md (cfv4_ds): Remove.
10540 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10541 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10542
10543 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10544 power4-load-ext, power4-store, power4-store-update,
10545 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10546 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10547 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10548 power4-sqrt, power4-isync): Modify reservation to make correct
10549 unit distribution to automata.
10550
10551 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10552 power5-store-update, power5-two, power5-three, power5-lmul,
10553 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
10554
10555 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
10556
10557 * except.c (pass_set_nothrow_function_flags): Set name and add
10558 TODO_dump_func.
10559 (set_nothrow_function_flags): Mention in the dump file when
10560 changing a function to nothrow.
10561
10562 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
10563
10564 PR/39066
10565 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10566 instead of unsigned long.
10567
10568 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10569
10570 * config/arm/arm.c (return_used_this_function): Remove.
10571 (arm_output_function_prologue): Remove use of
10572 return_used_this_function.
10573 (output_return_instruction): Replace use of
10574 return_used_this_function
10575 by cfun->machine->return_used_this_function.
10576 (arm_output_epilogue): Likewise.
10577 (arm_output_function_epilogue): Likewise.
10578 (thumb_unexpanded_epilogue): Likewise.
10579 * config/arm/arm.h (struct machine_function):
10580 New member return_used_this_function.
10581
10582 2009-04-12 Mark Mitchell <mark@codesourcery.com>
10583
10584 * doc/install.texi: Correct description of default directory for
10585 --with-gxx-include-dir.
10586
10587 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
10588
10589 * fold-const.c (build_range_check): Properly deal with enumeral and
10590 boolean base types.
10591
10592 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
10593
10594 * doc/invoke.texi (max_gcse_passes): Remove documentation.
10595 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10596 * params.h (MAX_GCSE_PASSES): Remove.
10597 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10598 in sequence. Remove ability to run multiple passes.
10599 (bypass_jumps): Report run as third CPROP pass.
10600
10601 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
10602
10603 PR middle-end/39651
10604 * except.c (can_throw_external): Look at each insn in a SEQUENCE
10605 when deciding whether the whole SEQUENCE can throw.
10606
10607 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
10608
10609 PR target/39740
10610 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10611 offseted label references.
10612
10613 2009-04-11 Jan Hubicka <jh@suse.cz>
10614
10615 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10616
10617 2009-04-11 Richard Guenther <rguenther@suse.de>
10618
10619 PR middle-end/39732
10620 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10621 return variables as TREE_ADDRESSABLE.
10622
10623 2009-04-11 Richard Guenther <rguenther@suse.de>
10624
10625 PR tree-optimization/39713
10626 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10627 reference trees have SSA_NAME operands.
10628
10629 2009-04-11 Richard Guenther <rguenther@suse.de>
10630
10631 PR c/39712
10632 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10633 address expressions.
10634
10635 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
10636
10637 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
10638 match changes in Cygwin 1.7
10639 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10640 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
10641
10642 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
10643
10644 PR tree-optimization/39701
10645 * doc/invoke.texi (Optimization Options): Document change in
10646 meaning and initialization of -fdelete-null-pointer-checks.
10647
10648 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10649
10650 PR middle-end/39701
10651 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10652
10653 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10654 here.
10655
10656 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10657
10658 2009-04-10 Chao-ying Fu <fu@mips.com>
10659
10660 * doc/tm.texi (Instruction Output): Document
10661 TARGET_ASM_FINAL_POSTSCAN_INSN.
10662 * target.h (final_postscan_insn): New field in asm_out.
10663 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10664 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10665 * final.c (final_scan_insn): Call
10666 targetm.asm_out.final_postscan_insn after outputting
10667 an asm macro and a normal instruction.
10668
10669 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10670 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10671 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10672 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10673 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10674
10675 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
10676
10677 PR middle-end/39701
10678 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10679 variables as non-NULL even with -fdelete-null-pointer-checks.
10680
10681 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
10682
10683 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10684
10685 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
10686
10687 PR target/39678
10688 * config/i386/i386.c (classify_argument): Handle SCmode with
10689 (bit_offset % 64) != 0.
10690
10691 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
10692
10693 * doc/invoke.texi (Optimize Options): Add cross-reference to
10694 -Q --help=optimizers examples.
10695
10696 2009-04-10 Ben Elliston <bje@au.ibm.com>
10697
10698 PR target/36800
10699 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10700 regalign for the reg == fpr and TDmode case.
10701
10702 2009-04-09 David Ayers <ayers@fsfe.org>
10703
10704 PR objc/29200
10705 * objc/objc-act.c (warn_with_method): Remove helper function.
10706 (check_duplicates): Call warning and inform directly.
10707 (really_start_method): Likewise.
10708
10709 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
10710
10711 * expmed.c (expand_divmod): Always use a comparison for a division
10712 by a large unsigned integer.
10713
10714 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10715 for things others than variables or functions as nonzero.
10716
10717 2009-04-09 Nick Clifton <nickc@redhat.com>
10718
10719 * unwind-compat.c: Change copyright header to refer to version
10720 3 of the GNU General Public License with version 3.1 of the
10721 GCC Runtime Library Exception and to point readers at the
10722 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
10723 * config/alpha/crtfastmath.c: Likewise.
10724 * config/alpha/linux-unwind.h: Likewise.
10725 * config/alpha/qrnnd.asm: Likewise.
10726 * config/alpha/vms-crt0-64.c: Likewise.
10727 * config/alpha/vms-crt0.c: Likewise.
10728 * config/alpha/vms-dwarf2.asm: Likewise.
10729 * config/alpha/vms-dwarf2eh.asm: Likewise.
10730 * config/alpha/vms-psxcrt0-64.c: Likewise.
10731 * config/alpha/vms-psxcrt0.c: Likewise.
10732 * config/alpha/vms_tramp.asm: Likewise.
10733 * config/arc/initfini.c: Likewise.
10734 * config/arc/lib1funcs.asm: Likewise.
10735 * config/arm/bpabi-v6m.S: Likewise.
10736 * config/arm/bpabi.S: Likewise.
10737 * config/arm/bpabi.c: Likewise.
10738 * config/arm/crti.asm: Likewise.
10739 * config/arm/crtn.asm: Likewise.
10740 * config/arm/ieee754-df.S: Likewise.
10741 * config/arm/ieee754-sf.S: Likewise.
10742 * config/arm/lib1funcs.asm: Likewise.
10743 * config/arm/libunwind.S: Likewise.
10744 * config/arm/linux-atomic.c: Likewise.
10745 * config/arm/mmintrin.h: Likewise.
10746 * config/arm/pr-support.c: Likewise.
10747 * config/arm/unaligned-funcs.c: Likewise.
10748 * config/arm/unwind-arm.c: Likewise.
10749 * config/arm/unwind-arm.h: Likewise.
10750 * config/avr/libgcc.S: Likewise.
10751 * config/bfin/crti.s: Likewise.
10752 * config/bfin/crtlibid.s: Likewise.
10753 * config/bfin/crtn.s: Likewise.
10754 * config/bfin/lib1funcs.asm: Likewise.
10755 * config/bfin/linux-unwind.h: Likewise.
10756 * config/cris/arit.c: Likewise.
10757 * config/cris/cris_abi_symbol.c: Likewise.
10758 * config/darwin-64.c: Likewise.
10759 * config/darwin-crt2.c: Likewise.
10760 * config/darwin-crt3.c: Likewise.
10761 * config/darwin.h: Likewise.
10762 * config/dbxelf.h: Likewise.
10763 * config/dfp-bit.c: Likewise.
10764 * config/dfp-bit.h: Likewise.
10765 * config/elfos.h: Likewise.
10766 * config/fixed-bit.c: Likewise.
10767 * config/fixed-bit.h: Likewise.
10768 * config/fp-bit.c: Likewise.
10769 * config/fp-bit.h: Likewise.
10770 * config/fr30/crti.asm: Likewise.
10771 * config/fr30/crtn.asm: Likewise.
10772 * config/fr30/lib1funcs.asm: Likewise.
10773 * config/freebsd-spec.h: Likewise.
10774 * config/frv/cmovd.c: Likewise.
10775 * config/frv/cmovh.c: Likewise.
10776 * config/frv/cmovw.c: Likewise.
10777 * config/frv/frvbegin.c: Likewise.
10778 * config/frv/frvend.c: Likewise.
10779 * config/frv/lib1funcs.asm: Likewise.
10780 * config/glibc-stdint.h: Likewise.
10781 * config/h8300/clzhi2.c: Likewise.
10782 * config/h8300/crti.asm: Likewise.
10783 * config/h8300/crtn.asm: Likewise.
10784 * config/h8300/ctzhi2.c: Likewise.
10785 * config/h8300/fixunssfsi.c: Likewise.
10786 * config/h8300/lib1funcs.asm: Likewise.
10787 * config/h8300/parityhi2.c: Likewise.
10788 * config/h8300/popcounthi2.c: Likewise.
10789 * config/i386/ammintrin.h: Likewise.
10790 * config/i386/att.h: Likewise.
10791 * config/i386/avxintrin.h: Likewise.
10792 * config/i386/biarch64.h: Likewise.
10793 * config/i386/bmmintrin.h: Likewise.
10794 * config/i386/cpuid.h: Likewise.
10795 * config/i386/cross-stdarg.h: Likewise.
10796 * config/i386/crtfastmath.c: Likewise.
10797 * config/i386/crtprec.c: Likewise.
10798 * config/i386/cygming-crtbegin.c: Likewise.
10799 * config/i386/cygming-crtend.c: Likewise.
10800 * config/i386/cygwin.asm: Likewise.
10801 * config/i386/emmintrin.h: Likewise.
10802 * config/i386/gmm_malloc.h: Likewise.
10803 * config/i386/gthr-win32.c: Likewise.
10804 * config/i386/i386.h: Likewise.
10805 * config/i386/immintrin.h: Likewise.
10806 * config/i386/linux-unwind.h: Likewise.
10807 * config/i386/linux64.h: Likewise.
10808 * config/i386/mm3dnow.h: Likewise.
10809 * config/i386/mmintrin-common.h: Likewise.
10810 * config/i386/mmintrin.h: Likewise.
10811 * config/i386/nmmintrin.h: Likewise.
10812 * config/i386/pmm_malloc.h: Likewise.
10813 * config/i386/pmmintrin.h: Likewise.
10814 * config/i386/smmintrin.h: Likewise.
10815 * config/i386/sol2-c1.asm: Likewise.
10816 * config/i386/sol2-ci.asm: Likewise.
10817 * config/i386/sol2-cn.asm: Likewise.
10818 * config/i386/sol2-gc1.asm: Likewise.
10819 * config/i386/tmmintrin.h: Likewise.
10820 * config/i386/unix.h: Likewise.
10821 * config/i386/w32-unwind.h: Likewise.
10822 * config/i386/wmmintrin.h: Likewise.
10823 * config/i386/x86-64.h: Likewise.
10824 * config/i386/x86intrin.h: Likewise.
10825 * config/i386/xmmintrin.h: Likewise.
10826 * config/ia64/crtbegin.asm: Likewise.
10827 * config/ia64/crtend.asm: Likewise.
10828 * config/ia64/crtfastmath.c: Likewise.
10829 * config/ia64/crti.asm: Likewise.
10830 * config/ia64/crtn.asm: Likewise.
10831 * config/ia64/fde-glibc.c: Likewise.
10832 * config/ia64/lib1funcs.asm: Likewise.
10833 * config/ia64/linux-unwind.h: Likewise.
10834 * config/ia64/quadlib.c: Likewise.
10835 * config/ia64/unwind-ia64.c: Likewise.
10836 * config/linux.h: Likewise.
10837 * config/m32c/m32c-lib1.S: Likewise.
10838 * config/m32c/m32c-lib2-trapv.c: Likewise.
10839 * config/m32c/m32c-lib2.c: Likewise.
10840 * config/m32r/initfini.c: Likewise.
10841 * config/m68hc11/larith.asm: Likewise.
10842 * config/m68hc11/m68hc11-crt0.S: Likewise.
10843 * config/m68k/cf.md: Likewise.
10844 * config/m68k/crti.s: Likewise.
10845 * config/m68k/crtn.s: Likewise.
10846 * config/m68k/lb1sf68.asm: Likewise.
10847 * config/m68k/linux-unwind.h: Likewise.
10848 * config/mcore/crti.asm: Likewise.
10849 * config/mcore/crtn.asm: Likewise.
10850 * config/mcore/lib1.asm: Likewise.
10851 * config/mips/linux-unwind.h: Likewise.
10852 * config/mips/loongson.h: Likewise.
10853 * config/mips/mips16.S: Likewise.
10854 * config/mmix/crti.asm: Likewise.
10855 * config/mmix/crtn.asm: Likewise.
10856 * config/pa/fptr.c: Likewise.
10857 * config/pa/hpux-unwind.h: Likewise.
10858 * config/pa/lib2funcs.asm: Likewise.
10859 * config/pa/linux-atomic.c: Likewise.
10860 * config/pa/linux-unwind.h: Likewise.
10861 * config/pa/milli64.S: Likewise.
10862 * config/pa/quadlib.c: Likewise.
10863 * config/pa/stublib.c: Likewise.
10864 * config/picochip/libgccExtras/adddi3.asm: Likewise.
10865 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
10866 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
10867 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
10868 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
10869 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
10870 * config/picochip/libgccExtras/divmod15.asm: Likewise.
10871 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
10872 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10873 * config/picochip/libgccExtras/longjmp.asm: Likewise.
10874 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10875 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10876 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10877 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10878 * config/picochip/libgccExtras/setjmp.asm: Likewise.
10879 * config/picochip/libgccExtras/subdi3.asm: Likewise.
10880 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10881 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10882 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10883 * config/rs6000/750cl.h: Likewise.
10884 * config/rs6000/altivec.h: Likewise.
10885 * config/rs6000/biarch64.h: Likewise.
10886 * config/rs6000/crtresfpr.asm: Likewise.
10887 * config/rs6000/crtresgpr.asm: Likewise.
10888 * config/rs6000/crtresxfpr.asm: Likewise.
10889 * config/rs6000/crtresxgpr.asm: Likewise.
10890 * config/rs6000/crtsavfpr.asm: Likewise.
10891 * config/rs6000/crtsavgpr.asm: Likewise.
10892 * config/rs6000/darwin-asm.h: Likewise.
10893 * config/rs6000/darwin-fallback.c: Likewise.
10894 * config/rs6000/darwin-fpsave.asm: Likewise.
10895 * config/rs6000/darwin-ldouble.c: Likewise.
10896 * config/rs6000/darwin-tramp.asm: Likewise.
10897 * config/rs6000/darwin-unwind.h: Likewise.
10898 * config/rs6000/darwin-vecsave.asm: Likewise.
10899 * config/rs6000/darwin-world.asm: Likewise.
10900 * config/rs6000/e500crtres32gpr.asm: Likewise.
10901 * config/rs6000/e500crtres64gpr.asm: Likewise.
10902 * config/rs6000/e500crtres64gprctr.asm: Likewise.
10903 * config/rs6000/e500crtrest32gpr.asm: Likewise.
10904 * config/rs6000/e500crtrest64gpr.asm: Likewise.
10905 * config/rs6000/e500crtresx32gpr.asm: Likewise.
10906 * config/rs6000/e500crtresx64gpr.asm: Likewise.
10907 * config/rs6000/e500crtsav32gpr.asm: Likewise.
10908 * config/rs6000/e500crtsav64gpr.asm: Likewise.
10909 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10910 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10911 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10912 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10913 * config/rs6000/eabi-ci.asm: Likewise.
10914 * config/rs6000/eabi-cn.asm: Likewise.
10915 * config/rs6000/eabi.asm: Likewise.
10916 * config/rs6000/linux-unwind.h: Likewise.
10917 * config/rs6000/linux64.h: Likewise.
10918 * config/rs6000/paired.h: Likewise.
10919 * config/rs6000/paired.md: Likewise.
10920 * config/rs6000/ppc64-fp.c: Likewise.
10921 * config/rs6000/ppu_intrinsics.h: Likewise.
10922 * config/rs6000/rs6000.h: Likewise.
10923 * config/rs6000/si2vmx.h: Likewise.
10924 * config/rs6000/sol-ci.asm: Likewise.
10925 * config/rs6000/sol-cn.asm: Likewise.
10926 * config/rs6000/spe.h: Likewise.
10927 * config/rs6000/spu2vmx.h: Likewise.
10928 * config/rs6000/sysv4.h: Likewise.
10929 * config/rs6000/tramp.asm: Likewise.
10930 * config/rs6000/vec_types.h: Likewise.
10931 * config/s390/linux-unwind.h: Likewise.
10932 * config/s390/tpf-unwind.h: Likewise.
10933 * config/score/crti.asm: Likewise.
10934 * config/score/crtn.asm: Likewise.
10935 * config/sh/crt1.asm: Likewise.
10936 * config/sh/crti.asm: Likewise.
10937 * config/sh/crtn.asm: Likewise.
10938 * config/sh/divtab-sh4-300.c: Likewise.
10939 * config/sh/divtab-sh4.c: Likewise.
10940 * config/sh/divtab.c: Likewise.
10941 * config/sh/lib1funcs-4-300.asm: Likewise.
10942 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10943 * config/sh/lib1funcs.asm: Likewise.
10944 * config/sh/lib1funcs.h: Likewise.
10945 * config/sh/linux-atomic.asm: Likewise.
10946 * config/sh/linux-unwind.h: Likewise.
10947 * config/sh/shmedia.h: Likewise.
10948 * config/sh/sshmedia.h: Likewise.
10949 * config/sh/ushmedia.h: Likewise.
10950 * config/sparc/crtfastmath.c: Likewise.
10951 * config/sparc/linux-unwind.h: Likewise.
10952 * config/sparc/sol2-c1.asm: Likewise.
10953 * config/sparc/sol2-ci.asm: Likewise.
10954 * config/sparc/sol2-cn.asm: Likewise.
10955 * config/spu/divmodti4.c: Likewise.
10956 * config/spu/divv2df3.c: Likewise.
10957 * config/spu/float_disf.c: Likewise.
10958 * config/spu/float_unsdidf.c: Likewise.
10959 * config/spu/float_unsdisf.c: Likewise.
10960 * config/spu/float_unssidf.c: Likewise.
10961 * config/spu/mfc_multi_tag_release.c: Likewise.
10962 * config/spu/mfc_multi_tag_reserve.c: Likewise.
10963 * config/spu/mfc_tag_release.c: Likewise.
10964 * config/spu/mfc_tag_reserve.c: Likewise.
10965 * config/spu/mfc_tag_table.c: Likewise.
10966 * config/spu/multi3.c: Likewise.
10967 * config/spu/spu_internals.h: Likewise.
10968 * config/spu/spu_intrinsics.h: Likewise.
10969 * config/spu/spu_mfcio.h: Likewise.
10970 * config/spu/vec_types.h: Likewise.
10971 * config/spu/vmx2spu.h: Likewise.
10972 * config/stormy16/stormy16-lib2.c: Likewise.
10973 * config/svr4.h: Likewise.
10974 * config/sync.c: Likewise.
10975 * config/v850/lib1funcs.asm: Likewise.
10976 * config/vxlib-tls.c: Likewise.
10977 * config/vxlib.c: Likewise.
10978 * config/vxworks-dummy.h: Likewise.
10979 * config/xtensa/crti.asm: Likewise.
10980 * config/xtensa/crtn.asm: Likewise.
10981 * config/xtensa/ieee754-df.S: Likewise.
10982 * config/xtensa/ieee754-sf.S: Likewise.
10983 * config/xtensa/lib1funcs.asm: Likewise.
10984 * config/xtensa/lib2funcs.S: Likewise.
10985 * config/xtensa/linux-unwind.h: Likewise.
10986 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10987 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10988 * coretypes.h: Likewise.
10989 * crtstuff.c: Likewise.
10990 * defaults.h: Likewise.
10991 * dwarf2.h: Likewise.
10992 * emutls.c: Likewise.
10993 * gbl-ctors.h: Likewise.
10994 * gcov-io.h: Likewise.
10995 * ginclude/float.h: Likewise.
10996 * ginclude/iso646.h: Likewise.
10997 * ginclude/stdarg.h: Likewise.
10998 * ginclude/stdbool.h: Likewise.
10999 * ginclude/stddef.h: Likewise.
11000 * ginclude/stdfix.h: Likewise.
11001 * ginclude/stdint-gcc.h: Likewise.
11002 * ginclude/tgmath.h: Likewise.
11003 * gthr-aix.h: Likewise.
11004 * gthr-dce.h: Likewise.
11005 * gthr-gnat.c: Likewise.
11006 * gthr-gnat.h: Likewise.
11007 * gthr-lynx.h: Likewise.
11008 * gthr-mipssde.h: Likewise.
11009 * gthr-nks.h: Likewise.
11010 * gthr-posix.c: Likewise.
11011 * gthr-posix.h: Likewise.
11012 * gthr-posix95.h: Likewise.
11013 * gthr-rtems.h: Likewise.
11014 * gthr-single.h: Likewise.
11015 * gthr-solaris.h: Likewise.
11016 * gthr-tpf.h: Likewise.
11017 * gthr-vxworks.h: Likewise.
11018 * gthr-win32.h: Likewise.
11019 * gthr.h: Likewise.
11020 * libgcc2.c: Likewise.
11021 * libgcc2.h: Likewise.
11022 * libgcov.c: Likewise.
11023 * tsystem.h: Likewise.
11024 * typeclass.h: Likewise.
11025 * unwind-c.c: Likewise.
11026 * unwind-compat.h: Likewise.
11027 * unwind-dw2-fde-compat.c: Likewise.
11028 * unwind-dw2-fde-darwin.c: Likewise.
11029 * unwind-dw2-fde-glibc.c: Likewise.
11030 * unwind-dw2-fde.c: Likewise.
11031 * unwind-dw2-fde.h: Likewise.
11032 * unwind-dw2.c: Likewise.
11033 * unwind-dw2.h: Likewise.
11034 * unwind-generic.h: Likewise.
11035 * unwind-pe.h: Likewise.
11036 * unwind-sjlj.c: Likewise.
11037 * unwind.inc: Likewise.
11038 * config/arm/neon-gen.ml: Change generated copyright header to
11039 refer to version 3 of the GNU General Public License with
11040 version 3.1 of the GCC Runtime Library Exception and to point
11041 readers at the COPYING3 and COPYING3.RUNTIME files and the
11042 FSF's license web page.
11043 * config/arm/arm_neon.h: Regenerate.
11044
11045 2009-04-09 Jakub Jelinek <jakub@redhat.com>
11046
11047 * config/cris/cris.md: Change copyright header to refer to version
11048 3 of the GNU General Public License.
11049 * doc/install.texi2html: Change copyright header to refer to version
11050 3 of the GNU General Public License and to point readers at the
11051 COPYING3 file and the FSF's license web page.
11052 * config/vax/linux.h: Likewise.
11053
11054 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
11055
11056 * config/i386/i386.md (cmpcc): New.
11057 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
11058 (sync_compare_and_swap_cc*): Delete.
11059
11060 * config/s390/s390.c (s390_compare_emitted): Remove.
11061 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
11062 s390_compare_emitted used to be handled. Assert that modes match.
11063 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
11064 refer to sync_compare_and_swap_ccsi.
11065 * config/s390/s390.h (s390_compare_emitted): Remove.
11066 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
11067 instead of s390_compare_emitted.
11068 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
11069 instead of s390_compare_emitted.
11070 * config/s390/s390.md (cmpcc): New.
11071 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
11072 CC_REGNUM, do not pretend it's set.
11073 (sync_compare_and_swap_cc*): Delete.
11074 * config/s390/predicates.md (cc_reg_operand): New.
11075
11076 * expr.c (sync_compare_and_swap_cc): Delete.
11077 * optabs.h (sync_compare_and_swap_cc): Delete.
11078 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
11079 is being used with can_compare_p.
11080 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
11081 (find_cc_set): New.
11082 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
11083 look for a MODE_CC set instead. Use emit_store_flag.
11084 (expand_compare_and_swap_loop): Likewise, with some additional
11085 complication to avoid a force_reg when useless. Use
11086 emit_cmp_and_jump_insns.
11087 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
11088 * doc/md.texi (sync_compare_and_swap_cc): Merge with
11089 sync_compare_and_swap documentation.
11090
11091 2009-04-09 Jan Hubicka <jh@suse.cz>
11092
11093 * except.c (find_prev_try): Break out from ....
11094 (duplicate_eh_regions): ... here; properly update prev_try pointers
11095 when duplication part of tree.
11096 (dump_eh_tree): Improve dumping.
11097 (verify_eh_region): New.
11098 (verify_eh_tree): Use it.
11099
11100 2009-04-06 Richard Guenther <rguenther@suse.de>
11101
11102 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
11103 &ARRAY addresses by adjusting their types and prepending
11104 a conversion.
11105 * tree-cfg.c (verify_gimple_assign_single): Verify that
11106 addresses are correct.
11107
11108 2009-04-09 Richard Guenther <rguenther@suse.de>
11109
11110 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
11111 indices into an array reference if possible.
11112 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11113 Fold POINTER_PLUS_EXPR statements with invariant address.
11114
11115 2009-04-09 Alan Modra <amodra@bigpond.net.au>
11116
11117 PR target/39634
11118 * config.gcc (powerpc64-*-linux*): Always build biarch.
11119
11120 2009-04-09 Joseph Myers <joseph@codesourcery.com>
11121
11122 PR c/39613
11123 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
11124 it and pedwarn if this results in an INTEGER_CST.
11125
11126 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11127
11128 * doc/install.texi: Update minimum GMP version. Remove obsolete
11129 text in MPFR section.
11130
11131 2009-04-08 Jakub Jelinek <jakub@redhat.com>
11132
11133 * dwarf2out.c (class_scope_p): New static inline.
11134 (class_or_namespace_scope_p): Use it.
11135 (gen_variable_die): Use DW_TAG_member tag for static data member
11136 declarations instead of DW_TAG_variable.
11137
11138 PR middle-end/39573
11139 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
11140 variables.
11141
11142 2009-04-08 Richard Guenther <rguenther@suse.de>
11143
11144 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
11145 valueize random data.
11146
11147 2009-04-08 David Edelsohn <edelsohn@gnu.org>
11148
11149 * config.gcc (aix tm_file): Add aix-stdint.h.
11150 (aix tm clause use_gcc_stdint): Set to wrap.
11151 * config/rs6000/aix-stdint.h: New file.
11152
11153 2009-04-08 Richard Guenther <rguenther@suse.de>
11154
11155 PR middle-end/36291
11156 * tree-dfa.c (add_referenced_var): Do not recurse into
11157 global initializers.
11158 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
11159 exposed variables.
11160 (fold_const_aggregate_ref): Likewise.
11161
11162 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
11163
11164 * recog.c (ordered_comparison_operator): New.
11165 * gensupport.c (std_preds): Add it.
11166 * doc/md.texi (Machine-Independent Predicates): Document it.
11167
11168 2009-04-08 Jan Hubicka <jh@suse.cz>
11169
11170 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
11171 * function.h (rtl_eh): Remove exception_handler_label_map.
11172 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
11173 remove_exception_handler_label, for_each_eh_label_1): Remove.
11174 (rtl_remove_unreachable_regions): Remove.
11175 (convert_from_eh_region_ranges): Do not remove unreachable regions.
11176 (find_exception_handler_labels): Don't build the hashtable.
11177 (maybe_remove_eh_handler): Remove.
11178 (for_each_eh_label): Rewrite to walk the tree.
11179 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
11180 * except.h (maybe_remove_eh_handler): Remove.
11181 * passes.c (init_optimization_passes): Schedule second EH cleanup
11182 before out-of-ssa.
11183 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
11184 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
11185
11186 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
11187
11188 * genoutput.c (validate_optab_operands): New.
11189 (gen_insn, gen_expand): Call it.
11190
11191 * genflags.c (gen_insn): Detect misused iterators.
11192 (main): Pass line_no to gen_insn, exit with status 1 on error.
11193
11194 * genextract.c (line_no): Make global.
11195 (VEC_safe_set_locstr): Change assertion to error message.
11196 (main): Exit with status 1 on error.
11197
11198 2009-04-08 Joseph Myers <joseph@codesourcery.com>
11199
11200 PR c/39614
11201 PR c/39673
11202 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11203 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11204 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
11205 * c-convert.c (convert): Do not call fold on results of conversion
11206 functions when the result is a C_MAYBE_CONST_EXPR.
11207 * c-parser.c (c_parser_postfix_expression): Do not fold condition
11208 of __builtin_choose_expr.
11209 * c-typeck.c (remove_c_maybe_const_expr): New.
11210 (build_unary_op, build_conditional_expr, build_compound_expr,
11211 build_binary_op, c_objc_common_truthvalue_conversion): Call
11212 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
11213 integer operands.
11214
11215 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
11216
11217 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
11218 CODE to produce a new one. Add a prototype to use fold_convert_const
11219
11220 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
11221
11222 PR bootstrap/39660
11223 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
11224 mix declarations and code.
11225
11226 2009-04-08 Ben Elliston <bje@au.ibm.com>
11227
11228 * gcc.c: Replace `CC' with `GCC' throughout.
11229
11230 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
11231
11232 * doc/invoke.texi: Document Atom support.
11233
11234 2009-04-07 Jason Merrill <jason@redhat.com>
11235
11236 PR c++/25185
11237 * c-common.h, c-common.c: Add flag_pretty_templates.
11238 * c-opts.c (c_common_handle_option): Set it.
11239 * c.opt: Add -fno-pretty-templates.
11240 * doc/invoke.texi (C++ Dialect Options): Likewise.
11241
11242 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
11243
11244 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
11245 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
11246 (ia64_expand_builtin): Likewise.
11247
11248 2009-04-07 Martin Jambor <mjambor@suse.cz>
11249
11250 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
11251 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11252 ADDR_EXPRS are include too.
11253
11254 2009-04-07 Richard Guenther <rguenther@suse.de>
11255
11256 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
11257 decls are only used if passes as parameters or if they are
11258 local statics and the call is not to a builtin.
11259 (call_may_clobber_ref_p_1): Likewise.
11260
11261 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
11262
11263 * expr.c (do_store_flag): Remove last argument. Simplify code
11264 to avoid duplication of tests already done by can_compare_p.
11265 (expand_expr_real_1): Adjust caller.
11266
11267 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
11268
11269 * optabs.c (can_compare_p): Test the predicate of a
11270 cbranch and cstore pattern.
11271
11272 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
11273
11274 * expr.c (convert_move): Use emit_store_flag instead of
11275 "emulating" it.
11276
11277 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
11278
11279 * config/i386/i386.c (ix86_compare_emitted): Remove.
11280 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
11281 ix86_compare_op0 like ix86_compare_emitted used to be handled.
11282 * config/i386/i386.h (ix86_compare_emitted): Remove.
11283 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
11284 instead of ix86_compare_emitted.
11285 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
11286
11287 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
11288
11289 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
11290 Add t-sysroot-suffix to tmake_file.
11291 * config/print-sysroot-suffix.sh: New file.
11292 * config/t-sysroot-suffix: New file.
11293
11294 2009-04-07 Ben Elliston <bje@au.ibm.com>
11295
11296 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
11297 as the latter produces a warning when the target does not support
11298 infinity.
11299
11300 2009-04-07 Ben Elliston <bje@au.ibm.com>
11301
11302 * dfp.c: Replace type punning assignments with memcpy throughout.
11303 * Makefile.in (dfp.o-warn): Remove.
11304
11305 2009-04-07 Alan Modra <amodra@bigpond.net.au>
11306
11307 PR target/39634
11308 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
11309 Include soft-fp/t-softfp after rs6000/t-linux64.
11310
11311 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
11312
11313 * stor-layout.c (set_sizetype): Use the full precision of their
11314 machine mode for bitsize types.
11315
11316 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
11317
11318 * config/i386/i386.md: Revert 2 accidental checkins.
11319
11320 2009-04-06 Joey Ye <joey.ye@intel.com>
11321 Xuepeng Guo <xuepeng.guo@intel.com>
11322 H.J. Lu <hongjiu.lu@intel.com>
11323
11324 Atom pipeline model, tuning and insn selection.
11325 * config.gcc (atom): Add atom config options and target.
11326
11327 * config/i386/atom.md: New.
11328
11329 * config/i386/i386.c (atom_cost): New cost.
11330 (m_ATOM): New macro flag.
11331 (initial_ix86_tune_features): Set m_ATOM.
11332 (x86_accumulate_outgoing_args): Likewise.
11333 (x86_arch_always_fancy_math_387): Likewise.
11334 (processor_target): Add Atom cost.
11335 (cpu_names): Add Atom cpu name.
11336 (override_options): Set Atom ISA.
11337 (ix86_issue_rate): New case PROCESSOR_ATOM.
11338 (ix86_adjust_cost): Likewise.
11339
11340 * config/i386/i386.h (TARGET_ATOM): New target macro.
11341 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
11342 (TARGET_OPT_AGU): New target option.
11343 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
11344 (processor_type): Add PROCESSOR_ATOM.
11345
11346 * config/i386/i386.md (cpu): Add new value "atom".
11347 (use_carry, movu): New attr.
11348 (atom.md): Include atom.md.
11349 (adddi3_carry_rex64): Set attr "use_carry".
11350 (addqi3_carry): Likewise.
11351 (addhi3_carry): Likewise.
11352 (addsi3_carry): Likewise.
11353 (*addsi3_carry_zext): Likewise.
11354 (subdi3_carry_rex64): Likewise.
11355 (subqi3_carry): Likewise.
11356 (subhi3_carry): Likewise.
11357 (subsi3_carry): Likewise.
11358 (x86_movdicc_0_m1_rex64): Likewise.
11359 (*x86_movdicc_0_m1_se): Likewise.
11360 (x86_movsicc_0_m1): Likewise.
11361 (*x86_movsicc_0_m1_se): Likewise.
11362 (*adddi_1_rex64): Emit add insn as much as possible.
11363 (*addsi_1): Likewise.
11364 (return_internal): Set atom_unit.
11365 (return_internal_long): Likewise.
11366 (return_pop_internal): Likewise.
11367 (*rcpsf2_sse): Set atom_sse_attr attr.
11368 (*qrt<mode>2_sse): Likewise.
11369 (*prefetch_sse): Likewise.
11370
11371 * config/i386/i386-c.c (ix86_target_macros_internal): New case
11372 PROCESSOR_ATOM.
11373 (ix86_target_macros_internal): Likewise.
11374
11375 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11376 (*prefetch_sse_rex): Likewise.
11377 (sse_rcpv4sf2): Likewise.
11378 (sse_vmrcpv4sf2): Likewise.
11379 (sse_sqrtv4sf2): Likewise.
11380 (<sse>_vmsqrt<mode>2): Likewise.
11381 (sse_ldmxcsr): Likewise.
11382 (sse_stmxcsr): Likewise.
11383 (*sse_sfence): Likewise.
11384 (sse2_clflush): Likewise.
11385 (*sse2_mfence): Likewise.
11386 (*sse2_lfence): Likewise.
11387 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11388 (<sse>_movup<ssemodesuffixf2c>): Likewise.
11389 (avx_movdqu<avxmodesuffix>): Likewise.
11390 (avx_lddqu<avxmodesuffix>): Likewise.
11391 (sse2_movntv2di): Change attr "type" to "ssemov".
11392 (sse2_movntsi): Likewise.
11393 (rsqrtv8sf2): Change attr "type" to "sseadd".
11394 (sse3_addsubv2df3): Set attr "atom_unit".
11395 (sse3_h<plusminus_insn>v4sf3): Likewise.
11396 (*sse2_pmaddwd): Likewise.
11397 (*vec_extractv2di_1_rex64): Likewise.
11398 (*vec_extractv2di_1_avx): Likewise.
11399 (sse2_psadbw): Likewise.
11400 (ssse3_phaddwv8hi3): Likewise.
11401 (ssse3_phaddwv4hi3): Likewise.
11402 (ssse3_phadddv4si3): Likewise.
11403 (ssse3_phadddv2si3): Likewise.
11404 (ssse3_phaddswv8hi3): Likewise.
11405 (ssse3_phaddswv4hi3): Likewise.
11406 (ssse3_phsubwv8hi3): Likewise.
11407 (ssse3_phsubwv4hi3): Likewise.
11408 (ssse3_phsubdv4si3): Likewise.
11409 (ssse3_phsubdv2si3): Likewise.
11410 (ssse3_phsubswv8hi3): Likewise.
11411 (ssse3_phsubswv4hi3): Likewise.
11412 (ssse3_pmaddubsw128): Likewise.
11413 (sse3_pmaddubsw: Likewise.
11414 (ssse3_palignrti): Likewise.
11415 (ssse3_palignrdi): Likewise.
11416
11417 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
11418
11419 * doc/install.texi (Specific): Fix two cross-references to MinGW.
11420
11421 2009-04-06 Richard Guenther <rguenther@suse.de>
11422
11423 PR tree-optimization/28868
11424 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11425 of which PHI results we inserted.
11426 (insert_into_preds_of_block): Record inserted PHIs.
11427 (eliminate): Eliminate redundant PHI nodes.
11428 (init_pre): Init inserted_phi_names.
11429
11430 2009-04-06 Richard Guenther <rguenther@suse.de>
11431
11432 PR tree-optimization/39643
11433 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11434 IMAGPART_EXPRs of complex constants.
11435 (execute_fold_all_builtins): If we folded a call queue
11436 TODO_update_address_taken.
11437
11438 2009-04-06 Jan Hubicka <jh@suse.cz>
11439
11440 PR middle-end/39659
11441 * except.c (remove_unreachable_regions): Propagate may_contain_throw
11442 flag.
11443
11444 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
11445
11446 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11447 delay slot.
11448 (ic_invalidate_array): Likewise.
11449
11450 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
11451
11452 * calls.c (emit_library_call_value_1): Fix a problem with parameter
11453 alignment for library calls.
11454
11455 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
11456
11457 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
11458 (mingw32 tm clause use_gcc_stdint): Set to wrap.
11459 * config/i386/mingw-stdint.h: New file.
11460
11461 2009-04-05 Richard Guenther <rguenther@suse.de>
11462
11463 PR tree-optimization/39648
11464 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11465 our &A vs. &A[0] IL deficiencies.
11466
11467 2009-04-04 Jan Hubicka <jh@suse.cz>
11468
11469 * except.c (sjlj_find_directly_reachable_regions): Be ready for
11470 removed toplevel regions.
11471 (sjlj_mark_call_sites): Likewise.
11472
11473 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
11474
11475 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
11476 (cygwin tm clause use_gcc_stdint): Set to wrap.
11477 * config/i386/cygwin-stdint.h: New file.
11478
11479 2009-04-04 Richard Guenther <rguenther@suse.de>
11480
11481 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11482 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11483 single-argument PHIs if we are in loop-closed SSA form.
11484 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11485 for the pre-condition.
11486 (slpeel_tree_peel_loop_to_edge): Likewise.
11487 (vect_build_loop_niters): Take an optional sequence to append stmts.
11488 (vect_generate_tmps_on_preheader): Likewise.
11489 (vect_do_peeling_for_loop_bound): Take extra guards for the
11490 pre-condition.
11491 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
11492 the cost model check.
11493 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
11494 guards if we are going to peel. Do not apply versioning in that case.
11495 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11496 (vect_do_peeling_for_loop_bound): Likewise.
11497 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11498 loop bound only record extra pre-conditions, do not apply loop
11499 versioning.
11500
11501 2009-04-04 Richard Guenther <rguenther@suse.de>
11502
11503 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11504 renaming code.
11505
11506 2009-04-04 Jan Hubicka <jh@suse.cz>
11507
11508 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11509 last_basic_block for size of bb->index indexed array.
11510 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11511 compute_out, link_btr_uses, build_btr_def_use_webs,
11512 build_btr_def_use_webs, migrate_btr_defs): Likewise.
11513
11514 2009-04-04 Jan Hubicka <jh@suse.cz>
11515
11516 * except.c (remove_eh_handler_and_replace): Break out from ...
11517 (remove_eh_handler): ... here.
11518 (bring_to_root): New function.
11519 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11520 handled ones, bring others to root of tree.
11521
11522 2009-04-04 Jan Hubicka <jh@suse.cz>
11523
11524 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11525 (all_phis_safe_to_merge): New function.
11526 (update_info): New structure.
11527 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11528 (cleanup_empty_eh): Update SSA if possible.
11529
11530 2009-04-04 Richard Guenther <rguenther@suse.de>
11531
11532 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11533 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11534 (append_vuse): Likewise.
11535
11536 2009-04-04 Jakub Jelinek <jakub@redhat.com>
11537
11538 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11539 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11540 instead of REG_UNSAVED for DW_CFA_undefined.
11541 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11542 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11543 outermost frame.
11544
11545 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
11546
11547 PR target/39501
11548 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11549 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11550 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11551
11552 2009-04-04 Richard Guenther <rguenther@suse.de>
11553
11554 PR tree-optimization/8781
11555 PR tree-optimization/37892
11556 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11557 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11558 (valueize_refs): Call it for *& valueizations.
11559 (shared_reference_ops_from_ref): Rename to ...
11560 (valueize_shared_reference_ops_from_ref): ... this and valueize.
11561 (shared_reference_ops_from_call): Rename to ...
11562 (valueize_shared_reference_ops_from_call): ... this and valueize.
11563 (vn_reference_lookup): Update.
11564 (visit_reference_op_call): Likewise.
11565 * tree-ssa-pre.c (phi_translate_1): Fold *&.
11566 (eliminate): Value-replace the call address in call statements.
11567
11568 2009-04-04 Richard Guenther <rguenther@suse.de>
11569
11570 PR tree-optimization/39636
11571 * tree-ssa-forwprop.c
11572 (forward_propagate_addr_into_variable_array_index): Check for
11573 GIMPLE_ASSIGN before accessing the rhs code.
11574
11575 2009-04-03 Jason Merrill <jason@redhat.com>
11576
11577 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11578
11579 2009-04-03 Steve Ellcey <sje@cup.hp.com>
11580
11581 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11582 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11583 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11584 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11585 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11586 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11587 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11588 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11589 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11590 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11591 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11592 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11593 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11594 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11595 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11596 Use fr_reg_or_fp01_operand instead of fr_register_operand
11597
11598 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11599 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11600 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11601
11602 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
11603
11604 PR rtl-optimization/39607
11605 PR rtl-optimization/39631
11606
11607 Revert:
11608
11609 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11610 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11611 instead of DF_LR_OUT.
11612 * ira-lives.c (process_bb_node_lives): Ditto.
11613 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11614 instead of DF_LR_{OUT,IN}.
11615 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11616 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11617
11618 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
11619
11620 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11621 (execute_lower_omp): Always run but take the short way out if -fopenmp
11622 is not given.
11623 (gate_lower_omp): Remove, forcing the pass manager to always run the
11624 pass and always set PROP_gimple_lomp.
11625 (pass_lower_omp): Remove gate function.
11626 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11627 PROP_trees. Instead, require it.
11628 * ipa-cp.c (pass_ipa_cp): Likewise.
11629 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11630 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11631 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11632 and PROP_gimple_leh.
11633
11634 2009-04-03 Richard Guenther <rguenther@suse.de>
11635
11636 PR middle-end/13146
11637 PR tree-optimization/23940
11638 PR tree-optimization/33237
11639 PR middle-end/33974
11640 PR middle-end/34093
11641 PR tree-optimization/36201
11642 PR tree-optimization/36230
11643 PR tree-optimization/38049
11644 PR tree-optimization/38207
11645 PR tree-optimization/38230
11646 PR tree-optimization/38301
11647 PR tree-optimization/38585
11648 PR middle-end/38895
11649 PR tree-optimization/38985
11650 PR tree-optimization/39299
11651 * tree-ssa-structalias.h: Remove.
11652 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11653 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11654 (struct vuse_element_d): Remove.
11655 (struct vuse_vec_d): Likewise.
11656 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11657 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11658 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11659 VUSE_ELEMENT_VAR): Likewise.
11660 (struct voptype_d): Likewise.
11661 (NUM_VOP_FREE_BUCKETS): Likewise.
11662 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11663 (struct stmt_operands_d): Remove.
11664 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11665 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11666 VDEF_NUM, VDEF_VECT): Likewise.
11667 (copy_virtual_operands): Remove.
11668 (operand_build_cmp): Likewise.
11669 (create_ssa_artificial_load_stmt): Likewise.
11670 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11671 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11672 vuse_index and mayuse_index members. Pack and move done and iter_type
11673 members to the front.
11674 (SSA_OP_VMAYUSE): Remove.
11675 (SSA_OP_VIRTUAL_USES): Adjust.
11676 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11677 (unlink_stmt_vdef): Declare.
11678 (add_to_addressable_set): Remove.
11679 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11680 (vrp_visit_stmt): Likewise.
11681 * doc/tree-ssa.texi (Alias analysis): Update.
11682 * doc/invoke.texi (max-aliased-vops): Remove docs.
11683 (avg-aliased-vops): Likewise.
11684 * tree-into-ssa.c (syms_to_rename): Remove.
11685 (need_to_update_vops_p): Likewise.
11686 (need_to_initialize_update_ssa_p): Rename to ...
11687 (update_ssa_initialized_fn): ... this. Track function we are
11688 initialized for.
11689 (symbol_marked_for_renaming): Simplify.
11690 (add_new_name_mapping): Do not set need_to_update_vops_p.
11691 (dump_currdefs): Use SYMS_TO_RENAME.
11692 (rewrite_update_stmt): Always walk all uses/defs.
11693 (dump_update_ssa): Adjust.
11694 (init_update_ssa): Take function argument. Track what we are
11695 initialized for.
11696 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11697 (create_new_def_for): Initialize for cfun, assert we are initialized
11698 for cfun.
11699 (mark_sym_for_renaming): Simplify.
11700 (mark_set_for_renaming): Do not initialize update-ssa.
11701 (need_ssa_update_p): Simplify. Take function argument.
11702 (name_mappings_registered_p): Assert we ask for the correct function.
11703 (name_registered_for_update_p): Likewise.
11704 (ssa_names_to_replace): Likewise.
11705 (release_ssa_name_after_update_ssa): Likewise.
11706 (update_ssa): Likewise. Use SYMS_TO_RENAME.
11707 (dump_decl_set): Do not print a newline.
11708 (debug_decl_set): Do it here.
11709 (dump_update_ssa): And here.
11710 * tree-ssa-loop-im.c (move_computations): Adjust.
11711 (movement_possibility): Likewise.
11712 (determine_max_movement): Likewise.
11713 (gather_mem_refs_stmt): Likewise.
11714 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11715 or NAME_MEMORY_TAG.
11716 * tree-complex.c (update_all_vops): Remove.
11717 (expand_complex_move): Adjust.
11718 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11719 Simplify test for memory referencing statement. Exclude
11720 non-invariant ADDR_EXPRs.
11721 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11722 * tree-loop-distribution.c (generate_memset_zero): Adjust.
11723 (rdg_flag_uses): Likewise.
11724 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11725 related code.
11726 (tree_optimize_tail_calls_1): Also split the
11727 edge from the entry block if we have degenerate PHI nodes in
11728 the first basic block.
11729 * tree.c (init_ttree): Remove memory-tag related code.
11730 (tree_code_size): Likewise.
11731 (tree_node_structure): Likewise.
11732 (build7_stat): Re-write to be build6_stat.
11733 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11734 (SSA_VAR_P): Adjust.
11735 (struct tree_memory_tag): Remove.
11736 (struct tree_memory_partition_tag): Likewise.
11737 (union tree_node): Adjust.
11738 (build7): Re-write to be build6.
11739 * tree-pass.h (pass_reset_cc_flags): Remove.
11740 (TODO_update_address_taken): New flag.
11741 (pass_simple_dse): Remove.
11742 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11743 * params.h (MAX_ALIASED_VOPS): Remove.
11744 (AVG_ALIASED_VOPS): Likewise.
11745 * omp-low.c (expand_omp_taskreg): Update SSA form.
11746 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11747 aliases the lhs in a copy stmt.
11748 * tree-ssa-dse.c (struct address_walk_data): Remove.
11749 (memory_ssa_name_same): Likewise.
11750 (memory_address_same): Likewise.
11751 (get_kill_of_stmt_lhs): Likewise.
11752 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
11753 unused stores. Look through PHI nodes into post-dominated regions.
11754 (dse_optimize_stmt): Simplify. Properly remove stores.
11755 (tree_ssa_dse): Compute dominators.
11756 (execute_simple_dse): Remove.
11757 (pass_simple_dse): Likewise.
11758 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11759 gimple_loaded_syms and gimple_stored_syms computation.
11760 * toplev.c (dump_memory_report): Dump alias and pta stats.
11761 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11762 (vn_reference_eq): Likewise.
11763 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11764 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11765 valueize_vuses): Remove.
11766 (get_def_ref_stmt_vuses): Simplify. Rename to ...
11767 (get_def_ref_stmt_vuse): ... this.
11768 (vn_reference_lookup_2): New function.
11769 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11770 walking equivalent vuses. Simplify.
11771 (vn_reference_lookup): Likewise.
11772 (vn_reference_insert): Likewise.
11773 (vn_reference_insert_pieces): Likewise.
11774 (visit_reference_op_call): Simplify.
11775 (visit_reference_op_load): Likewise.
11776 (visit_reference_op_store): Likewise.
11777 (init_scc_vn): Remove shared_lookup_vuses initialization.
11778 (free_scc_vn): Remove shared_lookup_vuses freeing.
11779 (sort_vuses, sort_vuses_heap): Remove.
11780 (get_ref_from_reference_ops): Export.
11781 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11782 vector with single vuse pointer.
11783 (vn_reference_lookup_pieces, vn_reference_lookup,
11784 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11785 (shared_vuses_from_stmt): Remove.
11786 (get_ref_from_reference_ops): Declare.
11787 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11788 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11789 memory-tag related code.
11790 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11791 (likely_value): Add comment, skip static-chain of call statements.
11792 (surely_varying_stmt_p): Adjust.
11793 (gimplify_and_update_call_from_tree): Likewise.
11794 (execute_fold_all_builtins): Do not rebuild alias info.
11795 (gimplify_and_update_call_from_tree): Properly update VOPs.
11796 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11797 (copy_ref_info): Remove memory-tag related code.
11798 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11799 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11800 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11801 computation.
11802 * tree-ssa-dom.c (gimple_p): Remove typedef.
11803 (eliminate_redundant_computations): Adjust.
11804 (record_equivalences_from_stmt): Likewise.
11805 (avail_expr_hash): Likewise.
11806 (avail_expr_eq): Likewise.
11807 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
11808 (stmt_makes_single_load): Likewise.
11809 (stmt_makes_single_store): Likewise.
11810 * tree-ssa-alias.c: Rewrite completely.
11811 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11812 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11813 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11814 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11815 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11816 Remove public functions.
11817 (pass_reset_cc_flags): Remove.
11818 (pass_build_alias): Move ...
11819 * tree-ssa-structalias.c (pass_build_alias): ... here.
11820 * tree-ssa-alias.c (may_be_aliased): Move ...
11821 * tree-flow-inline.h (may_be_aliased): ... here.
11822 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11823 count_uses_and_derefs): Move ...
11824 * gimple.c: ... here.
11825 * gimple.h (count_uses_and_derefs): Declare.
11826 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11827 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11828 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11829 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11830 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11831 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11832 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11833 New functions.
11834 * tree-dfa.c (refs_may_alias_p): Move ...
11835 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
11836 * tree-ssa-alias.h: New file.
11837 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11838 (statement_sink_location): Likewise.
11839 * opts.c (decode_options): Do not adjust max-aliased-vops or
11840 avg-aliased-vops values.
11841 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11842 (TV_CALL_CLOBBER): Likewise.
11843 (TV_FLOW_SENSITIVE): Likewise.
11844 (TV_FLOW_INSENSITIVE): Likewise.
11845 (TV_MEMORY_PARTITIONING): Likewise.
11846 (TV_ALIAS_STMT_WALK): New timevar.
11847 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11848 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11849 (get_address_description): Remove memory-tag related code.
11850 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11851 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
11852 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
11853 and immediate uses in statements. Document.
11854 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
11855 (dump_symbols): Remove.
11856 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
11857 * alias.c (get_deref_alias_set): New function split out from ...
11858 (get_alias_set): ... here.
11859 * alias.h (get_deref_alias_set): Declare.
11860 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
11861 type parameter. Remove restrict pointer handling. Create a
11862 ref-all pointer in case type-based alias sets do not conflict.
11863 (vect_analyze_data_refs): Remove SMT related code.
11864 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
11865 (vectorizable_load): Likewise.
11866 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
11867 (DR_SYMBOL_TAG, DR_VOPS): Remove.
11868 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
11869 Ignore vops and SMTs.
11870 (dr_analyze_alias): Likewise..
11871 (free_data_ref): Likewise.
11872 (create_data_ref): Likewise.
11873 (analyze_all_data_dependences): Likewise.
11874 (get_references_in_stmt): Adjust.
11875 * tree-flow-inline.h (gimple_aliases_computed_p,
11876 gimple_addressable_vars, gimple_call_clobbered_vars,
11877 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11878 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11879 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11880 gimple_mem_ref_stats): Remove.
11881 (gimple_vop): New function.
11882 (op_iter_next_use): Remove vuses and mayuses cases.
11883 (op_iter_next_def): Remove vdefs case.
11884 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11885 (clear_and_done_ssa_iter): Do not set removed fields.
11886 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
11887 Assert we are not iterating over vuses or vdefs if not also
11888 iterating over uses or defs.
11889 (op_iter_init_use): Likewise.
11890 (op_iter_init_def): Likewise.
11891 (op_iter_next_vdef): Remove.
11892 (op_iter_next_mustdef): Likewise.
11893 (op_iter_init_vdef): Likewise.
11894 (compare_ssa_operands_equal): Likewise.
11895 (link_use_stmts_after): Handle vuse operand.
11896 (is_call_used): Use is_call_clobbered.
11897 (is_call_clobbered): Global variables are always call clobbered,
11898 query the call-clobbers bitmap.
11899 (mark_call_clobbered): Ignore global variables.
11900 (clear_call_clobbered): Likewise.
11901 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11902 virtual operands sanity check.
11903 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11904 Remove.
11905 (TARGET_MEM_REF): Remove TMR_TAG operand.
11906 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11907 Remove call-clobber related code.
11908 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
11909 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11910 partitions or escape reason.
11911 (get_single_def_stmt, get_single_def_stmt_from_phi,
11912 get_single_def_stmt_with_phi): Remove.
11913 (dump_referenced_vars): Tidy.
11914 (get_ref_base_and_extent): Allow bare decls.
11915 (collect_dfa_stats): Adjust.
11916 * graphite.c (rename_variables_in_stmt): Adjust.
11917 (graphite_copy_stmts_from_block): Likewise.
11918 (translate_clast): Likewise.
11919 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11920 (EXPR_DIES): New.
11921 (translate_vuse_through_block): Use the oracle.
11922 (phi_translate_1): Adjust.
11923 (value_dies_in_block_x): Use the oracle. Cache the outcome
11924 in EXPR_DIES.
11925 (valid_in_sets): Check if the VUSE for
11926 a REFERENCE is available.
11927 (eliminate): Do not remove stmts during elimination,
11928 instead queue and remove them afterwards.
11929 (do_pre): Do not rebuild alias info.
11930 (pass_pre): Run TODO_rebuild_alias before PRE.
11931 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11932 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11933 (mark_all_v_defs_stmt): Remove.
11934 (mark_all_v_defs_seq): Adjust.
11935 (sra_replace): Likewise.
11936 (scalarize_use): Likewise.
11937 (scalarize_copy): Likewise.
11938 (scalarize_init): Likewise.
11939 (scalarize_ldst): Likewise.
11940 (todoflags): Remove.
11941 (tree_sra): Do not rebuild alias info.
11942 (tree_sra_early): Adjust.
11943 (pass_sra): Run TODO_update_address_taken before SRA.
11944 * tree-predcom.c (set_alias_info): Remove.
11945 (prepare_initializers_chain): Do not call it.
11946 (mark_virtual_ops_for_renaming): Adjust.
11947 (mark_virtual_ops_for_renaming_list): Remove.
11948 (initialize_root_vars): Adjust.
11949 (initialize_root_vars_lm): Likewise.
11950 (prepare_initializers_chain): Likewise.
11951 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11952 (may_propagate_copy_into_stmt): Likewise.
11953 (merge_alias_info): Do nothing for now.
11954 (propagate_tree_value_into_stmt): Adjust.
11955 (stmt_may_generate_copy): Likewise.
11956 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11957 not mark symbols for renaming.
11958 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11959 with the same statement, make sure to update the new pointed-to one.
11960 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11961 call statements, do not mark symbols for renaming.
11962 (mark_operand_necessary): Dump something.
11963 (ref_may_be_aliased): New function.
11964 (mark_aliased_reaching_defs_necessary_1): New helper function.
11965 (mark_aliased_reaching_defs_necessary): Likewise.
11966 (mark_all_reaching_defs_necessary_1): Likewise.
11967 (mark_all_reaching_defs_necessary): Likewise.
11968 (propagate_necessity): Do not process virtual PHIs. For
11969 non-aliased loads mark all reaching definitions as necessary.
11970 For aliased loads and stores mark the immediate dominating
11971 aliased clobbers as necessary.
11972 (visited): New global static.
11973 (perform_tree_ssa_dce): Free visited bitmap after propagating
11974 necessity.
11975 (remove_dead_phis): Perform simple dead virtual PHI removal.
11976 (remove_dead_stmt): Properly unlink virtual operands when
11977 removing stores.
11978 (eliminate_unnecessary_stmts): Schedule PHI removal after
11979 stmt removal.
11980 * tree-ssa-ter.c (is_replaceable_p): Adjust.
11981 (process_replaceable): Likewise.
11982 (find_replaceable_in_bb): Likewise.
11983 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11984 based on the single gimple vop.
11985 (verify_flow_insensitive_alias_info): Remove.
11986 (verify_flow_sensitive_alias_info): Likewise.
11987 (verify_call_clobbering): Likewise.
11988 (verify_memory_partitions): Likewise.
11989 (verify_alias_info): Likewise.
11990 (verify_ssa): Adjust..
11991 (execute_update_addresses_taken): Export. Update SSA
11992 manually. Optimize only when optimizing. Use a local bitmap.
11993 (pass_update_address_taken): Remove TODO_update_ssa, add
11994 TODO_dump_func.
11995 (pass_update_address_taken): Just use TODO_update_address_taken.
11996 (init_tree_ssa): Do not initialize addressable_vars.
11997 (verify_ssa): Verify new VUSE / VDEF properties.
11998 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11999 Do not call verify_alias_info.
12000 (delete_tree_ssa): Clear the VUSE, VDEF operands.
12001 Do not free the loaded and stored syms bitmaps. Reset the escaped
12002 and callused solutions. Do not free addressable_vars.
12003 Remove memory-tag related code.
12004 (warn_uninitialized_var): Aliases are always available.
12005 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
12006 * lambda-code.c (can_put_in_inner_loop): Adjust.
12007 (can_put_after_inner_loop): Likewise.
12008 (perfect_nestify): Likewise.
12009 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
12010 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
12011 (vectorizable_conversion): Do not mark symbols for renaming.
12012 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
12013 (expand_call_inline): Unlink the calls virtual operands before
12014 replacing it.
12015 (tree_function_versioning): Do not call update_ssa if we are not
12016 updating clones. Simplify.
12017 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
12018 (propagate_with_phi): Likewise..
12019 * tree-outof-ssa.c (create_temp): Remove memory tag and call
12020 clobber code. Assert we are not aliased or global.
12021 * tree-flow.h: Include tree-ssa-alias.h
12022 (enum escape_type): Remove.
12023 (struct mem_sym_stats_d): Likewise.
12024 (struct mem_ref_stats_d): Likewise.
12025 (struct gimple_df): Add vop member. Remove global_var,
12026 call_clobbered_vars, call_used_vars, addressable_vars,
12027 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
12028 escaped and callused members.
12029 (struct ptr_info_def): Remove all members, add points-to solution
12030 member pt.
12031 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
12032 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
12033 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
12034 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
12035 (tree-ssa-alias.o): Likewise.
12036 (toplev.o): Add tree-ssa-alias.h
12037 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
12038 * gimple.c (gimple_set_bb): Fix off-by-one error.
12039 (is_gimple_reg): Do not handle memory tags.
12040 (gimple_copy): Also copy virtual operands.
12041 Delay updating the statement. Do not reset loaded and stored syms.
12042 (gimple_set_stored_syms): Remove.
12043 (gimple_set_loaded_syms): Likewise.
12044 (gimple_call_copy_skip_args): Copy the virtual operands
12045 and mark the new statement modified.
12046 * tree-ssa-structalias.c (may_alias_p): Remove.
12047 (set_uids_in_ptset): Take the alias set to prune with as
12048 parameter. Fold in the alias test of may_alias_p.
12049 (compute_points_to_sets): Compute whether a ptr is dereferenced
12050 in a local sbitmap.
12051 (process_constraint): Deal with &ANYTHING on the lhs, reject all
12052 other ADDRESSOF constraints on the lhs.
12053 (get_constraint_for_component_ref): Assert that we don't get
12054 ADDRESSOF constraints from the base of the reference.
12055 Properly generate UNKNOWN_OFFSET for DEREF if needed.
12056 (struct variable_info): Remove collapsed_to member.
12057 (get_varinfo_fc): Remove.
12058 (new_var_info): Do not set collapsed_to.
12059 (dump_constraint): Do not follow cycles.
12060 (dump_constraint_graph): Likewise.
12061 (build_pred_graph): Likewise.
12062 (build_succ_graph): Likewise.
12063 (rewrite_constraints): Likewise.
12064 (do_simple_structure_copy): Remove.
12065 (do_rhs_deref_structure_copy): Remove.
12066 (do_lhs_deref_structure_copy): Remove.
12067 (collapse_rest_of_var): Remove.
12068 (do_structure_copy): Re-implement.
12069 (pta_stats): New global variable.
12070 (dump_pta_stats): New function.
12071 (struct constraint_expr): Make offset signed.
12072 (UNKNOWN_OFFSET): Define special value.
12073 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
12074 (solution_set_expand): New helper function split out from ...
12075 (do_sd_constraint): ... here.
12076 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
12077 (do_ds_constraint): Likewise.
12078 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
12079 and CALLUSED = *CALLUSED.
12080 (set_union_with_increment): Make inc argument signed.
12081 (type_safe): Remove.
12082 (get_constraint_for_ptr_offset): Handle unknown and negative
12083 constant offsets.
12084 (first_vi_for_offset): Handle offsets before start. Bail
12085 out early for offsets beyond the variable extent.
12086 (first_or_preceding_vi_for_offset): New function.
12087 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
12088 Together with ESCAPED = *ESCAPED this properly computes reachability.
12089 (find_what_var_points_to): New function.
12090 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
12091 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
12092 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
12093 pt_solutions_intersect): New functions.
12094 (compute_call_used_vars): Remove.
12095 (compute_may_aliases): New main entry into PTA computation.
12096 * gimple.h (gimple_p): New typedef.
12097 (struct gimple_statement_base): Remove references_memory_p.
12098 (struct gimple_statement_with_memory_ops_base): Remove
12099 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
12100 members.
12101 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
12102 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
12103 gimple_set_references_memory): Remove.
12104 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
12105 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
12106 New functions.
12107 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
12108 (verify_expr): Allow RESULT_DECL.
12109 (gimple_duplicate_bb): Do not copy virtual operands.
12110 (gimple_duplicate_sese_region): Adjust.
12111 (gimple_duplicate_sese_tail): Likewise.
12112 (mark_virtual_ops_in_region): Remove.
12113 (move_sese_region_to_fn): Do not call it.
12114 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
12115 and pass_simple_dse.
12116 (execute_function_todo): Handle TODO_update_address_taken,
12117 call execute_update_addresses_taken for TODO_rebuild_alias.
12118 (execute_todo): Adjust.
12119 (execute_one_pass): Init dump files early.
12120 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
12121 call-clobbered.
12122 (create_general_new_stmt): Clear vops.
12123 * tree-ssa-reassoc.c (get_rank): Adjust.
12124 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
12125 symbols for renaming.
12126 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
12127 (PARAM_AVG_ALIASED_VOPS): Likewise.
12128 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
12129 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
12130 * tree-ssa-operands.c: Simplify for new virtual operand representation.
12131 (operand_build_cmp, copy_virtual_operands,
12132 create_ssa_artificial_load_stmt, add_to_addressable_set,
12133 gimple_add_to_addresses_taken): Remove public functions.
12134 (unlink_stmt_vdef): New function.
12135
12136 2009-04-03 Alan Modra <amodra@bigpond.net.au>
12137
12138 * config.gcc (powerpc-*-linux*): Merge variants.
12139
12140 2009-04-02 Chao-ying Fu <fu@mips.com>
12141 James Grosbach <james.grosbach@microchip.com>
12142
12143 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
12144 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
12145 cop0_sp_offset.
12146 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
12147 keep_interrupts_masked_p, use_debug_exception_return_p.
12148 (mips_attribute_table): Add interrupt, use_shadow_register_set,
12149 keep_interrupts_masked, use_debug_exception_return.
12150 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
12151 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
12152 New functions.
12153 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
12154 (mips_print_operand): Process COP0 registers to print $0 .. $31
12155 correctly for GAS to process.
12156 (mips_interrupt_extra_call_saved_reg_p): New function.
12157 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
12158 extra registers.
12159 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
12160 (mips_compute_frame_info): Add supports for interrupt context that
12161 includes doubleword accumulators and COP0 registers.
12162 (mips_for_each_saved_acc): New function.
12163 (mips_for_each_saved_gpr_and_fpr): Change the function name from
12164 mips_for_each_saved_reg.
12165 (mips_save_reg): Save accumulators.
12166 (mips_kernel_reg_p): A new for_each_rtx callback.
12167 (mips_expand_prologue): Support interrupt handlers.
12168 (mips_restore_reg): Restore accumulators.
12169 (mips_expand_epilogue): Support interrupt handlers.
12170 (mips_can_use_return_insn): Return false for interrupt handlers.
12171 (mips_epilogue_uses): New function.
12172 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
12173 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
12174 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
12175 cop0_move): New instructions.
12176 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
12177 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
12178 defines.
12179 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
12180 New defines.
12181 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
12182 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
12183 interrupt handlers, we use K0 as the temporary register.
12184 (EPILOGUE_USES): Change to a function call.
12185 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
12186 handlers, we use K0 as the temporary register.
12187
12188 * doc/extend.texi (Function Attributes): Document interrupt,
12189 use_shadow_register_set, keep_interrupts_masked,
12190 use_debug_exception_return for MIPS attributes.
12191
12192 2009-04-03 Alan Modra <amodra@bigpond.net.au>
12193
12194 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
12195 Remove a number of t-files from tmake_file.
12196 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
12197 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
12198 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12199 target_prototype, not TARGET_PROTOTYPE.
12200 (LINK_OS_GNU_SPEC): Define.
12201 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
12202 and darwin-ldoubdle.c.
12203
12204 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12205
12206 PR driver/39293
12207 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
12208 (cpp_options): Ditto.
12209 (default_compilers): Ditto.
12210 (display_help): Ditto.
12211 (process_command): Ditto.
12212 (do_spec_1): Ditto.
12213 (set_input): Use lbasename instead of duplicate code.
12214 (save_temps_prefix): New static for -save-temps=obj.
12215 (save_temps_length): Ditto.
12216
12217 * doc/invoke.texi (-save-temps=obj): Document new variant to
12218 -save-temps switch.
12219
12220 2009-04-02 Jeff Law <law@redhat.com>
12221
12222 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
12223 variable.
12224
12225 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
12226
12227 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
12228 * configure: Regenerated.
12229
12230 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
12231
12232 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
12233 share the argument list.
12234
12235 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
12236
12237 Merge
12238
12239 2009-02-12 Diego Novillo <dnovillo@google.com>
12240
12241 * varpool.c (debug_varpool): New.
12242 * cgraph.h (debug_varpool): Declare.
12243
12244 2009-04-02 Jan Hubicka <jh@suse.cz>
12245
12246 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
12247 pass.
12248
12249 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
12250
12251 * config/i386/i386.c (ix86_abi): Move initialization to ...
12252 (override_options): Here.
12253
12254 2009-04-02 Christian Bruel <christian.bruel@st.com>
12255
12256 * config/sh/sh.c (sh_dwarf_register_span): New function.
12257 (TARGET_DWARF_REGISTER_SPAN): Define.
12258 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
12259
12260 2009-04-02 Ira Rosen <irar@il.ibm.com>
12261
12262 PR tree-optimization/39595
12263 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
12264 interleaved loads group is not greater than the SLP group size.
12265
12266 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
12267
12268 * builtins.c (is_builtin_name): New.
12269 (called_as_built_in): Use is_builtin_name.
12270 * tree.h (is_builtin_name): New.
12271 * varasm.c (incorporeal_function_p): Use is_builtin_name
12272
12273 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
12274
12275 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
12276
12277 2009-04-02 Dodji Seketeli <dodji@redhat.com>
12278
12279 PR c++/26693
12280 * c-decl.c (clone_underlying_type): Move this ...
12281 * c-common.c (set_underlying_type): ... here.
12282 Also, make sure the function properly sets TYPE_STUB_DECL() on
12283 the newly created typedef variant type.
12284 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
12285 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
12286 points.
12287
12288 2009-04-02 Richard Guenther <rguenther@suse.de>
12289
12290 PR tree-optimization/37221
12291 * tree-flow.h (degenerate_phi_result): Declare.
12292 * tree-ssa-dom.c (degenerate_phi_result): Export.
12293 * tree-scalar-evolution.c (analyze_initial_condition): If
12294 the initial condition is defined by a degenerate PHI node
12295 use the degenerate value.
12296
12297 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
12298
12299 PR rtl-optimization/39588
12300 * combine.c (merge_outer_ops): Do not set the constant when this
12301 is not necessary.
12302 (simplify_shift_const_1): Do not modify it either in this case.
12303
12304 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
12305
12306 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
12307 tuning is deprecated if -mtune value is set to an Itanium1 variant.
12308
12309 2009-04-01 Janis Johnson <janis187@us.ibm.com>
12310
12311 PR c/29027
12312 * c-lex.c (interpret_float): Default (no suffix) is double.
12313
12314 2009-04-1 Xinliang David Li <davidxl@google.com>
12315
12316 * config/i386/i386.c (legitimate_constant_p): Recognize
12317 all one vector constant.
12318
12319 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12320
12321 * config/vax/vax.c: Add #includes to silence warnings.
12322 Change #include order to silence two warnings.
12323
12324 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12325
12326 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
12327 (ASM_SPEC): Pass -k to the assembler for PIC code.
12328
12329 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12330
12331 * config.gcc: Add vax-*-linux* to the switch.
12332 * config/vax/linux.h: New file. (TARGET_VERSION,
12333 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
12334
12335 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12336
12337 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
12338 Use predicate macros instead of GET_CODE() == foo.
12339 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
12340 ashlsi3, rotrsi3, <unnamed>): Likewise.
12341
12342 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12343
12344 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
12345 jbbccihi, jbbccisi): Remova trailing whitespace.
12346 * config/vax/constraints.md: Likewise.
12347 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12348 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
12349 * config/vax/predicates.md: Likewise.
12350 * config/vax/vax.c (print_operand_address, vax_output_int_move,
12351 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
12352 * config/vax/vax.h: Likewise.
12353 * config/vax/vax.md (nonlocal_goto): Likewise.
12354
12355 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12356
12357 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
12358 (indirectable_address_p, adjacent_operands_p): Add spaces around
12359 braces.
12360 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
12361
12362 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12363
12364 * config/vax/vax.c (legitimate_constant_address_p,
12365 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12366 index_term_p, reg_plus_index_p, legitimate_address_p,
12367 vax_mode_dependent_address_p): Update comments to match functions
12368 modified by the recent int->bool conversion.
12369
12370 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12371
12372 * config/vax/builtins.md: Update copyright message.
12373 * config/vax/constraints.md: Likewise.
12374 * config/vax/netbsd-elf.h: Likewise.
12375 * config/vax/predicates.md: Likewise.
12376 * config/vax/vax-protos.h: Likewise.
12377 * config/vax/vax.c: Likewise.
12378 * config/vax/vax.h: Likewise.
12379 * config/vax/vax.md: Likewise.
12380 * config/vax/vax.opt: Likewise.
12381
12382 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
12383
12384 * config/vax/builtins.md (ffssi2, ffssi2_internal,
12385 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
12386 * config/vax/constraints.md (B, R): Likewise.
12387 * config/vax/predicates.md (external_memory_operand,
12388 nonimmediate_addsub_di_operand): Likewise.
12389 * config/vax/vax.c (vax_output_int_add): Likewise.
12390 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
12391 untyped_call): Likewise.
12392
12393 2009-04-01 Matt Thomas <matt@3am-software.com>
12394
12395 * config/vax/predicates.md: New file.
12396 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
12397 external_const_operand, nonsymbolic_operand, external_memory_operand,
12398 indirect_memory_operand, indexed_memory_operand,
12399 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12400 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12401 predicate.
12402 * config/vax/constraints.md: New file.
12403 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12404 New constraint.
12405 * config/vax/builtins.md: New file.
12406 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12407 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12408 jbbccisi): Define.
12409 * config/vax/vax.opt (mqmath): Add option.
12410 * config/vax/vax.md (isfx): Extend with DI.
12411 (VAXintQH, VAXintQHSD): Define.
12412 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12413 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12414 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12415 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12416 (movdi): Update constraints and use vax_output_int_move().
12417 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12418 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12419 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12420 nonlocal_goto): New.
12421 (mov<mode>): Extend accepted operand types.
12422 (subdi3_old): Rename from subdi3, change update constraints and use
12423 a new implementation.
12424 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
12425 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12426 MOVE_RATIO, CLEAR_RATIO): Define.
12427 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12428 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12429 (PRINT_OPERAND): Redefine using a function instead of inlined code.
12430 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
12431 (split_quadword_operands): Make static and really allow variable
12432 splitting.
12433 (print_operand_address): Update for PIC generation.
12434 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12435 indexable_address_p, fixup_mathdi_operand,
12436 vax_expand_addsub_di_operands, adjacent_operands_p): New.
12437 (vax_float_literal, legitimate_constant_p,
12438 indirectable_constant_address_p, index_term_p,
12439 reg_plus_index_p): Return bool instead of int.
12440 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12441 where needed.
12442 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12443 generation.
12444 (vax_output_conditional_branch): Indent.
12445 (legitimate_constant_address_p, indirectable_constant_address_p,
12446 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12447 vax_mode_dependent_address_p): Return bool instead of int, update for
12448 PIC generation.
12449 * config/vax/vax-protos.h (legitimate_constant_address_p,
12450 legitimate_constant_p, legitimate_address_p,
12451 vax_mode_dependent_address_p): Change declaration to bool.
12452 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12453 vax_expand_addsub_di_operands, vax_output_int_subtract,
12454 vax_output_movmemsi): Declare.
12455 (split_quadword_operands, vax_float_literal): Delete declaration.
12456 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12457 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12458 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12459 ASM_OUTPUT_DWARF_PCREL): Define.
12460 (ASM_SPEC): Change definition to allow PIC generation.
12461
12462 2009-04-01 Steve Ellcey <sje@cup.hp.com>
12463
12464 * doc/sourcebuild.texi: Update front-end requirements.
12465
12466 2009-04-01 Jakub Jelinek <jakub@redhat.com>
12467
12468 PR target/39226
12469 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12470 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12471 (booldi3_internal3): Use boolean_or_operator instead of
12472 boolean_operator.
12473
12474 2009-04-01 Joseph Myers <joseph@codesourcery.com>
12475
12476 PR c/39605
12477 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12478 declarator whose size is not an integer constant expression but
12479 folds to an integer constant, then treat it as a constant
12480 subsequently.
12481
12482 2009-04-01 Richard Guenther <rguenther@suse.de>
12483
12484 * fold-const.c (fold_plusminus_mult_expr): Do not fold
12485 i * 4 + 2 to (i * 2 + 1) * 2.
12486
12487 2009-04-01 Jakub Jelinek <jakub@redhat.com>
12488
12489 PR c/37772
12490 * c-parser.c (c_parser_asm_statement): Skip until close paren and
12491 return if c_parser_asm_string_literal returned NULL.
12492
12493 2009-04-01 Nick Clifton <nickc@redhat.com>
12494
12495 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12496 already defined.
12497 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12498 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
12499 other typedefs to avoid conflicts with libgcc2.c. Define labels
12500 to gain 16-bit bit-manipulation functions from libgcc2.c and then
12501 include it.
12502 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
12503 to gain 16-bit trapping arithmetic functions from libgcc2.c and
12504 then include it.
12505
12506 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
12507
12508 * varasm.c (default_function_rodata_section): Declare DOT as
12509 const char*.
12510
12511 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
12512 Andrey Galkin <agalkin@hypercom.com>
12513
12514 PR/39492
12515 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12516 Make object_name unique for each process.
12517
12518 2009-04-01 Jakub Jelinek <jakub@redhat.com>
12519
12520 PR other/39591
12521 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12522 addressable variables in the parallel that could go out of scope while
12523 running queued tasks.
12524
12525 2009-04-01 Anatoly Sokolov <aesok@post.ru>
12526
12527 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12528 (CASE_VALUES_THRESHOLD): Redefine.
12529 * config/avr/avr.c (avr_override_options): Remove initialization of
12530 avr_case_values_threshold variable.
12531 (avr_case_values_threshold): Remove variable. Add new function.
12532 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12533 * config/avr/avr.opt (mno-tablejump): Remove option.
12534 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12535
12536 2009-04-01 DJ Delorie <dj@redhat.com>
12537
12538 * varasm.c (default_function_rodata_section): Don't assume
12539 anything about where the first '.' in the section name is.
12540
12541 2009-04-01 Alan Modra <amodra@bigpond.net.au>
12542
12543 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12544 rs6000_emit_stack_tie.
12545
12546 2009-03-31 Ian Lance Taylor <iant@google.com>
12547
12548 * tree-eh.c (tree_remove_unreachable_handlers): Compare
12549 gimple_code with GIMPLE_RESX, not RESX.
12550
12551 2009-03-31 Joseph Myers <joseph@codesourcery.com>
12552
12553 * c-common.c (c_get_ident): New.
12554 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
12555
12556 2009-04-01 Ben Elliston <bje@au.ibm.com>
12557
12558 * config/rs6000/sysv4.opt (msdata): Improve option description.
12559
12560 2009-03-31 Steve Ellcey <sje@cup.hp.com>
12561
12562 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12563 (divdf3_internal_lat): Remove.
12564 (divxf3_internal_lat): Remove.
12565 (divxf3_internal_thr): Remove.
12566 (divxf): Use divxf3_internal.
12567 * config/ia64/div.md (divsf3_internal_lat): New.
12568 (divdf3_internal_lat): New.
12569 (divxf3_internal): New.
12570
12571 2009-03-31 Joseph Myers <joseph@codesourcery.com>
12572
12573 PR c/448
12574 * Makefile.in (USE_GCC_STDINT): Define.
12575 (stmp-int-hdrs): Install stdint.h if applicable.
12576 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12577 if known.
12578 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12579 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12580 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12581 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12582 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12583 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12584 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12585 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12586 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12587 (c_common_nodes_and_builtins): Initialize
12588 underlying_wchar_type_node. Do not initialize
12589 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
12590 nodes for new types.
12591 (c_stddef_cpp_builtins): Define macros for new types.
12592 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12593 Remove.
12594 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12595 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12596 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12597 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12598 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12599 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12600 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12601 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12602 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12603 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12604 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12605 int16_type_node, int32_type_node, int64_type_node,
12606 uint8_type_node, uint16_type_node, c_uint32_type_node,
12607 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12608 int_least32_type_node, int_least64_type_node,
12609 uint_least8_type_node, uint_least16_type_node,
12610 uint_least32_type_node, uint_least64_type_node,
12611 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12612 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12613 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12614 uintptr_type_node): Define.
12615 * c-cppbuiltin.c (builtin_define_constants,
12616 builtin_define_type_minmax): New.
12617 (builtin_define_stdint_macros): Define more macros.
12618 (c_cpp_builtins): Define more limit macros.
12619 (type_suffix): New.
12620 (builtin_define_type_max): Define in terms of
12621 builtin_define_type_minmax. Remove is_long parameter. All
12622 callers changed.
12623 * config.gcc (use_gcc_stdint): Define.
12624 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12625 Add newlib-stdint.h for generic targets.
12626 * config/glibc-stdint.h, config/newlib-stdint.h,
12627 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12628 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12629 * config/score/score.h (UINTPTR_TYPE): Define.
12630 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12631 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12632 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12633 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12634 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12635 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12636 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12637 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12638 * config/spu/spu.h (STDINT_LONG32): Define.
12639 * configure.ac (use_gcc_stdint): Substitute.
12640 * configure: Regenerate.
12641 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12642 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12643 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12644 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12645 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12646 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12647 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12648 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12649 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12650 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12651 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12652 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12653 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12654 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12655 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12656 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12657 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12658 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12659 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12660 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12661 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12662 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12663 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12664 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12665 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12666 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12667 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12668 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12669 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12670
12671 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
12672
12673 * loop-iv.c (suitable_set_for_replacement): Renamed from
12674 simplify_using_assignment; changed to return bool and to accept new
12675 args DEST and SRC. Return true iff we find a source/destination pair
12676 that can be used to make a replacement, and fill SRC and DEST if so.
12677 Remove arg ALTERED. Don't deal with altered regs here. All callers
12678 changed.
12679 (simplify_using_initial_values): Deal with altered regs here and track
12680 more precisely the effect they have on the validity of our expression.
12681
12682 * loop-iv.c (simplify_using_condition): A condition of the form
12683 (EQ REG CONST) can be used to simply make a substitution.
12684 (simplify_using_initial_values): Keep track of conditions we have seen
12685 and keep using them to simplify new expressions, while applying the
12686 same substitutions to them as to the expression.
12687
12688 * simplify-rtx.c (simplify_relational_operation_1): Simplify
12689 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12690 GEU/LTU reversed.
12691
12692 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
12693 changed. Use this when trying to improve the upper bound.
12694 Generate the comparison by using simplify_gen_relational.
12695
12696 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12697
12698 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12699 functions.
12700 (simplify_using_assignment, simplify_using_initial_values): Call
12701 replace_in_expr to make replacements. Call replace_single_def_regs
12702 once on the initial version of the expression.
12703
12704 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12705
12706 PR target/27237
12707 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
12708
12709 2009-03-31 Richard Guenther <rguenther@suse.de>
12710
12711 PR middle-end/31029
12712 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12713 equality comparisons. Fold C - X CMP X if C % 2 == 1.
12714
12715 2009-03-31 Richard Guenther <rguenther@suse.de>
12716
12717 * tree.h (div_if_zero_remainder): Declare.
12718 * fold-const.c (div_if_zero_remainder): Export.
12719 * tree-ssa-forwprop.c
12720 (forward_propagate_addr_into_variable_array_index): Handle
12721 constant array index addition outside of the variable index.
12722
12723 2009-03-31 Joseph Myers <joseph@codesourcery.com>
12724
12725 PR target/39592
12726 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12727 define_splits, floatunssi<mode>2): Require x87 conversions from
12728 DImode to be permitted.
12729
12730 2009-03-31 Joseph Myers <joseph@codesourcery.com>
12731
12732 PR preprocessor/15638
12733 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12734
12735 2009-03-31 Richard Guenther <rguenther@suse.de>
12736
12737 PR middle-end/23401
12738 PR middle-end/27810
12739 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12740 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12741 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12742 a separate statement.
12743 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12744 (lookup_tmp_var): Likewise.
12745 (is_gimple_formal_tmp_or_call_rhs): Remove.
12746 (is_gimple_reg_or_call_rhs): Rename to ...
12747 (is_gimple_reg_rhs_or_call): ... this.
12748 (is_gimple_mem_or_call_rhs): Rename to ...
12749 (is_gimple_mem_rhs_or_call): ... this.
12750 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
12751 DECL_GIMPLE_REG_P only if is_formal is true.
12752 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
12753 for non-proper post-modify expression gimplification.
12754 (gimplify_self_mod_expr): For post-modify expressions gimplify
12755 the lvalue to a minimal lvalue.
12756 (rhs_predicate_for): Remove formal temp case.
12757 (gimplify_modify_expr_rhs): Likewise.
12758 (gimplify_addr_expr): Use is_gimple_reg.
12759 (gimplify_expr): Remove formal temp cases.
12760 (gimple_regimplify_operands): Likewise.
12761 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12762 and FILTER_EXPR like constants.
12763 * gimple.c (walk_gimple_op): Fix val_only initialization, use
12764 is_gimple_reg.
12765 (is_gimple_formal_tmp_rhs): Remove.
12766 (is_gimple_reg_rhs): Remove special casing.
12767 (is_gimple_mem_rhs): Fix.
12768 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12769 (is_gimple_formal_tmp_var): Remove.
12770 (is_gimple_formal_tmp_reg): Likewise.
12771 (is_gimple_min_lval): Allow invariant component ref parts.
12772 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12773 is_gimple_formal_tmp_reg): Remove declarations.
12774 * tree-cfg.c (verify_expr): Verify that variables with address
12775 taken do not have DECL_GIMPLE_REG_P set.
12776 * tree-mudflap.c (mf_build_check_statement_for): Use
12777 force_gimple_operand instead of gimplify_expr.
12778
12779 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
12780
12781 * modulo-sched.c (sms_schedule_by_order): Pass the actual
12782 schedulable rows to compute_split_row.
12783
12784 2009-03-31 Ben Elliston <bje@au.ibm.com>
12785
12786 PR target/31635
12787 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12788 OPT_mvrsave.
12789
12790 2009-03-31 Alan Modra <amodra@bigpond.net.au>
12791
12792 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12793 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12794 * configure: Regenerate.
12795 * config.in: Regenerate.
12796 * config/rs6000/rs6000.opt (mtls-markers): Add.
12797 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12798 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12799 (tls_ld_aix, tls_ld_sysv): Likewise.
12800 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12801 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12802
12803 2009-03-31 Alan Modra <amodra@bigpond.net.au>
12804
12805 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12806
12807 2009-03-30 Jan Hubicka <jh@suse.cz>
12808
12809 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12810 out of RESX.
12811 (tree_remove_unreachable_handlers): Cleanup EH predecestor
12812 detection and label handling.
12813
12814 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12815
12816 * ira-int.h (ira_allocno): Rename left_conflicts_num to
12817 left_conflicts_size.
12818 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12819 ALLOCNO_LEFT_CONFLICTS_SIZE.
12820
12821 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12822 remove_allocno_from_bucket_and_push,
12823 allocno_spill_priority_compare, push_allocnos_to_stack,
12824 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12825 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12826 (setup_allocno_left_conflicts_num): Ditto. Rename to
12827 setup_allocno_left_conflicts_size.
12828 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12829 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12830 setup_allocno_left_conflicts_size instead of
12831 setup_allocno_left_conflicts_num.
12832
12833 * ira-build.c (ira_create_allocno): Use
12834 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12835 ALLOCNO_LEFT_CONFLICTS_NUM.
12836
12837 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12838
12839 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12840 instead of DF_LR_OUT.
12841
12842 * ira-lives.c (process_bb_node_lives): Ditto.
12843
12844 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12845 instead of DF_LR_{OUT,IN}.
12846
12847 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12848
12849 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12850
12851 2009-03-30 Jan Hubicka <jh@suse.cz>
12852
12853 * except.c (label_to_region_map): Fix thinko.
12854
12855 2009-03-30 Steve Ellcey <sje@cup.hp.com>
12856
12857 PR middle-end/38237
12858 * tree.h (tree_find_value): New declaration.
12859 * tree.c (tree_find_value): New function.
12860 * varasm.c (assemble_external): Avoid duplicate entries on lists.
12861
12862 2009-03-30 Jakub Jelinek <jakub@redhat.com>
12863
12864 PR debug/39563
12865 * c-decl.c (struct c_binding): Add locus field.
12866 (bind): Add locus argument, set locus field from it.
12867 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
12868 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
12869 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
12870 implicitly_declare, undeclared_variable, lookup_label,
12871 declare_label, c_make_fname_decl, c_builtin_function,
12872 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12873 bind callers.
12874
12875 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
12876
12877 PR target/38781
12878 * config/i386/i386.c (classify_argument): Check total size of
12879 structure.
12880
12881 2009-03-30 Martin Jambor <mjambor@suse.cz>
12882
12883 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12884 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12885 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12886 respectively.
12887
12888 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12889 seen_variable_array_ref while also traversing a union.
12890
12891 * tree-inline.c (optimize_inline_calls): Do not call
12892 cgraph_node_remove_callees.
12893 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12894 (pass_remove_cgraph_callee_edges): New variable.
12895 * passes.c (init_optimization_passes): Add
12896 pass_remove_cgraph_callee_edges after early inlining and before all
12897 late intraprocedural passes.
12898
12899 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12900
12901 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12902
12903 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12904 Fix typos in names.
12905
12906 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12907
12908 * combine.c (simplify_comparison): Use have_insn_for.
12909 * dojump.c (do_jump): Likewise.
12910
12911 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12912
12913 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12914 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12915 sparc_compare_op0 like sparc_compare_emitted used to be handled.
12916 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12917 instead of sparc_compare_emitted.
12918 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12919 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12920 instead of sparc_compare_emitted.
12921
12922 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12923
12924 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12925 enter/exit cfglayout mode.
12926 (pass_partition_block): Require it.
12927 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12928 (combine_instructions): Track basic blocks instead of labels.
12929 (update_cfg_for_uncondjump): New.
12930 (try_combine): Use it. Update jumps after rescanning.
12931 (pass_combine): Require PROP_cfglayout.
12932 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12933
12934 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12935
12936 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12937 Provide/destroy PROP_cfglayout respectively.
12938 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12939 * tree-pass.h (PROP_cfglayout): New.
12940
12941 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
12942
12943 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12944 fold_convert_const_fixed_from_fixed,
12945 fold_convert_const_fixed_from_int,
12946 fold_convert_const_fixed_from_real, fold_negate_const): Do not
12947 set TREE_CONSTANT_OVERFLOW.
12948 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12949 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12950
12951 2009-03-30 Ira Rosen <irar@il.ibm.com>
12952
12953 * tree-vect-loop-manip.c: New file.
12954 * tree-vectorizer.c: Update documentation and included files.
12955 (vect_loop_location): Make extern.
12956 (rename_use_op): Move to tree-vect-loop-manip.c
12957 (rename_variables_in_bb, rename_variables_in_loop,
12958 slpeel_update_phis_for_duplicate_loop,
12959 slpeel_update_phi_nodes_for_guard1,
12960 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12961 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12962 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
12963 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
12964 find_loop_location): Likewise.
12965 (new_stmt_vec_info): Move to tree-vect-stmts.c.
12966 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12967 get_vectype_for_scalar_type, vect_is_simple_use,
12968 supportable_widening_operation, supportable_narrowing_operation):
12969 Likewise.
12970 (bb_in_loop_p): Move to tree-vect-loop.c.
12971 (new_loop_vec_info, destroy_loop_vec_info,
12972 reduction_code_for_scalar_code, report_vect_op,
12973 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12974 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12975 (vect_supportable_dr_alignment): Likewise.
12976 * tree-vectorizer.h (tree-data-ref.h): Include.
12977 (vect_loop_location): Declare.
12978 Reorganize function declarations according to the new file structure.
12979 * tree-vect-loop.c: New file.
12980 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
12981 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12982 * tree-vect-data-refs.c: New file.
12983 * tree-vect-patterns.c (timevar.h): Don't include.
12984 * tree-vect-stmts.c: New file.
12985 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
12986 tree-vect-slp.c, tree-vect-loop.c.
12987 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12988 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
12989 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12990 (tree-vect-analyze.o): Remove.
12991 (tree-vect-transform.o): Likewise.
12992 (tree-vect-data-refs.o): Add rule.
12993 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
12994 tree-vect-slp.o): Likewise.
12995 (tree-vect-patterns.o): Remove redundant dependencies.
12996 (tree-vectorizer.o): Likewise.
12997 * tree-vect-slp.c: New file.
12998
12999 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13000
13001 * optc-gen.awk: Warn if an option flag has multiple different
13002 help strings.
13003
13004 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
13005
13006 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
13007 -floop-block): Document dependences on PPL, CLooG and Graphite.
13008
13009 2009-03-30 Joseph Myers <joseph@codesourcery.com>
13010
13011 PR rtl-optimization/323
13012 * c-common.c (c_fully_fold, convert_and_check,
13013 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
13014 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
13015 * c-common.def (EXCESS_PRECISION_EXPR): New.
13016 * c-cppbuiltin.c (builtin_define_float_constants): Define
13017 constants with enough digits for long double.
13018 * c-lex.c (interpret_float): Interpret constant with excess
13019 precision where appropriate.
13020 * c-opts.c (c_common_post_options): Set
13021 flag_excess_precision_cmdline. Give an error for
13022 -fexcess-precision=standard for C++ for processors where the
13023 option is significant.
13024 * c-parser.c (c_parser_conditional_expression): Handle excess
13025 precision in condition.
13026 * c-typeck.c (convert_arguments): Handle arguments with excess
13027 precision.
13028 (build_unary_op): Move excess precision outside operation.
13029 (build_conditional_expr): Likewise.
13030 (build_compound_expr): Likewise.
13031 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
13032 (build_modify_expr): Handle excess precision in RHS.
13033 (convert_for_assignment): Handle excess precision in converted
13034 value.
13035 (digest_init, output_init_element, process_init_element): Handle
13036 excess precision in initializer.
13037 (c_finish_return): Handle excess precision in return value.
13038 (build_binary_op): Handle excess precision in operands and add
13039 excess precision as needed for operation.
13040 * common.opt (-fexcess-precision=): New option.
13041 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
13042 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13043 For standard excess precision, output explicit conversion to and
13044 truncation from XFmode.
13045 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
13046 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
13047 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
13048 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
13049 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
13050 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
13051 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
13052 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
13053 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
13054 define_splits, sqrt<mode>2): Disable where appropriate for
13055 standard excess precision.
13056 * convert.c (convert_to_real): Do not shorten arithmetic to type
13057 for which excess precision would be used.
13058 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
13059 * doc/invoke.texi (-fexcess-precision=): Document option.
13060 (-mfpmath=): Correct index entry.
13061 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
13062 flag_excess_precision): New.
13063 * langhooks.c (lhd_post_options): Set
13064 flag_excess_precision_cmdline.
13065 * opts.c (common_handle_option): Handle -fexcess-precision=.
13066 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
13067 init_excess_precision): New.
13068 (lang_dependent_init_target): Call init_excess_precision.
13069 * tree.c (excess_precision_type): New.
13070 * tree.h (excess_precision_type): Declare.
13071
13072 2009-03-30 Joseph Myers <joseph@codesourcery.com>
13073
13074 PR c/35235
13075 * c-typeck.c (build_component_ref): Do not copy qualifiers from
13076 non-lvalue to component.
13077
13078 2009-03-29 Joseph Myers <joseph@codesourcery.com>
13079
13080 PR preprocessor/34695
13081 * Makefile.in (c-opts.o): Depend on c-tree.h.
13082 * c-common.c: Move down include of diagnostic.h.
13083 (done_lexing, c_cpp_error): New.
13084 * c-common.h (done_lexing): Declare.
13085 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
13086 (parse_in).
13087 * c-opts.c: Include c-tree.h.
13088 (c_common_init_options): Set preprocessor error callback.
13089 (c_common_handle_option): Do not set preprocessor
13090 inhibit_warnings, warnings_are_errors, warn_system_headers,
13091 pedantic_errors or inhibit_warnings flags.
13092 (c_common_post_options): Do not check cpp_errors (parse_in).
13093 (c_common_finish): Do not output dependencies if there were
13094 errors. Do not check return value of cpp_finish.
13095 * c-ppoutput.c (pp_file_change): Set input_location.
13096 * c-tree.h (c_cpp_error): Declare.
13097 * diagnostic.c (diagnostic_set_info_translated): Also initialize
13098 override_column.
13099 (diagnostic_build_prefix): Check override_column.
13100 * diagnostic.h (diagnostic_info): Add override_column field.
13101 (diagnostic_override_column): Define.
13102
13103 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
13104
13105 * c-common.c (c_expand_expr, c_staticp): Remove.
13106 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
13107 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
13108 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
13109 * c-gimplify.c (gimplify_compound_literal_expr,
13110 optimize_compound_literals_in_ctor): Remove.
13111 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
13112 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
13113 * c-semantics.c (emit_local_var): Remove.
13114
13115 * langhooks-def.h (lhd_expand_expr): Remove.
13116 * langhooks.c (lhd_expand_expr): Remove.
13117 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
13118
13119 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
13120 handling from c-semantics.c; don't call into langhook.
13121 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
13122 * gimplify.c (gimplify_compound_literal_expr,
13123 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
13124 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
13125 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
13126 as was done in c-gimplify.c.
13127 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
13128 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
13129 Move from c-common.h.
13130 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
13131
13132 * tree.c (staticp): Do not call langhook.
13133 * langhooks.c (lhd_staticp): Delete.
13134 * langhooks-def.h (lhd_staticp): Delete prototype.
13135 (LANG_HOOKS_STATICP): Delete.
13136 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
13137
13138 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
13139 instead of DECL_STMTs.
13140
13141 2009-03-29 Joseph Myers <joseph@codesourcery.com>
13142
13143 PR c/456
13144 PR c/5675
13145 PR c/19976
13146 PR c/29116
13147 PR c/31871
13148 PR c/35198
13149 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
13150 void_type_node.
13151 (fold_call_expr): Return a NOP_EXPR from folding rather than the
13152 contained expression.
13153 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
13154 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
13155 conditional expressions for C.
13156 (decl_constant_value_for_optimization): Move from
13157 decl_constant_value_for_broken_optimization in c-typeck.c. Check
13158 whether optimizing and that the expression is a VAR_DECL not of
13159 array type instead of doing such checks in the caller. Do not
13160 check pedantic. Call gcc_unreachable for C++.
13161 * c-common.def (C_MAYBE_CONST_EXPR): New.
13162 * c-common.h (c_fully_fold, c_save_expr,
13163 decl_constant_value_for_optimization): New prototypes.
13164 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
13165 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
13166 EXPR_INT_CONST_OPERANDS): Define.
13167 * c-convert.c (convert): Strip nops from expression.
13168 * c-decl.c (groktypename): Take extra parameters expr and
13169 expr_const_operands. Update call to grokdeclarator.
13170 (start_decl): Update call to grokdeclarator. Add statement for
13171 expressions used in type of decl.
13172 (grokparm): Update call to grokdeclarator.
13173 (push_parm_decl): Update call to grokdeclarator.
13174 (build_compound_literal): Add parameter non_const and build a
13175 C_MAYBE_COSNT_EXPR if applicable.
13176 (grokdeclarator): Take extra parameters expr and
13177 expr_const_operands. Track expressions used in declaration
13178 specifiers and declarators. Fold array sizes and track whether
13179 they are constant expressions and whether they are integer
13180 constant expressions.
13181 (parser_xref_tag): Set expr and expr_const_operands fields in
13182 return value.
13183 (grokfield): Update call to grokdeclarator.
13184 (start_function): Update call to grokdeclarator.
13185 (build_null_declspecs): Set expr and expr_const_operands fields in
13186 return value.
13187 (declspecs_add_type): Handle expressions in typeof specifiers.
13188 * c-parser.c (c_parser_declspecs): Set expr and
13189 expr_const_operands fields for declaration specifiers.
13190 (c_parser_enum_specifier): Likewise.
13191 (c_parser_struct_or_union_specifier): Likewise.
13192 (c_parser_typeof_specifier): Likewise. Update call to
13193 groktypename. Fold expression as needed. Return expressions with
13194 type instead of adding statements.
13195 (c_parser_attributes): Update calls to c_parser_expr_list.
13196 (c_parser_statement_after_labels): Fold expression before passing
13197 to objc_build_throw_stmt.
13198 (c_parser_condition): Fold expression.
13199 (c_parser_asm_operands): Fold expression.
13200 (c_parser_conditional_expression): Use c_save_expr. Update call
13201 to build_conditional_expr.
13202 (c_parser_alignof_expression): Update call to groktypename.
13203 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
13204 original_code. Fold expression argument of va_arg. Create
13205 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
13206 argument to va_arg. Update calls to groktypename. Fold array
13207 index for offsetof. Verify that first argument to
13208 __builtin_choose_expr has integer type.
13209 (c_parser_postfix_expression_after_paren_type): Update calls to
13210 groktypename and build_compound_literal. Handle expressions with
13211 side effects in type name.
13212 (c_parser_postfix_expression_after_primary): Update call to
13213 c_parser_expr_list. Set original_code for calls to
13214 __builtin_constant_p.
13215 (c_parser_expr_list): Take extra parameter fold_p. Fold
13216 expressions if requested.
13217 (c_parser_objc_type_name): Update call to groktypename.
13218 (c_parser_objc_synchronized_statement): Fold expression.
13219 (c_parser_objc_receiver): Fold expression.
13220 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
13221 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
13222 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
13223 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
13224 (struct c_typespec): Add elements expr and expr_const_operands.
13225 (struct c_declspecs): Add elements expr and expr_const_operands.
13226 (groktypename, build_conditional_expr, build_compound_literal):
13227 Update prototypes.
13228 (in_late_binary_op): Declare.
13229 * c-typeck.c (note_integer_operands): New function.
13230 (in_late_binary_op): New variable.
13231 (decl_constant_value_for_broken_optimization): Move to c-common.c
13232 and rename to decl_constant_value_for_optimization.
13233 (default_function_array_conversion): Do not strip nops.
13234 (default_conversion): Do not call
13235 decl_constant_value_for_broken_optimization.
13236 (build_array_ref): Do not fold result.
13237 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
13238 result when operand is a VLA.
13239 (c_expr_sizeof_type): Update call to groktypename. Handle
13240 expressions included in type name. Use C_MAYBE_CONST_EXPR for
13241 result when operand names a VLA type.
13242 (build_function_call): Update call to build_compound_literal.
13243 Only fold result for calls to __builtin_* functions. Strip
13244 NOP_EXPR from INTEGER_CST returned from such functions. Fold
13245 the function designator.
13246 (convert_arguments): Fold arguments. Update call to
13247 convert_for_assignment.
13248 (build_unary_op): Handle increment and decrement of
13249 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
13250 decrement earlier. Fold operand of increment and decrement.
13251 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
13252 built for integer operand. Wrap returns that are INTEGER_CSTs
13253 without being integer constant expressions or that have integer
13254 constant operands without being INTEGER_CSTs.
13255 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
13256 (build_conditional_expr): Add operand ifexp_bcp. Track whether
13257 result is an integer constant expression or can be used in
13258 unevaluated parts of one and avoid folding and wrap as
13259 appropriate. Fold operands before possibly doing -Wsign-compare
13260 warnings.
13261 (build_compound_expr): Wrap result for C99 if operands can be used
13262 in integer constant expressions.
13263 (build_c_cast): Update call to digest_init. Do not ignore
13264 overflow from casting floating-point constants to integers. Wrap
13265 results that could be confused with integer constant expressions,
13266 null pointer constants or floating-point constants.
13267 (c_cast_expr): Update call to groktypename. Handle expressions
13268 included in type name.
13269 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
13270 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
13271 Update calls to convert_for_assignment.
13272 (convert_for_assignment): Take new parameter
13273 null_pointer_constant. Do not strip nops or call
13274 decl_constant_value_for_broken_optimization. Set
13275 in_late_binary_op for conversions to boolean.
13276 (store_init_value): Update call to digest_init.
13277 (digest_init): Take new parameter null_pointer_constant. Do not
13278 call decl_constant_value_for_broken_optimization. pedwarn for
13279 initializers not constant expressions. Update calls to
13280 convert_for_assignment.
13281 (constructor_nonconst): New.
13282 (struct constructor_stack): Add nonconst element.
13283 (really_start_incremental_init, push_init_level, pop_init_level):
13284 Handle constructor_nonconst and nonconst element.
13285 (set_init_index): Call constant_expression_warning for array
13286 designators.
13287 (output_init_element): Fold value. Set constructor_nonconst as
13288 applicable. pedwarn for initializers not constant expressions.
13289 Update call to digest_init. Call constant_expression_warning
13290 where constant initializers are required.
13291 (process_init_element): Use c_save_expr.
13292 (c_finish_goto_ptr): Fold expression.
13293 (c_finish_return): Fold return value. Update call to
13294 convert_for_assignment.
13295 (c_start_case): Fold switch expression.
13296 (c_process_expr_stmt): Fold expression.
13297 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
13298 ensure statement expression is not evaluated in constant expression.
13299 (build_binary_op): Track whether results are integer constant
13300 expressions or may occur in such, disable folding and wrap results
13301 as applicable. Fold operands for -Wsign-compare warnings unless
13302 in_late_binary_op.
13303 (c_objc_common_truthvalue_conversion): Handle results folded to
13304 integer constants that are not integer constant expressions.
13305 * doc/extend.texi: Document when typeof operands are evaluated,
13306 that condition of __builtin_choose_expr is an integer constant
13307 expression, and more about use of __builtin_constant_p in
13308 initializers.
13309
13310 2009-03-29 Richard Guenther <rguenther@suse.de>
13311
13312 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
13313 propagate addresses of array references.
13314
13315 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
13316
13317 * regmove.c (perhaps_ends_bb_p): Remove.
13318 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
13319 from INSN and check that the main loop stays within that basic block.
13320 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
13321 (regmove_forward_pass): Split out from regmove_optimize. Use
13322 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
13323 (regmove_backward_pass): Split out from regmove_optimize. Use
13324 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
13325 (regmove_optimize): Simplify.
13326
13327 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
13328
13329 PR target/39545
13330 * config/i386/i386.c (classify_argument): Ignore flexible array
13331 member in struct and warn ABI change.
13332
13333 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
13334
13335 * config/i386/i386-protos.h (ix86_agi_dependent): New.
13336
13337 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
13338 (ix86_adjust_cost): Updated.
13339
13340 2009-03-29 Jan Hubicka <jh@suse.cz>
13341
13342 PR middle-end/28850
13343 * tree-pass.h (pass_cleanup_eh): New function.
13344 (remove_unreachable_regions): Break code handling RTL
13345 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
13346 that can not be reached by runtime.
13347 (can_be_reached_by_runtime): New function.
13348 (label_to_region_map): New function.
13349 (num_eh_regions): New function.
13350 (rtl_remove_unreachable_regions): New function.
13351 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
13352 (remove_eh_region): New function.
13353 * except.h: Include sbitmap and vecprim.
13354 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
13355 num_eh_regions): Declare.
13356 * passes.c (init_optimization_passes): Schedule cleanup_eh.
13357 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
13358 * tree-eh.c (tree_remove_unreachable_handlers): New function.
13359 (tree_empty_eh_handler_p): New function.
13360 (cleanup_empty_eh): New function.
13361 (cleanup_eh): New function.
13362 (pass_cleanup_eh): New function.
13363
13364 2009-03-29 Jan Hubicka <jh@suse.cz>
13365
13366 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13367 for removed regions.
13368
13369 2009-03-29 Jan Hubicka <jh@suse.cz>
13370
13371 * except.c (dump_eh_tree): Dump all datastructures.
13372
13373 2009-03-29 Jan Hubicka <jh@suse.cz>
13374
13375 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13376 (duplicate_eh_regions_1): Likewise.
13377 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13378 vector; call EH verification.
13379 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13380 Be ready for region being removed.
13381
13382 2009-03-29 Jan Hubicka <jh@suse.cz>
13383
13384 * bitmap.c (bitmap_last_set_bit): New function.
13385 * bitmap.h (bitmap_last_set_bit): Declare.
13386
13387 2009-03-29 David Ayers <ayers@fsfe.org>
13388
13389 PR objc/27377
13390 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13391 by calling objc_compare_types and surpress warnings about
13392 incompatible C pointers that are compatible ObjC pointers.
13393
13394 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
13395
13396 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13397 call initialize_inline_failed.
13398 (initialize_inline_failed): Move it from here ...
13399 * cgraph.c (initialize_inline_failed): ... to here.
13400 (cgraph_create_edge): Call initialize_inline_failed rather than
13401 setting inline_failed directly.
13402
13403 2009-03-29 Ben Elliston <bje@au.ibm.com>
13404
13405 PR target/32542
13406 * sysv4.opt (msdata): Improve comment.
13407 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13408 * sysv4.h (SVR4_ASM_SPEC): Likewise.
13409
13410 2009-03-29 Ben Elliston <bje@au.ibm.com>
13411
13412 PR target/30451
13413 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13414 load and store attributes.
13415
13416 2009-03-29 Ben Elliston <bje@au.ibm.com>
13417
13418 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13419 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13420 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13421 * doc/extend.texi (X86 Built-in Functions): Add index entries for
13422 __builtin_infq and __builtin_huge_valq.
13423
13424 2009-03-28 Anatoly Sokolov <aesok@post.ru>
13425
13426 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13427 atmega8m1 devices.
13428 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13429 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13430
13431 2009-03-28 Xinliang David Li <davidxl@google.com>
13432
13433 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
13434 (do_dbg_cnt): New function.
13435
13436 2009-03-28 Jan Hubicka <jh@suse.cz>
13437
13438 Merge from pretty-ipa:
13439
13440 2009-03-27 Jan Hubicka <jh@suse.cz>
13441
13442 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13443 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13444 * passes.c (function_called_by_processed_nodes_p): New.
13445 * ipa-pure-const.c (check_call): Fix handling of operands.
13446 (analyze_function): Dump debug output for skipped bodies.
13447 (local_pure_const): Use function_called_by_processed_nodes_p.
13448 * dwarf2out.c (reference_to_unused): Use output.
13449 * passes.c (do_per_function_toporder): Likewise.
13450
13451 2008-11-12 Jan Hubicka <jh@suse.cz>
13452
13453 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13454 * ipa-pure-const.c (funct_state_d): Add can throw field; make
13455 state_set_in_source enum
13456 (check_decl): Ignore memory tags; do not set fake looping flags;
13457 dump diagnostics.
13458 (check_operand, check_tree, check_rhs_var, check_lhs_var,
13459 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13460 (check_call, analyze_function): Rewrite.
13461 (check_stmt): New.
13462 (add_new_function): Update call of analyze_function.
13463 (generate_summary): Add call of analyze_function.
13464 (propagate): Propagate can_throw; handle state_set_in_source correctly.
13465 (local_pure_const): New function.
13466 (pass_local_pure_const): New pass.
13467 * ipa-inline.c (inline_transform): Set after_inlining.
13468 * tree-eh.c (stmt_can_throw_external): New.
13469 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13470 work with aliasing built.
13471 * tree-flow.h (stmt_can_throw_external): New.
13472 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13473 and local pure/const pass in early and late optimization queue.
13474
13475 2009-03-28 Martin Jambor <mjambor@suse.cz>
13476
13477 * fold-const.c (get_pointer_modulus_and_residue): New parameter
13478 allow_func_align.
13479 (fold_binary): Allow function decl aligment consideration is the
13480 second argument is integer constant one.
13481 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13482 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13483 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13484
13485 2009-03-28 Jan Hubicka <jh@suse.cz>
13486
13487 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13488 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13489 * function.h (rtl_data): Add nothrow flag.
13490 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13491 set DECL_NOTHROW for AVAILABLE functions.
13492
13493 2009-03-28 Jakub Jelinek <jakub@redhat.com>
13494
13495 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13496 following vector keyword has expansion starting with pixel or bool
13497 keyword, expand vector to __vector and pixel or bool to __pixel or
13498 __bool.
13499
13500 PR c++/39554
13501 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13502 warn_if_disallowed_function_p): Removed.
13503 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13504 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13505 warning_if_disallowed_function_p.
13506 * flags.h (warn_if_disallowed_function_p,
13507 warn_disallowed_functions): Removed.
13508 * common.opt (Wdisallowed-function-list=): Removed.
13509 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13510
13511 2009-03-28 Richard Guenther <rguenther@suse.de>
13512
13513 PR tree-optimization/38723
13514 * tree-ssa-pre.c (compute_avail): Add all default definitions to
13515 the entry block.
13516
13517 2009-03-28 Jan Hubicka <jh@suse.cz>
13518
13519 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13520 test introduced by my previous patch.
13521
13522 2009-03-28 Richard Guenther <rguenther@suse.de>
13523
13524 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13525 the PHIs value undefined.
13526
13527 2009-03-28 Jan Hubicka <jh@suse.cz>
13528
13529 * tree-pass.h (pass_fixup_cfg): New pass.
13530 * ipa-inline.c (inline_transform): Set
13531 always_inline_functions_inlined/after_inlining.
13532 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13533 (pass_fixup_cfg): New pass.
13534 * passes.c (init_optimization_passes): Add fixup_cfg.
13535
13536 2009-03-28 Richard Guenther <rguenther@suse.de>
13537
13538 PR tree-optimization/38458
13539 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13540 argument use the arguments copy-of value.
13541
13542 2009-03-28 Richard Guenther <rguenther@suse.de>
13543
13544 PR tree-optimization/38180
13545 * tree-ssa-ccp.c (get_default_value): Simplify.
13546 (likely_value): Likewise.
13547 (surely_varying_stmt_p): Properly handle VOP case.
13548 (ccp_initialize): Likewise.
13549 (ccp_fold): Handle propagating through *&.
13550 (fold_const_aggregate_ref): Also handle decls.
13551
13552 2009-03-28 Jan Hubicka <jh@suse.cz>
13553
13554 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13555 * cgraph.h (cgraph_node): Likewise.
13556 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13557 (cgraph_reset_node): Use process flag.
13558 (cgraph_mark_functions_to_output): Likewise.
13559 (cgraph_expand_function): Likewise.
13560 (cgraph_expand_all_functions): Likewise.
13561 (cgraph_output_in_order): Likewise.
13562 * dwarf2out.c (reference_to_unused): Likewise.
13563 * passes.c do_per_function_toporder): Likewise.
13564
13565 2009-03-28 Jan Hubicka <jh@suse.cz>
13566
13567 Bring from lto-branch:
13568
13569 2008-09-03 Doug Kwan <dougkwan@google.com>
13570
13571 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13572 enums instead of reason strings.
13573 * cgraph.c (cgraph_create_edge): Same.
13574 (cgraph_inline_failed_string): New function.
13575 * cgraph.h (cgraph_inline_failed_t): New enum type.
13576 (cgraph_inline_failed_string): New prototype.
13577 (struct cgraph_edge): Change type of INLINED_FAILED from constant
13578 char pointer to cgraph_inline_failed_t.
13579 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13580 (cgraph_default_inline_p): Ditto.
13581 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
13582 to cgraph_inline_failed_t pointer.
13583 * cif-code.def: New file.
13584 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13585 reason string.
13586 (cgraph_check_inline_limits): Change type of REASON to pointer to
13587 cgraph_inline_failed_t. Replace reason strings with enums.
13588 (cgraph_default_inline_p): Ditto.
13589 (cgraph_recursive_inlining_p): Ditto.
13590 (update_caller_keys): Change type of FAILED_REASON to
13591 cgraph_inline_failed_t.
13592 (cgraph_set_inline_failed): Change type of REASON to pointer to
13593 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
13594 convert enums to strings for text output.
13595 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13596 to be of type cgraph_inline_failed_t. Replace reason strings with
13597 enums. Call cgraph_inline_failed_string to covert enums
13598 to strings for text output.
13599 (cgraph_decide_inlining): Replace reason strings with enums.
13600 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13601 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
13602 for text output.
13603 * tree-inline.c (expand_call_inline): Change type of REASON
13604 to cgraph_inline_failed_t. Replace reason strings with enums.
13605 Call cgraph_inline_failed_string for text output.
13606 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13607 (cgraph.o): Ditto.
13608
13609 2009-03-28 Jan Hubicka <jh@suse.cz>
13610
13611 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13612 cgraph_clone_node): Remove master clone handling.
13613 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13614 * cgraph.h (master_clone): Remove.
13615 (cgraph_is_master_clone, cgraph_master_clone): Remove.
13616 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13617 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13618
13619 2009-03-28 Jan Hubicka <jh@suse.cz>
13620
13621 * cgraph.c (cgraph_function_body_availability): Functions declared
13622 inline are always safe to assume that it is not going to be replaced.
13623
13624 2009-03-28 Richard Guenther <rguenther@suse.de>
13625
13626 PR tree-optimization/38513
13627 * tree-ssa-pre.c (eliminate): Remove redundant stores.
13628 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13629 EXC_PTR_EXPR and FILTER_EXPR.
13630 (get_ref_from_reference_ops): Likewise.
13631
13632 2009-03-28 Richard Guenther <rguenther@suse.de>
13633
13634 PR tree-optimization/38968
13635 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13636 Use FLOOR_MOD_EXPR to compute misalignment.
13637
13638 2009-03-28 Richard Guenther <rguenther@suse.de>
13639
13640 PR tree-optimization/37795
13641 * tree.h (combine_comparisons): Declare.
13642 * fold-const.c (combine_comparisons): Export.
13643 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13644 comparisons.
13645 (ifcombine_iforif): Use combine_comparisons.
13646
13647 2009-03-28 Jan Hubicka <jh@suse.cz>
13648
13649 * tree-eh.c (inlinable_call_p): New function.
13650 (make_eh_edges): Use it.
13651 (verify_eh_edges): Use it.
13652 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13653 * except.c (reachable_next_level): Add inlinable_function argument
13654 (sjlj_find_directly_reachable_regions): Update.
13655 (add_reachable_handler): Do not set saw_any_handlers.
13656 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13657 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13658 Add new inlinable call parameter.
13659 (can_throw_internal, can_throw_external): Update.
13660 * except.h (can_throw_internal_1, can_throw_external_1,
13661 foreach_reachable_handler): Update declaration.
13662
13663 2009-03-28 Joseph Myers <joseph@codesourcery.com>
13664
13665 * config/arm/t-arm-coff, config/h8300/coff.h,
13666 config/i386/i386-aout.h, config/i386/i386-coff.h,
13667 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13668 config/pdp11/2bsd.h, config/rs6000/aix41.h,
13669 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13670 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13671 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13672 sys-types.h: Remove.
13673 * Makefile.in: Remove protoize and fixproto support and references
13674 in comments.
13675 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13676 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13677 Remove.
13678 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13679 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13680 unprotoize$(exeext).
13681 (rest.encap): Don't depend on $(STMP_FIXPROTO)
13682 (.PHONY): Don't depend on proto.
13683 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13684 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13685 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13686 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13687 build/gen-protos.o, build/scan.o, xsys-protos.h,
13688 build/fix-header$(build_exeext), build/fix-header.o,
13689 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13690 stmp-install-fixproto): Remove.
13691 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13692 SYSCALLS.c or fixproto files.
13693 (install-common): Don't install protoize.
13694 (install-headers-tar, install-headers-cpio, install-headers-cp):
13695 Don't depend on $(STMP_FIXPROTO).
13696 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
13697 install fixproto files or write out fixproto settings.
13698 (uninstall): Don't uninstall protoize.
13699 * config.gcc (use_fixproto): Remove.
13700 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13701 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13702 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13703 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13704 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13705 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13706 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13707 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13708 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13709 * config/t-vxworks (STMP_FIXPROTO): Remove.
13710 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13711 STMP_FIXPROTO): Remove.
13712 * config.in, configure: Regenerate.
13713 * crtstuff.c (gid_t, uid_t): Don't undefine.
13714 * doc/install.texi: Change m68k-coff to m68k-elf in example.
13715 (arm-*-coff, arm-*-aout: Remove target entries.
13716 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13717 Remove mention of AIX 4.1.
13718 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13719 * doc/invoke.texi (Running Protoize): Remove.
13720 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13721 (Protoize Caveats): Remove.
13722 * tsystem.h: Update comments on headers assumed to exist.
13723
13724 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
13725
13726 * genautomata.c: Add a new year to the copyright. Add a new
13727 reference.
13728 (struct insn_reserv_decl): Add comments for member bypass_list.
13729 (find_bypass): Remove.
13730 (insert_bypass): New.
13731 (process_decls): Use insert_bypass.
13732 (output_internal_insn_latency_func): Output all bypasses with the
13733 same input insn in one switch case.
13734
13735 * rtl.def (define_bypass): Describe bypass choice.
13736 * doc/md.texi (define_bypass): Ditto.
13737
13738 2009-03-27 Richard Guenther <rguenther@suse.de>
13739
13740 * gimplify.c (mark_addressable): Export.
13741 * tree-flow.h (mark_addressable): Declare.
13742 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13743 * tree-ssa.c (verify_phi_args): Verify that address taken
13744 variables have TREE_ADDRESSABLE set.
13745
13746 2009-03-27 Richard Guenther <rguenther@suse.de>
13747
13748 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13749 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
13750 Do not mark decls TREE_ADDRESSABLE.
13751 (build_fold_addr_expr): Adjust.
13752 (fold_addr_expr): Remove.
13753 (fold_unary): Use build_fold_addr_expr.
13754 (fold_comparison): Likewise.
13755 (split_address_to_core_and_offset): Likewise.
13756 * coverage.c (tree_coverage_counter_addr): Mark the array decl
13757 TREE_ADDRESSABLE.
13758 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13759 (gimplify_modify_expr_to_memcpy): Mark source and destination
13760 addressable.
13761 * omp-low.c (create_omp_child_function): Mark the object decl
13762 TREE_ADDRESSABLE.
13763 (lower_rec_input_clauses): Mark the var we take the address of
13764 TREE_ADDRESSABLE.
13765 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13766
13767 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13768
13769 PR middle-end/39315
13770 * cfgexpand.c (expand_one_stack_var_at): Change alignment
13771 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13772
13773 2009-03-27 Richard Guenther <rguenther@suse.de>
13774
13775 PR tree-optimization/39120
13776 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13777 constraints.
13778 (handle_lhs_call): Process return constraints. Add escape
13779 constraints if necessary.
13780 (handle_const_call): Fill out return constraints. Make nested
13781 case more precise. Avoid consttmp if possible.
13782 (handle_pure_call): Fill out return constraints. Avoid
13783 callused if possible.
13784 (find_func_aliases): Simplify call handling.
13785
13786 2009-03-27 Richard Guenther <rguenther@suse.de>
13787
13788 PR tree-optimization/39120
13789 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13790 as a representative.
13791 (solve_graph): Do propagate CALLUSED.
13792 (handle_pure_call): Use a scalar constraint from CALLUSED for
13793 the return value.
13794 (find_what_p_points_to): CALLUSED shall not appear in poins-to
13795 solutions.
13796
13797 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13798
13799 PR c/39323
13800 * c-common.c (handle_aligned_attribute): Properly check alignment
13801 overflow. Use (1U << i) instead of (1 << i).
13802
13803 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
13804
13805 * expr.h (get_mem_align_offset): Updated.
13806
13807 * tree.h (tree_decl_common): Change align to "unsigned int" and
13808 move it before pointer_alias_set.
13809
13810 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13811 Jakub Jelinek <jakub@redhat.com>
13812
13813 PR target/38034
13814 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13815 gr_register_operand with gr_reg_or_0_operand.
13816 (cmpxchg_rel_di): Likewise.
13817 (sync_lock_test_and_set<mode>): Likewise.
13818
13819 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13820
13821 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13822 (true_regnum): Likewise.
13823
13824 * rtlanal.c (subreg_info): Moved to ...
13825 * rtl.h (subreg_info): Here. New.
13826 (subreg_get_info): New.
13827
13828 * rtlanal.c (subreg_get_info): Make it extern.
13829
13830 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13831
13832 PR target/39472
13833 * config/i386/i386.c (ix86_abi): New.
13834 (override_options): Handle -mabi=.
13835 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
13836 (ix86_call_abi_override): Likewise.
13837 (init_cumulative_args): Likewise.
13838 (function_arg_advance): Likewise.
13839 (function_arg_64): Likewise.
13840 (function_arg): Likewise.
13841 (ix86_pass_by_reference): Likewise.
13842 (ix86_function_value_regno_p): Likewise.
13843 (ix86_build_builtin_va_list_abi): Likewise.
13844 (setup_incoming_varargs_64): Likewise.
13845 (is_va_list_char_pointer): Likewise.
13846 (ix86_init_machine_status): Likewise.
13847 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
13848 (ix86_function_type_abi): Return enum calling_abi. Rewrite
13849 for 64bit. Replace DEFAULT_ABI with ix86_abi.
13850 (ix86_function_abi): Make it static and return enum calling_abi.
13851 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
13852 with ix86_abi.
13853 (ix86_fn_abi_va_list): Updated.
13854
13855 * config/i386/i386.h (ix86_abi): New.
13856 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
13857 (CONDITIONAL_REGISTER_USAGE): Likewise.
13858 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
13859 (machine_function): Likewise.
13860
13861 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
13862 with ix86_abi.
13863 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
13864 (STACK_BOUNDARY): Likewise.
13865 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
13866
13867 * config/i386/i386.opt (mabi=): New.
13868
13869 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
13870 return enum calling_abi.
13871 (ix86_function_type_abi): Likewise.
13872 (ix86_function_abi): Removed.
13873
13874 * doc/invoke.texi: Document -mabi= option for x86.
13875
13876 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13877
13878 * builtins.c (real_dconstp): Delete.
13879 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13880
13881 2009-03-27 Dodji Seketeli <dodji@redhat.com>
13882 Jakub Jelinek <jakub@redhat.com>
13883
13884 PR debug/37959
13885 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13886 (gen_subprogram_die): When a function is explicit, generate the
13887 DW_AT_explicit attribute.
13888 * langhooks.h (struct lang_hooks_for_decls): Add
13889 function_decl_explicit_p langhook.
13890 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13891 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13892
13893 2009-03-27 Jakub Jelinek <jakub@redhat.com>
13894
13895 * builtins.c (fold_builtin_memory_op): Optimize memmove
13896 into memcpy if we can prove source and destination don't overlap.
13897
13898 * tree-inline.c: Include gt-tree-inline.h.
13899 (clone_fn_id_num): New variable.
13900 (clone_function_name): New function.
13901 (tree_function_versioning): Use it.
13902 * Makefile.in (GTFILES): Add tree-inline.c.
13903
13904 2009-03-27 Mark Mitchell <mark@codesourcery.com>
13905
13906 * BASE-VER: Change to 4.5.0.
13907
13908 2009-03-27 Xinliang David Li <davidxl@google.com>
13909
13910 PR tree-optimization/39557
13911 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13912
13913 2009-03-27 Xinliang David Li <davidxl@google.com>
13914
13915 PR tree-optimization/39548
13916 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
13917 candidate check.
13918
13919 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13920
13921 * c-common.c (pointer_int_sum): Use %wd on return from
13922 tree_low_cst.
13923
13924 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
13925
13926 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13927 on return from tree_low_cst.
13928
13929 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
13930
13931 PR c++/36799
13932 * ginclude/stdarg.h (va_copy): Define also for
13933 __GXX_EXPERIMENTAL_CXX0X__.
13934
13935 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13936
13937 PR c++/35652
13938 * builtins.h (c_strlen): Do not warn here.
13939 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13940 * c-common.c (pointer_int_sum): Take an explicit location.
13941 Warn about offsets out of bounds.
13942 * c-common.h (pointer_int_sum): Adjust declaration.
13943
13944 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13945
13946 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13947 markup glitch.
13948
13949 2009-03-26 Jakub Jelinek <jakub@redhat.com>
13950
13951 PR c++/39554
13952 * opts.c (warn_if_disallowed_function_p): Don't assume
13953 get_callee_fndecl must return non-NULL.
13954
13955 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
13956
13957 PR rtl-optimization/39522
13958 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13959 when reg_reloaded_valid is set.
13960
13961 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13962
13963 * config/spu/divv2df3.c: New file.
13964 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13965 (DPBIT_FUNCS): Filter out _div_df.
13966
13967 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
13968
13969 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13970 a jump insn, count that jump in the distance to the loop start.
13971
13972 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
13973
13974 PR target/39523
13975 * config/sh/sh.c (calc_live_regs): Fix condition for global
13976 registers except PIC_OFFSET_TABLE_REGNUM.
13977
13978 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
13979
13980 PR/39518
13981 * doc/invoke.texi (-mconsole): New.
13982 (-mcygwin): New.
13983 (-mno-cygwin): New.
13984 (-mdll): New.
13985 (-mnop-fun-dllimport): New.
13986 (-mthread): New.
13987 (-mwin32): New.
13988 (-mwindows): New.
13989 (sub section "i386 and x86-64 Windows Options"): New.
13990
13991 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
13992
13993 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13994 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13995
13996 2009-03-25 Richard Guenther <rguenther@suse.de>
13997
13998 PR middle-end/39497
13999 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
14000 of -Wno-error.
14001
14002 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
14003
14004 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
14005 neither of haifa/selective schedulers are working.
14006
14007 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14008
14009 * doc/invoke.texi (Debugging Options): Fix description of
14010 -fno-merge-debug-strings.
14011
14012 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
14013
14014 * config/cris/libgcc.ver: New version-script.
14015 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
14016
14017 * configure.ac <GAS features, nop mnemonic>: Add pattern
14018 crisv32-*-* for "nop".
14019 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
14020 * configure: Regenerate.
14021
14022 2009-03-24 Ira Rosen <irar@il.ibm.com>
14023
14024 PR tree-optimization/39529
14025 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
14026 mark_sym_for_renaming for the tag copied to the new vector
14027 pointer.
14028
14029 2009-03-24 Arthur Loiret <aloiret@debian.org>
14030
14031 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
14032 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
14033 EXTRA_SPEC_FUNCTIONS.
14034 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
14035 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
14036 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
14037 -march and -mtune options.
14038
14039 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
14040
14041 * config/m68k/t-rtems: Add m5329 multilib.
14042
14043 2009-03-24 Dodji Seketeli <dodji@redhat.com>
14044 Jakub Jelinek <jakub@redhat.com>
14045
14046 PR debug/39524
14047 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
14048 nodes.
14049
14050 2009-03-23 Jakub Jelinek <jakub@redhat.com>
14051
14052 PR c/39495
14053 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
14054 instead of c_parser_expression_conv, if original_code isn't one of the
14055 4 allowed comparison codes, fail.
14056
14057 2009-03-23 Richard Guenther <rguenther@suse.de>
14058
14059 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
14060 * tree.h (struct tree_type): Likewise.
14061 * reload.h (struct insn_chain): Likewise.
14062 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
14063 * function.h (struct function): Likewise.
14064 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
14065
14066 2009-03-23 Jakub Jelinek <jakub@redhat.com>
14067
14068 PR tree-optimization/39516
14069 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
14070
14071 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
14072
14073 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
14074 should be set true if BITS_PER_WORD of target is bigger than 32
14075
14076 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
14077
14078 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
14079 Translate -B-options to -rpath-link. Correct existing
14080 rpath-link and conditionalize on !nostdlib.
14081
14082 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14083
14084 * doc/extend.texi (Function Attributes, Variable Attributes):
14085 Fix typos.
14086 * doc/invoke.texi (Debugging Options, Optimize Options)
14087 (i386 and x86-64 Options, MCore Options): Likewise.
14088
14089 2009-03-20 Jakub Jelinek <jakub@redhat.com>
14090
14091 PR debug/37890
14092 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
14093 it for block local namespace aliases.
14094 (gen_decl_die): Pass context_die to gen_namespace_die.
14095
14096 2009-03-19 Jakub Jelinek <jakub@redhat.com>
14097
14098 PR c/39495
14099 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
14100 minimum or maximum value.
14101
14102 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
14103
14104 * reginfo.c (globalize_reg): Recompute derived reg sets.
14105
14106 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
14107
14108 PR target/39063
14109 * libgcc2.c (mprotect): Do not use signed arguments for
14110 VirtualProtect, use DWORD arguments. Also fix the 'may
14111 be used uninitialized' warning for the np variable.
14112
14113 2009-03-19 Jakub Jelinek <jakub@redhat.com>
14114
14115 PR target/39496
14116 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
14117 functions using regparm calling conventions when not optimizing.
14118 (ix86_function_sseregparm): Similarly for sseregparm calling
14119 conventions.
14120
14121 2009-03-19 Li Feng <nemokingdom@gmail.com>
14122
14123 PR middle-end/39500
14124 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
14125 dependence if the first conflict is after niter iterations.
14126
14127 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
14128
14129 PR middle-end/38609
14130 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
14131 functions with dynamic stack-pointer adjustments.
14132
14133 2009-03-19 Ben Elliston <bje@au.ibm.com>
14134
14135 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
14136 option; change to -msdata=data.
14137
14138 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14139
14140 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
14141 and -fopenmp.
14142
14143 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
14144
14145 PR target/35180
14146 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
14147
14148 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
14149
14150 * doc/invoke.texi (Code Gen Options): Expand discussion of
14151 -fno-common.
14152
14153 2009-03-18 Jakub Jelinek <jakub@redhat.com>
14154
14155 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
14156 * matrix-reorg.c (struct matrix_info): Likewise.
14157 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
14158 * rtl.h (struct mem_attrs): Likewise.
14159 * df.h (struct df): Likewise.
14160 * tree-data-ref.h (struct data_dependence_relation): Likewise.
14161 * ira-int.h (struct ira_allocno): Likewise.
14162 * df-scan.c (struct df_collection_rec): Likewise.
14163 * ira.c (struct equivalence): Likewise.
14164 * function.c (struct temp_slot): Likewise.
14165 * cfgloop.h (struct loop): Likewise.
14166
14167 PR debug/39485
14168 * function.c (use_register_for_decl): When not optimizing, disregard
14169 register keyword for variables with types containing methods.
14170
14171 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
14172
14173 PR middle-end/39447
14174 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
14175 (is_simple_operand): Call contains_component_ref_p before calling data
14176 reference analysis that would fail on COMPONENT_REFs.
14177
14178 * tree-vrp.c (search_for_addr_array): Fix formatting.
14179
14180 2009-03-18 Richard Guenther <rguenther@suse.de>
14181
14182 * tree-vect-transform.c (vect_loop_versioning): Fold the
14183 generated comparisons.
14184 * tree-vectorizer.c (set_prologue_iterations): Likewise.
14185 (slpeel_tree_peel_loop_to_edge): Likewise.
14186
14187 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14188
14189 PR middle-end/37805
14190 * opts.c (print_specific_help): In addition to `undocumented',
14191 accept `separate' and `joined' flags if passed alone. Describe
14192 output by the first matched one of those.
14193 (common_handle_option): Skip over empty strings.
14194 * gcc.c (display_help): Fix help string for `--help='.
14195 * doc/invoke.texi (Option Summary, Overall Options): With
14196 `--help=', classes and qualifiers can both be repeated, but
14197 only the latter can be negated. One should not pass only
14198 negated qualifiers. Fix markup and examples.
14199
14200 Revert
14201 2008-10-14 Jakub Jelinek <jakub@redhat.com>
14202 PR middle-end/37805
14203 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
14204 and -fhelp=separate.
14205
14206 2009-03-17 Jing Yu <jingyu@google.com>
14207
14208 PR middle-end/39378
14209 * function.h (struct rtl_data): Move is_thunk from here...
14210 (struct function): ...to here.
14211 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
14212 * varasm.c (assemble_start_function): Change is_thunk from crtl to
14213 cfun.
14214 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
14215 cfun.
14216 (alpha_does_function_need_gp, alpha_start_function): Likewise.
14217 (alpha_output_function_end_prologue): Likewise.
14218 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
14219 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
14220 (rs6000_output_function_epilogue): Likewise.
14221 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
14222
14223 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
14224
14225 PR target/39482
14226 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
14227 from different units in a single alternative.
14228 (*truncdfsf_i387): Ditto.
14229 (*truncxfsf2_mixed): Ditto.
14230 (*truncxfdf2_mixed): Ditto.
14231
14232 2009-03-17 Jakub Jelinek <jakub@redhat.com>
14233
14234 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
14235 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
14236
14237 PR debug/39474
14238 * tree-ssa-live.c (remove_unused_locals): Don't remove local
14239 unused non-artificial variables when not optimizing.
14240
14241 PR debug/39471
14242 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
14243 DW_TAG_imported_module even if decl is IMPORTED_DECL with
14244 NAMESPACE_DECL in its DECL_INITIAL.
14245
14246 PR middle-end/39443
14247 * optabs.c (set_user_assembler_libfunc): New function.
14248 * expr.h (set_user_assembler_libfunc): New prototype.
14249 * c-common.c: Include libfuncs.h.
14250 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
14251 for memcmp, memset, memcpy, memmove and abort.
14252 * Makefile.in (c-common.o): Depend on libfuncs.h.
14253
14254 PR debug/39412
14255 * dwarf2out.c (gen_inlined_enumeration_type_die,
14256 gen_inlined_structure_type_die, gen_inlined_union_type_die,
14257 gen_tagged_type_instantiation_die): Removed.
14258 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
14259 do nothing.
14260
14261 2009-03-17 Janis Johnson <janis187@us.ibm.com>
14262
14263 PR testsuite/38526
14264 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
14265 its use.
14266 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
14267 (check-parallel-%): Ditto.
14268 (check-consistency): Ditto.
14269
14270 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
14271
14272 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
14273 local variable rhs by NULL_TREE.
14274
14275 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
14276
14277 PR target/39477
14278 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
14279
14280 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
14281
14282 PR target/39476
14283 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
14284
14285 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
14286
14287 PR target/39473
14288 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
14289 for ms->sysv ABI calls only in 64bit mode.
14290
14291 * config/i386/i386.md (untyped_call): Support 32bit.
14292
14293 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
14294
14295 * doc/extend.texi: Replace x86_65 with x86_64.
14296
14297 2009-03-16 Jakub Jelinek <jakub@redhat.com>
14298
14299 PR tree-optimization/39455
14300 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
14301 mismatches for POINTER_TYPE_P (type).
14302 (number_of_iterations_le): Likewise.
14303
14304 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14305
14306 * config/picochip/picochip.c: Removed profiling support.
14307 * config/picochip/picochip.md: Removed profiling instruction.
14308 * config/picochip/picochip.h: Removed profiling builtin.
14309
14310 2009-03-16 Joseph Myers <joseph@codesourcery.com>
14311
14312 * doc/install.texi (--with-host-libstdcxx): Document.
14313
14314 2009-03-14 Anatoly Sokolov <aesok@post.ru>
14315
14316 PR target/34299
14317 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
14318 generate a warning if the function name does not begin with
14319 "__vector" and the function has either the 'signal' or 'interrupt'
14320 attribute, from here to ...
14321 (avr_declare_function_name): ...here. New function.
14322 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
14323 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
14324
14325 2009-03-14 Jakub Jelinek <jakub@redhat.com>
14326
14327 PR bootstrap/39454
14328 * cse.c (fold_rtx): Don't modify original const_arg1 when
14329 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
14330 separate variable instead.
14331 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
14332 from out of range shift counts.
14333 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
14334
14335 2009-03-13 Catherine Moore <clm@codesourcery.com>
14336
14337 * config/i386/x-mingw32 (host-mingw32.o): Replace
14338 diagnostic.h with $(DIAGNOSTIC_H).
14339
14340 2009-03-12 Jakub Jelinek <jakub@redhat.com>
14341
14342 PR target/39431
14343 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
14344 predicate.
14345 * config/i386/sync.md (sync_compare_and_swap<mode>,
14346 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
14347 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
14348 into a register.
14349 (sync_double_compare_and_swapdi_pic,
14350 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
14351 cmpxchg8b_pic_memory_operand instead of just memory_operand.
14352
14353 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14354
14355 PR target/39445
14356 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
14357
14358 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14359
14360 PR target/39327
14361 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14362 (avx_addsubv4df3): Likewise.
14363 (*avx_addsubv4sf3): Likewise.
14364 (sse3_addsubv4sf3): Likewise.
14365
14366 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
14367
14368 PR target/38824
14369 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
14370
14371 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
14372
14373 PR debug/39432
14374 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14375 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14376 registers for allocnos created from user-defined variables.
14377
14378 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14379
14380 PR target/39181
14381 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14382 of non-integer mode as well.
14383
14384 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
14385
14386 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14387 for functions for which the parameter types are unknown.
14388
14389 2009-03-11 Jakub Jelinek <jakub@redhat.com>
14390
14391 PR target/39137
14392 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
14393 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14394 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14395 * config/i386/i386.c (ix86_local_alignment): For
14396 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14397 long long variables on the stack to avoid dynamic realignment.
14398 Allow the first argument to be a decl rather than type.
14399 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14400
14401 2009-03-11 Nick Clifton <nickc@redhat.com>
14402
14403 PR target/5362
14404 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14405 options.
14406 Add description to mno-lsim option.
14407 * config/mcore/mcore.h: Remove comment about deprecated m4align
14408 option.
14409 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14410 * doc/invoke.texi: Add description of mno-lsim and
14411 mstack-increment options.
14412
14413 * config/fr30/fr30.opt: Document the -mno-lsim option.
14414 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14415 and -mno-lsim options.
14416
14417 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14418
14419 * fold-const.c (fold_comparison): Only call fold_inf_compare
14420 if the mode supports infinities.
14421
14422 2009-03-11 Jason Merrill <jason@redhat.com>
14423
14424 PR debug/39086
14425 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14426 end already did. Notice GIMPLE_CALL modifications of the result.
14427 Don't copy debug information from an ignored decl or a decl from
14428 another function.
14429
14430 2009-03-10 Richard Guenther <rguenther@suse.de>
14431 Nathan Froyd <froydnj@codesourcery.com>
14432
14433 PR middle-end/37850
14434 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
14435 (__divMODE3): Likewise.
14436
14437 2009-03-09 Jakub Jelinek <jakub@redhat.com>
14438
14439 PR tree-optimization/39394
14440 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14441 DECL_SIZE_UNIT of variable length FIELD_DECLs.
14442
14443 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14444
14445 * recog.c (verfiy_changes): Disallow renaming of hard regs in
14446 inline asms for register asm ("") declarations.
14447
14448 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
14449
14450 * fold-const.c (fold_unary): Fix comment.
14451
14452 2009-03-07 Jan Hubicka <jh@suse.cz>
14453
14454 PR target/39361
14455 * tree-inline.c (setup_one_parameter): Do replacement of const
14456 argument by constant in SSA form.
14457
14458 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14459
14460 PR middle-end/38028
14461 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14462 determine alignment passed to assign_stack_local.
14463 (assign_parms_unsplit_complex): Likewise.
14464 * except.c (sjlj_build_landing_pads): Likewise.
14465
14466 2009-03-06 Jakub Jelinek <jakub@redhat.com>
14467
14468 PR middle-end/39360
14469 * tree-flow.h (add_referenced_var): Return bool instead of void.
14470 * tree-dfa.c (add_referenced_var): Return result of
14471 referenced_var_check_and_insert call.
14472 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14473 of referenced_var_check_and_insert.
14474
14475 PR debug/39372
14476 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
14477 (gen_variable_die): Emit DW_AT_location on abstract static variable's
14478 DIE, don't emit it if abstract origin already has it.
14479 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14480 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14481
14482 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14483
14484 * genpreds.c (needs_variable): Fix parentheses at variable name
14485 detection.
14486 (write_tm_constrs_h): Indent generated code.
14487
14488 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14489
14490 * doc/extend.texi (Function Attributes): Add documentation
14491 for isr attributes.
14492
14493 2009-03-06 Jakub Jelinek <jakub@redhat.com>
14494
14495 PR debug/39387
14496 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14497 take locus from its DECL_SOURCE_LOCATION instead of input_location.
14498
14499 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
14500
14501 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14502 the loop as bad.
14503
14504 2009-03-05 Jakub Jelinek <jakub@redhat.com>
14505
14506 PR debug/39379
14507 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14508 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14509
14510 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
14511
14512 * config/i386/i386.md (R8_REG, R9_REG): New constants.
14513 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14514 constants instead of magic numbers.
14515 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14516 (QI_REG_P): Ditto.
14517 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14518 (x86_64_ms_abi_int_parameter_registers): Ditto.
14519 (x86_64_int_return_registers): Ditto.
14520 (ix86_maybe_switch_abi): Ditto.
14521 (ix86_expand_call): Ditto for clobbered_registers array.
14522 (ix86_hard_regno_mode_ok): Ditto.
14523 (x86_extended_QIreg_mentioned_p): Ditto.
14524
14525 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
14526
14527 PR tree-optimization/39349
14528 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14529
14530 * combine.c (gen_lowpart_for_combine): Use omode when generating
14531 clobber.
14532
14533 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
14534
14535 PR rtl-optimization/39235
14536 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14537
14538 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
14539
14540 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14541
14542 2009-03-04 Richard Guenther <rguenther@suse.de>
14543
14544 PR tree-optimization/39362
14545 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14546 that occur in abnormal PHIs should be varying.
14547
14548 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
14549
14550 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14551 Extend comments.
14552 (simple_iv): Take loop as an argument instead of statement.
14553 * tree-scalar-evolution.h (simple_iv): Declaration changed.
14554 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14555 to simple_iv.
14556 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14557 Ditto.
14558 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14559 * matrix-reorg.c (analyze_transpose): Ditto.
14560 * tree-data-ref.c (dr_analyze_innermost): Ditto.
14561 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14562 * tree-predcom.c (ref_at_iteration): Ditto.
14563 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14564
14565 2009-03-04 Richard Guenther <rguenther@suse.de>
14566
14567 PR tree-optimization/39358
14568 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14569 escaped_id and callused_id.
14570 (solve_graph): Likewise.
14571
14572 2009-03-04 Richard Guenther <rguenther@suse.de>
14573
14574 PR tree-optimization/39339
14575 * tree-sra.c (try_instantiate_multiple_fields): Make it
14576 no longer ICE on the above.
14577
14578 2009-03-03 Joseph Myers <joseph@codesourcery.com>
14579
14580 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14581 that fits within Pmode.
14582
14583 2009-03-03 Steve Ellcey <sje@cup.hp.com>
14584
14585 PR middle-end/10109
14586 * tm.texi (LIBCALL_VALUE): Update description.
14587
14588 2009-03-03 Steve Ellcey <sje@cup.hp.com>
14589
14590 PR middle-end/34443
14591 * doc/extend.texi (section): Update description.
14592
14593 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
14594
14595 PR middle-end/39345
14596 * tree-inline.c (remapped_type): New.
14597 (can_be_nonlocal): Call remapped_type instead of remap_type.
14598
14599 2009-03-03 Jakub Jelinek <jakub@redhat.com>
14600
14601 PR fortran/39354
14602 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14603 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14604
14605 2009-03-03 Richard Guenther <rguenther@suse.de>
14606
14607 PR middle-end/39272
14608 * tree.c (tree_nonartificial_location): New function.
14609 * tree.h (tree_nonartificial_location): Declare.
14610 * builtins.c (expand_builtin_memory_chk): Provide location
14611 of the call location for artificial function pieces.
14612 (maybe_emit_chk_warning): Likewise.
14613 (maybe_emit_sprintf_chk_warning): Likewise.
14614 (maybe_emit_free_warning): Likewise.
14615 * expr.c (expand_expr_real_1): Likewise.
14616
14617 2009-03-03 Jakub Jelinek <jakub@redhat.com>
14618
14619 PR tree-optimization/39343
14620 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14621 COMPONENT_REF t has ARRAY_TYPE.
14622
14623 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
14624
14625 PR middle-end/39335
14626 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14627 when the type precision of the induction variable should be
14628 larger than the type precision of nit.
14629 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14630 * graphite.c (graphite_loop_normal_form): Same.
14631 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14632
14633 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
14634
14635 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14636 (*call_1_rex64_ms_sysv): Use named constants instead of magic
14637 numbers to describe clobbered registers.
14638 (*call_value_0_rex64_ms_sysv): Ditto.
14639 * config/i386/mmx.md (mmx_emms): Ditto.
14640 (mmx_femms): Ditto.
14641
14642 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
14643
14644 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14645 of ABI_64.
14646
14647 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14648
14649 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14650 (spu_section_type_flags): New function.
14651
14652 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
14653
14654 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14655 reg_class_contents of FLOAT_REGS into a temporary.
14656
14657 2009-03-02 Richard Guenther <rguenther@suse.de>
14658 Ira Rosen <irar@il.ibm.com>
14659
14660 PR tree-optimization/39318
14661 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14662 information to the vectorized statement.
14663
14664 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
14665
14666 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14667 variable. Use defined names instead of magic constants for REX SSE
14668 registers.
14669
14670 2009-03-01 Richard Guenther <rguenther@suse.de>
14671
14672 PR tree-optimization/39331
14673 * omp-low.c (lower_send_shared_vars): Do not receive new
14674 values for the reference of DECL_BY_REFERENCE parms or results.
14675
14676 2009-03-01 Jan Hubicka <jh@suse.cz>
14677
14678 PR debug/39267
14679 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14680 BLOCK_NONLOCALIZED_VAR): New macros.
14681 (tree_block): Add nonlocalized_vars.
14682 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14683 gen_decl_die): Add origin argument. Allow generation of die with
14684 origin at hand only.
14685 (gen_member_die, gen_type_die_with_usage, force_decl_die,
14686 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14687 of gen_*.
14688 (gen_block_die): Fix checking for unused blocks.
14689 (process_scope_var): Break out from .... ; work with origins only.
14690 (decls_for_scope) ... here; process nonlocalized list.
14691 (dwarf2out_ignore_block): Look for nonlocalized vars.
14692 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14693 vars.
14694 (dump_scope_block): Dump them.
14695 * tree-inline.c (remap_decls): Handle nonlocalized vars.
14696 (remap_block): Likewise.
14697 (can_be_nonlocal): New predicate.
14698 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14699
14700 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14701
14702 * configure: Regenerate.
14703
14704 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14705
14706 * optc-gen.awk: No need to duplicate option flags twice.
14707 Reuse help texts for duplicate options which do not have any.
14708
14709 * gcc.c (display_help): Document --version.
14710
14711 * gcc.c (main): If print_help_list and verbose_flag, ensure
14712 driver output comes before subprocess output.
14713
14714 * optc-gen.awk: Assign all remaining fields to help string,
14715 space-separated, for multi-line help in *.opt.
14716
14717 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14718 -Wno-pedantic-ms-format is for MinGW targets only.
14719
14720 * doc/options.texi (Option file format): Fix bad indentation,
14721 restoring dropped sentence.
14722
14723 2009-02-28 Jan Hubicka <jh@suse.cz>
14724
14725 * tree-inline.c (tree_function_versioning): Output debug info.
14726
14727 2009-02-28 Jan Hubicka <jh@suse.cz>
14728
14729 PR debug/39267
14730 * tree-inline.c (setup_one_parameter): Do not copy propagate
14731 arguments when not optimizing.
14732
14733 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
14734
14735 PR target/39327
14736 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14737 (avx_addsubv4df3): Likewise.
14738 (*avx_addsubv4sf3): Likewise.
14739 (sse3_addsubv4sf3): Likewise.
14740 (*avx_addsubv2df3): Likewise.
14741 (sse3_addsubv2df3): Likewise.
14742 (avx_unpckhps256): Correct item selectors.
14743 (avx_unpcklps256): Likewise.
14744 (avx_unpckhpd256): Likewise.
14745 (avx_unpcklpd256): Likewise.
14746
14747 2009-02-28 Jan Hubicka <jh@suse.cz>
14748
14749 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14750 static vars.
14751 (copy_arguments_for_versioning): If var is declared don't declare it.
14752 (tree_function_versioning): First setup substitutions and then copy
14753 args.
14754
14755 2009-02-27 Jan Hubicka <jh@suse.cz>
14756
14757 PR debug/39267
14758 * cgraph.h (varpool_output_debug_info): Remove.
14759 * cgraphunit.c (varpool_output_debug_info): Remove.
14760 * dwarf2out.c (deferred_locations_struct): New struct
14761 (deferred_locations): New type.
14762 (deferred_locations_list): New static var.
14763 (deffer_location): New function.
14764 (gen_variable_die): Use it.
14765 (decls_for_scope): Output info on local static vars.
14766 (dwarf2out_finish): Process deferred locations.
14767 * varpool.c (varpool_output_debug_info): Remove.
14768
14769 2009-02-27 Jan Hubicka <jh@suse.cz>
14770
14771 PR debug/39267
14772 * tree.h (TREE_PROTECTED): Fix comment.
14773 (BLOCK_HANDLER_BLOCK): Remove.
14774 (struct tree_block): Remove handler_block add body_block.
14775 (inlined_function_outer_scope_p): New.
14776 (is_body_block): Remove.
14777 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14778 * dwarf2out.c (is_inlined_entry_point): Remove.
14779 (add_high_low_attributes): Use inlined_function_outer_scope_p.
14780 (gen_block_die): Use is_inlined_entry_point check. Remove body block
14781 code.
14782 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14783 * gimplify.c (gimplify_expr): Gimplify body blocks.
14784 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14785 block with multiple subblocks.
14786 (dump_scope_block): Prettier output; dump more flags and info.
14787 (dump_scope_blocks): New.
14788 (remove_unused_locals): Use dump_scope_blocks.
14789 * tree-flow.h (dump_scope_blocks): Declare.
14790 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14791 * stmt.c (is_body_block): Remove.
14792 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14793 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14794
14795 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
14796
14797 PR middle-end/39308
14798 * graphite.c (graphite_loop_normal_form): Do not call
14799 number_of_iterations_exit from a gcc_assert.
14800
14801 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14802
14803 * config/s390/s390.c (s390_swap_cmp): Look for conditional
14804 jumps if COND is NULL.
14805 (find_cond_jump): New function.
14806 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
14807 * config/s390/s390.md: Remove z10_cobra attribute value.
14808
14809 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
14810
14811 * config/alpha/alpha.h (alpha_expand_mov): Return false if
14812 force_const_mem returns NULL_RTX.
14813
14814 2009-02-26 Jan Hubicka <jh@suse.cz>
14815
14816 PR debug/39267
14817 * cgraph.h (varpool_output_debug_info): Remove.
14818 * cgraphunit.c (varpool_output_debug_info): Remove.
14819 * dwarf2out.c (deferred_locations_struct): New struct
14820 (deferred_locations): New type.
14821 (deferred_locations_list): New static var.
14822 (deffer_location): New function.
14823 (gen_variable_die): Use it.
14824 (decls_for_scope): Output info on local static vars.
14825 (dwarf2out_finish): Process deferred locations.
14826 * varpool.c (varpool_output_debug_info): Remove.
14827
14828 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
14829
14830 PR rtl-optimization/39241
14831 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14832 to subreg_offset_representable_p.
14833
14834 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
14835
14836 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14837 execute function prototype. Get f and nregs from max_reg_num
14838 and get_insns. Remove the first backward pass as it's dead,
14839 guard the forward pass by flag_expensive_optimizations.
14840 (rest_of_handle_regmove): Delete.
14841 (pass_regmove): Replace it with regmove_optimize.
14842
14843 2009-02-25 Martin Jambor <mjambor@suse.cz>
14844
14845 PR tree-optimization/39259
14846 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
14847 calls_alloca function flags.
14848 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14849 calls are detected.
14850
14851 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
14852
14853 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
14854 flags_set_1_rtx, flags_set_1_set): Delete.
14855 (regmove_optimize): Do not call mark_flags_life_zones.
14856
14857 2009-02-24 Julian Brown <julian@codesourcery.com>
14858
14859 PR target/35965
14860 * config/arm/arm.c (require_pic_register): Only set
14861 cfun->machine->pic_reg once per function.
14862
14863 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
14864
14865 * doc/invoke.texi (Link Options): Document an easier way to pass
14866 options that take arguments to the GNU linker using -Xlinker and -Wl.
14867
14868 2009-02-24 Steve Ellcey <sje@cup.hp.com>
14869
14870 PR target/33785
14871 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
14872
14873 2009-02-24 Richard Guenther <rguenther@suse.de>
14874
14875 PR debug/39285
14876 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14877
14878 2009-02-24 Richard Guenther <rguenther@suse.de>
14879 Zdenek Dvorak <ook@ucw.cz>
14880
14881 PR tree-optimization/39233
14882 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14883 from converting them to a generic type.
14884
14885 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
14886
14887 PR tree-optimization/39260
14888 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14889 contains a condition with a real type.
14890 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14891
14892 2009-02-23 Jason Merrill <jason@redhat.com>
14893
14894 PR c++/38880
14895 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14896 narrowing_initializer_constant_valid_p.
14897 (narrowing_initializer_constant_valid_p): Don't return
14898 null_pointer_node for adding a pointer to itself.
14899
14900 2009-02-23 Jan Hubicka <jh@suse.cz>
14901
14902 PR c/12245
14903 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14904 resizing.
14905
14906 2009-02-23 Jan Hubicka <jh@suse.cz>
14907
14908 PR tree-optimization/37709
14909 * tree.c (block_ultimate_origin): Move here from dwarf2out.
14910 * tree.h (block_ultimate_origin): Declare.
14911 * dwarf2out.c (block_ultimate_origin): Move to tree.c
14912 * tree-ssa-live.c (remove_unused_scope_block_p):
14913 Eliminate blocks containig no instructions nor live variables nor
14914 nested blocks.
14915 (dump_scope_block): New function.
14916 (remove_unused_locals): Enable removal of dead blocks by default;
14917 enable dumping at TDF_DETAILS.
14918
14919 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
14920
14921 * config/i386/i386.c (classify_argument): Don't allow COImode
14922 and OImode.
14923 (function_arg_advance_32): Don't allow OImode.
14924 (function_arg_32): Likewise.
14925 (function_value_32): Likewise.
14926 (return_in_memory_32): Likewise.
14927 (function_arg_64): Remove OImode comment.
14928
14929 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
14930
14931 PR target/39261
14932 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14933 ix86_expand_vector_set for V4DImode in 64bit mode only.
14934 (ix86_expand_vector_init_one_var): Likewise.
14935
14936 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
14937
14938 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14939
14940 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14941
14942 PR bootstrap/39257
14943 * loop-iv.c: Revert last change.
14944 * emit-rtl.c: Likewise.
14945
14946 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
14947
14948 PR target/39256
14949 * config/i386/i386.c (type_natural_mode): Remove an extra
14950 space in the warning message.
14951 (function_value_32): Handle 32-byte vector modes.
14952 (return_in_memory_32): Likewise.
14953
14954 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
14955
14956 * loop-iv.c (truncate_value): New function.
14957 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14958 of lowpart_subreg.
14959 (lowpart_subreg): Move to...
14960 * emit-rtl.c: ...here.
14961
14962 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
14963
14964 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14965 accidental and undocumented change at revision 140860.
14966
14967 2009-02-21 Joseph Myers <joseph@codesourcery.com>
14968
14969 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14970 take gimple_seq * arguments.
14971 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14972 types_compatible_p langhook.
14973
14974 2009-02-20 Mark Mitchell <mark@codesourcery.com>
14975 Joseph Myers <joseph@codesourcery.com>
14976
14977 * config/arm/arm.c (arm_builtin_va_list): New function.
14978 (arm_expand_builtin_va_start): Likewise.
14979 (arm_gimplify_va_arg_expr): Likewise.
14980 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14981 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14982 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14983 (va_list_type): New variable.
14984 (arm_mangle_type): Mangle va_list_type appropriately.
14985
14986 2009-02-20 Jakub Jelinek <jakub@redhat.com>
14987
14988 PR middle-end/39157
14989 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14990 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14991 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14992 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14993 parameter to 1000 for -O1 by default.
14994 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14995 parameter.
14996 * loop-invariant.c: Include params.h.
14997 (move_loop_invariants): Don't call move_single_loop_invariants on
14998 very large loops.
14999
15000 2009-02-20 Jaka Mocnik <jaka@xlab.si>
15001
15002 * calls.c (emit_library_call_value_1): Use slot_offset instead of
15003 offset when calculating bounds for indexing stack_usage_map. Fixes
15004 a buffer overflow with certain target setups.
15005
15006 2009-02-20 Jakub Jelinek <jakub@redhat.com>
15007
15008 PR target/39240
15009 * calls.c (expand_call): Clear try_tail_call if caller and callee
15010 disagree in promotion of function return value.
15011
15012 2009-02-19 Jakub Jelinek <jakub@redhat.com>
15013
15014 PR target/39175
15015 * c-common.c (c_determine_visibility): If visibility changed and
15016 DECL_RTL has been already set, call make_decl_rtl to update symbol
15017 flags.
15018
15019 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
15020
15021 PR c++/39188
15022 * varasm.c (assemble_variable): Don't check DECL_NAME when
15023 globalizing a variable.
15024
15025 2009-02-19 Joseph Myers <joseph@codesourcery.com>
15026
15027 PR c/38483
15028 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
15029 expression before any __builtin_trap call.
15030 * c-typeck.c (build_function_call): Convert and check function
15031 arguments before generating a call to a trap. Evaluate the
15032 function arguments before the trap.
15033
15034 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
15035
15036 PR target/39228
15037 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
15038 (UNSPEC_FXAM_MEM): New unspec.
15039 (fxam<mode>2_i387_with_temp): New insn and split pattern.
15040 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
15041 memory using fxam<mode>2_i387_with_temp to remove excess precision.
15042
15043 2009-02-19 Richard Guenther <rguenther@suse.de>
15044
15045 PR tree-optimization/39207
15046 PR tree-optimization/39074
15047 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
15048 storedanything_tree): New.
15049 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
15050 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
15051 (build_succ_graph): Add edges from STOREDANYTHING to all
15052 non-direct nodes.
15053 (init_base_vars): Initialize STOREDANYTHING.
15054 (compute_points_to_sets): Free substitution info after
15055 building the succ graph.
15056 (ipa_pta_execute): Likewise.
15057
15058 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
15059 field.
15060 (do_ds_constraint): Do not add to special var or non-pointer
15061 field solutions.
15062 (type_could_have_pointers): Split out from ...
15063 (could_have_pointers): ... here. For arrays use the element type.
15064 (create_variable_info_for): Initialize may_have_pointers.
15065 (new_var_info): Likewise.
15066 (handle_lhs_call): Make the HEAP variable unknown-sized.
15067 (intra_create_variable_infos): Use a type with pointers for
15068 PARM_NOALIAS, make it unknown-sized.
15069
15070 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
15071
15072 PR target/39224
15073 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
15074
15075 2009-02-18 Jason Merrill <jason@redhat.com>
15076
15077 PR target/39179
15078 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
15079 value if DECL_EXTERNAL.
15080 * tree-sra.c (sra_walk_gimple_assign): Likewise.
15081 * target.h (gcc_target::binds_local_p): Clarify "module".
15082 * tree.h (TREE_PUBLIC): Clarify "module".
15083
15084 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
15085
15086 PR target/38891
15087 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
15088 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
15089
15090 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
15091
15092 PR target/39082
15093 * c.opt (Wabi): Support C and ObjC.
15094 (Wpsabi): New.
15095
15096 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
15097
15098 * config/i386/i386.c (classify_argument): Warn once about the ABI
15099 change when passing union with long double.
15100
15101 * doc/invoke.texi: Update -Wabi for warning psABI changes.
15102
15103 2009-02-18 Joseph Myers <joseph@codesourcery.com>
15104
15105 PR c/35447
15106 * c-parser.c (c_parser_compound_statement): Always enter and leave
15107 a scope.
15108
15109 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15110
15111 PR target/34587
15112 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
15113
15114 2009-02-18 Jakub Jelinek <jakub@redhat.com>
15115
15116 PR tree-optimization/36922
15117 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
15118 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
15119 Likewise.
15120
15121 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
15122
15123 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
15124 to 0 for EABI64.
15125
15126 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
15127
15128 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
15129
15130 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
15131
15132 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
15133 tree sharing.
15134
15135 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
15136 Richard Sandiford <rdsandiford@googlemail.com>
15137
15138 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
15139 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
15140 (loongson_biadd): ...this.
15141
15142 2009-02-17 Richard Guenther <rguenther@suse.de>
15143
15144 PR tree-optimization/39202
15145 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
15146 a var make sure to follow existing collapses.
15147
15148 2009-02-17 Richard Guenther <rguenther@suse.de>
15149
15150 PR middle-end/39214
15151 * langhooks.c (lhd_print_error_function): Check for NULL block.
15152
15153 2009-02-17 Richard Guenther <rguenther@suse.de>
15154
15155 PR tree-optimization/39204
15156 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
15157 of the PHI arg.
15158
15159 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
15160
15161 * config/soft-fp/double.h: Update from glibc CVS.
15162
15163 2009-02-17 Richard Guenther <rguenther@suse.de>
15164
15165 PR tree-optimization/39207
15166 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
15167 strict-aliasing warnings for pointers pointing to NULL.
15168
15169 2009-02-16 Joseph Myers <joseph@codesourcery.com>
15170
15171 PR c/35446
15172 * c-parser.c (c_parser_braced_init): Call pop_init_level when
15173 skipping until next close brace.
15174
15175 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
15176
15177 PR target/37049
15178 * config/i386/i386.c (ix86_expand_push): Set memory alignment
15179 to function argument boundary.
15180
15181 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
15182
15183 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
15184 in the lea_add. Reload eventually constraints it properly.
15185 * config/picochip/constraints.md: Remove the target constraint
15186 "b", since it is not needed anymore.
15187
15188 2009-02-16 Jakub Jelinek <jakub@redhat.com>
15189
15190 * gthr-dce.h: Uglify function parameter and local variable names.
15191 * gthr-gnat.h: Likewise.
15192 * gthr-mipssde.h: Likewise.
15193 * gthr-nks.h: Likewise.
15194 * gthr-posix95.h: Likewise.
15195 * gthr-posix.h: Likewise.
15196 * gthr-rtems.h: Likewise.
15197 * gthr-single.h: Likewise.
15198 * gthr-solaris.h: Likewise.
15199 * gthr-tpf.h: Likewise.
15200 * gthr-vxworks.h: Likewise.
15201 * gthr-win32.h: Likewise.
15202
15203 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
15204
15205 PR target/39196
15206 * config/i386/i386.md: Restrict the new peephole2 to move
15207 between MMX/SSE registers.
15208
15209 2009-02-15 Richard Guenther <rguenther@suse.de>
15210
15211 Revert
15212 2009-02-13 Richard Guenther <rguenther@suse.de>
15213
15214 * configure.ac: Enable LFS.
15215 * configure: Re-generate.
15216 * config.in: Likewise.
15217
15218 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15219
15220 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
15221 spu_srqwbyte, spu_srqwbytebc): Define.
15222 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
15223 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
15224 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
15225 "shrqby_<mode>"): New insn-and-split patterns.
15226 * config/spu/spu.c (expand_builtin_args): Determine and return
15227 number of operands using spu_builtin_description data.
15228 (spu_expand_builtin_1): Use it.
15229
15230 2009-02-13 Steve Ellcey <sje@cup.hp.com>
15231
15232 PR target/38056
15233 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
15234 TARGET_CONST_GP.
15235
15236 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15237
15238 PR target/39149
15239 * config/i386/i386.c (override_options): Correct warning
15240 messages for -malign-loops, -malign-jumps and -malign-functions.
15241
15242 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15243
15244 PR target/39152
15245 * config/i386/i386.md: Restrict the new peephole2 to move
15246 between the general purpose registers.
15247
15248 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
15249
15250 PR target/39162
15251 * config/i386/i386.c (type_natural_mode): Add a new argument.
15252 Return the original mode and warn ABI change if vector size is 32byte.
15253 (function_arg_advance): Updated.
15254 (function_arg): Likewise.
15255 (ix86_function_value): Likewise.
15256 (ix86_return_in_memory): Likewise.
15257 (ix86_sol10_return_in_memory): Likewise.
15258 (ix86_gimplify_va_arg): Likewise.
15259 (function_arg_32): Don't warn ABX ABI change here.
15260 (function_arg_64): Likewise.
15261
15262 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
15263
15264 * loop-iv.c (implies_p): In the final case, test that operands 0
15265 of the two comparisons match.
15266
15267 * config/bfin/bfin.c (find_prev_insn_start): New function.
15268 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
15269 (find_next_insn_start): Move.
15270
15271 2009-02-13 Richard Guenther <rguenther@suse.de>
15272
15273 * configure.ac: Enable LFS.
15274 * configure: Re-generate.
15275 * config.in: Likewise.
15276
15277 2009-02-13 Joseph Myers <joseph@codesourcery.com>
15278
15279 PR c/35444
15280 * c-parser.c (c_parser_parms_list_declarator): Discard pending
15281 sizes on syntax error after some arguments have been parsed.
15282
15283 2009-02-12 Jakub Jelinek <jakub@redhat.com>
15284
15285 * doc/invoke.texi (-fira): Remove.
15286
15287 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15288
15289 * caller-save.c: Replace regclass.c with reginfo.c in comments.
15290 * recog.c: Likewise.
15291 * rtl.h: Likewise.
15292
15293 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
15294
15295 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
15296 (umul_ppmm): Likewise.
15297 (count_leading_zeros): Likewise.
15298 (count_trailing_zeros): Likewise.
15299 (UMUL_TIME): Likewise.
15300
15301 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15302
15303 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
15304 soft-fp/t-softfp to tmake_file.
15305
15306 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
15307 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
15308 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
15309 IA64_BUILTIN_INFQ]: New.
15310 (ia64_init_builtins): Initialize __builtin_infq,
15311 __builtin_fabsq and __builtin_copysignq if not HPUX.
15312 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
15313 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
15314
15315 * config/ia64/lib1funcs.asm (__divtf3): Define only if
15316 SHARED is defined.
15317 (__fixtfti): Likewise.
15318 (__fixunstfti): Likewise.
15319 (__floattitf): Likewise.
15320
15321 * config/ia64/libgcc-glibc.ver: New.
15322 * config/ia64/t-fprules-softfp: Likewise.
15323 * config/ia64/sfp-machine.h: Likewise.
15324
15325 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
15326 (LIBGCC2_TF_CEXT): Likewise.
15327 (TF_SIZE): Likewise.
15328 (TARGET_INIT_LIBFUNCS): Likewise.
15329
15330 * config/ia64/t-glibc (SHLINB_MAPFILES):
15331 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
15332
15333 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
15334
15335 * config/i386/i386.c (construct_container): Rewrite processing
15336 BLKmode with X86_64_SSE_CLASS.
15337
15338 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
15339
15340 PR target/39152
15341 * config/i386/i386.md: Replace simplify_replace_rtx with
15342 replace_rtx in the new peephole2.
15343
15344 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
15345
15346 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
15347 loop unrolling do not happen at -O2.
15348
15349 2009-02-12 Michael Matz <matz@suse.de>
15350
15351 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
15352
15353 2009-02-12 Jakub Jelinek <jakub@redhat.com>
15354
15355 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
15356 for -g3.
15357
15358 2009-02-12 Ben Elliston <bje@au.ibm.com>
15359
15360 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15361 patterns when updating the back chain. Missed in the 2009-02-10
15362 change.
15363
15364 2009-02-11 Janis Johnson <janis187@us.ibm.com>
15365
15366 * doc/extend.texi (Decimal Floating Types): Update identifier of
15367 draft TR and list of missing support.
15368
15369 2009-02-11 Jakub Jelinek <jakub@redhat.com>
15370
15371 PR middle-end/39154
15372 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15373 bit to variable length decl's flags, add it also to its
15374 pointer replacement variable.
15375
15376 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
15377 Jakub Jelinek <jakub@redhat.com>
15378
15379 PR target/39118
15380 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15381 (memory_blockage): New expander.
15382 (*memory_blockage): New insn pattern.
15383 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15384 instead of general blockage at the end of function prologue when
15385 frame pointer is used to access red zone area. Do not emit blockage
15386 when profiling, it is emitted in generic code.
15387 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15388 function epilogue when frame pointer is used to access red zone area.
15389
15390 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
15391
15392 PR target/38824
15393 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15394 by arithmetic with memory operands.
15395 * config/i386/predicates.md (commutative_operator): New.
15396
15397 2009-02-10 Janis Johnson <janis187@us.ibm.com>
15398
15399 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15400 bulleted lists.
15401
15402 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
15403
15404 * alias.h (record_alias_subset): Declare.
15405 * alias.c (record_alias_subset): Make global.
15406
15407 2009-02-10 Nick Clifton <nickc@redhat.com>
15408
15409 * tree-parloops.c: Change license to GPLv3.
15410 * ipa-struct-reorg.c: Change license to GPLv3.
15411 * ipa-struct-reorg.h: Change license to GPLv3.
15412
15413 2009-02-10 Steve Ellcey <sje@cup.hp.com>
15414
15415 PR c/39084
15416 * c-decl.c (start_struct): Return NULL on error.
15417
15418 2009-02-10 Jakub Jelinek <jakub@redhat.com>
15419
15420 PR middle-end/39124
15421 * cfgloopmanip.c (remove_path): Call remove_bbs after
15422 cancel_loop_tree, not before it.
15423
15424 PR target/39139
15425 * function.h (struct function): Add has_local_explicit_reg_vars bit.
15426 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15427 VAR_DECLs were seen.
15428 * tree-ssa-live.c (remove_unused_locals): Recompute
15429 cfun->has_local_explicit_reg_vars.
15430 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15431 copies or clearings if cfun->has_local_explicit_reg_vars.
15432
15433 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
15434
15435 PR target/39118
15436 * config/i386/i386.c (expand_prologue): Emit blockage at the end
15437 of function prologue when frame pointer is used to access
15438 red zone area.
15439
15440 2009-02-10 Richard Guenther <rguenther@suse.de>
15441
15442 PR middle-end/39127
15443 * gimplify.c (gimple_regimplify_operands): Always look if
15444 we need to create a temporary.
15445
15446 2009-02-10 Richard Guenther <rguenther@suse.de>
15447
15448 PR tree-optimization/39132
15449 * tree-loop-distribution.c (todo): New global var.
15450 (generate_memset_zero): Trigger TODO_rebuild_alias.
15451 (tree_loop_distribution): Return todo.
15452
15453 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
15454
15455 PR target/39119
15456 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15457 (x86_64_reg_class_name): Removed.
15458 (classify_argument): Return 0 if bytes > 32. Return 0 if the
15459 first one isn't X86_64_SSE_CLASS or any other ones aren't
15460 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
15461 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15462 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
15463 and 3 X86_64_SSEUP_CLASS.
15464 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
15465 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15466
15467 2009-02-10 Ben Elliston <bje@au.ibm.com>
15468
15469 * config/rs6000/rs6000.md (allocate_stack): Always use an update
15470 form instruction to update the stack back chain word, even if the
15471 user has disabled the generation of update instructions.
15472 (movdi_<mode>_update_stack): New.
15473 (movsi_update_stack): Likewise.
15474 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15475 always use an update form instruction to update the stack back
15476 chain word.
15477
15478 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
15479
15480 PR middle-end/38953
15481 * graphite.c (if_region_set_false_region): After moving a region in
15482 the false branch of a condition, remove the empty dummy basic block.
15483 (gloog): Remove wrong fix for PR38953.
15484
15485 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15486
15487 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15488 generation due to implicit sign extension.
15489
15490 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
15491
15492 PR middle-end/38981
15493 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15494 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15495
15496 2009-02-09 Richard Guenther <rguenther@suse.de>
15497
15498 PR middle-end/35202
15499 * convert.c (convert_to_real): Disable (float)fn((double)x)
15500 to fnf(x) conversion if errno differences may occur and
15501 -fmath-errno is set.
15502
15503 2009-02-07 Anatoly Sokolov <aesok@post.ru>
15504
15505 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15506 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15507 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15508
15509 2009-02-06 Joseph Myers <joseph@codesourcery.com>
15510
15511 PR c/35434
15512 * c-common.c (handle_alias_attribute): Disallow attribute for
15513 anything not a FUNCTION_DECL or VAR_DECL.
15514
15515 2009-02-06 Janis Johnson <janis187@us.ibm.com>
15516
15517 PR c/39035
15518 * real.c (do_compare): Special-case compare of zero against
15519 decimal float value.
15520
15521 2009-02-06 Joseph Myers <joseph@codesourcery.com>
15522
15523 PR c/36432
15524 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15525 as indicating flexible array members unless the field itself is
15526 being declarared as the incomplete array.
15527
15528 2009-02-06 Jan Hubicka <jh@suse.cz>
15529
15530 PR tree-optimization/38844
15531 * ipa-inline.c (try_inline): Stop inlining recursion when edge
15532 is already inlined.
15533
15534 2009-02-06 Richard Guenther <rguenther@suse.de>
15535
15536 PR middle-end/38977
15537 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15538 fork because we may expand it as __gcov_fork.
15539
15540 2009-02-06 Nick Clifton <nickc@redhat.com>
15541
15542 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
15543
15544 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
15545
15546 PR tree-optimization/35659
15547 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15548 vn_phi_eq): Shortcut if hashcode does not match.
15549 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15550 NULL operands.
15551 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15552 and avoid iterative_hash_expr.
15553 (FOR_EACH_VALUE_ID_IN_SET): New.
15554 (value_id_compare): Remove.
15555 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15556 sort expressions by value id.
15557
15558 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
15559
15560 PR target/38991
15561 * config/sh/predicates.md (general_movsrc_operand): Don't check
15562 the subreg of system registers here.
15563
15564 2009-02-05 Jakub Jelinek <jakub@redhat.com>
15565
15566 PR c++/39106
15567 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15568 on the copied decl.
15569
15570 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
15571
15572 PR rtl-optimization/39110
15573 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15574 addresses, not aligned ones.
15575
15576 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
15577 Richard Guenther <rguenther@suse.de>
15578
15579 PR tree-optimization/39100
15580 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15581 comment says and add edges.
15582
15583 2009-02-05 Joseph Myers <joseph@codesourcery.com>
15584
15585 PR c/35435
15586 * c-common.c (handle_tls_model_attribute): Ignore attribute for
15587 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15588
15589 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
15590
15591 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15592 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15593 register_bb_in_sese, new_sese, free_sese): Moved.
15594 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15595 outermost_loop_in_scop, build_scop_iteration_domain,
15596 expand_scalar_variables_ssa_name, get_vdef_before_scop,
15597 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15598 Use loop_in_sese_p instead of loop_in_scop_p.
15599 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15600 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15601 (scopdet_basic_block_info): Fix bug in scop detection.
15602 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15603 eq_loop_to_cloog_loop): Remove.
15604 (nb_loops_around_loop_in_scop, nb_loop
15605 ref_nb_loops): Moved here...
15606 * graphite.h (ref_nb_loops): ... from here.
15607 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15608 (loop_domain_dim, loop_iteration_vector_dim): Remove.
15609 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15610 * testsuite/gcc.dg/graphite/scop-19.c: New
15611
15612 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
15613 Hans-Peter Nilsson <hp@axis.com>
15614
15615 PR rtl-optimization/37889
15616 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15617 Move offset handling from PLUS to before the switch. Use new
15618 arguments when considering SYMBOL_REFs too.
15619 (rtx_addr_can_trap_p): Pass dummy offset and size.
15620 (enum may_trap_p_flags): Remove.
15621 (may_trap_p_1): Pass size from MEM_SIZE.
15622
15623 PR rtl-optimization/38921
15624 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15625 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15626 * rtlanal.c (may_trap_after_code_motion_p): Delete.
15627 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15628
15629 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
15630
15631 AVX Programming Reference (January, 2009)
15632 * config/i386/sse.md (*vpclmulqdq): New.
15633
15634 2009-02-04 Jakub Jelinek <jakub@redhat.com>
15635
15636 PR tree-optimization/38977
15637 PR gcov-profile/38292
15638 * calls.c (special_function_p): Disregard __builtin_ prefix.
15639
15640 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
15641
15642 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15643 non-indexable addresses even before reload.
15644
15645 2009-02-03 Joseph Myers <joseph@codesourcery.com>
15646
15647 PR c/29129
15648 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15649 as having variable size. Do not give an error for unnamed
15650 parameters with [*] declarators. Give a warning for type names
15651 with [*] declarators and mark them as variable size.
15652 * c-parser.c (c_parser_sizeof_expression): Do not give an error
15653 for sizeof applied to [*] type names.
15654
15655 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
15656
15657 PR C++/36607
15658 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15659
15660 2009-02-03 Jakub Jelinek <jakub@redhat.com>
15661
15662 * gcc.c (process_command): Update copyright notice dates.
15663 * gcov.c (print_version): Likewise.
15664 * gcov-dump.c (print_version): Likewise.
15665 * mips-tfile.c (main): Likewise.
15666 * mips-tdump.c (main): Likewise.
15667
15668 2009-02-03 Joseph Myers <joseph@codesourcery.com>
15669
15670 PR c/35433
15671 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15672 for composite type involving a zero-length array type.
15673
15674 2009-02-03 Jakub Jelinek <jakub@redhat.com>
15675
15676 PR target/35318
15677 * function.c (match_asm_constraints_1): Skip over
15678 initial optional % in the constraint.
15679
15680 PR inline-asm/39059
15681 * c-parser.c (c_parser_postfix_expression): If fixed point is not
15682 supported, don't accept FIXED_CSTs.
15683 * c-decl.c (finish_declspecs): Error if fixed point is not supported
15684 and _Sat is used without _Fract/_Accum. Set specs->type to
15685 integer_type_node for cts_fract/cts_accum if fixed point is not
15686 supported.
15687
15688 2009-02-02 Catherine Moore <clm@codesourcery.com>
15689
15690 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
15691
15692 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15693
15694 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15695 (ABI_HAS_64BIT_SYMBOLS): Use it.
15696 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15697
15698 2009-02-02 Paul Brook <paul@codesourcery.com>
15699
15700 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15701
15702 2009-02-02 Jakub Jelinek <jakub@redhat.com>
15703
15704 PR inline-asm/39058
15705 * recog.h (asm_operand_ok): Add constraints argument.
15706 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
15707 recurse on matching constraint.
15708 (check_asm_operands): Pass constraints as 3rd argument to
15709 asm_operand_ok. Don't look up matching constraint here.
15710 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15711 to asm_operand_ok.
15712
15713 2009-02-02 Ben Elliston <bje@au.ibm.com>
15714
15715 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15716 TARGET_NARROW_VOLATILE_BITFIELD macro names.
15717
15718 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15719
15720 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15721 information. Remove some obsolete information. Reorganize.
15722
15723 * config/pa/fptr.c: Revert license to GPL 2.
15724 * config/pa/milli64.S: Likewise.
15725
15726 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15727
15728 PR target/38904
15729 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
15730 LIBRARY name in, instead of hard-coding it.
15731 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
15732 extra target make frag to tmake_files according to EH model.
15733 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
15734 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
15735 frags that define makefile variable EH_MODEL appropriately.
15736 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
15737 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
15738 to "-sjlj" according to type of EH configured.
15739 (LIBGCC_SONAME): Concatenate it to shared library base name.
15740 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
15741 to "_sjlj" according to type of EH configured.
15742 (LIBGCC_SONAME): Concatenate it to shared library base name.
15743 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
15744 (SHLIB_LINK): Add missing semicolon to if-else construct.
15745 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15746 string value of "pe_dll" command-line option.
15747 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
15748 (SHLIB_SONAME): Use it when overriding t-cygming default.
15749 (SHLIB_IMPLIB): Override t-cygming default.
15750 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
15751 string value of "pe_dll" command-line option.
15752
15753 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
15754
15755 PR target/38952
15756 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
15757 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
15758
15759 2009-01-31 Richard Guenther <rguenther@suse.de>
15760
15761 PR tree-optimization/38937
15762 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15763 computing the transitive closure.
15764
15765 2009-01-30 Richard Guenther <rguenther@suse.de>
15766
15767 PR tree-optimization/39041
15768 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15769 Propagate variable indices only if the types match for this stmt.
15770
15771 2009-01-30 Jakub Jelinek <jakub@redhat.com>
15772
15773 PR target/39013
15774 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15775 inline but never defined.
15776
15777 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
15778
15779 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15780 (*insv_h_di_reg_extimm): New insn.
15781 (*insv_l<mode>_reg_extimm): New insn.
15782
15783 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
15784
15785 * config/picochip/picochip.c (flag_conserve_stack): set
15786 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15787 fconserve-stack. Reduce call-overhead used by inliner.
15788
15789 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
15790
15791 PR/38157
15792 * common.opt (flag_conserve_stack): Initialised to zero.
15793
15794 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
15795
15796 PR/39002
15797 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15798 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15799 method.
15800
15801 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
15802
15803 * ira-color.c (allocno_reload_assign): Update comments.
15804 * regmove.c (regmove_optimize): Likewise.
15805
15806 * ra.h: Removed.
15807
15808 2009-01-29 Robert Millan <rmh@aybabtu.com>
15809
15810 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15811 * config/i386/kopensolaris-gnu.h: New file. Undefine
15812 `MD_UNWIND_SUPPORT'.
15813 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
15814
15815 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
15816
15817 PR tree-optimization/39007
15818 * tree-loop-distribution.c (generate_builtin): Use
15819 recompute_dominator to compute the immediate dominator of the
15820 basic block just after the loop.
15821
15822 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15823
15824 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15825 (ASM_OUTPUT_DWARF_PCREL): Define.
15826
15827 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
15828
15829 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15830 * doc/passes.texi: Remove entries about regclass, local-alloc, and
15831 global. Modify entries about regmove and IRA.
15832
15833 * ra-conflict.c: Remove the file.
15834
15835 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15836
15837 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15838 (pass_regclass_init): Rename to pass_reginfo_init.
15839
15840 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15841
15842 * toplev.h (flag_ira): Remove.
15843
15844 * caller-save.c (setup_save_areas): Remove flag_ira.
15845
15846 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
15847
15848 * global.c: Remove the file.
15849
15850 * opts.c (decode_options): Remove flag_ira.
15851
15852 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
15853
15854 * regmove.c: Modify file description.
15855 (find_use_as_address, try_auto_increment): Define them only if
15856 AUTO_INC_DEC is defined.
15857 (replacement_quality, replace_in_call_usage, fixup_match_1,
15858 stable_and_no_regs_but_for_p): Remove.
15859 (reg_set_in_bb): Make it static.
15860 (regmove_optimize): Remove flag_ira and code which worked for
15861 !flag_ira.
15862
15863 * local-alloc.c: Remove the file.
15864
15865 * common.opt (fira): Remove.
15866
15867 * ira.c: Include except.h.
15868 (eliminable_regset): Move from global.c.
15869 (mark_elimination): Ditto. Remove flag_ira.
15870 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
15871 equiv_mem_modified, validate_equiv_mem_from_store,
15872 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15873 contains_replace_regs, memref_referenced_p, memref_used_between_p,
15874 no_equiv, recorded_label_ref): Move from local-alloc.c.
15875 (update_equiv_regs): Ditto. Make it static.
15876 (print_insn_chain, print_insn_chains): Move it from global.c.
15877 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
15878 (build_insn_chain): Ditto. Make it static.
15879 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
15880 Rename to init_live_subregs.
15881 (gate_ira): Remove flag_ira.
15882
15883 * regclass.c: Rename reginfo.c. Change file description.
15884 (FORBIDDEN_INC_DEC_CLASSES): Remove.
15885 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
15886 (init_reg_sets_1): Remove code for evaluation of
15887 reg_class_superclasses and losing_caller_save_reg_set.
15888 (init_regs): Remove init_reg_autoinc.
15889 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15890 ok_for_base_p_nonstrict): Remove.
15891 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
15892 (pass_regclass_init): Rename to pass_reginfo_init. Modify
15893 corresponding entries.
15894 (dump_regclass, record_operand_costs, scan_one_insn,
15895 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15896 record_address_regs, auto_inc_dec_reg_p): Remove.
15897 (gt-regclass.h): Rename to gt-reginfo.h.
15898
15899 * rtl.h (dump_global_regs, retry_global_alloc,
15900 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
15901
15902 * Makefile.in (RA_H): Remove.
15903 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15904 Rename regclass.o to reginfo.o.
15905 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
15906 gt-reginfo.h.
15907 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15908 (GTFILES): Rename regclass.c to reginfo.c.
15909
15910 * passes.c (init_optimization_passes): Remove pass_local_alloc and
15911 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
15912
15913 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15914 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15915 Remove flag_ira.
15916 (finish_spills): Ditto. Remove code for !flag_ira.
15917
15918 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
15919
15920 PR middle-end/35854
15921 * doc/invoke.texi (rtl debug options): Complete rewrite.
15922 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15923 to auto_inc_dec".
15924 * mode-switching.c (pass_mode_switching): Rename pass from
15925 "mode-sw" to "mode_sw".
15926 * except.c (pass_convert_to_eh_ranges): Rename pass from
15927 "eh-ranges" to "eh_ranges".
15928 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15929 to "subreg1".
15930
15931
15932 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
15933 Alexander Monakov <amonakov@ispras.ru>
15934
15935 PR middle-end/38857
15936 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15937 register.
15938 (move_exprs_to_boundary): Change return type and pass through
15939 should_move from move_op. Relax assert. Update usage ...
15940 (schedule_expr_on_boundary): ... here. Use should_move instead of
15941 cant_move.
15942 (move_op_orig_expr_found): Indicate that insn was disconnected from
15943 stream.
15944 (code_motion_process_successors): Do not call after_merge_succs
15945 callback if original expression was not found when traversing any of
15946 the branches.
15947 (code_motion_path_driver): Change return type. Update prototype.
15948 (move_op): Update comment. Add a new parameter (should_move). Update
15949 prototype. Set *should_move based on indication provided by
15950 move_op_orig_expr_found.
15951
15952 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
15953
15954 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15955 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15956 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15957 * config/rs6000/rs6000.c (rs6000_override_options): Default
15958 avoid-indexed-addresses on for Power6, off for everything else.
15959 (avoiding_indexed_address_p): New function.
15960 (rs6000_legitimize_address): Use it.
15961 (rs6000_legitimate_address): Likewise.
15962 * config/rs6000/rs6000.md (movXX_updateX): Likewise
15963
15964 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
15965
15966 PR tree-optimization/38997
15967 * tree-loop-distribution.c (generate_memset_zero): Use
15968 POINTER_PLUS_EXPR for a pointer addition.
15969
15970 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
15971
15972 * config/s390/s390.md (bswap<mode>2): New pattern added.
15973
15974 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15975
15976 * config/s390/s390.md (*tls_load_31): Added type attribute.
15977
15978 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15979
15980 * config/s390/s390.md: Fix a few comments.
15981
15982 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
15983
15984 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15985 (*tm<mode>_full): Fixed z10prop attribute.
15986 (*tst<mode>_extimm): Fixed z10prop attribute.
15987 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15988 (*tstqiCCT_cconly): Fixed z10prop attribute.
15989 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15990 (*movsi_larl): Fixed z10prop attribute.
15991 (*movsi_zarch): Fixed z10prop attribute.
15992 (*movsi_eas): Fixed z10prop attribute.
15993 (*movhi): Fixed z10prop attribute.
15994 (*movqi): Fixed z10prop attribute.
15995 (*movstrictqi): Fixed z10prop attribute.
15996 (*mov<mode>): Fixed z10prop attribute.
15997 (*movcc): Fixed z10prop attribute.
15998 (*sethighpartdi_64): Fixed z10prop attribute.
15999 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
16000 (*negdi2_sign_cc): Fixed z10prop attribute.
16001 (*negdi2_sign): Fixed z10prop attribute.
16002 (*absdi2_sign_cc): Fixed z10prop attribute.
16003 (*absdi2_sign): Fixed z10prop attribute.
16004 (*negabsdi2_sign_cc): Fixed z10prop attribute.
16005 (*negabsdi2_sign): Fixed z10prop attribute.
16006 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
16007 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
16008 (doloop_si64): Fixed z10prop attribute.
16009 (doloop_si31): Fixed z10prop attribute.
16010 (doloop_long): Fixed z10prop attribute.
16011 (indirect_jump): Fixed z10prop attribute.
16012 (nop): Fixed z10prop attribute.
16013 (main_base_64): Fixed z10prop attribute.
16014 (reload_base_64): Fixed z10prop attribute.
16015
16016 2009-01-28 Jakub Jelinek <jakub@redhat.com>
16017
16018 PR rtl-optimization/38740
16019 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
16020 if !optimize.
16021 * config/mips/mips.c (mips_reorg): Likewise.
16022
16023 2009-01-28 Richard Guenther <rguenther@suse.de>
16024
16025 PR tree-optimization/38926
16026 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
16027 with the correct value id to a value.
16028 (do_regular_insertion): Use the value number of edoubleprime
16029 for the value number of the expr.
16030
16031 Revert
16032 2008-08-21 Richard Guenther <rguenther@suse.de>
16033
16034 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
16035 a PHI ask VN if it is already available.
16036 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
16037 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
16038
16039 2009-01-28 Jakub Jelinek <jakub@redhat.com>
16040
16041 PR middle-end/38934
16042 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
16043 set to varying whenever max has TREE_OVERFLOW set, similarly
16044 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
16045
16046 2009-01-28 Richard Guenther <rguenther@suse.de>
16047
16048 PR middle-end/38908
16049 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
16050 uninitialized aggregate uses in call arguments.
16051
16052 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
16053
16054 PR tree-optimization/38984
16055 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
16056 the nothing_id variable if -fno-delete-null-pointer-checks.
16057
16058 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
16059
16060 PR target/38988
16061 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
16062 (set_got_offset_rex64): Ditto.
16063
16064 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
16065
16066 PR target/38941
16067 * doc/extend.texi: Improve local variable with asm reg.
16068
16069 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
16070
16071 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
16072 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
16073 was not supplied then set warn_packed_bitfield_compat to the
16074 default value of 1.
16075 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
16076 against 1.
16077
16078 2009-01-27 Richard Guenther <rguenther@suse.de>
16079
16080 PR tree-optimization/38503
16081 * cfgexpand.c (expand_gimple_basic_block): Ignore
16082 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
16083 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
16084 variables that cannot have TBAA applied.
16085 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
16086 statements.
16087
16088 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
16089
16090 PR middle-end/38969
16091 * calls.c (initialize_argument_information): Do not wrap complex
16092 arguments in SAVE_EXPR.
16093
16094 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
16095
16096 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
16097 (INSTALL_LIBGCC): Revert typo commit.
16098
16099 2009-01-26 Richard Guenther <rguenther@suse.de>
16100
16101 PR tree-optimization/38745
16102 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
16103 from special handling.
16104
16105 2009-01-26 Richard Guenther <rguenther@suse.de>
16106
16107 PR tree-optimization/38745
16108 * tree-ssa.c (execute_update_addresses_taken): Do not include
16109 variables that cannot possibly be a register in not_reg_needs.
16110 Do not clear TREE_ADDRESSABLE on vars that may not become
16111 registers.
16112 * tree-ssa.c (update_alias_info_1): Include those in the set
16113 of addressable vars.
16114
16115 2009-01-26 Richard Guenther <rguenther@suse.de>
16116
16117 PR middle-end/38851
16118 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
16119 * tree-ssa-dse.c: Include langhooks.h
16120 (execute_simple_dse): Remove stores with zero size.
16121
16122 2009-01-24 Jakub Jelinek <jakub@redhat.com>
16123
16124 PR c/38957
16125 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
16126 as PLUS_EXPR.
16127
16128 2009-01-24 Julian Brown <julian@codesourcery.com>
16129
16130 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
16131 config/arm/linux-atomic.c.
16132 * config/arm/linux-atomic.c: New.
16133
16134 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
16135
16136 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
16137 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
16138 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
16139
16140 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
16141
16142 PR c/38938
16143 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
16144 properly.
16145
16146 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
16147
16148 PR tree-optimization/38953
16149 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
16150 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
16151 (gloog): Split the exit of the scop when the scop exit is a loop exit.
16152 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
16153 changed the CFG.
16154
16155 2009-01-24 Paul Brook <paul@codesourcery.com>
16156
16157 * config/arm/neon.md (neon_type): Move to arm.md.
16158 (neon_mov<VSTRUCT>): Add neon_type attribute.
16159 * config/arm/arm.md (neon_type): Move to here.
16160 (conds): Add "unconditioal" and use as default for NEON insns.
16161
16162 2009-01-24 Ben Elliston <bje@au.ibm.com>
16163
16164 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
16165 void *' warning from -Wc++-compat.
16166 * Makefile.in (dominance.o-warn): Remove.
16167
16168 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
16169
16170 PR tree-optimization/38932
16171 * fold-const.c (fold_unary_ignore_overflow): New.
16172 * tree.h (fold_unary_ignore_overflow): Declare.
16173 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
16174 * tree-ssa-sccvn.c (visit_reference_op_load,
16175 simplify_unary_expression): Likewise.
16176
16177 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
16178
16179 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
16180 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
16181 regardless of their type.
16182 * c-common.c (handle_packed_attribute): Don't ignore packed on
16183 bitfields.
16184 * c.opt (Wpacked-bitfield-compat): New warning option.
16185 * stor-layout.c (place_field): Warn if offset of a field changed.
16186 * doc/extend.texi (packed): Mention the ABI change.
16187 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
16188 (Warning Options): Add it to the list.
16189
16190 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
16191
16192 * c-opts.c (c_common_post_options): Fix a typo in comments.
16193
16194 2009-01-22 Steve Ellcey <sje@cup.hp.com>
16195
16196 PR middle-end/38615
16197 * gimplify.c (gimplify_init_constructor): Fix promotion of const
16198 variables to static.
16199 * doc/invoke.texi (-fmerge-all-constants): Update description.
16200
16201 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
16202
16203 PR target/38931
16204 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
16205 (*movdi_1_rex64): Use type "mmx" for alternative 5.
16206
16207 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
16208
16209 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
16210 a word boundary.
16211 (LOCAL_ALIGNMENT): Similarly.
16212
16213 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
16214 Joseph Myers <joseph@codesourcery.com>
16215
16216 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
16217 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
16218 * config/arm/arm-tune.md: Regenerate.
16219 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
16220 -march=iwmmxt2.
16221
16222 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
16223
16224 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
16225 version number to five.
16226
16227 2009-01-22 Dodji Seketeli <dodji@redhat.com>
16228
16229 PR c++/38930
16230 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
16231 * c-common.c (set_underlying_type): Likewise.
16232 (is_typedef_decl ): Likewise
16233 * tree.h: Likewise
16234 (set_underlying_type): Likewise.
16235 (is_typedef_type): Likewise.
16236
16237 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
16238
16239 PR middle-end/38587
16240 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
16241 crossing setjmps.
16242
16243 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
16244
16245 PR bootstrap/37660
16246 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
16247 (LIBGCC_SPEC): Don't define.
16248 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
16249
16250 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
16251
16252 PR rtl-optimization/38879
16253 * alias.c (base_alias_check): Unaligned access via AND address can
16254 alias all surrounding object types except those with sizes equal
16255 or wider than the size of unaligned access.
16256
16257 2009-01-21 Dodji Seketeli <dodji@redhat.com>
16258
16259 PR c++/26693
16260 * c-decl.c (clone_underlying_type): Move this ...
16261 * c-common.c (set_underlying_type): ... here.
16262 Also, make sure the function properly sets TYPE_STUB_DECL() on
16263 the newly created typedef variant type.
16264 (is_typedef_decl ): New entry point.
16265 * tree.h: Added a new member member_types_needing_access_check to
16266 struct tree_decl_non_common.
16267 (set_underlying_type): New entry point.
16268 (is_typedef_type): Likewise.
16269
16270 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
16271
16272 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
16273 Check whether two instructions have memory references that
16274 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
16275 are helper functions for traversing.
16276 * alias.h (insn_alias_sets_confilict_p): New prototypes.
16277 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
16278 not to draw dependency edge for instructions with non-conflicting
16279 alias sets.
16280
16281 2009-01-20 Joseph Myers <joseph@codesourcery.com>
16282
16283 PR other/38758
16284 * longlong.h: Update copyright years. Use soft-fp license notice.
16285 Sync __clz_tab declaration with glibc.
16286
16287 2009-01-20 Steve Ellcey <sje@cup.hp.com>
16288
16289 PR target/30687
16290 * doc/extend.texi (syscall_linkage): New.
16291 (version_id): Modify.
16292
16293 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
16294 Richard Guenther <rguenther@suse.de>
16295
16296 PR tree-optimization/38747
16297 PR tree-optimization/38748
16298 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
16299 conversion if the base address is an indirect reference and the
16300 aliasing sets could cause issues.
16301
16302 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
16303
16304 * common.opt (fgraphite, fgraphite-identity): Add comment for
16305 explaining why these options are not documented.
16306
16307 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
16308
16309 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
16310 gimple_call_lhs is NULL.
16311
16312 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
16313
16314 PR target/38868
16315 * emit-rtl.c (adjust_address_1): Make sure memref is never
16316 overwritten.
16317
16318 2009-01-20 Ben Elliston <bje@au.ibm.com>
16319
16320 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16321 const qualifier from arg parameter. Remove unnecessary cast to char *.
16322 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16323 const qualifier from arg 2.
16324
16325 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
16326
16327 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
16328
16329 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
16330
16331 PR c/38869
16332 * rtl.h (reinit_regs): New prototype.
16333 * regclass.c: Include ira.h.
16334 (reinit_regs): New.
16335 * Makefile.in (regclass.o): Add ira.h.
16336 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
16337
16338 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
16339
16340 PR target/38736
16341 * c-common.c (handle_aligned_attribute): Use
16342 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
16343 default alignment value.
16344
16345 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
16346
16347 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
16348 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
16349
16350 * doc/extend.texi: Update __attribute__ ((aligned)). Document
16351 __BIGGEST_ALIGNMENT__.
16352
16353 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
16354
16355 2009-01-18 Richard Guenther <rguenther@suse.de>
16356
16357 PR tree-optimization/38819
16358 * tree-flow.h (operation_could_trap_helper_p): Declare.
16359 * tree-eh.c (operation_could_trap_helper_p): Export.
16360 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16361 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16362 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16363 are about to insert a possibly trapping instruction and fail
16364 in this case.
16365
16366 2009-01-18 Andreas Schwab <schwab@suse.de>
16367
16368 * doc/install.texi (Configuration): Remove obsolete paragraph
16369 about use of --with-gnu-ld with --with-gnu-as.
16370
16371 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
16372
16373 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16374 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16375 Follow spelling conventions.
16376
16377 2009-01-18 Ben Elliston <bje@au.ibm.com>
16378
16379 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16380 C++ warning about implicit conversion from void * to struct
16381 bitmap_head_def *.
16382 (bitmap_obstack_free): Likewise for bitmap_element *.
16383 * Makefile.in (bitmap.o-warn): Remove.
16384
16385 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
16386
16387 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
16388
16389 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
16390 Tobias Grosser <tobi.grosser@amd.com>
16391
16392 * graphite.c (graphite_trans_scop_block): Do not block single
16393 nested loops.
16394
16395 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
16396
16397 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16398 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16399 test with assertion.
16400
16401 2009-01-16 Richard Guenther <rguenther@suse.de>
16402
16403 PR tree-optimization/38835
16404 PR middle-end/36227
16405 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16406 and INT + PTR -> (INT)(PTR p+ INT) folding.
16407 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16408
16409 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
16410
16411 PR target/38554
16412 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16413 the subreg from a lowpart subreg if it is also casting the value.
16414
16415 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16416 Tobias Grosser <tobi.grosser@amd.com>
16417
16418 * graphite.c (compare_prefix_loops): New.
16419 (build_scop_canonical_schedules): Rewritten.
16420 (graphite_transform_loops): Move build_scop_canonical_schedules
16421 after build_scop_iteration_domain.
16422
16423 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
16424 Tobias Grosser <tobi.grosser@amd.com>
16425
16426 * graphite.c (add_conditions_to_domain): Add the loops to
16427 the dimension of the iteration domain. Do copy the domain
16428 only when it exists.
16429 (build_scop_conditions_1): Do not call add_conditions_to_domain.
16430 (add_conditions_to_constraints): New.
16431 (can_generate_code_stmt, can_generate_code): Removed.
16432 (gloog): Do not call can_generate_code.
16433 (graphite_transform_loops): Call add_conditions_to_constraints
16434 after building the iteration domain.
16435
16436 2009-01-16 Jakub Jelinek <jakub@redhat.com>
16437
16438 PR tree-optimization/38789
16439 * tree-ssa-threadedge.c
16440 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16441 __builtin_constant_p.
16442
16443 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16444
16445 * dce.c (delete_unmarked_insns): Reversed the order that insns are
16446 examined before deleting them.
16447
16448 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
16449
16450 * function.c (aggregate_value_p): Correctly extract the function
16451 type from CALL_EXPR_FN lookup.
16452
16453 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
16454
16455 * config/picochip/picochip.c (picochip_override_options): Revert
16456 CFI asm flag disable commited previously.
16457
16458 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
16459 Tobias Grosser <tobi.grosser@amd.com>
16460 Jan Sjodin <jan.sjodin@amd.com>
16461
16462 * graphite.c (scan_tree_for_params): On substractions negate
16463 all the coefficients of the term.
16464 (clast_to_gcc_expression_red): New. Handle reduction expressions
16465 of more than two operands.
16466 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16467 (get_vdef_before_scop): Handle also the case of default definitions.
16468
16469 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
16470
16471 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16472 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16473 Also use them when walking CALL_INSN_FUNCTION_USAGE.
16474
16475 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
16476 Joey Ye <joey.ye@intel.com>
16477
16478 PR middle-end/37843
16479 * cfgexpand.c (expand_stack_alignment): Don't update stack
16480 boundary nor check incoming stack boundary here.
16481 (gimple_expand_cfg): Update stack boundary and check incoming
16482 stack boundary here.
16483
16484 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
16485
16486 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
16487
16488 2009-01-14 Jakub Jelinek <jakub@redhat.com>
16489
16490 PR rtl-optimization/38245
16491 * calls.c (expand_call): Add stack arguments to
16492 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16493 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16494 in regs and partially in memory or BLKmode arguments.
16495 (emit_library_call_value_1): Add stack arguments to
16496 CALL_INSN_FUNCTION_USAGE even for pure calls (when
16497 ACCUMULATE_OUTGOING_ARGS).
16498 * dce.c: Include tm_p.h.
16499 (find_call_stack_args): New function.
16500 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
16501 argument.
16502 (mark_insn): Call find_call_stack_args for CALL_Ps.
16503 (prescan_insns_for_dce): Walk insns backwards in bb rather than
16504 forwards. Allocate and free arg_stores bitmap if needed, pass it
16505 down to deletable_insn_p, don't mark stores set in arg_stores
16506 bitmap, clear the bitmap at the beginning of each bb.
16507 * Makefile.in (dce.o): Depend on $(TM_P_H).
16508
16509 2009-01-14 Michael Meissner <gnu@the-meissners.org>
16510
16511 PR target/22599
16512 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16513 to make sure the insn is a conditional test (bug 22599). Reformat a
16514 few long lines.
16515
16516 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
16517
16518 PR middle-end/38431
16519 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16520 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16521 (gloog): Do not call cleanup_tree_cfg.
16522 (graphite_transform_loops): Call cleanup_tree_cfg after all
16523 scops have been code generated.
16524
16525 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
16526 * doc/gty.texi (Invoking the garbage collector): Added new node
16527 and section documenting ggc_collect.
16528
16529 2009-01-14 Richard Guenther <rguenther@suse.de>
16530
16531 PR tree-optimization/38826
16532 PR middle-end/38477
16533 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16534 initialization notes only if we actually emitted a warning.
16535 (intra_create_variable_infos): Add constraints for a result decl
16536 that is passed by hidden reference.
16537 (build_pred_graph): Mark all related variables non-direct on
16538 address-taking.
16539
16540 2009-01-14 Nick Clifton <nickc@redhat.com>
16541
16542 * ira-conflicts.c: Include addresses.h for the definition of
16543 base_reg_class.
16544 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16545 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
16546
16547 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
16548
16549 PR target/38811
16550 * Makefile.in (ira-lives.o): Add except.h.
16551
16552 * ira-lives.c: Include except.h.
16553 (process_bb_node_lives): Process can_throw_internal.
16554
16555 2009-01-13 Jakub Jelinek <jakub@redhat.com>
16556
16557 PR rtl-optimization/38774
16558 * combine.c (simplify_set): When undoing cc_use change, don't do
16559 PUT_CODE on the newly created comparison, but instead put back the
16560 old comparison.
16561
16562 2009-01-13 Joseph Myers <joseph@codesourcery.com>
16563
16564 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16565 values. Remove duplicate arm8 entry.
16566
16567 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16568
16569 PR tree-optimization/38786
16570 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16571 the SSA_NAME case of expand_scalar_variables_expr.
16572 Set the type of an expression to the type of its assign statement.
16573 (expand_scalar_variables_expr): Also gather the scalar computation
16574 used to index the memory access. Do not pass loop_p.
16575 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
16576 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
16577 the gimple_stmt_iterator where it inserts new code.
16578 Do not pass loop_p.
16579 (copy_bb_and_scalar_dependences): Do not pass loop_p.
16580 (translate_clast): Update call to copy_bb_and_scalar_dependences.
16581
16582 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
16583
16584 * graphite.h (debug_value): Removed.
16585 * graphite.c (debug_value): Removed.
16586
16587 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
16588
16589 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16590 ldrd/strd with two 32-bit instructions.
16591
16592 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
16593
16594 * config/arm/arm.c (struct processors): Pass for speed down into
16595 cost helper functions.
16596 (const_ok_for_op): Handle COMPARE and inequality nodes.
16597 (arm_rtx_costs_1): Rewrite.
16598 (arm_size_rtx_costs): Update prototype.
16599 (arm_rtx_costs): Pass speed down to helper functions.
16600 (arm_slowmul_rtx_costs): Rework cost calculations.
16601 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16602 (arm_9e_rtx_costs): Likewise.
16603
16604 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
16605
16606 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
16607 relocations of local symbols wider than UNITS_PER_WORD are not valid.
16608 (alpha_legitimize_address): Do not split local symbols wider than
16609 UNITS_PER_WORD into HIGH/LO_SUM parts.
16610
16611 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
16612
16613 PR bootstrap/38580
16614 * gcc.c (process_command): Replace call to execvp with calls
16615 to pex_one and exit.
16616
16617 2009-01-03 Anatoly Sokolov <aesok@post.ru>
16618
16619 PR target/29141
16620 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16621 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16622 variant for devices with 3-byte PC.
16623 (__tablejump_elpm__): New.
16624
16625 2009-01-12 Jakub Jelinek <jakub@redhat.com>
16626
16627 PR c/32041
16628 * c-parser.c (c_parser_postfix_expression): Allow `->' in
16629 offsetof member-designator, handle it as `[0].'.
16630
16631 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16632
16633 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16634 function when not using named sections on targets with named sections
16635 if branch distance is less than 262132.
16636
16637 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
16638
16639 * combine.c (combine_instructions): Recompute
16640 optimize_this_for_speed_p for each BB in the main combine loop.
16641
16642 2009-01-12 Tomas Bily <tbily@suse.cz>
16643
16644 PR middlend/38385
16645 * tree-loop-distribution.c (prop_phis): New function.
16646 (generate_builtin): Call prop_phis.
16647 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
16648
16649 2009-01-12 Jakub Jelinek <jakub@redhat.com>
16650
16651 PR tree-optimization/38807
16652 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16653 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16654
16655 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
16656
16657 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16658 subreg of op0 to the original op0.
16659
16660 2009-01-11 Laurent GUERBY <laurent@guerby.net>
16661
16662 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
16663
16664 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
16665
16666 PR debug/7055
16667 * mips-tfile.c (parse_def): Fix parsing of def strings
16668 starting with digits.
16669
16670 2009-01-10 Jakub Jelinek <jakub@redhat.com>
16671
16672 PR target/38695
16673 * config/arm/arm.c (arm_is_long_call_p): Don't call
16674 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16675
16676 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
16677
16678 * regrename.c (regrename_optimize): Fix dumping.
16679 (find_oldest_value_reg): Preserve REG_POINTER.
16680 (copy_hardreg_forward_1): Likewise.
16681
16682 2009-01-09 Diego Novillo <dnovillo@google.com>
16683
16684 * gimple.h (struct gimple_statement_base) <uid>: Document
16685 the restrictions on its use.
16686 (gimple_uid): Tidy.
16687 (gimple_set_uid): Tidy.
16688
16689 2009-01-09 Jakub Jelinek <jakub@redhat.com>
16690
16691 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16692 zero guard even if align_bytes != 0 and count is smaller than
16693 size_needed.
16694
16695 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
16696
16697 PR rtl-optimization/38495
16698 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
16699 (add_range_and_copies_from_move_list): Print all added ranges.
16700 Add ranges to memory optimized destination.
16701
16702 2009-01-09 Jakub Jelinek <jakub@redhat.com>
16703
16704 PR target/38686
16705 PR target/38708
16706 * config/i386/i386.c (override_options): Reject
16707 -mstringop-strategy=rep_8byte with -m32.
16708 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16709 to 1. Do count comparison against epilogue_size_needed at compile
16710 time even when count_exp was constant forced into register. For
16711 size_needed don't jump to epilogue, instead just avoid aligning
16712 and invoke the body algorithm. If need_zero_guard, add zero guard
16713 even if count is non-zero, but smaller than size_needed + number of
16714 bytes that could be stored for alignment.
16715 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16716 to 1. If need_zero_guard, add zero guard even if count is non-zero,
16717 but smaller than size_needed + number of bytes that could be stored
16718 for alignment. Compare size_needed with epilogue_size_needed instead
16719 of desired_align - align, don't adjust size_needed, pass
16720 epilogue_size_needed to the epilogue expanders.
16721
16722 PR c/35742
16723 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
16724
16725 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16726
16727 * pa.c (last_address): Change to unsigned.
16728 (update_total_code_bytes): Change argument to unsigned. Don't
16729 check if insn addresses are set.
16730 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16731 addresses are not set.
16732 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16733
16734 2009-01-09 Nick Clifton <nickc@redhat.com>
16735
16736 * config/sh/symbian.c: Replace uses of DECL_INLINE with
16737 DECL_DECLARED_INLINE_P.
16738
16739 2009-01-09 Jakub Jelinek <jakub@redhat.com>
16740
16741 PR middle-end/38347
16742 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16743 GET_MODE (op0) in operand_subword_force calls.
16744
16745 PR middle-end/38771
16746 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16747 fold_convert arg0 operands to TREE_TYPE (op0) first.
16748
16749 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
16750
16751 * params.def (ira-max-conflict-table-size): Decrease default value
16752 to 1000.
16753
16754 2009-01-08 Jakub Jelinek <jakub@redhat.com>
16755
16756 PR tree-optimization/37031
16757 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16758 on parameter_set.
16759 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16760 allocate it using gc instead of heap, use VEC_quick_push instead of
16761 VEC_safe_push.
16762 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16763 instead of heap, use VEC_quick_push instead of VEC_safe_push.
16764 * tree-data-ref.h (struct access_matrix): Change matrix to gc
16765 allocated vector from heap allocated.
16766 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16767 * tree-loop-linear.c (linear_transform_loops): Allocate nest
16768 vector only after perfect_loop_nest_depth call.
16769
16770 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
16771 Jan Sjodin <jan.sjodin@amd.com>
16772
16773 PR tree-optimization/38559
16774 * graphite.c (debug_value, copy_constraint,
16775 swap_constraint_variables, scale_constraint_variable, ): New.
16776 (get_lower_bound, get_upper_bound): Removed.
16777 (graphite_trans_bb_strip_mine): Clean up this code that works
16778 only for constant number of iterations. Fully copy upper and
16779 lower bound constraints, not only the constant part of them.
16780 * graphite.h (debug_value): Declared.
16781
16782 2009-01-08 Ira Rosen <irar@il.ibm.com>
16783
16784 PR tree-optimization/37194
16785 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
16786 Don't add the cost of cost model guard in prologue to scalar
16787 outside cost in case of known number of iterations.
16788
16789 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
16790 Alan Modra <amodra@bigpond.net.au>
16791
16792 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16793 non-word-aligned REG+CONST addressing.
16794
16795 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
16796
16797 PR target/38706
16798 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16799 free_after_compilation when outputting a thunk.
16800 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16801 Do not call free_after_compilation here.
16802
16803 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
16804
16805 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
16806 (ix86_valid_target_attribute_inner_p): Ditto.
16807
16808 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
16809
16810 PR tree-optimization/38492
16811 PR tree-optimization/38498
16812 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16813 * tree-chrec.h (scev_is_linear_expression): Declared.
16814 * graphite.c (graphite_cannot_represent_loop_niter): New.
16815 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16816 (graphite_loop_normal_form): Use gcc_assert.
16817 (scan_tree_for_params): Use CASE_CONVERT.
16818 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16819 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16820 Use gcc_assert. Discard scops that contain unhandled cases.
16821 (build_scop_conditions): Return a boolean status for unhandled cases.
16822 (strip_mine_profitable_p): Print the loop number, not its depth.
16823 (is_interchange_valid): Pass the depth of the loop nest, don't
16824 recompute it wrongly.
16825 (graphite_trans_bb_block): Same.
16826 (graphite_trans_bb_block): Print tentative of loop blocking.
16827 (graphite_trans_scop_block): Do not print that the loop has been
16828 blocked.
16829 (graphite_transform_loops): Do not handle scops that contain condition
16830 scalar phi nodes.
16831
16832 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
16833
16834 AVX Programming Reference (December, 2008)
16835 * config/i386/avxintrin.h (_mm256_stream_si256): New.
16836 (_mm256_stream_pd): Likewise.
16837 (_mm256_stream_ps): Likewise.
16838
16839 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16840 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16841 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16842 (bdesc_special_args): Add __builtin_ia32_movntdq256,
16843 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16844 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16845 (ix86_expand_special_args_builtin): Likewise.
16846
16847 * config/i386/sse.md (AVXMODEDI): New.
16848 (avx_movnt<mode>): Likewise.
16849 (avx_movnt<mode>): Likewise.
16850 (<sse>_movnt<mode>): Remove AVX support.
16851 (sse2_movntv2di): Likewise.
16852
16853 2009-01-07 Richard Guenther <rguenther@suse.de>
16854
16855 PR middle-end/38751
16856 * fold-const.c (extract_muldiv): Remove obsolete comment.
16857 (fold_plusminus_mult_expr): Undo MINUS_EXPR
16858 to PLUS_EXPR canonicalization for the canonicalization.
16859
16860 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
16861
16862 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
16863 hosted cross-compilers generating less efficient code.
16864
16865 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16866
16867 * function.h (rtl_data): Add a dbr_scheduled_p field.
16868 * reorg.c (dbr_schedule): Set it.
16869 (gate_handle_delay_slots): Check it.
16870 * config/mips/mips.c (mips_base_delayed_branch): Delete.
16871 (mips_reorg): Check flag_delayed_branch instead of
16872 mips_base_delayed_branch.
16873 (mips_override_options): Don't set mips_base_delayed_branch
16874 or flag_delayed_branch.
16875
16876 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
16877
16878 PR rtl-optimization/38426.
16879 * ira.c (ira): Set current_function_is_leaf earlier.
16880
16881 2009-01-06 Jakub Jelinek <jakub@redhat.com>
16882
16883 PR rtl-optimization/38722
16884 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16885 too early, only set a flag and modify after last possible
16886 undo_all point.
16887
16888 2009-01-06 Janis Johnson <janis187@us.ibm.com>
16889
16890 PR c/34252
16891 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16892 * real.c (decimal_single_format): Correct values of emin and emax.
16893 (decimal_double_format): Ditto.
16894 (decimal_quad_format): Ditto.
16895 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16896 computation of DECnn_MIN and DECnn_MAX for corrected values of
16897 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
16898 __DECnn_MIN__, and adjust its computation for the corrected value
16899 of emin.
16900
16901 2009-01-06 Jan Hubicka <jh@suse.cz>
16902
16903 PR target/38744
16904 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
16905
16906 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16907
16908 * doc/contrib.texi (Contributors): Slightly adjust the end note.
16909 Add Robert Clark to the list of testers.
16910
16911 2009-01-06 Jan Hubicka <jh@suse.cz>
16912 Kai Tietz <kai.tietz@onevision.com>
16913
16914 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16915 * config/i386/i386.c (ix86_expand_call): Add clobbers.
16916
16917 2009-01-06 Jan Hubicka <jh@suse.cz>
16918 Kai Tietz <kai.tietz@onevision.com>
16919
16920 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16921 for w64 ABI.
16922 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
16923 (ix86_nsaved_regs): Count only general purpose regs.
16924 (ix86_nsaved_sseregs): New.
16925 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16926 to 16 for w64; compute padding and size of sse reg save area.
16927 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16928 general purpose regs.
16929 (ix86_emit_save_sse_regs_using_mov): New.
16930 (ix86_expand_prologue): Save SSE regs if needed.
16931 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16932 (ix86_emit_restore_sse_regs_using_mov): New.
16933 (ix86_expand_epilogue): Save SSE regs if needed.
16934
16935 2009-01-06 Jan Hubicka <jh@suse.cz>
16936 Kai Tietz <kai.tietz@onevision.com>
16937
16938 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16939 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16940 functions when accumulate outgoing args is off.
16941
16942 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16943
16944 PR bootstrap/38742
16945 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16946 before using pseudos_have_intersected_live_ranges_p.
16947
16948 * ira-int.h (ira_assert): Always define.
16949
16950 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
16951
16952 AVX Programming Reference (December, 2008)
16953 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16954 (_mm256_permute2_pd): Likewise.
16955 (_mm_permute2_ps): Likewise.
16956 (_mm256_permute2_ps): Likewise.
16957 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16958 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16959
16960 * config/i386/i386.c (ix86_builtins): Remove
16961 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16962 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16963 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16964 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16965 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16966 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16967 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16968 __builtin_ia32_vpermil2ps256.
16969 (ix86_init_mmx_sse_builtins): Updated.
16970 (ix86_expand_args_builtin): Likewise.
16971
16972 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16973
16974 * pa.c (output_call): Relocate non-jump insns in the delay slot of
16975 long absolute calls when generating PA 2.0 code.
16976
16977 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
16978
16979 PR rtl-optimization/38583
16980 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16981
16982 * params.def (ira-max-conflict-table-size): New.
16983
16984 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
16985
16986 * ira.h (ira_conflicts_p): New external definition.
16987
16988 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16989 table. Report this. Return result of building.
16990 (ira_build_conflicts): Use ira_conflicts_p. Check result of
16991 building conflict table.
16992
16993 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
16994 (ira_color): Use ira_conflicts_p.
16995
16996 * global.c: Include ira.h.
16997 (pseudo_for_reload_consideration_p, build_insn_chain): Use
16998 ira_conflicts_p.
16999
17000 * Makefile.in (global.o): Add ira.h.
17001
17002 * ira-build.c (mark_all_loops_for_removal,
17003 propagate_some_info_from_allocno): New.
17004 (remove_unnecessary_allocnos): Call
17005 propagate_some_info_from_allocno.
17006 (remove_low_level_allocnos): New.
17007 (remove_unnecessary_regions): Add parameter. Call
17008 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
17009 parameter to remove_unnecessary_regions.
17010 (ira_build): Remove all regions but root if the conflict table was
17011 not built. Update conflict hard regs for allocnos crossing calls.
17012
17013 * ira.c (ira_conflicts_p): New global.
17014 (ira): Define and use ira_conflicts_p.
17015
17016 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17017 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
17018 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
17019
17020 2009-01-06 Ben Elliston <bje@au.ibm.com>
17021
17022 * gengtype-lex.l (YY_NO_INPUT): Define.
17023
17024 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
17025
17026 PR c/34911
17027 * c-common.c (handle_vector_size_attribute): Also reject
17028 BOOLEAN_TYPE types.
17029
17030 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
17031
17032 PR tree-optimization/38492
17033 * graphite.c (rename_map_elt, debug_rename_elt,
17034 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
17035 rename_map_elt_info, eq_rename_map_elts,
17036 get_new_name_from_old_name, bb_in_sese_p): Moved around.
17037 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
17038 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
17039 (sese_build_livein_liveouts): New.
17040 (new_sese, free_sese): New.
17041 (new_scop): Call new_sese.
17042 (free_scop): Call free_sese.
17043 (rename_variables_from_edge, rename_phis_end_scop): Removed.
17044 (register_old_new_names): Renamed register_old_and_new_names.
17045 (register_scop_liveout_renames, add_loop_exit_phis,
17046 insert_loop_close_phis, struct igp,
17047 default_liveout_before_guard, add_guard_exit_phis,
17048 insert_guard_phis, copy_renames): New.
17049 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
17050 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
17051 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
17052 (scop_adjust_phis_for_liveouts): New.
17053 (gloog): Call scop_adjust_phis_for_liveouts.
17054
17055 * graphite.h (struct sese): Documented. Added fields liveout,
17056 num_ver and livein.
17057 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
17058 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
17059 (struct scop): Added field liveout_renames.
17060 (SCOP_LIVEOUT_RENAMES): New.
17061
17062 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
17063
17064 PR tree-optimization/38510
17065 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
17066 (translate_clast): Call recompute_all_dominators before
17067 graphite_verify.
17068 (gloog): Call recompute_all_dominators before graphite_verify.
17069
17070 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
17071 Jan Sjodin <jan.sjodin@amd.com>
17072
17073 PR tree-optimization/38500
17074 * graphite.c (create_sese_edges): Call fix_loop_structure after
17075 splitting blocks.
17076
17077 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
17078
17079 * config.gcc: Add m32r*-*-rtems*.
17080 * config/m32r/rtems.h: New file.
17081
17082 2009-01-05 Ben Elliston <bje@au.ibm.com>
17083
17084 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
17085 (.po.pox): Likewise.
17086 (po/gcc.pot): Likewise.
17087
17088 2009-01-04 David S. Miller <davem@davemloft.net>
17089
17090 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
17091 (STARTING_FRAME_OFFSET): Always set to zero.
17092
17093 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
17094
17095 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
17096 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
17097 fixed-point types, and vectors of the same.
17098
17099 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
17100
17101 * config/mips/sync.md (*mb_barrier): Rename to...
17102 (*memory_barrier): ...this.
17103
17104 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
17105
17106 * doc/extend.texi (Function Attributes): Move @cindex after @item
17107 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
17108 and put in alphabetical order. Fix 'target' name and put in order.
17109 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
17110 typos.
17111
17112 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
17113
17114 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
17115 (memory_barrier): Expand as unspec instead of unspec_volatile.
17116 Remove mem:BLK from insn operands. Use Pmode scratch register.
17117 (*memory_barrier): Define as unspec instead of unspec_volatile.
17118 Use (match_dup 0) as input operand.
17119
17120 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
17121 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
17122 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
17123 scratch register. Remove operand 1.
17124 (*stbar): Define as unspec instead of unspec_volatile.
17125 Use (match_dup 0) as input operand, remove (const_int 8).
17126 (*membar): Define as unspec instead of unspec_volatile.
17127 Use (match_dup 0) as input operand, remove input operand 2.
17128
17129 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
17130 (memory_barrier): Expand as unspec instead of unspec_volatile.
17131 Remove mem:BLK from insn operands. Use Pmode scratch register.
17132 (*memory_barrier): Define as unspec instead of unspec_volatile.
17133 Use (match_dup 0) as input operand.
17134
17135 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
17136 Remove mem:BLK from insn operands. Use Pmode scratch register.
17137 Set volatile flag on operand 0.
17138 (*memory_barrier): New insn pattern.
17139
17140 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
17141 insn operands.
17142 (*memory_barrier): Use (match_dup 0) as input operand.
17143
17144 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
17145 Remove mem:BLK from insn operands. Use Pmode scratch register.
17146 Set volatile flag on operand 0.
17147 (*mb_internal): New insn pattern.
17148
17149 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
17150
17151 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
17152
17153 PR middle-end/38586
17154 * function.c (struct temp_slot): Move to the section of the file
17155 that deals with temp slots. Remove field 'address'.
17156 (temp_slot_address_table): New hash table of address -> temp slot.
17157 (struct temp_slot_address_entry): New struct, items for the table.
17158 (temp_slot_address_compute_hash, temp_slot_address_hash,
17159 temp_slot_address_eq, insert_temp_slot_address): Support functions
17160 for the new table.
17161 (find_temp_slot_from_address): Rewrite to use the new hash table.
17162 (remove_unused_temp_slot_addresses): Remove addresses of temp
17163 slots that have been made available.
17164 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
17165 worker function for remove_unused_temp_slot_addresses.
17166 (assign_stack_temp_for_type): Don't clear the temp slot address list.
17167 Add the temp slot address to the address -> temp slot map.
17168 (update_temp_slot_address): Update via insert_temp_slot_address.
17169 (free_temp_slots): Call remove_unused_temp_slot_addresses.
17170 (pop_temp_slots): Likewise.
17171 (init_temp_slots): Allocate the address -> temp slot map, or empty
17172 the map if it is already allocated.
17173 (prepare_function_start): Initialize temp slot processing.
17174
17175 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
17176
17177 PR middle-end/38584
17178 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
17179 Calculate the size of all stack vars assuming no packing of stack
17180 vars will happen, replacing a quadratic algorithm with a linear one.
17181
17182 2009-01-03 Jakub Jelinek <jakub@redhat.com>
17183
17184 PR target/38707
17185 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
17186 can't be used.
17187
17188 2009-01-03 Diego Novillo <dnovillo@google.com>
17189
17190 * doc/contrib.texi: Update contributions.
17191
17192 2009-01-03 Jakub Jelinek <jakub@redhat.com>
17193
17194 PR c++/38705
17195 * builtins.c (fold_builtin_memory_op): Give up if either operand
17196 is volatile. Set srctype or desttype to non-qualified version
17197 of the other type.
17198
17199 PR c/38700
17200 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
17201 and FUNCTION_DECLs.
17202
17203 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
17204
17205 PR rtl-optimization/35805
17206 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
17207 problem if fast dce is able to remove any instructions.
17208 * dce.c (dce_process_block): Fix dump message.
17209
17210 2009-01-02 Mark Mitchell <mark@codesourcery.com>
17211
17212 PR 33649
17213 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
17214
17215 2009-01-02 Jakub Jelinek <jakub@redhat.com>
17216
17217 PR middle-end/38690
17218 * tree-flow.h (op_code_prio, op_prio): New prototypes.
17219 * tree-pretty-print.c (op_code_prio): New function.
17220 (op_prio): No longer static. Use op_code_prio.
17221 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
17222 Use op_prio and op_code_prio to determine if () should be
17223 printed around operand(s) or not.
17224
17225 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
17226 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
17227 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
17228 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
17229 pp_character instead of pp_string for single letter printing.
17230
17231 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17232
17233 * doc/extend.texi: Fix '#pragma GCC option' typo.
17234
17235 2009-01-02 Richard Guenther <rguenther@suse.de>
17236
17237 * doc/install.texi (--enable-checking): Mention different
17238 default for stage1.
17239 (--enable-stage1-checking): Document.
17240
17241 2009-01-01 Andrew Pinski <pinskia@gmail.com>
17242
17243 PR middle-end/30142
17244 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
17245 case to be an error.
17246
17247 2009-01-02 Ben Elliston <bje@au.ibm.com>
17248
17249 * config/fp-bit.h (pack_d): Constify argument.
17250 * config/fp-bit.c (makenan): Constify return type. Remove casts.
17251 (isnan): Constify argument.
17252 (isinf): Likewise.
17253 (iszero): Likewise.
17254 (pack_d): Likewise.
17255 (_fpadd_parts): Constify return type.
17256 (_fpmul_parts): Likewise.
17257 (_fpdiv_parts): Likewise.
17258
17259 2009-01-01 Jakub Jelinek <jakub@redhat.com>
17260
17261 PR c/36489
17262 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
17263 warn about overwriting initializer with side-effects or
17264 -Woverride-init if !IMPLICIT.
17265 (output_init_element): Likewise. Pass IMPLICIT down to
17266 add_pending_init.
17267 (process_init_element): Add IMPLICIT argument. Pass it down
17268 to output_init_element.
17269 (push_init_element, pop_init_level, set_designator): Adjust
17270 process_init_element callers.
17271 (set_nonincremental_init, set_nonincremental_init_from_string):
17272 Adjust add_pending_init callers.
17273 (output_pending_init_elements): Adjust output_init_element callers.
17274 * c-tree.h (process_init_element): Adjust prototype.
17275 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
17276 process_init_element callers.
17277
17278 \f
17279 Copyright (C) 2009 Free Software Foundation, Inc.
17280
17281 Copying and distribution of this file, with or without modification,
17282 are permitted in any medium without royalty provided the copyright
17283 notice and this notice are preserved.
This page took 0.77304 seconds and 6 git commands to generate.